Mapping method and robot

Through lidar data building initial maps and selecting exploration points, the robot quickly and safely updates the map in an unknown environment, solving the problem of missed construction and collision risks, and improving the efficiency and safety of construction.

CN120405699APending Publication Date: 2025-08-01UBTECH ROBOTICS CORP LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202510361542.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-25
Publication Date
2025-08-01

AI Technical Summary

Technical Problem

In unknown environments, the robot is prone to missing the map construction process and reduces the efficiency of the map construction, and there is a risk of collision.

Method used

The robot builds the initial map through lidar data, selects exploration points and expands the map, uses obstacle expansion technology to avoid collisions, and uses path planning algorithms to quickly move to exploration points and update the map.

Benefits of technology

It improves the efficiency of robot mapping, reduces the computational complexity and data volume requirements, and ensures the integrity and security of mapping construction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120405699A_ABST
    Figure CN120405699A_ABST
Patent Text Reader

Abstract

The invention is suitable for the technical field of robots, and provides a mapping method and a robot, and the mapping method comprises the steps: responding to a condition that a target map constructed by the robot meets a first condition, and determining an adjacent region between a passable region and an unknown region in the target map; determining grid points meeting a second condition in the adjacent areas as target exploration points; the robot is controlled to move from a first position to a second position, the first position is the current position of the robot, and the second position is the position corresponding to the target exploration point; and acquiring a local map of the robot at the second position, and updating the target map according to the local map. The method can achieve the quick mapping of the robot.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the technical field of robots, and particularly relates to a mapping method and a robot. Background Art

[0002] With the development of information technology and the improvement of economic level, robots are becoming more and more popular in daily life. Especially mobile service robots are applied in many places, such as delivering meals in restaurants, delivering takeaways in office buildings, delivering medical supplies in hospitals, and so on. In the actual use of robots, the working environment is generally unknown. In an unknown environment, a robot needs to construct a map to provide an effective basis for the robot's positioning and navigation. That is to say, in the related art, there is a need to construct a navigation map for the robot. Summary of the Invention

[0003] Embodiments of this application provide a mapping method, a robot, and a computer-readable storage medium, aiming to solve the problem in the related art that it is necessary to construct a navigation map for the robot.

[0004] In a first aspect, an embodiment of this application provides a mapping method, which includes: in response to a target map constructed by a robot satisfying a first condition, determining an adjacent area between a passable area and an unknown area in the target map; in response to candidate exploration points of a first grid group in the adjacent area, selecting grid points that satisfy a second condition from the candidate exploration points and determining them as target exploration points; controlling the robot to move from a first position to a second position, where the first position is the current position of the robot and the second position is the position corresponding to the target exploration point; obtaining a local map of the robot at the second position, and updating the target map according to the local map.

[0005] In a second aspect, an embodiment of this application provides a mapping device, which includes:

[0006] An area determination unit, configured to determine an adjacent area between a passable area and an unknown area in the target map in response to the target map constructed by the robot satisfying a first condition;

[0007] A target determination unit, configured to select grid points that satisfy a second condition from the candidate exploration points and determine them as target exploration points in response to candidate exploration points of a first grid group in the adjacent area;

[0008] A movement control unit, configured to control the robot to move from a first position to a second position, where the first position is the current position of the robot and the second position is the position corresponding to the target exploration point;

[0009] A map update unit, configured to obtain a local map of the robot at the second position, and update the target map according to the local map.

[0010] In a third aspect, an embodiment of the present application provides a robot, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the steps of any one of the above mapping methods are implemented.

[0011] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium storing a computer program, and when the computer program is executed by a processor, the steps of any one of the above mapping methods are implemented.

[0012] In a fifth aspect, an embodiment of the present application provides a computer program product. When the computer program product runs on a robot, the robot is caused to execute any one of the above mapping methods.

[0013] The beneficial effects of the embodiments of the present application compared with the related art are as follows: During the process of robot mapping, by finding exploration points from the already built map and improving the robot map based on the environmental data collected at the exploration points, the mapping operation is relatively simple and the computational complexity is low, which helps to improve the robot mapping efficiency, thereby realizing rapid mapping of the robot.

[0014] It can be understood that the beneficial effects of the above second to fifth aspects can refer to the relevant descriptions in the first aspect above, and will not be elaborated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings required for use in the embodiments or the description of the related art. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0016] Figure 1 is a schematic flowchart of a mapping method provided by an embodiment of the present application;

[0017] Figure 2 is a schematic diagram of the process of determining the adjacent area between the passable area and the unknown area provided by an embodiment of the present application;

[0018] Figure 3 is a schematic diagram of the target map provided by an embodiment of the present application;

[0019] Figure 4 is a schematic diagram of the inflated area provided by an embodiment of the present application;

[0020] Figure 5 is a schematic diagram of the adjacent area provided by an embodiment of the present application;

[0021] Figure 6It is a schematic diagram of the process for determining a target exploration point provided by an embodiment of the present application;

[0022] Figure 7 It is a schematic diagram of candidate exploration points for adjacent regions provided by an embodiment of the present application;

[0023] Figure 8 It is a schematic diagram of a target exploration point provided by an embodiment of the present application;

[0024] Figure 9 It is a schematic structural diagram of a mapping device provided by an embodiment of the present application;

[0025] Figure 10 It is a schematic structural diagram of a robot provided by an embodiment of the present application. Detailed implementation manners

[0026] In the following description, specific details such as specific system structures and technologies are presented for the purpose of illustration rather than limitation, so as to thoroughly understand the embodiments of the present application. However, those skilled in the art should clearly understand that the present application can also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to avoid unnecessary details from interfering with the description of the present application.

[0027] Some concepts that may be involved in the embodiments of the present application are described as follows:

[0028] (1) Multiple: Unless otherwise specified, in the embodiments of the present application, multiple all refer to two or more.

[0029] (2) Obstacle area, passable area, unknown area: In the embodiments of the present application, the obstacle area, passable area, and unknown area are all elements in the map. The obstacle area indicates obstacles, the passable area is the area where the robot can pass without obstacles, and the unknown area is the area that has not been explored yet, or is called the area that has not been mapped yet.

[0030] (3) Grid map: In robot mapping, the grid map is a commonly used map representation method. Each grid point in the map can describe one or more of the following information: spatial position, environmental information, terrain information, semantic information, etc.

[0031] Each grid point in the map corresponds to a small area in the real environment. The coordinates of the grid point in the map can be determined by combining the row and column indices of the grid point.

[0032] In some application scenarios, grid points may include first marking information for marking the type of the area corresponding to the grid points. For example, if the value of the first marking information is 1, it indicates that the corresponding area is an obstacle; if the value of the first marking information is 2, it indicates that the corresponding area is a passable area; if the value of the marking information is 0, it indicates that the corresponding area is an unknown area.

[0033] In some other application scenarios, grid points may also include second marking information for marking the terrain of the area corresponding to the grid points. For example, if the value of the second marking information is 01, it indicates that the corresponding area is flat ground; if the value of the second marking information is 02, it indicates that the corresponding area is a slope; if the value of the second marking information is 03, it indicates that the corresponding area is a step.

[0034] It can be understood that grid points may also include other information, which will not be elaborated here.

[0035] With the development of information technology and the improvement of economic level, robots are becoming more and more popular in daily life, especially mobile service robots, which are applied in many places, such as delivering meals in restaurants, delivering takeaways in office buildings, delivering medical supplies in hospitals, and so on. In the actual use of robots, the working environment is generally unknown. In an unknown environment, a robot needs to construct a map to provide an effective basis for the robot's positioning and navigation. That is to say, in the related art, there is a need to build a navigation map for the robot.

[0036] To solve the above problems, an optional approach is to let the robot perform edge-based mapping according to the current map and the robot's position. After completing one round of mapping along the edge, the mapping is completed. This approach may have the following two problems: First, during the process of the robot moving along the edge, due to various reasons, such as obstacle occlusion, etc., the map may be missed during construction; Second, during the process of the robot moving along the edge, it is easy to collide, resulting in a reduction in the mapping efficiency.

[0037] In view of the above technical problems existing in the related art, an embodiment of the present application provides a mapping method. During the mapping process of the robot, mapping is performed according to the data returned by the lidar, and an exploration point is selected based on the current position. After navigating to the exploration point, the already established map is expanded based on the data returned by the lidar; continue to find the next exploration point and expand the already established map until there is no area to be explored, and the mapping ends. In the present application, during the mapping process of the robot, by finding exploration points from the already established map and improving the robot map based on the environmental data collected at the exploration points, the mapping operation is relatively simple, the computational complexity is low, which helps to improve the mapping efficiency of the robot, thereby realizing rapid mapping of the robot. In addition, during the mapping process of the robot, exploration and mapping are solely dependent on the lidar without the need for other auxiliary sensors to assist in mapping, that is, the amount of data required for the mapping process is relatively small, which helps to further improve the mapping efficiency of the robot.

[0038] Optionally, before the robot selects an exploration point each time, the obstacle area in the already established map can be inflated first, and the inflation width is adapted to the radius of the robot. In this way, it can be ensured that the robot will not be affected by colliding with obstacles during the journey from the current position to the exploration point position based on the already established map, thus affecting the mapping efficiency.

[0039] The following combines Figure 1 to further elaborate on the mapping method provided by the embodiment of the present application. As Figure 1 shown, the mapping method may include the following steps 101 to step 103.

[0040] Step 101, when the robot responds that the target map constructed by the robot meets the first condition, determine the adjacent area between the passable area and the unknown area in the target map.

[0041] Among them, the first condition is a pre-set mapping condition. If the first condition is met, mapping continues; if the first condition is not met, mapping stops. As an example, the first condition may be: the area corresponding to the already established target map is smaller than a pre-set area (abbreviated as the preset area). Among them, the preset area is the area to be mapped. The preset area can be a user-specified area or an area determined by the robot itself. For example, when the robot is indoors, the robot can determine the indoor area as the preset area.

[0042] Among them, the target map is the map that the robot has currently established. The target map usually includes a passable area and an unknown area. In some scenarios, the target map also includes an obstacle area. It can be understood that the present application embodiment does not make specific limitations on the number of obstacle areas, the number of passable areas, and the number of unknown areas in the target map.

[0043] Optionally, in step 101, for the target map to meet the first condition, it may include that there is an unknown area in a preset area of the target map. Here, the preset area is the area to be mapped. If there is an unknown area in the preset area, it means that there is still unexplored content in the preset area. In this case, the robot can continue mapping to ensure that the robot can completely map the environment that needs to be mapped.

[0044] In practice, when the established target map meets the first condition, the robot can find the adjacent area between the passable area and the unknown area from the currently established target map.

[0045] Optionally, in step 101, the robot can determine the adjacent area between the passable area and the unknown area in the following way: directly divide each adjacent grid point of the passable area and the unknown area into the adjacent area. In this case, the adjacent area is the set of each adjacent grid point.

[0046] Optionally, in step 101, the robot can also determine the adjacent area between the passable area and the unknown area through Figure 2 the steps 201 and 202 shown in. Among them, Figure 2 is a schematic diagram of the process for determining the adjacent area between the passable area and the unknown area provided by the embodiment of the present application.

[0047] Step 201, the robot determines an inflated area adapted to the contour of the obstacle area from the passable area according to the first dimension of the robot.

[0048] Among them, the inflated area is the area adjacent to the obstacle area in the passable area.

[0049] Among them, the width of the inflated area is positively correlated with the first dimension. The first dimension is the dimension of the robot. The larger the dimension of the robot, the larger the width of the inflated area. The positive correlation between the width of the inflated area and the dimension of the robot can prevent the robot from colliding with obstacles during the process of traveling based on the map, which helps to improve the mapping efficiency.

[0050] In practice, the first dimension may include one or more of the following: the length of the robot, the width of the robot, the radius of the robot, etc. It can be understood that the embodiment of the present application does not specifically limit the dimension data included in the first dimension of the robot.

[0051] In the embodiments of the present application, the target map includes a passable area, an unknown area, and an obstacle area at the same time. The robot can use the technical means for image dilation disclosed in the related art to dilate the obstacle area by a certain width. For example, the width is dilated by 2 grid points. After that, the robot can perform an intersection operation on the area difference between the dilated obstacle area and the obstacle area before dilation and the passable area to obtain the above-mentioned dilated area.

[0052] Optionally, before step 101, the robot can also perform the following operations: in response to the robot starting map building, an initial target map is generated according to the first image scanned by the robot's lidar.

[0053] Wherein, the above-mentioned first image is an image scanned by the lidar.

[0054] Wherein, the robot can rotate one week at the initial position to scan the above-mentioned first image, and generate an initial target map based on the first image.

[0055] In practice, the robot can respond to the operation of the user clicking to start map building and enter the start of map building. During the map building process, the robot can use the map building means disclosed in the related art to build a map (or generate a map) using the images collected by the lidar, which will not be elaborated here. It can be understood that after the robot generates the initial target map, it can continue to execute step 101 and the operations after step 101 on the basis of the target map, find exploration points and further expand and update the target map based on the images scanned at the exploration points.

[0056] It should be noted that the robot solely relies on the lidar for exploration and map building without the need for other auxiliary sensors to assist in map building. That is, the amount of data required for the map building process is small, which helps to improve the map building efficiency of the robot, thereby realizing rapid map building of the robot.

[0057] Step **********, the robot determines the adjacent area between the first area and the unknown area, where the first area is the area in the passable area except the dilated area.

[0058] Here, after dilating the obstacle area towards the passable area, the robot can determine the above-mentioned adjacent area in combination with the reduced passable area. In this case, the adjacent area does not include the grid points adjacent to the obstacle area, which can avoid determining the grid points adjacent to the obstacle area as exploration points when selecting exploration points from the adjacent area subsequently, thereby avoiding the robot from colliding with obstacles and helping to improve the map building efficiency.

[0059] In some scenarios, the first dimension may be the radius of the robot. In this case, in the above step 201, the process by which the robot determines the inflated area that fits the contour of the obstacle area from the passable area may include: First, determine the first contour of the obstacle area. Then, traverse each grid point on the first contour and divide the second grid points in the passable area into the inflated area.

[0060] Among them, the second grid point is the grid point in the passable area that is within the first neighborhood range of the first grid point. The first grid point is any grid point on the first contour.

[0061] The number of grid points occupied by the radius of the first neighborhood range is the same as the number of grid points corresponding to the radius of the robot. As an example, if the radius of the robot corresponds to two grid points, the radius of the first neighborhood range may be 2 grid points.

[0062] The first contour is the contour of the obstacle area. The first contour may include multiple grid points.

[0063] In the embodiments of the present application, the robot may use the technical means disclosed in the related art to determine the contour of the obstacle area (or the first contour) and obtain each grid point on the contour, which will not be elaborated here.

[0064] After the robot obtains the first contour, it can traverse each grid point on the first contour. Specifically, for each grid point on the first contour, the second grid points within the first neighborhood range of the grid point can be divided into the inflated area. In this case, the above-mentioned inflated area is a set of second grid points. It can be understood that the second grid point is a grid point in the passable area. Dividing the second grid points in the passable area adjacent to the obstacle area into the inflated area can prevent the driving path obtained by path planning from passing through this inflated area, which helps to ensure that the robot will not collide with obstacles during driving.

[0065] The following combines Figures 3 to 5 to elaborate on the process of determining adjacent areas based on the target map. Among them, Figure 3 is a schematic diagram of the target map provided by the embodiments of the present application. Figure 4 is a schematic diagram of the inflated area provided by the embodiments of the present application. Figure 5 is a schematic diagram of the adjacent area provided by the embodiments of the present application.

[0066] It can be understood that the embodiments of the present application do not make specific limitations on how to distinguish grid points. For example, in some scenarios, different colors can be used to distinguish grid points, and in other scenarios, different line fillings can also be used to distinguish grid points.

[0067] Figure 3Among them, the white area is the passable area, the black area is the obstacle area, and the gray area is the unknown area to be explored. The grid point marked in red is the current position point of the robot.

[0068] From Figure 3 It can be found that there is a "V"-shaped vacant position above the grid point of character A (that is, the grid point filled with character "A"). This is because the lidar determines the position of obstacles relying on the signals reflected by light, and the lidar usually has a range limit. For example, the range can be 8 meters. When the environment where the robot is located is large, there will be a "V"-shaped vacant position as shown in Figure 3 shown.

[0069] Figure 4 Among them, the B character area (that is, the area formed by the grid points filled with character "B") is the dilated area corresponding to the obstacle area. The white area is the passable area, the black area is the obstacle area, the gray area is the unknown area to be explored, and the grid point marked in red is the current position point of the robot.

[0070] From Figure 4 It can be found that the width of the dilated area is 2 grid points. In this application, when the obstacle area is dilated towards the passable area, the available range of the passable area is smaller. When the robot travels in the smaller white area shown in Figure 4 it can avoid colliding with obstacles, which can protect the robot on the one hand and improve the mapping efficiency on the other hand.

[0071] Figure 5 Among them, the G character area (that is, the area formed by the grid points filled with character "G") is the adjacent area between the passable area and the unknown area. The B character area is the dilated area. The white area is the passable area, the black area is the obstacle area, the gray area is the unknown area to be explored, and the grid point marked in red is the current position point of the robot.

[0072] From Figure 5 it can be found that the adjacent area between the passable area and the unknown area can have multiple parts. Combining Figure 5 , the adjacent area can have 3 parts, namely, the "V"-shaped G character area part above the grid point of character A, the "1"-shaped G character area part to the left of the grid point of character A, and the G character area part in the lower right of the grid point of character A.

[0073] Next, how to select the exploration point (abbreviated as the target exploration point) for continuous exploration from the above adjacent areas will be described in combination with step 102.

[0074] Step 102, the robot determines the grid points in the adjacent area that meet the second condition as the target exploration points.

[0075] Among them, the second condition is a pre-set condition for selecting exploration points. Optionally, the grid point closest to the robot in the adjacent area can be determined as the target exploration point.

[0076] Optionally, the robot can Figure 6 implement determining the grid points that meet the second condition in the adjacent area as the target exploration points through the following steps 601 to 603 shown in Figure 6 This is a schematic diagram of the process for determining the target exploration point provided by the embodiment of the present application.

[0077] Step 601, the robot divides the adjacent area into M grid groups.

[0078] Among them, the grid points in the grid group are interconnected. M is an integer greater than 0.

[0079] Here, the robot can use the technical means disclosed in the related art to determine the interconnected area parts in the adjacent area, and obtain the grid group corresponding to each area part. Specifically, each area part can correspond to a grid group. Combining Figure 5 , it can be determined that there are 3 interconnected area parts in the adjacent area, namely the "V"-shaped G-character area part above the A-character grid point, the "1"-shaped G-character area part to the left of the A-character grid point, and the G-character area part in the lower right of the A-character grid point. In the Figure 5 scene shown, the three area parts can correspond to 3 grid groups, that is, the value of M is 3.

[0080] Step 602, the robot selects candidate exploration points that meet the second preset condition from the first grid group.

[0081] Among them, the first grid group is any one of the M grid groups.

[0082] Among them, the second preset condition is a pre-set condition for screening candidate exploration points. As an example, the second preset condition can be to randomly screen a grid point from the first grid group as the candidate exploration point.

[0083] Optionally, the second preset condition can include any one of the following first item and second item.

[0084] The first item, select the grid point farthest from the robot in the first grid group as the candidate exploration point.

[0085] It should be noted that selecting the grid point farthest from the robot in the first grid group as the candidate exploration point can reduce the number of times the robot searches for exploration points and help to speed up the mapping speed.

[0086] Second item: Select the grid point with the middle sorting value in the first grid group as the candidate exploration point. Among them, the sorting value of the grid points in the first grid group is positively correlated with the scanning order of the grid points in the target map.

[0087] It should be noted that when the robot scans the map (or traverses the map), it usually traverses one row from left to right first, and then traverses the next row from left to right until the entire map is traversed. In this case, for any grid point in the map, the smaller the row number (Row) of the grid point, the smaller the scanning order. When the row numbers are the same, the smaller the column number (Column), the smaller the scanning order. For the first grid group, the robot can determine the sorting value of the grid point with the smallest scanning order as 1, the sorting value of the grid point with the second smallest scanning order as 2, and so on, so as to obtain the sorting value of each grid point in the first grid group.

[0088] It should be noted that for each grid group, taking the grid point with the middle sorting value in the grid group as the candidate exploration point can reduce the number of times the robot searches for the exploration point while ensuring that the robot can quickly drive to the exploration point position, which helps to further accelerate the mapping speed.

[0089] Combined with Figure 5 , in Figure 5 In the shown scenario, the adjacent area includes 3 interconnected area parts, namely the "V"-shaped G-character area part above the A-character grid point (referred to as sub-area 1), the "1"-shaped G-character area part to the left of the A-character grid point (referred to as sub-area 2), and the G-character area part in the lower right of the A-character grid point (referred to as sub-area 3). The three area parts can correspond to 3 grid groups. When selecting candidate exploration points in the above second item method, a candidate exploration point (referred to as candidate exploration point 1) can be selected for sub-area 1, a candidate exploration point (referred to as candidate exploration point 2) can be selected for sub-area 2, and a candidate exploration point (referred to as candidate exploration point 3) can be selected for sub-area 3. The selected candidate exploration points can be seen in Figure 7 . Among them, Figure 7 is a schematic diagram of the candidate exploration points for the adjacent area provided by the embodiment of the present application. Figure 7 In

[0090] Combined with Figure 7 it can be found that the robot can select multiple candidate exploration points from the adjacent area.

[0091] Step 603: The robot selects a candidate exploration point that meets the first preset condition from the M candidate exploration points corresponding to the M grid groups as the target exploration point.

[0092] In this embodiment, the second condition in Step 102 may include a second preset condition and / or a first preset condition.

[0093] Among them, the first preset condition is a pre-set condition for selecting a target exploration point from candidate exploration points. As an example, the first preset condition may be to randomly select a candidate exploration point from the M candidate exploration points as the target exploration point.

[0094] Optionally, the first preset condition may include: selecting the candidate exploration point closest to the robot as the target exploration point. It should be noted that as the mapping progresses, the target map established by the robot continuously expands. Always selecting the candidate exploration point closest to the robot as the target exploration point can avoid the decrease in mapping speed caused by the robot repeatedly moving back and forth during the mapping process. That is, in this application, always selecting the candidate exploration point closest to the robot as the target exploration point can improve the mapping speed and ensure the mapping efficiency.

[0095] It can be understood that this application can adopt the technical means disclosed in related technologies to calculate the distance between grid points, which will not be elaborated here.

[0096] Further combined with Figure 7 , if the candidate exploration point closest to the robot is used as the target exploration point, on the basis of Figure 7 , the selected target exploration point can be seen in Figure 8 . Among them, Figure 8 is a schematic diagram of the target exploration point provided by the embodiment of this application. Figure 8 In, the grid points filled with diamond grids are the target exploration points, and the grid points filled with slashes are the unselected candidate exploration points.

[0097] In practice, when the robot selects a target exploration point from the adjacent area, it can adopt the path planning algorithm (such as the A* path planning algorithm) disclosed in related technologies to plan the driving path for the robot to drive from the current position to the target exploration point position, so that the robot can drive from the current position to the target exploration point position based on this driving path and continue to collect data to expand and update the target map.

[0098] Considering that the robot may not be able to plan a driving path based on the already screened target exploration points. Therefore, in some alternative implementation manners of the embodiments of the present application, the robot may update the target exploration point to other candidate exploration points in response to the non-existence of a driving path from the first position to the position corresponding to the target exploration point. The other candidate exploration points are candidate exploration points that meet the first preset condition among the remaining candidate exploration points.

[0099] For example, if there are three candidate exploration points, namely candidate exploration point 1, candidate exploration point 2, and candidate exploration point 3, and if the initially screened target exploration point is candidate exploration point 1 and a driving path cannot be planned for this candidate exploration point, in this case, the robot can select a candidate exploration point from candidate exploration point 2 and candidate exploration point 3 as the new target exploration point.

[0100] Here, when a driving path cannot be planned for the already screened target exploration point, promptly selecting other candidate exploration points from the remaining candidate exploration points as the target exploration point and continuing to explore the unknown area can ensure that the robot can perform a complete mapping of the environment. That is to say, the present application can enable the robot to map quickly and completely.

[0101] It can be understood that if a driving path cannot be planned for each candidate exploration point, the robot can end the mapping.

[0102] It can be understood that the scheme of selecting the target exploration point described in step 102 above is not a specific limitation on the scheme of the present application. In some scenarios, other methods can also be used to select the target exploration point from the adjacent area. As an example, the robot can regard all grid points in the adjacent area as a grid group, and then select at least some grid points from this grid group as candidate exploration points; finally, select the candidate exploration points that meet the second condition from the candidate exploration points as the target exploration point. In this case, the second condition can include selecting the candidate exploration point closest to the robot as the target exploration point. As another example, the robot can also divide the adjacent area into M grid groups, where the grid points in each grid group are interconnected, and M is an integer greater than 0; then, select the candidate exploration points that meet the second condition from the M candidate exploration points corresponding to the M grid groups as the target exploration point. In this case, the second condition can include selecting the candidate exploration point closest to the robot as the target exploration point.

[0103] Step 103, the robot controls itself to move from the first position to the second position.

[0104] The first position is the current position of the robot, and the second position is the position corresponding to the target exploration point.

[0105] Here, the robot can adopt a path planning algorithm disclosed in the related art (for example, the A* path planning algorithm) to plan the driving path of the robot from the current position (the first position) to the target exploration point position (the second position), so that the robot can drive from the current position to the target exploration point position based on this driving path.

[0106] Step 104, the robot obtains the local map of the robot at the second position and updates the target map according to the local map.

[0107] Here, when the robot travels to the target exploration point position, it can continue to expand the established target map based on the data returned by the lidar to update the target map. It can be understood that the robot can adopt the map update means disclosed in the related art to update the constructed map based on the locally collected map in real time, which will not be elaborated here.

[0108] It can be understood that the robot can repeatedly execute the operations of steps 101 to 104 to continuously expand and update the target map until the map building is completed.

[0109] In the method provided by the embodiment of the present application, during the map building process of the robot, by finding exploration points from the built map and improving the robot map based on the environmental data collected at the exploration points, the map building operation is relatively simple, the computational complexity is low, which helps to improve the map building efficiency of the robot, so as to realize rapid map building of the robot.

[0110] Corresponding to the map building method in the above embodiment, Figure 9 The structural block diagram of the map building device provided by the embodiment of the present application is shown. For the sake of convenience of description, only the parts related to the embodiment of the present application are shown. Refer to Figure 9 As shown in the figure, the map building device 900 may include a region determination unit 901, a target determination unit 902, a movement control unit 903, and a map update unit 904.

[0111] The region determination unit 901 is configured to determine the adjacent region between the passable region and the unknown region in the target map in response to the target map constructed by the robot satisfying the first condition;

[0112] The target determination unit 902 is configured to select the grid points that meet the second condition from the candidate exploration points as the target exploration points in response to the candidate exploration points of the first grid group in the adjacent region;

[0113] The movement control unit 903 is configured to control the robot to move from the first position to the second position, where the first position is the current position of the robot and the second position is the position corresponding to the target exploration point;

[0114] A map update unit 904, configured to obtain a local map of the robot at a second position and update a target map according to the local map.

[0115] In some embodiments, the target map includes an obstacle area, a passable area, and an unknown area. The area determination unit 901 includes a first determination module and a second determination module (not shown in the figure). Among them, the first determination module is configured to determine, according to the first size of the robot, an inflated area in the passable area that matches the contour of the obstacle area. The inflated area is an area adjacent to the obstacle area in the passable area, and the width of the inflated area is positively correlated with the first size. The second determination module is configured to determine an adjacent area between the first area and the unknown area, where the first area is the area in the passable area other than the inflated area.

[0116] In some embodiments, the first size includes the radius of the robot. The first determination module determines, according to the first size of the robot, an inflated area in the passable area that matches the contour of the obstacle area, including: First, determining a first contour of the obstacle area. Then, traversing each grid point on the first contour and dividing the second grid points in the passable area into the inflated area. Among them, the second grid points are grid points in the passable area within the first neighborhood range of the first grid point. The first grid point is any grid point on the first contour, and the number of grid points occupied by the radius of the first neighborhood range is the same as the number of grid points corresponding to the radius of the robot.

[0117] In some embodiments, the target determination unit 902 selects a grid point that meets a second condition from the candidate exploration points and determines it as the target exploration point, which may include: First, dividing the adjacent area into M grid groups, where the grid points in each grid group are connected to each other, and M is an integer greater than 0. Then, selecting a candidate exploration point that meets a first preset condition from the M candidate exploration points corresponding to the M grid groups as the target exploration point. Among them, the second condition includes the first preset condition.

[0118] In some embodiments, the target determination unit 902 may select a grid point with a median sorting value in the first grid group as the candidate exploration point, where the sorting value of the grid points in the first grid group is positively correlated with the scanning order of the grid points in the target map.

[0119] In some embodiments, the first preset condition includes: selecting the candidate exploration point closest to the robot as the target exploration point.

[0120] In some embodiments, the device further includes a reselection unit (not shown in the figure). The reselection unit is configured to update the target exploration point to other candidate exploration points in response to the non-existence of a driving path from the first position to the position corresponding to the target exploration point, where the other candidate exploration points are candidate exploration points that meet the first preset condition among the remaining candidate exploration points.

[0121] In some embodiments, the target map satisfies a first condition, including: there is an unknown area in a preset area of the target map.

[0122] In some embodiments, the device further includes an activation unit (not shown in the figure). The activation unit is configured to generate an initial target map according to a first image scanned by a lidar of the robot in response to the activation of map building by the robot.

[0123] In the device provided in this embodiment, during the process of map building by the robot, by finding exploration points from the built map and improving the robot map based on the environmental data collected at the exploration points, the map building operation is relatively simple, the computational complexity is low, which helps to improve the efficiency of robot map building, thereby achieving rapid map building of the robot.

[0124] It should be noted that for the information interaction, execution process, etc. between the above-mentioned device / units, since they are based on the same concept as the method embodiment of the present application, for their specific functions and the technical effects brought, reference can be specifically made to the method embodiment part, and details are not described herein again.

[0125] It should be understood that the magnitudes of the sequence numbers of the steps in the above embodiments do not mean the order of execution is prior or posterior. The execution order of each process should be determined according to its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.

[0126] It should be understood that when used in the specification and the appended claims of the present application, the term "comprising" indicates the presence of the described features, wholes, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or their combinations.

[0127] It should also be understood that the term "and / or" used in the specification and the appended claims of the present application refers to any combination and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0128] As used in the specification and the appended claims of the present application, the term "if" can be interpreted as "when", "once", "in response to determining", or "in response to detecting" according to the context. Similarly, the phrase "if determined" or "if detecting [the described condition or event]" can be interpreted as meaning "once determined", "in response to determining", "once detecting [the described condition or event]", or "in response to detecting [the described condition or event]" according to the context.

[0129] In addition, in the description of the specification and the appended claims of the present application, the terms "first", "second", "third", etc. are only used for distinguishing descriptions and should not be construed as indicating or implying relative importance. It should also be understood that although the terms "first", "second", etc. are used in the text in some embodiments of the present application to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element.

[0130] The reference to "one embodiment" or "some embodiments" etc. described in the specification of the present application means that a specific feature, structure, or characteristic described in connection with that embodiment is included in one or more embodiments of the present application. Thus, the statements "in one embodiment", "in some embodiments", "in other some embodiments", "in still other embodiments", etc. that appear in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in another way. The terms "comprise", "include", "have" and their variants all mean "including but not limited to", unless otherwise specifically emphasized in another way.

[0131] In addition, those skilled in the art can clearly understand that, for the convenience and brevity of description, only the above-mentioned division of each functional unit and module is used as an example for illustration. In actual applications, the above-mentioned functions can be allocated to different functional units and modules according to needs, that is, the internal structure of the device is divided into different functional units or modules to complete all or part of the functions described above. Each functional unit in each embodiment of the present application can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of a software functional unit.

[0132] The mapping method provided by the embodiments of the present application can be applied to a robot. The embodiments of the present application do not limit the type or function of the robot. In order to better understand the embodiments of the present application, the following will be combined with Figure 10 to introduce the structure of the robot in the embodiments of the present application.

[0133] Figure 10 is a schematic structural diagram of a robot provided in an embodiment of the present application. As Figure 10 shown, the robot 1000 in this embodiment includes: at least one processor 1001 ( Figure 10only shows one processor), a memory 1002, and a computer program 1003 stored in the memory 1002 and executable on at least one processor 1001, such as a mapping program. When the processor 1001 executes the computer program 1003, it implements the steps in any of the above method embodiments. When the processor 1001 executes the computer program 1003, it implements the steps in the embodiments of the above mapping methods. When the processor 1001 executes the computer program 1003, it implements the functions of each module / unit in the above device embodiments, such as Figure 9 the functions of the shown area determination unit 901, target determination unit 902, movement control unit 903, and map update unit 904.

[0134] Exemplarily, the computer program 1003 can be divided into one or more modules / units. One or more modules / units are stored in the memory 1002 and executed by the processor 1001 to complete this application. One or more modules / units can be a series of computer program instruction segments capable of performing specific functions, and these instruction segments are used to describe the execution process of the computer program 1003 in the robot 1000. For example, the computer program 1003 can be divided into an area determination unit 901, a target determination unit 902, a movement control unit 903, and a map update unit 904. The specific functions of each unit have been described in the above embodiments and will not be elaborated here.

[0135] The robot 1000 may include, but is not limited to, a processor 1001 and a memory 1002. Those skilled in the art can understand that Figure 10 it is only an example of the robot 1000 and does not constitute a limitation on the robot 1000. It may include more or fewer components than shown in the figure, or combine some components, or different components. For example, the robot may also include input / output devices, network access devices, buses, etc.

[0136] The so-called processor 1001 may be a central processing unit (CPU), or may also be other general-purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.

[0137] The memory 1002 can be an internal storage unit of the robot 1000, such as the hard disk or memory of the robot 1000. The memory 1002 can also be an external storage device of the robot 1000, such as a plug-in hard disk equipped on the robot 1000, a Smart Media Card (SMC), a Secure Digital (SD) card, a FlashCard, etc. Further, the memory 1002 can also include both the internal storage unit of the robot 1000 and the external storage device. The memory 1002 is used to store computer programs and other programs and data required by the robot. The memory 1002 can also be used to temporarily store the data that has been output or will be output.

[0138] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the above-mentioned division of each functional unit and module is used as an example. In actual applications, the above functions can be assigned to different functional units and modules according to needs, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. Each functional unit and module in the embodiments can be integrated into a processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of a software functional unit. In addition, the specific names of each functional unit and module are only for the convenience of mutual distinction and do not limit the protection scope of the present application. The specific working processes of the units and modules in the above system can refer to the corresponding processes in the foregoing method embodiments and will not be described in detail here.

[0139] In the above embodiments, the descriptions of the respective embodiments have their own emphases. For the parts not detailed or recorded in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0140] Those of ordinary skill in the art can realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be implemented by electronic hardware, or by a combination of computer software and electronic hardware. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods for each specific application to implement the described functions, but such implementation should not be considered to exceed the scope of the present application.

[0141] In the embodiments provided in the present application, it should be understood that the disclosed device / robot and method can be implemented in other ways. For example, the device / robot embodiments described above are merely illustrative. For example, the division of modules or units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed couplings or direct couplings or communication connections between each other can be through some interfaces. The indirect couplings or communication connections of devices or units can be in electrical, mechanical or other forms.

[0142] The units described as separate components may or may not be physically separated. The components displayed as units may or may not be physical units, that is, they can be located in one place, or they can be distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0143] In addition, each functional unit in the various embodiments of the present application can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit. The above integrated units can be implemented in the form of hardware or in the form of software functional units.

[0144] If the integrated module is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Among them, the computer-readable storage medium can be non-volatile or volatile. Based on such an understanding, to implement all or part of the processes in the above method embodiments of the present application, it can also be completed by instructing relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium. When the computer program is executed by a processor, the steps of the above various method embodiments can be implemented. Among them, the computer program includes computer program code, and the computer program code can be in the form of source code, object code, executable file or some intermediate form, etc. The computer-readable storage medium can include: any entity or device that can carry computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disc, computer memory, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), electrical carrier signal, telecommunication signal, and software distribution medium, etc. It should be noted that the content included in the computer-readable storage medium can be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, the computer-readable storage medium does not include electrical carrier signals and telecommunication signals.

[0145] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements for some of the technical features; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.

Claims

1. A mapping method, characterized in that, The method includes: In response to the target map constructed by the robot satisfying a first condition, determining an adjacent area between a passable area and an unknown area in the target map; In response to candidate exploration points of a first grid group in the adjacent area, selecting grid points that satisfy a second condition from the candidate exploration points and determining them as target exploration points; Controlling the robot to move from a first position to a second position, where the first position is the current position of the robot and the second position is the position corresponding to the target exploration point; Obtaining a local map of the robot at the second position and updating the target map according to the local map.

2. The mapping method according to claim 1, wherein The target map includes an obstacle area, a passable area, and an unknown area; The determining the adjacent area between the passable area and the unknown area in the target map includes: According to a first size of the robot, determining an inflated area in the passable area that fits the contour of the obstacle area, where the inflated area is an area adjacent to the obstacle area in the passable area, and the width of the inflated area is positively correlated with the first size; Determining an adjacent area between a first area and the unknown area, where the first area is the area in the passable area except the inflated area.

3. The mapping method according to claim 2, wherein The first size includes the radius of the robot; the determining, according to the first size of the robot, an inflated area in the passable area that fits the contour of the obstacle area includes: Determining a first contour of the obstacle area; Traversing each grid point on the first contour, and dividing a second grid point in the passable area into the inflated area, where the second grid point is a grid point in the passable area within a first neighborhood range of a first grid point, the first grid point is any grid point on the first contour, and the number of grid points occupied by the radius of the first neighborhood range is the same as the number of grid points corresponding to the radius of the robot.

4. The mapping method according to claim 1, characterized in that The selecting grid points that satisfy a second condition from the candidate exploration points and determining them as target exploration points includes: Dividing the adjacent area into M grid groups, where each grid point in the grid group is connected to each other, and M is an integer greater than 0; Selecting candidate exploration points that satisfy a first preset condition from the M candidate exploration points corresponding to the M grid groups as the target exploration points; Wherein, the second condition includes the first preset condition.

5. The mapping method according to claim 4, wherein Selecting the grid point with a median sorting value in the first grid group as the candidate exploration point, where the sorting value of the grid points in the first grid group is positively correlated with the scanning order of the grid points in the target map.

6. The mapping method according to claim 4, characterized in that The first preset condition includes: selecting the candidate exploration point closest to the robot as the target exploration point.

7. The mapping method according to claim 4, wherein The method further includes: In response to the driving path from the first position to the position corresponding to the target exploration point not existing, updating the target exploration point to other candidate exploration points, where the other candidate exploration points are candidate exploration points that satisfy the first preset condition among the remaining candidate exploration points.

8. The mapping method according to claim 1, characterized in that The target map satisfying the first condition includes: there is an unknown area in a preset area of the target map.

9. The mapping method according to any one of claims 1-8, characterized in that, The method further includes: In response to the robot starting mapping, an initial target map is generated based on the first image scanned by the lidar of the robot.

10. A robot, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, the mapping method according to any one of claims 1 to 9 is implemented.

Citation Information

Patent Citations

  • Mapping method and system based on grid map regionalization exploration and terminal

    CN111966097A

  • Robot mapping method and device, robot and storage medium

    CN114595354A

  • Rapid mapping method and device and cleaning robot

    CN115191886A

  • Robot map generation method and device, storage medium and mobile robot

    CN115326058A