Autonomous environment exploration method and system for mobile robot in unknown environment
By updating the global and local maps in the autonomous environment exploration method of mobile robots, introducing obstacle occlusion maps, and using reverse backtracking trajectory to generate new trajectories, the problem of low exploration efficiency and coverage in unknown environments is solved, and more efficient and accurate Environmental exploration.
Patent Information
- Application Number
- CN202411294139.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-14
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2044-09-14
AI Technical Summary
Existing mobile robots have problems such as repeated exploration, easy to fall into local optimization, and incomplete environmental exploration in autonomous exploration of unknown environments, resulting in low efficiency and coverage.
A method of exploring autonomous environment of mobile robots in unknown environments is adopted. By updating global and local maps, introducing obstacle occlusion maps, using reverse backtracking trajectories to generate new trajectories, reducing blindness and redundant paths, and improving exploration efficiency and coverage.
Reduce repeated exploration and redundant paths, improve the efficiency and coverage of robot autonomous environment exploration in unknown environments, and enhance the adaptability to complex environments and the accuracy of exploration processes.
Smart Images

Figure CN119270837A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field related to intelligent robot environment exploration, and more specifically, relates to a method and system for autonomous environment exploration of a mobile robot in an unknown environment. Background Art
[0002] With the rapid development of science and technology, intelligent mobile robots have become a key force in many fields such as industrial automation, service industry, military and scientific research, and are widely used in disaster area search and rescue, park inspection, geological exploration, environmental reconstruction and other tasks. In the execution of these tasks, robot autonomous environmental exploration technology occupies a pivotal position. It can not only reduce the burden of manpower and improve the efficiency and safety of task execution, but more importantly, it can also replace humans to perform tasks in extreme or dangerous environments.
[0003] The technology of autonomous exploration of unknown environments by robots includes exploration and mapping, target point selection, target point path planning and navigation technology in unknown environments. More complex technologies also include dynamic obstacle avoidance of robots in location environments. Existing strategies for autonomous exploration of unknown environments by mobile robots mainly include: environmental exploration methods based on boundary ideas, environmental exploration methods based on sampling, and environmental exploration methods based on graph search. In recent years, with the development of neural networks, deep reinforcement learning technology has also been applied to the field of autonomous exploration of unknown environments by robots. However, when exploring large-scale complex unknown environments, existing methods for autonomous exploration of unknown environments by mobile robots have problems such as repeated exploration, easy to fall into local optimality, and incomplete environmental exploration. The efficiency and coverage of environmental exploration still need to be improved. Summary of the invention
[0004] In view of the above defects or improvement needs of the prior art, the present invention provides a method and system for autonomous environment exploration of a mobile robot in an unknown environment, which aims to solve the problems of low efficiency and coverage of existing robot exploration of unknown environments.
[0005] To achieve the above object, according to one aspect of the present invention, a method for autonomous environment exploration of a mobile robot in an unknown environment is provided, the method comprising the following steps:
[0006] (1) Based on the robot's current position and corresponding sensor data, the global real map, global exploration map, and obstacle occlusion map are updated; the obstacle occlusion map is a map that is added to the exploration map to represent unknown areas that are blocked by obstacles;
[0007] (2) Obtain a local exploration map near the current location of the robot, and use the current sensor data to mark the current obstacle occlusion area on the local exploration map, and then determine whether the proportion of the unexplored area in the updated local exploration map of the obstacle occlusion area is less than a set threshold. If so, it is considered that the area near the current location of the robot has been explored, and go to step (5); otherwise, it is considered that there is still an unexplored part in the area near the current location of the robot, and go to step (3);
[0008] (3) Determine the robot’s next action based on the distribution of unexplored areas in the local exploration map;
[0009] (4) The robot executes the next action to move to the new position, obtains new sensor data and uses it to update the three maps; at the same time, the robot's new position is synchronously recorded in the current trajectory list and goes to step (2);
[0010] (5) Starting from the current position of the robot, traverse the historical positions of the current trajectory in reverse, that is, backtrack, and in each step of the traversal, determine whether the historical position corresponding to the step is the first point of the robot's current trajectory. If so, go to step (8); otherwise, go to step (6);
[0011] (6) Obtain the local occlusion map corresponding to the historical position point corresponding to the current step, and determine whether the obtained local occlusion map has exploration value. If so, the historical position point is the backtracking point of this backtracking process, and go to step (7). If not, go to step (5);
[0012] (7) The robot moves to the backtracking point and generates a new trajectory with the backtracking point as the starting point; at the same time, the current trajectory of the robot is updated to the new trajectory, and the new trajectory is recorded in the trajectory list, and then go to step (1);
[0013] (8) Determine whether the current trajectory is the first one in the trajectory list; if not, switch the backtracking process from the current trajectory to the parent trajectory of the current trajectory, and continue to backtrack in the reverse direction of the parent trajectory from the intersection of the two trajectories, and continue to execute step (5); if so, the global environment exploration is completed.
[0014] Furthermore, the global exploration map refers to the environmental map of the entire scene used for exploration. The robot continuously updates the global exploration map during the environmental exploration process and uses the new exploration map for the next step of exploration. The global exploration map updating method is as follows: assuming that the actual perception range of the robot sensor is L, a value l0 less than L is taken as the robot's exploration range; if the robot does not detect an obstacle, the space between the robot and L-l0 is marked as explored; if an obstacle is detected, the location of the obstacle is updated as an obstacle, and the space between the robot and the obstacle is still updated as explored.
[0015] Furthermore, the local exploration map refers to an exploration map intercepted from the global exploration map with the robot's location as the center; after obtaining the local exploration map, an obstacle occlusion area is added to the local exploration map. After adding the obstacle occlusion information, the local exploration map consists of an explored area, an unexplored area and an obstacle occlusion area; by calculating the ratio of the unexplored area in the local exploration map to the entire local exploration map, it is determined whether the local area where the robot is currently located is worth further exploration. If the ratio is less than a pre-set threshold, it is determined that the local area is no longer worth exploring, and step (5) is continued; otherwise, it is considered that the local area is still worth exploring, and the process jumps to step (3) to repeat this local exploration behavior.
[0016] The robot's next move is further determined by calculating the geometric center of the unexplored area in the local exploration map.
[0017] When the local exploration map is a two-dimensional grid-occupied map, the calculation formula for the geometric center of the unexplored area is:
[0018]
[0019]
[0020] Among them, x i ,y i Respectively represent the row coordinates and column coordinates of each grid corresponding to the unexplored area in the local exploration map, and T represents the number of all grids corresponding to the unexplored area;
[0021] The next location of the robot is determined based on the relative position between the calculated geometric center of the unexplored area and the robot's current location.
[0022] Furthermore, for each step of backtracking, the local occlusion map corresponding to the historical position point corresponding to the current step is obtained, and the proportion of the unexplored area in the obtained local occlusion map is used to determine whether it is worth exploring.
[0023] Furthermore, if the proportion of unexplored areas in the local occlusion map corresponding to the historical position point is greater than the set threshold, it is considered that the current local occlusion map has exploration value, and the robot needs to start a new local exploration from the historical position point. The historical position point is called a backtracking point, and step (8) is continued; if the proportion of unexplored areas in the local exploration map corresponding to the historical position point is less than or equal to the set threshold, it is considered that it has no exploration value, and go to step (5) to continue backtracking.
[0024] In step (3), the displacement of each step of the robot is adjusted by adding a constant factor.
[0025] The present invention also provides an autonomous environment exploration system for a mobile robot in an unknown environment. The system includes a memory and a processor. The memory stores a computer program. When the processor executes the computer program, it executes the autonomous environment exploration method for a mobile robot in an unknown environment as described above.
[0026] The present invention also provides a computer-readable storage medium, which stores machine-executable instructions. When the machine-executable instructions are called and executed by a processor, the machine-executable instructions prompt the processor to implement the autonomous environment exploration method of a mobile robot in an unknown environment as described above.
[0027] In general, compared with the prior art, the above technical solutions conceived by the present invention, the autonomous environment exploration method and system of a mobile robot in an unknown environment provided by the present invention mainly have the following beneficial effects:
[0028] 1. The process of generating a new trajectory by reversing the trajectory has a clear and describable logical order. There is no random sampling process or other random factors, which reduces the blindness of the robot in the process of environmental exploration, reduces repeated exploration and redundant paths caused by random factors, and thus improves the efficiency and coverage of autonomous environmental exploration of the robot in an unknown environment.
[0029] 2. The concept of obstacle occlusion map is introduced in the process of local environment exploration. The areas within the perception range of the robot sensor that are blocked by obstacles and cannot be accurately perceived are set as obstacle occlusion areas. This method reduces various logical misjudgments caused by unknown factors caused by obstacles blocking the robot sensors, and enhances the accuracy of the environmental exploration process and its adaptability to complex unknown environments.
[0030] 3. By using the trajectory and its corresponding occlusion map as a tool to record the robot's movement process and control the robot's backtracking process, the robot can quickly and efficiently find new valuable backtracking points without moving itself, and then go to the point and start new local exploration. Such measures can reduce the actual movement distance of the robot and improve the efficiency of exploration operations in unknown environments.
[0031] 4. Generate new exploration trajectory branches by reversing the backtracking trajectory until the entire environment is fully explored. This reverse thinking is different from the general thinking of existing methods at the principle level, and has good adaptability to unknown environment exploration tasks that cannot be planned globally in advance. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] Figure 1 It is a flow chart of a method for autonomous environment exploration of a mobile robot in an unknown environment provided by the present invention;
[0033] Figure 2 is a specific flow chart of a method for autonomous environment exploration of a mobile robot in an unknown environment provided by an embodiment of the present invention;
[0034] Figure 3 (a), (b), and (c) are schematic diagrams of the global real map, the global exploration map, and the obstacle occlusion map mentioned in the present invention, respectively;
[0035] Figure 4 It is a schematic diagram of the local exploration process, the reverse backtracking process, and the growth process of the new trajectory mentioned in the specific implementation mode of the present invention;
[0036] Figure 5 It is a schematic diagram of the complete unknown environment exploration process and the corresponding trajectory and backtracking points mentioned in the specific implementation mode of the present invention;
[0037] Figure 6 It is a schematic diagram of the robot's unknown environment exploration results mentioned in the specific implementation mode of the present invention. DETAILED DESCRIPTION
[0038] In order to make the purpose, technical solutions and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention. In addition, the technical features involved in the various embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.
[0039] See also Figure 1 The present invention provides a method for autonomous environment exploration of a mobile robot in an unknown environment, which mainly includes the following steps:
[0040] Step 1: Get the current position of the robot in the space to be explored and the corresponding sensor data, and initialize the current trajectory and trajectory list.
[0041] Among them, the current track refers to the track where the robot is currently located. The robot can and must be on one track at the same time. The track list refers to the collection of all tracks generated by the robot in the process of exploring the environment. When the robot is exploring the map, every time it finds a backtracking point, it will generate a new track and start exploring a new local area with the backtracking point as the starting point of the new track. Except for the first track generated, each other track has its parent track. The parent track refers to the track where the first point of a track is located before the generation of this track.
[0042] Step 2: Based on the current position of the robot and the corresponding sensor data, update the global real map, global exploration map and obstacle occlusion map; the obstacle occlusion map is a map that is additionally added to the exploration map to represent the unknown areas blocked by obstacles.
[0043] Use sensor data and the robot's current position information to update the environment map, including the global real map, global exploration map, and obstacle occlusion map. Among them, the global exploration map refers to the environment map of the entire scene used for exploration. The robot continuously updates the global exploration map during the environmental exploration process and uses the new exploration map for the next step of exploration. The global exploration map update method is as follows: Assume that the actual perception range of the robot sensor is L, and now take a value l0 less than L as the robot's exploration range. If the robot does not detect an obstacle, the space between the robot and L–l0 is marked as explored. If an obstacle is detected, the location of the obstacle is updated as an obstacle, and the space between the robot and the obstacle is still updated as explored.
[0044] The global real map is a real map of the environment drawn by the robot during the exploration process. The difference between the global exploration map and the global exploration map is that the sensor perception range used when drawing the map is different. In order to ensure the integrity of the exploration map and reduce the interference of noise information in the environment, the maximum distance that the sensor used to update the map in the global exploration map can detect is smaller than that of the real sensor. When the robot uses the global exploration map to complete the exploration, the exploration coverage of the real exploration map will be higher. In particular, the global real environment map mentioned in this embodiment is only used to represent the environment map drawn with the actual perception ability of the robot sensor, and is generally used for method result comparison and performance analysis.
[0045] The obstacle occlusion map is a map that is added to the exploration map to represent the unknown area blocked by obstacles (hereinafter referred to as the occlusion area). Specifically, based on the exploration map, a part of the area behind the obstacle that the robot can perceive is marked as the mentioned occlusion area. In particular, in the process of establishing the obstacle occlusion map, since the occlusion area is affected by both the distribution of obstacles and the relative position relationship between the robot and the obstacle, each trajectory will correspond to an obstacle occlusion map dedicated to the trajectory, which is used to represent the occlusion effect caused by obstacles on the robot's perception of the environment when the robot moves on this trajectory.
[0046] Step 3, obtain the local exploration map near the current location of the robot, and use the current sensor data to mark the current obstacle occlusion area on the local exploration map, and then determine whether the proportion of the unexplored area in the updated local exploration map of the obstacle occlusion area is less than the set threshold. If so, it is considered that the area near the current location of the robot has been explored, and go to step 7; otherwise, it is considered that there are still unexplored parts in the area near the current location of the robot, and go to step 4.
[0047] The local exploration map refers to a piece of exploration map intercepted from the global exploration map with the robot's location as the center. After obtaining the local exploration map, use the same method as in step 2 to create the occlusion map to add obstacle occlusion areas to the local exploration map. After adding the obstacle occlusion information, the local exploration map consists of explored areas, unexplored areas, and obstacle occlusion areas. Then, by calculating the proportion of the unexplored area in the local exploration map to the entire local exploration map, it is determined whether the local area where the robot is currently located is worth further exploration. If the proportion is less than the threshold set in advance, it is determined that the local area is no longer worth exploring, and step 7 can be continued. Otherwise, it is considered that the local area is still worth exploring, so jump to step 4 to repeat this local exploration behavior.
[0048] Step 4: Determine the robot's next action based on the distribution of unexplored areas in the obtained local exploration map.
[0049] The robot's next action is calculated based on the distribution of the unexplored area in the local exploration map. In this embodiment, the robot's next action is determined by calculating the geometric center of the unexplored area in the local exploration map. Taking a common two-dimensional grid occupancy map as an example, the calculation formula for the geometric center of the unexplored area is:
[0050]
[0051] Among them, x i ,y iThey represent the row coordinates and column coordinates of each grid corresponding to the unexplored area in the local exploration map, and T represents the number of all grids corresponding to the unexplored area.
[0052] According to the calculated relative position relationship between the geometric center of the unexplored area and the current position of the robot, the position where the robot should go next can be determined. In particular, here, according to actual needs, the displacement size of each step of the robot can be adjusted by adding a constant factor.
[0053] Step 5: The robot performs the next action to move to the new position, obtains new sensor data and uses it to update the three maps; at the same time, the new position of the robot is synchronously recorded in the current trajectory list.
[0054] The robot executes the action calculated in step 4, and then uses the sensor data and new position information to update the environment map and current trajectory information. For the environment map, follow the steps in step 2 to update the global exploration map, global ground truth map, and obstacle occlusion map, respectively.
[0055] Step 6, go to step 3.
[0056] Repeat steps 3 to 5 until it is determined in step 3 that the proportion of unexplored areas in the local exploration map is less than the set threshold. In this case, the current local area exploration is considered complete, and the local exploration process ends. Step 7 can be started.
[0057] Step 7, starting from the current position of the robot, traverse the historical positions of the current trajectory in reverse, that is, backtracking, and in each step of the traversal, determine whether the historical position corresponding to the step is the first point of the robot's current trajectory. If so, go to step 10; otherwise, go to step 8.
[0058] After the robot completes a local area exploration process, it starts from the current position on the occlusion map corresponding to the current trajectory of the robot and traverses each historical position of the current trajectory in reverse (hereinafter referred to as reverse backtracking). At each step of traversal, it is necessary to first determine whether the point is the first point of the current trajectory. If so, execute step 10, otherwise execute step 8.
[0059] Step 8, obtain the local occlusion map corresponding to the historical position point corresponding to the current step, and determine whether the obtained local occlusion map has exploration value. If it has exploration value, the historical position point is the backtracking point of this backtracking process, and go to step 9. If it has no exploration value, go to step 7.
[0060] For each backtracking step, obtain the local occlusion map corresponding to the historical position point corresponding to the current step, and judge whether it is worth exploring based on the proportion of the unexplored area in the obtained local occlusion map. Specifically, if the proportion of the unexplored area in the local occlusion map corresponding to the historical position point is greater than the set threshold, the current local occlusion map is considered to have exploration value, and the robot needs to start a new local exploration from the historical position point. This historical position point is called a backtracking point, and step 9 can be continued. If the proportion of the unexplored area in the local exploration map corresponding to the historical position point is less than or equal to the set threshold, it is considered to have no exploration value, and go to step 7 to continue backtracking.
[0061] Step 9: The robot moves to the feasible backtracking point and generates a new trajectory with the feasible backtracking point as the starting point; at the same time, the current trajectory of the robot is updated to the newly generated trajectory, and the newly generated trajectory is recorded in the trajectory list, and then go to step 2.
[0062] The robot needs to move to the backtracking point in step 8, generate a new trajectory with the backtracking point as the starting point, and perform a new local exploration from this point. At the same time, the robot's current trajectory needs to be updated to this newly generated trajectory, and this newly generated trajectory also needs to be synchronously recorded in the trajectory list; then, jump to step 2 and execute the subsequent steps in sequence.
[0063] Step 10, determine whether the current track is the first in the track list; if not, it means that the current track has a parent track, so the backtracking process is switched from the current track to the parent track of the current track, and the backtracking process starts from the intersection of the two tracks and continues in the reverse direction of the parent track, and continues to execute step 7. If yes, it means that all tracks have been backtracked, and there will be no more backtracking points that meet the backtracking conditions. At this time, the global environment exploration is considered to be completed, and the entire environment exploration task is ended.
[0064] Go to step 7. Since the historical position point has been determined as the first point of the current trajectory in step 7, it is necessary to continue to determine whether the current trajectory is the first trajectory in the trajectory list. If so, it means that the first point of the first trajectory has been traced back and there is no more trajectory point to trace back to. At this time, it is considered that the global environment exploration is completed and the global exploration process ends; if not, it means that the current trajectory has a parent trajectory, and the backtracking process is switched from the current trajectory to the parent trajectory of the current trajectory, and the above-mentioned backtracking process is continued from the intersection of the two trajectories, that is, step 7 is executed.
[0065] The present invention also provides an autonomous environment exploration system for a mobile robot in an unknown environment. The system includes a memory and a processor. The memory stores a computer program. When the processor executes the computer program, it executes the autonomous environment exploration method for a mobile robot in an unknown environment as described above.
[0066] The present invention also provides a computer-readable storage medium, which stores machine-executable instructions. When the machine-executable instructions are called and executed by a processor, the machine-executable instructions prompt the processor to implement the autonomous environment exploration method of a mobile robot in an unknown environment as described above.
[0067] The present invention is further described in detail below by taking a mobile robot equipped with a two-dimensional laser radar sensor as an example. Figure 2 , specifically including the following steps:
[0068] Step 1, build the simulation environment and robot model of the space to be explored, obtain the current position and radar data of the robot in the space to be explored, and initialize the current trajectory and trajectory list. The current trajectory refers to the trajectory of the current position of the robot, and the trajectory list refers to the collection of all trajectories generated by the robot during the exploration of the environment. In the process of exploring the map, each time the robot finds a backtracking point, a new trajectory will be generated, representing a new round of local area exploration starting from the backtracking point. Each trajectory has some basic properties, including a unique name, a parent trajectory name, a junction point sequence number, a trajectory point list and the sequence number of the robot's current position in the trajectory point list, and an obstacle occlusion map unique to this trajectory. Among them, when a trajectory starts from a point on another trajectory that is not the starting point or the end point, the latter is called the parent trajectory of the former. In particular, the name of the parent trajectory of the first trajectory generated by the robot in the process of exploring an unknown environment is recorded as -1, and the name of the first trajectory is recorded as 0, and the names of other new trajectories generated thereafter are incremented according to natural numbers. The track point list is a list that records all the coordinate values that the robot passes through when it is on this track. The first value of this track point list is the coordinate of the intersection point between the track and its parent track.
[0069] Step 2: Update the environment map based on the lidar data and the robot's current location information, including the global exploration map, global real map, and obstacle occlusion map. Figure 3 As shown, Figure 3 Used to describe the update process of 3 environment maps, Figure 3 (a), (b), and (c) correspond to the update processes of the global true map, the global exploration map, and the obstacle occlusion map, respectively.
[0070] The global exploration map refers to the environmental map of the entire scene used for exploration. The robot continuously updates the global exploration map during the environmental exploration process and uses the new exploration map for the next step of exploration. The global exploration map update method is as follows: Assuming that the actual exploration range of the robot sensor is L, if the robot does not detect an obstacle, the space between the robot's position and L-l0 is updated as explored (l0 is a smaller value than L and can be modified according to actual conditions); if an obstacle is detected, the position of the obstacle is updated as an obstacle, and the space between the robot and the obstacle is updated as explored. Specifically, Figure 3 As shown in (b), the white part represents the explored area, the gray part represents the unexplored area, and the black part represents the obstacle edge.
[0071] The global real map is a real map of the environment drawn by the robot during the exploration process. The difference between the global exploration map and the global exploration map is that the sensor perception range used when drawing the map is different. In order to ensure the integrity of the exploration map and reduce the interference of noise information in the environment, the maximum distance that the laser radar used to update the map in the global exploration map can detect is smaller than that of the real laser radar. When the robot uses the global exploration map to complete the exploration, the exploration coverage of the real exploration map will be higher. Figure 3 As shown in (a), the white part represents the explored area, the gray part represents the unexplored area, and the black part represents the obstacle edge. In particular, in this embodiment, the real environment map is not used for exploration, but only for result comparison and method performance analysis.
[0072] The obstacle occlusion map is designed to solve the problem of poor exploration results caused by obstacle occlusion encountered by the robot when exploring an unknown environment. When the laser radar mounted on the robot detects an obstacle, since the laser radar can only sense the distance between the obstacle and the robot, it cannot give an accurate description of the state of the space behind the obstacle. The uncertainty of this information will cause the exploration method to make wrong decisions in this scenario, affecting the effect of environmental exploration. The obstacle occlusion map is updated as follows: within the detection range of the robot sensor, if no obstacle is detected, the space between the robot and the maximum detection range of the sensor is updated to explored; if an obstacle is detected, the space between the robot and the obstacle is updated to explored, and the space between the obstacle and the maximum detection range of the sensor is updated to the occluded area. Specifically, Figure 3 As shown in (c), the white part represents the explored area, the gray part represents the unexplored area, and the black part represents the obstacle occlusion area.
[0073] Each trajectory generated during the exploration process has its own obstacle occlusion map. This is because the obstacle occlusion area in the obstacle occlusion map is related to the position of the robot, and the robot's exploration process will also affect the obstacle occlusion maps of other trajectories. Therefore, when updating the obstacle occlusion map, not only the obstacle occlusion map of the current trajectory should be updated according to the above method, but also the obstacle occlusion maps of other trajectories should be updated according to the exploration map update method.
[0074] Step 3, intercept the local exploration map of the current position from the updated global exploration map, and use the radar data to update the obstacle occlusion area of the local map. The local exploration map is a fixed-size map intercepted from the global exploration map with the current position of the robot as the center. Similarly, the size of the local exploration map can also be adjusted according to the actual situation. The local exploration map intercepted from the global exploration map cannot be directly used for environmental exploration because the obstacle occlusion information is not added. Instead, the obstacle occlusion map needs to be updated using the current sensor information. The specific update method is as follows: if no obstacle is detected, no update is required; if an obstacle is detected, the space between the obstacle and the maximum detection range of the sensor in the local exploration map is updated as the obstacle occlusion area. After the update, the local exploration map consists of an explored area, an unexplored area, and an obstacle occlusion area. Next, by calculating the proportion of gray pixels in the local exploration map and judging whether it is less than a predetermined threshold (taking 5% as an example), it can be determined whether the local area is still worth exploring. If the proportion of gray areas is less than 5%, it is considered that the local area has been explored, and go to step 7; otherwise, it is considered that the local area has not been explored, and go to step 4.
[0075] In step 4, based on the local exploration map generated in step 3, the geometric center method is used to calculate the robot's next action. The specific steps are as follows: First, taking the two-dimensional grid map as an example, the geometric center of the unexplored area is calculated using the calculation formula:
[0076]
[0077] Among them, x i ,y i They represent the row coordinates and column coordinates of each grid in the unexplored area in the local exploration map, and T represents the number of grids in the unexplored area in the grid map.
[0078] The center of the local exploration map (i.e. the current location of the robot) and the geometric center of the unexplored area (x center ,y center ) can be used to determine the optimal next displacement of the robot. The specific displacement can be linearly corrected based on the deviation according to the actual robot mobility and exploration task requirements, and does not need to be a constant.
[0079] In step 5, the robot moves along the calculation result of step 4, and then uses the sensor information and the new position information to update the environment map and trajectory information. Specifically, the coordinates of the position point where the robot is located after the movement are added to the current trajectory point list, and the sequence number of the current point in the trajectory point list is incremented by 1. For the environment map, the global exploration map, global real map, and obstacle occlusion map are updated respectively as described in step 2.
[0080] Repeat steps 3 to 5 until the proportion of unexplored areas in the local exploration map is less than 5% in step 3. The exploration of the current local area is considered complete, and the loop is exited to execute step 7. Figure 4 As shown, Figure 4 It is used to represent the trajectory generation process during the robot's environment exploration process. The point S where the five-pointed star is located in the upper left corner represents the starting point of the robot's environment exploration. The hollow dots represented by letters represent the position of the robot when the local area exploration is completed, that is, the last point of each trajectory. The solid dots represented by numbers represent the backtracking points. Figure 4 In the example, SA is the first trajectory of the robot's environment exploration. When the robot starts from point S and continues to execute steps 3-5 above to reach point A, the proportion of unexplored areas in the local exploration map that the robot can observe will be lower than the given threshold, which means that the robot has completed the first local area exploration. The trajectory SA generated by this local exploration is the first trajectory.
[0081] Step 7, reverse backtracking process. When the robot completes a local area exploration, it starts to traverse the historical points of the current trajectory from the current position on the obstacle occlusion map corresponding to the trajectory. In each step of the traversal, first determine whether the currently traversed point is the first point of the current trajectory. If so, execute step 11; if not, reverse back to the previous point and execute step 8 based on this point. Figure 4 As shown, if the current point is point A, determine whether point A is the first point of trajectory SA. If so, execute step 11. If not, visit the previous point of point A.
[0082] Step 8, obtain the local exploration map of the point corresponding to the decremented serial number, and determine whether it is worth exploring. Specifically, intercept the rectangular area around the point from the obstacle occlusion map of the current trajectory described in step 2 as the local exploration map, and then determine whether the proportion of unexplored areas in the local exploration map is less than a given threshold (taking 6% as an example). If the proportion of unexplored areas is greater than 6%, it is considered that the point is still worth exploring, and the point is recorded as the backtracking point and step 9 is started. If the proportion of unexplored areas is less than or equal to 6%, it is considered that the point has no exploration value, and reverse backtracking is continued, returning to step 7 and starting execution. Combined with Figure 4As shown, point 1 in the figure is the first backtracking point that meets the conditions.
[0083] Step 9: The robot moves to the backtracking point mentioned in step 8, and generates a new trajectory starting from the backtracking point. As mentioned in the above steps, when creating this new trajectory, it is necessary to record some of its basic information synchronously, and also record this new trajectory in the trajectory list of the entire exploration task. Then, the robot needs to start from the first point of this new trajectory and jump to step 2 to start a new round of local exploration process until this local exploration process is also completed. Combined with Figure 4 As shown, 1B is a new track generated from track SA, and track 1B explores some areas that its parent track SA has not explored.
[0084] Step 10, following step 7. Since the point has been determined as the first point of the current trajectory in step 7, it is necessary to determine whether the current trajectory is the first trajectory in the trajectory list. Specifically, determine whether the parent trajectory name of the current trajectory is -1. If so, it means that the current trajectory has no parent trajectory, that is, it has traced back to the first point of the first trajectory, and there is no point to continue to trace back. At this time, the global environment exploration is considered complete and the exploration ends. If the parent trajectory of the current trajectory is not -1, it means that the current trajectory has a parent trajectory. Switch the backtracking process from the current trajectory to the parent trajectory of the current trajectory, continue backtracking, and execute step 7. Combined with Figure 4 As shown in , if the current point is point 1, the corresponding current track is 1B, and its parent track is track SA, set the current track to SA, start from point 1, and continue to backtrack along track SA until the second backtracking point that meets the conditions is found, that is, Figure 4 The process continues in this way until the environment is explored.
[0085] by Figure 5 Taking the scene with multiple rooms and obstacles as an example, the robot starts to explore the environment from point S in the upper left corner. The multiple trajectories generated by the environmental exploration process according to the above steps and implementation methods are as follows Figure 5 As shown. Specifically, in this exploration task, the key movement process of the robot is as follows: starting point S→trajectory SA→backtracking point 1→trajectory 1B→backtracking point 2→trajectory 2C→backtracking point 3→trajectory 3D→backtracking point 4→trajectory 4E→backtracking point 5→trajectory 5F→backtracking point 6→trajectory 6G→backtracking point 7→trajectory 7H→backtracking point 8→trajectory 8I→backtracking point 9→trajectory 9J→backtracking point 10→trajectory 10K→backtracking point 11→trajectory 11L→starting point S. The global real map of the environment drawn based on the actual data of the two-dimensional laser radar carried by the robot is as follows Figure 6 As shown, it can be observed that the entire environment has been fully explored.
[0086] It will be easily understood by those skilled in the art that the above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the protection scope of the present invention.
Claims
1. A method for autonomous environment exploration of a mobile robot in an unknown environment, characterized by: The method comprises the following steps: (1) Based on the robot's current position and corresponding sensor data, the global real map, global exploration map, and obstacle occlusion map are updated; the obstacle occlusion map is a map that is added to the exploration map to represent unknown areas that are blocked by obstacles; (2) Obtain a local exploration map near the current location of the robot, and use the current sensor data to mark the current obstacle occlusion area on the local exploration map, and then determine whether the proportion of the unexplored area in the updated local exploration map of the obstacle occlusion area is less than a set threshold. If so, it is considered that the area near the current location of the robot has been explored, and go to step (5); otherwise, it is considered that there is still an unexplored part in the area near the current location of the robot, and go to step (3); (3) Determine the robot’s next action based on the distribution of unexplored areas in the local exploration map; (4) The robot executes the next action to move to the new position, obtains new sensor data and uses it to update the three maps; at the same time, the robot's new position is synchronously recorded in the current trajectory list and goes to step (2); (5) Starting from the current position of the robot, traverse the historical positions of the current trajectory in reverse, that is, backtrack, and in each step of the traversal, determine whether the historical position corresponding to the step is the first point of the robot's current trajectory. If so, go to step (8); otherwise, go to step (6); (6) Obtain the local occlusion map corresponding to the historical position point corresponding to the current step, and determine whether the obtained local occlusion map has exploration value. If so, the historical position point is the backtracking point of this backtracking process, and go to step (7). If not, go to step (5); (7) The robot moves to the backtracking point and generates a new trajectory with the backtracking point as the starting point; at the same time, the current trajectory of the robot is updated to the new trajectory, and the new trajectory is recorded in the trajectory list, and then go to step (1); (8) Determine whether the current trajectory is the first one in the trajectory list; if not, switch the backtracking process from the current trajectory to the parent trajectory of the current trajectory, and continue to backtrack in the reverse direction of the parent trajectory from the intersection of the two trajectories, and continue to execute step (5); if so, the global environment exploration is completed.
2. The method for autonomous environment exploration of a mobile robot in an unknown environment as claimed in claim 1, characterized in that: The global exploration map refers to the environmental map of the entire scene used for exploration. The robot continuously updates the global exploration map during the environmental exploration process and uses the new exploration map for the next step of exploration. The global exploration map updating method is as follows: Assume that the actual perception range of the robot sensor is L, and now take a value l0 less than L as the robot's exploration range; if the robot does not detect an obstacle, the space between the robot and L-l0 is marked as explored; if an obstacle is detected, the location of the obstacle is updated to an obstacle, and the space between the robot and the obstacle is still updated as explored.
3. The method for autonomous environment exploration of a mobile robot in an unknown environment as claimed in claim 1, characterized in that: The local exploration map refers to a piece of exploration map intercepted from the global exploration map with the robot's location as the center; after obtaining the local exploration map, an obstacle occlusion area is added to the local exploration map. After adding the obstacle occlusion information, the local exploration map consists of an explored area, an unexplored area and an obstacle occlusion area; by calculating the ratio of the unexplored area in the local exploration map to the entire local exploration map, it is determined whether the local area where the robot is currently located is worth further exploration. If the ratio is less than a pre-set threshold, it is determined that the local area is no longer worth exploring, and step (5) is continued; otherwise, it is considered that the local area is still worth exploring, and the process jumps to step (3) to repeat this local exploration behavior.
4. The method for autonomous environment exploration of a mobile robot in an unknown environment as claimed in claim 1, characterized in that: The robot's next move is determined by calculating the geometric center of the unexplored area in the local exploration map.
5. The method for autonomous environment exploration of a mobile robot in an unknown environment as claimed in claim 4, characterized in that: When the local exploration map is a two-dimensional grid-occupied map, the calculation formula for the geometric center of the unexplored area is: Among them, x i ,y i Respectively represent the row coordinates and column coordinates of each grid corresponding to the unexplored area in the local exploration map, and T represents the number of all grids corresponding to the unexplored area; The next location of the robot is determined based on the relative position between the calculated geometric center of the unexplored area and the robot's current location.
6. The method for autonomous environment exploration of a mobile robot in an unknown environment according to any one of claims 1 to 5, characterized in that: For each backtracking step, obtain the local occlusion map corresponding to the historical position point corresponding to the current step, and judge whether it is worth exploring based on the proportion of the unexplored area in the obtained local occlusion map.
7. The method for autonomous environment exploration of a mobile robot in an unknown environment as claimed in claim 6, characterized in that: If the proportion of unexplored areas in the local occlusion map corresponding to the historical position point is greater than the set threshold, the current local occlusion map is considered to have exploration value, and the robot needs to start a new local exploration from the historical position point. The historical position point is called the backtracking point, and step (8) is continued. If the proportion of unexplored areas in the local exploration map corresponding to the historical position point is less than or equal to the set threshold, it is considered to have no exploration value, and the process goes to step (5) to continue backtracking. At the same time, if the backtracking process has continued to the starting point of the entire environmental exploration task, it is determined that there is no point that can be backtracked to, that is, the entire environmental exploration task is considered to be completed.
8. The method for autonomous environment exploration of a mobile robot in an unknown environment according to any one of claims 1 to 5, characterized in that: In step (3), the displacement of the robot in each step is adjusted by adding a constant factor.
9. An autonomous environment exploration system for a mobile robot in an unknown environment, characterized by: The system includes a memory and a processor, the memory stores a computer program, and the processor executes the method for autonomous environment exploration of a mobile robot in an unknown environment as described in any one of claims 1-8 when executing the computer program.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores machine-executable instructions, and when the machine-executable instructions are called and executed by the processor, the machine-executable instructions prompt the processor to implement the autonomous environment exploration method for a mobile robot in an unknown environment as described in any one of claims 1-8.
Citation Information
Patent Citations
Rapid mapping method and device and cleaning robot
CN115191886A
System and method for robot to autonomously seek source and explore in unknown environment
CN115727852A
Autonomous exploration mapping method and system based on wheeled mobile robot
CN116147606A
Autonomous hierarchical exploration mapping method, device and system for ground mobile robot
CN117073697A
Mobile robot autonomous exploration mapping method suitable for indoor unknown environment
CN118500375A
Cited By
Autonomous environment exploration method and system for mobile robot in unknown environment
CN120063273A