Environmental map construction method and robot using the environmental map construction method

By introducing automatic exploration modules and dynamic programming technology in the robot operating system, using the multi-round filtering and evaluation technology of cutting-edge point clustering, the problems of long exploration cycles, large calculation volumes and legacy blind spots in the existing technology are solved, and the problem of low-level exploration is achieved Quickly build environmental maps and improve exploration efficiency with computing power.

CN115082629BActive Publication Date: 2025-02-07NINGBO FOTILE KITCHEN WARE CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110280698.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-03-16
Publication Date
2025-02-07
Estimated Expiration
2041-03-16

AI Technical Summary

Technical Problem

The existing technology robot exploration strategies in unknown environments have problems such as too long exploration cycle, too large calculation amount and left behind blind spots, resulting in low exploration efficiency.

Method used

By introducing an automatic exploration module into the robot operating system, using the multi-wheel filtering evaluation technology and dynamic planning technology of cutting-edge point clustering, we can quickly build an environmental map, reduce the calculation requirements of single-wheel planning target points, and reduce invalid movement at the end of the path.

Benefits of technology

It realizes the rapid completion of exploration with low computing power, and effectively ensures short global paths, improving the exploration efficiency of robots in unknown environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure HDA0002978218550000011
    Figure HDA0002978218550000011
Patent Text Reader

Abstract

The present invention relates to an environmental map construction method and a robot, which is characterized in that the environmental map construction is completed by the following steps: step 1, start the mapping and positioning module and the path planning module, and establish the automatic exploration module; step 2, generate a frontier position point queue D; step 3, determine whether the queue D is empty, if yes, end; if no, enter step 4; step 4, take out the first position point T in the queue D, determine whether the point T is reachable, if no, add the point T to the blacklist and return to step 3, if yes, enter step 5; step 5, move to point T, start the exploration timing and enter step 6; step 6, wait for n seconds, update the queue D, and move to point T; step 7, determine whether the current round of exploration timing has timed out, if yes, add T to the blacklist and return to step 2, if no, enter step 8; step 8, determine whether the robot has reached point T, if yes, return to step 2; if no, return to step 6. Compared with the prior art, the present invention reduces the calculation requirements during the exploration period.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to an environment map construction method and a robot using the environment map construction method. Background Art

[0002] In an unknown environment, robots must first autonomously explore the unknown environment and build a map in order to complete complex tasks such as autonomous navigation and scene reconstruction. Existing robot exploration strategies for unknown environments include exploration strategies based on geometric boundaries and exploration strategies based on information theory. However, no matter which exploration strategy is used, there are problems such as too long exploration cycles and too much computation during the exploration process. Some exploration strategies will also leave blind spots and low exploration efficiency. Summary of the invention

[0003] The first technical problem to be solved by the present invention is to provide a method for constructing an environment map that can quickly complete exploration with lower computing power and effectively ensure a shorter global path, with respect to the above-mentioned prior art.

[0004] The second technical problem to be solved by the present invention is to provide a robot for the above-mentioned prior art, which can quickly complete exploration under lower computing power and effectively ensure an environmental map construction method with a shorter global path.

[0005] The technical solution adopted by the present invention to solve the above-mentioned first technical problem is: a method for constructing an environment map, characterized in that: the environment map is constructed by the following steps in a robot operating system:

[0006] Step 1, start the mapping and positioning module and the path planning module in the robot operating system; at the same time, establish an automatic exploration module in the robot operating system, which can obtain the original grid map from the mapping and positioning module, and generate a first layer for marking known areas, and a second layer for marking blacklist areas, and the first layer and the second layer are both blank in the initial state; the mapping and positioning module generates the latest original grid map at a frequency of x times per second and gives an estimated value of the current position of the robot; the automatic exploration module updates the first layer according to the latest original grid map at a frequency of x times per second;

[0007] Step 2, the automatic exploration module searches the first layer, calculates and obtains all current frontier points and obtains all frontier clustering points through clustering, evaluates the value of each frontier clustering point according to the preset value function, screens out the high-value frontier clustering points, and sorts them according to the value to generate the frontier clustering point queue of the current position, and the frontier clustering point queue of the current position is set as queue D; the frontier point is defined as an unknown grid point with at least one free grid point in the 4 neighborhoods; the free grid point is defined as a map grid point whose corresponding position is not occupied by an obstacle as shown by the sensor detection results; the frontier clustering point is defined as a set of several frontier points, which is constructed by starting from a certain frontier point as the starting point to perform an 8-neighborhood-BFS search with depth restriction, and adding other frontier points found to the set;

[0008] Step 3: The automatic exploration module determines whether the queue D is empty. If so, the environment map construction ends; if not, it goes to step 4;

[0009] Step 4: The automatic exploration module takes out the frontier cluster point with the highest priority in queue D, sets the center of gravity of the frontier cluster point as point T, and publishes point T to the path planning module. The path planning module plans a path to point T to determine whether point T can be reached. If not, point T is removed from queue D, and the grid point where point T is located and its nearby grid points are marked in the second layer to indicate that they are unreachable, and then returns to step 3; if yes, proceeds to step 5;

[0010] Step 5: The robot moves to point T according to the planned path, and the automatic exploration module starts the exploration timing, and then goes to step 6;

[0011] Step 6, the automatic exploration module waits for n seconds, and then searches the first layer again, calculates and obtains all current frontier points and obtains all frontier clustering points through clustering, evaluates the value of each frontier clustering point according to the preset value function, selects the high-value frontier clustering points, and sorts them according to the value, regenerates the frontier clustering point queue at the current position, and then determines whether the distance between the center of gravity of the highest priority frontier clustering point in the regenerated frontier clustering point queue and point T is less than the preset value L, if not, replaces the original queue D with the regenerated frontier clustering point queue, and then returns to step 3; if yes, replaces the original queue D with the regenerated frontier clustering point queue, and the robot continues to move to point T according to the planned path, and enters step 7; the preset value L is usually taken as 1 to 2 times the radius of the robot;

[0012] Step 7: The automatic exploration module determines whether the current round of exploration timing is greater than or equal to the preset time m seconds. If so, the path planning module is notified to cancel the journey to point T, remove the frontier gathering point corresponding to point T from the queue D, mark the grid point where point T is located and its nearby grid points in the second layer, indicating that they are unreachable, and then return to step 2; if not, go to step 8;

[0013] Step 8: The automatic exploration module determines whether the robot has reached point T. If so, it returns to step 2; if not, it returns to step 6.

[0014] As an improvement, in step 1 and step 5, the frontier gathering point queue of the current position is generated by the following method:

[0015] Step a: Get the grid corresponding to the current position of the robot from the mapping and positioning module, add the current grid to the BFS search queue, BFS stands for breadth-first search, and go to step b;

[0016] Step b, take out the grid point at the head of the BFS search queue, set it as grid point F, and go to step c;

[0017] Step c, check the first layer to determine whether the grid point F is a free grid. If so, traverse the 4-neighborhood grids of the grid point F, add the unexplored free grids and unknown grids to the BFS search queue, and enter step d; if not, directly enter step d;

[0018] Step d, determine whether the grid point F is a frontier point, if yes, go to step e; if no, return to step b;

[0019] Step e, clustering the grid points F to obtain the frontier clustering point G, calculating the center of gravity and scale of the frontier clustering point G, and inserting the frontier clustering point G into the queue H formed by the frontier clustering points; then proceeding to step f; the scale of the frontier clustering point G is the sum of the grid areas of all the frontier points in the frontier clustering point G;

[0020] Step f: Determine whether the BFS search queue is empty. If so, proceed to step g; if not, return to step b.

[0021] Step g, determine whether there are frontier clustering points with a scale higher than the first threshold in the frontier clustering point queue H, if not, output an empty frontier clustering point queue H, and end; if yes, filter out the frontier clustering points whose center of gravity is outside the range to be explored, filter out the frontier clustering points whose scale is lower than the second threshold, sort the frontier clustering points in H from small to large according to the Euclidean distance between the center of gravity of each frontier clustering point and the robot position, and filter out the frontier clustering points whose Euclidean distance between the center of gravity and the robot position is greater than the third threshold; then enter step h;

[0022] Step h, judging whether there are still remaining frontier gathering points in the frontier gathering point queue H, if yes, proceeding to step i; if no, outputting an empty frontier gathering point queue H, and ending;

[0023] Step i: determine whether the grid point where the center of gravity of the first frontier gathering point in the frontier gathering point queue H is located has been marked in the second layer. If it has been marked, check the next frontier gathering point until a frontier gathering point that is not marked in the second layer is found in the frontier gathering point queue H or all the frontier gathering points in the frontier gathering point queue H have been checked, and determine whether there are frontier gathering points in H that are not marked in the second layer. If so, remove all frontier gathering points marked in the second layer from H and go to step k; if not, go to step j;

[0024] Step j, query the blacklist clear mark, if the clear mark is not set, then set the mark, clear all marks in the second layer, and enter step k; if there is a clear mark, output the empty frontier gathering point queue H, and end;

[0025] Step k: traverse the frontier cluster queue H, take the Euclidean distance between the center of gravity of each frontier cluster and the robot as the cost, and take the size of the frontier cluster as the static value V static , calculate the value V of each frontier cluster final , then enter l;

[0026] Step 1: According to the value V of the frontier gathering point final , sort the priority of the frontier clustering point queue H from high to low, retain the first β frontier clustering points with the highest value, remove the rest of the frontier clustering points in the frontier clustering point queue H, and enter step m;

[0027] Step m: The path length calculated by the path planning module is taken as the cost, and the area of ​​the unknown area near the frontier gathering point is taken as the static value V static , recalculate the value V of all frontier gathering points in the frontier gathering point queue H final , then go to step n;

[0028] Step n: According to the value V of the frontier gathering point final , reorder the frontier gathering points in the frontier gathering point queue H from high to low, output the frontier gathering point queue H, and end.

[0029] Further improvement, in the steps k and m, when calculating the value of the frontier gathering point, the following formula is used: V final =V static *e -λ*cost , where V final is the value of the frontier gathering point, cost represents the cost of going to the center of gravity of the frontier gathering point, λ is the correction coefficient, which is a constant with a value of 1 to 2, V static The static value representing the frontier clustering point is related to the estimate of the size of the unknown region near the frontier clustering point.

[0030] As a further improvement, the third threshold in step g is selected as follows: extract the frontier cluster point with the farthest Euclidean distance between the center of gravity in H and the current position, and take 2 / 3 of the distance as the third threshold.

[0031] As a further improvement, in step e, the frontier position points of the grid F are clustered by a breadth-first search method with a search mode of 8-neighborhood. Considering the computing power of existing mainstream embedded chips, the search depth is usually 10 to 15.

[0032] Further improvement, in step 1, the value of β is usually 3 to 5, and x is a natural number greater than or equal to 5.

[0033] The technical solution adopted by the present invention to solve the above-mentioned second technical problem is: a robot includes a memory, and a robot operating system is provided in the memory, characterized in that: the robot operating system adopts the above-mentioned environmental map construction method to construct a map of an unknown environment.

[0034] Compared with the prior art, the advantages of the present invention are: by introducing a multi-round filtering and evaluation technology of frontier gathering points, the calculation requirements of the target points of a single round of planning are effectively reduced. By introducing dynamic programming technology, during the movement of the robot to a certain frontier position, all frontier position points at the current position are re-calculated and evaluated for priority every n seconds, and the frontier position point queue is re-obtained, thereby reducing the invalid movement at the end of the path during the exploration process. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] Figure 1 This is a flow chart of the method for constructing an environmental map in an embodiment of the present invention. DETAILED DESCRIPTION

[0036] The present invention is further described in detail below with reference to the accompanying drawings.

[0037] This embodiment provides a method for building an environmental map, which completes the construction of the environmental map in the robot operating system. The robot operating system, also known as the ROS system, is a computer operating system architecture designed specifically for robot software development. It is an open source meta-level operating system that provides services similar to operating systems, including hardware abstract description, underlying driver management, execution of common functions, inter-program messaging, and program distribution package management. It also provides some tools and libraries for acquiring, building, writing, and executing multi-machine fusion programs. The robot operating system has functional modules such as a mapping and positioning module and a path planning module. Specifically, the following steps are included, and participants Figure 1 As shown:

[0038] Step 1, start the mapping and positioning module in the robot operating system, such as the gmapping module, and the path planning module, such as the move_base module; at the same time, establish an automatic exploration module in the robot operating system, which can obtain the original grid map from the mapping and positioning module, and generate a first layer for marking the known area, and a second layer for marking the blacklist area, and the first layer and the second layer are initially blank; the mapping and positioning module generates the latest original grid map at a frequency of x times per second and gives an estimated value of the current position of the robot; the automatic exploration module updates the first layer according to the latest original grid map at a frequency of x times per second; x is a natural number greater than or equal to 5;

[0039] Step 2, the automatic exploration module searches the first layer, calculates and obtains all current frontier points and obtains all frontier clustering points through clustering, evaluates the value of each frontier clustering point according to the preset value function, screens out the high-value frontier clustering points, and sorts them according to the value to generate the frontier clustering point queue of the current position, and the frontier clustering point queue of the current position is set as queue D; the frontier point is defined as an unknown grid point with at least one free position grid point in the 4-neighborhood; the free grid point is defined as a map grid point whose corresponding position is not occupied by an obstacle as shown by the detection result of the sensor installed on the robot, and the sensor can be a radar or infrared or camera; the frontier clustering point is defined as a set of several frontier points, which is constructed by starting from a certain frontier point as the starting point to perform an 8-neighborhood-BFS search with depth restriction, and adding other frontier points found to the set;

[0040] Step 3: The automatic exploration module determines whether the queue D is empty. If so, the environment map construction ends; if not, it goes to step 4;

[0041] Step 4: The automatic exploration module takes out the frontier cluster point with the highest priority in queue D, sets the center of gravity of the frontier cluster point as point T, and publishes point T to the path planning module. The path planning module plans a path to point T to determine whether point T can be reached. If not, point T is removed from queue D, and the grid point where point T is located and its nearby grid points are marked in the second layer to indicate that they are unreachable, and then returns to step 3; if yes, proceeds to step 5;

[0042] Step 5: The robot moves to point T according to the planned path, and the automatic exploration module starts the exploration timing, and then goes to step 6;

[0043] Step 6, the automatic exploration module waits for n seconds, and the automatic exploration module searches the first map again, calculates and obtains all current frontier points and obtains all frontier gathering points through clustering, evaluates the value of each frontier gathering point according to the preset value function, screens out the high-value frontier gathering points, and sorts them according to the value, regenerates the frontier gathering point queue at the current position, and then determines whether the distance between the center of gravity of the highest priority frontier gathering point in the regenerated frontier gathering point queue and point T is less than the preset value L, if not, replaces the original queue D with the regenerated frontier gathering point queue, and then returns to step 3; if so, replaces the original queue D with the regenerated frontier gathering point queue, and the robot continues to move to point T according to the planned path, and enters step 7; the preset value L is usually taken as 1 to 2 times the radius of the robot;

[0044] Step 7: The automatic exploration module determines whether the current round of exploration timing is greater than or equal to the preset time. If so, the path planning module is notified to cancel the journey to point T, remove the frontier gathering point corresponding to point T from the queue D, mark the grid point where point T is located and its nearby grid points in the second layer, indicating that they are unreachable, and then return to step 2; if not, go to step 8;

[0045] Step 8: The automatic exploration module determines whether the robot has reached point T. If so, it returns to step 2; if not, it returns to step 6.

[0046] In the above steps 1 and 5, the frontier gathering point queue of the current position is generated by the following method:

[0047] Step a: Get the grid corresponding to the current position of the robot from the mapping and positioning module, add the current grid point to the BFS search queue, BFS stands for breadth-first search, and go to step b;

[0048] Step b, take out the grid point at the head of the BFS search queue, set it as grid point F, and go to step c;

[0049] Step c, check the first layer to determine whether the grid point F is a free grid. If so, traverse the 4-neighborhood grids of the grid point F, add the unexplored free grids and unknown grids therein to the BFS search queue, and proceed to step d; if not, directly proceed to step d;

[0050] Step d, determine whether the grid point F is a frontier point, if yes, go to step e; if no, return to step b;

[0051] Step e, clustering the grid points F to obtain the frontier clustering points G, calculating the center of gravity and scale of the frontier clustering points G, and inserting the frontier clustering points G into the queue H formed by the frontier clustering points; then proceeding to step f; the scale of the frontier clustering points G is the sum of the grid areas of all the frontier points in the frontier clustering points G; in this step, it is preferred to cluster the frontier position points of the grid points by a breadth-first search method with a search mode of 8-neighborhood, and the search depth is 10 to 15;

[0052] Step f: Determine whether the BFS search queue is empty. If so, proceed to step g; if not, return to step b.

[0053] Step g, determine whether there are frontier gathering points with a scale higher than the first threshold in the frontier gathering point queue H, if not, output an empty frontier gathering point queue H, and end; if yes, filter out the frontier gathering points whose center of gravity is outside the range to be explored, filter out the frontier gathering points whose scale is lower than the second threshold, sort the frontier gathering points in H from small to large according to the Euclidean distance between the center of gravity of each frontier gathering point and the robot position, and filter out the frontier gathering points whose Euclidean distance between the center of gravity and the robot position is greater than the third threshold; then enter step h; the value principle of the third threshold here is: 2 / 3 of the maximum value of the Euclidean distance between the center of gravity of all frontier gathering points in the frontier gathering point queue H and the robot position;

[0054] Step h, judging whether there are still remaining frontier gathering points in the frontier gathering point queue H, if yes, proceeding to step i; if no, outputting an empty frontier gathering point queue H, and ending;

[0055] Step i: determine whether the grid point where the center of gravity of the first frontier gathering point in the frontier gathering point queue H is located has been marked in the second layer. If it has been marked, check the next frontier gathering point until a frontier gathering point that is not marked in the second layer is found in the frontier gathering point queue H or all the frontier gathering points in the frontier gathering point queue H have been checked, and determine whether there are frontier gathering points in H that are not marked in the second layer. If so, remove all frontier gathering points marked in the second layer from H and go to step k; if not, go to step j;

[0056] Step j, query the blacklist clear mark, if the clear mark is not set, then set the mark, clear all marks in the second layer, and enter step k; if there is a clear mark, output the empty frontier gathering point queue H, and end;

[0057] Step k: traverse the frontier cluster queue H, take the Euclidean distance between the center of gravity of each frontier cluster and the robot as the cost, and take the size of the frontier cluster as the static value V static , calculate the value V of each frontier cluster final , and then proceed to step 1; the specific calculation is performed using the following formula: V final =V static *e -λ*cost , where Vfinal is the value of the frontier gathering point, cost represents the cost of going to the center of gravity of the frontier gathering point, λ is the correction coefficient, which is a constant with a value of 1 to 2, V static It is related to the size of the unknown area near the frontier gathering point;

[0058] Step 1: According to the value V of the frontier gathering point final , sort the priority of the frontier clustering point queue H from high to low, retain the first β frontier clustering points with the highest value, remove the rest of the frontier clustering points in the frontier clustering point queue H, and enter step m; the value of β is usually 3 to 5;

[0059] Step m: The path length calculated by the path planning module is taken as the cost, and the area of ​​the unknown area near the frontier gathering point is taken as the static value V static , recalculate the value V of all frontier gathering points in the frontier gathering point queue H final , and then proceed to step n; the specific calculation is based on the following formula: V final =V static *e -λ*cost , where V final is the value of the frontier gathering point, cost represents the cost of going to the center of gravity of the frontier gathering point, λ is the correction coefficient, which is a constant with a value of 1 to 2, V static It is related to the size of the unknown area near the frontier gathering point;

[0060] Step n: According to the value V of the frontier gathering point final , reorder the frontier gathering points in the frontier gathering point queue H from high to low, output the frontier gathering point queue H, and end.

[0061] When calculating the cost of the frontier point location point set, the Euclidean distance is used as an approximation of the cost in step k to achieve the purpose of reducing the amount of calculation; and in step m, the path length planned by the path planning module is used as an approximation of the cost. Although this process consumes more computing power, since most of the low-value frontier points have been removed in step l, the computing power required for step m is relatively low. In addition, step g filters the frontier gathering point queue H, reducing the overall computing power requirements, introducing dynamic programming, reducing invalid terminal movements, and improving exploration efficiency.

[0062] In addition, this embodiment further provides a robot, including a memory, in which a robot operating system is provided, and the robot operating system uses the above-mentioned environment map construction method to construct a map of an unknown environment.

Claims

1. A method for constructing an environment map, characterized in that: The environment map is constructed in the robot operating system through the following steps: Step 1, start the mapping and positioning module and the path planning module in the robot operating system; at the same time, establish an automatic exploration module in the robot operating system, which can obtain the original grid map from the mapping and positioning module and generate a first layer for marking the known area and a second layer for marking the blacklist area; the first layer and the second layer are initially blank; The mapping and positioning module generates the latest original grid map at a frequency of x times per second and gives an estimated value of the current position of the robot; the automatic exploration module updates the first layer according to the latest original grid map at a frequency of x times per second; Step 2, the automatic exploration module searches the first layer, calculates and obtains all current frontier points and obtains all frontier clustering points through clustering, evaluates the value of each frontier clustering point according to the preset value function, screens out the high-value frontier clustering points, and sorts them according to the value to generate the frontier clustering point queue of the current position, and the frontier clustering point queue of the current position is set as queue D; the frontier point is defined as an unknown grid point with at least one free grid point in the 4-neighborhood; the free grid point is defined as a map grid point whose corresponding position is not occupied by an obstacle according to the sensor detection results; the frontier clustering point is defined as a set of several frontier points, which is constructed by starting from a certain frontier point as the starting point to perform an 8-neighborhood-BFS search with depth restriction, and adding other frontier points found to the set; Step 3: The automatic exploration module determines whether the queue D is empty. If so, the environment map construction ends; if not, it goes to step 4; Step 4: The automatic exploration module takes out the frontier cluster point with the highest priority in queue D, sets the center of gravity of the frontier cluster point as point T, and publishes point T to the path planning module. The path planning module plans a path to point T to determine whether point T can be reached. If not, point T is removed from queue D, and the grid point where point T is located and its nearby grid points are marked in the second layer to indicate that they are unreachable, and then returns to step 3; if yes, proceed to step 5; Step 5: The robot moves to point T according to the planned path, and the automatic exploration module starts the exploration timing, and then goes to step 6; Step 6, the automatic exploration module waits for n seconds, and then searches the first layer again, calculates and obtains all current frontier points and obtains all frontier clustering points through clustering, evaluates the value of each frontier clustering point according to the preset value function, selects the high-value frontier clustering points, and sorts them according to the value, regenerates the frontier clustering point queue at the current position, and then determines whether the distance between the center of gravity of the highest priority frontier clustering point in the regenerated frontier clustering point queue and point T is less than the preset value L, if not, replaces the original queue D with the regenerated frontier clustering point queue, and then returns to step 3; if yes, replaces the original queue D with the regenerated frontier clustering point queue, and the robot continues to move to point T according to the planned path, and enters step 7; the preset value L is taken as 1 to 2 times the radius of the robot; Step 7: The automatic exploration module determines whether the current round of exploration timing is greater than or equal to the preset time. If so, the path planning module is notified to cancel the journey to point T, remove the frontier gathering point corresponding to point T from the queue D, mark the grid point where point T is located and its nearby grid points in the second layer, indicating that they are unreachable, and then return to step 2; if not, go to step 8; Step 8: The automatic exploration module determines whether the robot has reached point T. If so, it returns to step 2; if not, it returns to step 6.

2. The method for constructing an environment map according to claim 1, characterized in that: In step 2 and step 6, the frontier gathering point queue at the current position is generated by the following method: Step a: Get the grid corresponding to the current position of the robot from the mapping and positioning module, add the current grid to the BFS search queue, BFS stands for breadth-first search, and go to step b; Step b, take out the grid point at the head of the BFS search queue, set it as grid point F, and go to step c; Step c, check the first layer to determine whether the grid point F is a free grid. If so, traverse the 4-neighborhood grids of the grid point F, add the unexplored free grids and unknown grids to the BFS search queue, and enter step d; if not, directly enter step d; Step d, determine whether the grid point F is a frontier point, if so, proceed to step e; If not, return to step b; Step e, clustering the grid points F to obtain the frontier clustering point G, calculating the center of gravity and scale of the frontier clustering point G, and inserting the frontier clustering point G into the queue H formed by the frontier clustering points; then proceeding to step f; the scale of the frontier clustering point G is the sum of the grid areas of all the frontier points in the frontier clustering point G; Step f: Determine whether the BFS search queue is empty. If so, proceed to step g; if not, return to step b. Step g, determine whether there are frontier clustering points with a scale higher than the first threshold in the frontier clustering point queue H, if not, output an empty frontier clustering point queue H, and end; if yes, filter out the frontier clustering points whose center of gravity is outside the range to be explored, filter out the frontier clustering points whose scale is lower than the second threshold, sort the frontier clustering points in H from small to large according to the Euclidean distance between the center of gravity of each frontier clustering point and the robot position, and filter out the frontier clustering points whose Euclidean distance between the center of gravity and the robot position is greater than the third threshold; then enter step h; Step h, determining whether there are still remaining frontier gathering points in the frontier gathering point queue H, if yes, proceeding to step i; if no, outputting an empty frontier gathering point queue H, and ending; Step i: determine whether the grid point where the center of gravity of the first frontier gathering point in the frontier gathering point queue H is located has been marked in the second layer. If so, check the next frontier gathering point until a frontier gathering point that is not marked in the second layer is found in the frontier gathering point queue H or all the frontier gathering points in the frontier gathering point queue H are checked, and determine whether there are frontier gathering points in H that are not marked in the second layer. If so, remove all frontier gathering points marked in the second layer from H and proceed to step k; if not, proceed to step j; Step j, query the blacklist clear mark, if the clear mark is not set, then set the mark, clear all marks in the second layer, and enter step k; if there is a clear mark, output the empty frontier gathering point queue H, and end; Step k: traverse the frontier cluster queue H, take the Euclidean distance between the center of gravity of each frontier cluster and the robot as the cost, and take the size of the frontier cluster as the static value V static , calculate the value V of each frontier cluster final , then go to step 1; Step 1: According to the value V of the frontier cluster final , sort the priority of the frontier clustering point queue H from high to low, retain the first β frontier clustering points with the highest value, remove the rest of the frontier clustering points in the frontier clustering point queue H, and enter step m; Step m: The path length calculated by the path planning module is taken as the cost, and the area of ​​the unknown area near the frontier gathering point is taken as the static value V static , recalculate the value V of all frontier gathering points in the frontier gathering point queue H final , then go to step n; Step n: According to the value V of the frontier gathering point final , reorder the frontier gathering points in the frontier gathering point queue H from high to low, output the frontier gathering point queue H, and end.

3. The method for constructing an environment map according to claim 2, characterized in that: In the steps k and m, the value of the frontier gathering point is calculated using the following formula: V final =V static *e -λ*cost , where V final is the value of the frontier gathering point, cost represents the cost of going to the center of gravity of the frontier gathering point, λ is the correction coefficient, which is a constant with a value of 1 to 2, V static The static value representing the frontier clustering point is related to the estimate of the size of the unknown region near the frontier clustering point.

4. The method for constructing an environment map according to claim 2, characterized in that: The value of the third threshold in step g is: 2 / 3 of the maximum value of the Euclidean distance between the center of gravity in the frontier gathering point queue H and the robot position.

5. The method for constructing an environment map according to claim 2, characterized in that: In the step e, the frontier position points of point F are clustered by a breadth-first search method with a search mode of 8-neighborhood, and the search depth is 10 to 15.

6. The method for constructing an environment map according to claim 2, characterized in that: In step 1, the value of β is 3 to 5; and x is a natural number greater than or equal to 5.

7. A robot, comprising a memory, wherein the memory is provided with a robot operating system, characterized in that: The robot operating system uses the environmental map construction method as described in claim 1 to construct a map of an unknown environment.

Citation Information

Patent Citations

  • Environment detection method in unmanned vehicle target search system

    CN108983781A

  • Robot autonomous exploration mapping method, equipment and storage medium

    CN110806211A