Map generation method, device and equipment

By generating fine feasible domains, distance maps and basic road network maps, the problem of insufficient or redundant information in the navigation task by the SLAM algorithm is solved, and efficient three-dimensional collision detection and path planning are realized, which improves the navigation task efficiency.

CN119107418APending Publication Date: 2024-12-10HANGZHOU HIKROBOT TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411001568.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-07-24
Publication Date
2024-12-10

AI Technical Summary

Technical Problem

The maps built by the SLAM algorithm are insufficient or redundant in navigation tasks, and cannot effectively guide the robot to move.

Method used

By obtaining the fine feasible domain corresponding to the robot, generating distance maps and basic road network maps, and finally generating target topology maps, optimizing the generation of sparse and orthogonal standard topology maps for navigation tasks, providing sufficient and less redundant information. Navigation guidance.

Benefits of technology

It realizes efficient full-scene coverage three-dimensional collision detection based on point cloud data and coverage-area model, automatically extracts topological nodes and edges, optimizes the deployment efficiency of path planning tasks, and provides effective navigation guidance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119107418A_ABST
    Figure CN119107418A_ABST
Patent Text Reader

Abstract

The invention provides a map generation method, device and equipment, and the method comprises the steps: obtaining a fine feasible region corresponding to a robot, the fine feasible region being a region where the robot can reach; the fine feasible region comprises a plurality of grid points, for each grid point, if the grid point belongs to an obstacle region, it is indicated that the robot collides with an obstacle when the robot is located at the grid point, and if the grid point belongs to a free region, it is indicated that the robot does not collide with the obstacle when the robot is located at the grid point; generating a distance map based on the fine feasible region, wherein the distance map comprises a plurality of grid positions; for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle; a basic road network map is generated based on the distance map, the basic road network map comprises a ridge line extracted based on the distance map, the ridge line comprises a plurality of topological nodes, and the distances from the topological nodes to surrounding obstacles are the same; and generating a target topological map based on the basic road network map. According to the scheme, the path planning task deployment efficiency can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of robotics technology, and in particular to a map generation method, device and equipment. Background Art

[0002] In recent years, various types of robots (such as autonomous mobile robots, etc.) have developed rapidly in terms of technology and market. Robots are mechanical devices that automatically perform work and rely on their own power and control capabilities to achieve various functions. Robots can accept human commands, run pre-programmed programs, and act according to strategies formulated by artificial intelligence. For example, users use manual remote controls to control robots to perform related operations. For example, the manual remote control sends operation commands to the robot wirelessly. After receiving the operation command, the robot executes the operation specified by the operation command to complete the related functions.

[0003] With the rapid development of robotics technology, robots are becoming more and more common in logistics, warehousing, factory production, etc. In these fields, various types of goods can be transported by robots.

[0004] In order for the robot to complete the transportation work, the robot needs to build a map, and SLAM (Simultaneous Localization and Mapping) is a map building method that is widely used in various types of robots. The principle of SLAM map building is that the robot starts to move from an unknown position in an unknown environment, locates itself according to the position and map during the movement, and builds an incremental map based on its own positioning to achieve autonomous positioning and navigation of the robot.

[0005] SLAM algorithms can construct dense maps or sparse maps. When sparse maps are used for navigation tasks, they have insufficient information, while dense maps provide a lot of redundant information. In summary, maps constructed using SLAM algorithms cannot effectively guide robot movement. Summary of the invention

[0006] The present application provides a map generation method, the method comprising:

[0007] Obtain a refined feasible domain corresponding to the robot, wherein the refined feasible domain is an area that the robot can reach; wherein the refined feasible domain includes a plurality of grid points, and for each grid point, if the grid point belongs to an obstacle area, it means that the robot collides with the obstacle when it is at the grid point, and if the grid point belongs to an idle area, it means that the robot does not collide with the obstacle when it is at the grid point;

[0008] Generate a distance map based on the refined feasible domain, the distance map comprising a plurality of grid positions; wherein, for each grid position, a value of the grid position represents a distance between the grid position and a nearest obstacle;

[0009] Generate a basic road network map based on the distance map, wherein the basic road network map includes a ridge line extracted based on the distance map, and the ridge line includes a plurality of topological nodes, and the distance between each topological node and surrounding obstacles is the same;

[0010] A target topology map is generated based on the basic road network map.

[0011] The present application provides a map generation device, the device comprising:

[0012] An acquisition module is used to acquire a fine feasible domain corresponding to the robot, wherein the fine feasible domain is an area that the robot can reach; wherein the fine feasible domain includes a plurality of grid points, and for each grid point, if the grid point belongs to an obstacle area, it means that the robot collides with the obstacle when it is at the grid point, and if the grid point belongs to an idle area, it means that the robot does not collide with the obstacle when it is at the grid point;

[0013] A generation module is used to generate a distance map based on the refined feasible domain, the distance map includes multiple grid positions; wherein, for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle; based on the distance map, a basic road network map is generated, the basic road network map includes a ridge line extracted based on the distance map, the ridge line includes multiple topological nodes, and the distance from each topological node to the surrounding obstacles is the same; based on the basic road network map, a target topological map is generated.

[0014] The present application provides an electronic device, comprising: a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be executed by the processor; the processor is used to execute the machine-executable instructions to implement the map generation method of the above example of the present application.

[0015] It can be seen from the above technical solutions that in the embodiments of the present application, a distance map can be generated based on the fine feasible domain corresponding to the robot, a basic road network map can be generated based on the distance map, and a target topology map can be generated based on the basic road network map, which can realize feasible domain extraction and automatic generation of topology maps. When the target topology map is used for navigation tasks, it has the advantages of sufficient information and less redundant information, and can effectively guide the movement of the robot. The fine feasible domain can be effectively extracted based on point cloud data and the coverage range model, and efficient full-scene coverage three-dimensional collision detection can be achieved. Topological nodes and topological edges can be automatically extracted based on the feasible domain, and a sparse and orthogonal standardized target topology map can be optimized and generated. Task nodes can be added to the target topology map through human-computer interaction, and map expansion and task addition can be carried out efficiently and conveniently, effectively improving the efficiency of path planning task deployment. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 is a flowchart of a map generation method in one embodiment of the present application;

[0017] Figure 2 is a flowchart of a map generation method in one embodiment of the present application;

[0018] Figure 3 is a schematic diagram of an octree grid map in one embodiment of the present application;

[0019] Figure 4 is a schematic diagram of a coverage model in one embodiment of the present application;

[0020] Figure 5 is a schematic diagram of a single pixel width template in one embodiment of the present application;

[0021] Figure 6 is a schematic diagram of a branch point and endpoint template in one embodiment of the present application;

[0022] Figure 7 is a schematic diagram of edge orthogonal normalization in one embodiment of the present application;

[0023] Figure 8 is a schematic diagram of the structure of a map generating device in one embodiment of the present application;

[0024] Fig. 9 It is a hardware structure diagram of an electronic device in one embodiment of the present application. DETAILED DESCRIPTION

[0025] In the embodiment of the present application, a map generation method is proposed, which can be applied to a robot or a robot control device, see Figure 1 FIG. 4 is a flow chart of the method, which may include:

[0026] Step 101, obtain a refined feasible domain corresponding to the robot, where the refined feasible domain is an area that the robot can reach; wherein the refined feasible domain may include multiple grid points, and for each grid point, if the grid point belongs to an obstacle area, it means that the robot collides with the obstacle when it is at the grid point, and if the grid point belongs to an idle area, it means that the robot does not collide with the obstacle when it is at the grid point.

[0027] Step 102: Generate a distance map based on the refined feasible domain. The distance map may include multiple grid positions. For each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle.

[0028] Step 103: Generate a basic road network map based on the distance map. The basic road network map may include a ridge line extracted based on the distance map. The ridge line includes a plurality of topological nodes, and the distances from each topological node to surrounding obstacles are the same.

[0029] Step 104: Generate a target topology map based on the basic road network map.

[0030] Exemplarily, obtaining the refined feasible domain corresponding to the robot may include, but is not limited to: collecting point cloud data in a specified scene by the robot, constructing a grid map based on the point cloud data, and obtaining the initial feasible domain corresponding to the robot based on the grid map, wherein the initial feasible domain may include multiple grid points. Obtain the configured coverage range model corresponding to the robot. For each grid point in the initial feasible domain, if the robot is at the grid point and it is determined based on the coverage range model that the robot collides with an obstacle, the grid point is set to belong to the obstacle area; if the robot is at the grid point and it is determined based on the coverage range model that the robot does not collide with an obstacle, the grid point is set to belong to the idle area.

[0031] Exemplarily, obtaining the initial feasible domain corresponding to the robot based on the grid map may include, but is not limited to: determining the three-dimensional grid occupied by the robot's driving height range in the grid map; projecting the three-dimensional grid onto the horizontal ground to obtain a two-dimensional occupied grid map; performing graphics processing on the two-dimensional occupied grid map based on the size of the robot to obtain at least one connected domain, and determining the largest connected domain as the initial feasible domain.

[0032] Exemplarily, the coverable range model corresponds to the current motion properties of the robot, and the coverable range model includes a component convex hull, an orientation bounding box, and an axis-aligned bounding box; wherein the component convex hull encloses the robot by fitting multiple adjacent triangular facets, the orientation bounding box is the minimum circumscribed cube used to enclose the component convex hull, and the axis-aligned bounding box is the minimum axis-aligned circumscribed cube used to enclose the orientation bounding box.

[0033] Exemplarily, if the robot is at the grid point, the process of determining whether the robot collides with the obstacle based on the coverage range model, or determining whether the robot collides with the obstacle, may include but is not limited to: determining whether there is an overlapping area between the axis-aligned bounding box and the obstacle; if not, it can be determined that the robot has not collided with the obstacle; if so, further determining whether there is an overlapping area between the direction bounding box and the obstacle; if not, it can be determined that the robot has not collided with the obstacle; if so, further determining whether there is an overlapping area between the component convex hull and the obstacle; if not, it can be determined that the robot has not collided with the obstacle; if so, it can be determined that the robot has collided with the obstacle.

[0034] Exemplarily, generating a target topology map based on a basic road network map may include, but is not limited to: determining candidate topology nodes from multiple topology nodes of the spine of the basic road network map, the candidate topology nodes may include first-category topological nodes and / or second-category topological nodes; the first-category topological nodes are topological nodes with a width of non-single pixel, and the second-category topological nodes are topological nodes that are non-branch points and non-endpoints; removing candidate topology nodes from multiple topological nodes of the basic road network map to obtain a target road network map, the target road network map including the remaining topological nodes except the candidate topological nodes; generating a target topology map based on the target road network map.

[0035] Exemplarily, determining the first type of topological node from multiple topological nodes of the ridge line of the basic road network map may include but is not limited to: for each topological node of the ridge line, if the eight neighboring nodes of the topological node match the configured single-pixel width template, then the topological node is determined to be a first type of topological node; if the eight neighboring nodes of the topological node do not match the configured single-pixel width template, then the topological node is determined not to be a first type of topological node. The single-pixel width template may include but is not limited to at least one of the following templates: the upper left neighboring node is not located on the ridge line, the upper neighboring node is not located on the ridge line, the upper right neighboring node is located on the ridge line, the right neighboring node is located on the ridge line, the lower right neighboring node is located on the ridge line, the lower neighboring node is located on the ridge line, the lower left neighboring node is located on the ridge line, and the left neighboring node is located on the ridge line;

[0036] The upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is on the ridge line, the lower left neighbor node is on the ridge line, and the left neighbor node is on the ridge line;

[0037] The upper left neighbor node is located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is located on the ridge line, the lower left neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line;

[0038] The upper left neighbor node is located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line;

[0039] The upper left neighbor node is not located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is not located on the ridge line;

[0040] The upper left neighbor node is not located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is located on the ridge line, the lower neighbor node is located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is not located on the ridge line.

[0041] Exemplarily, determining the second type of topological node from multiple topological nodes of the spine of the basic road network map may include but is not limited to: for each topological node of the spine, if the eight neighboring nodes of the topological node match the configured branch point and endpoint templates, then the topological node is determined not to be a second type of topological node; if the eight neighboring nodes of the topological node do not match the configured branch point and endpoint templates, then the topological node is determined to be a second type of topological node; wherein the branch point and endpoint templates include but are not limited to at least one of the following templates: the upper left neighboring node is not located on the spine, the upper neighboring node is not located on the spine, the upper right neighboring node is not located on the spine, the right neighboring node is not located on the spine, the lower right neighboring node is located on the spine, the lower neighboring node is not located on the spine, the lower left neighboring node is not located on the spine, and the left neighboring node is located on the spine;

[0042] The upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is on the ridge line.

[0043] Exemplarily, generating a target topology map based on a target road network map may include but is not limited to: selecting a redundant topology node from multiple topology nodes of the target road network map, the distance between the redundant topology node and the remaining topology nodes (any topology node in the target road network map except the redundant topology node) is less than a threshold, and removing the redundant topology node to obtain a sparse road network map. If the slope of the edge composed of adjacent topological nodes in the sparse road network map is less than the first slope threshold, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted topological nodes is in a horizontal line; if the slope of the edge composed of adjacent topological nodes in the sparse road network map is greater than the second slope threshold, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted topological nodes is in a vertical line; wherein, if the topological node is an inflection point, when adjusting the coordinates of the topological node, the adjusted topological node needs to be located in a rotatable area, and the robot does not collide with obstacles when rotating and moving in the rotatable area. Generate a target topology map based on the adjusted topological nodes, the target topology map includes multiple topological nodes, the edge composed of adjacent topological nodes is in a horizontal line and / or the edge composed of adjacent topological nodes is in a vertical line.

[0044] It can be seen from the above technical solutions that in the embodiments of the present application, a distance map can be generated based on the fine feasible domain corresponding to the robot, a basic road network map can be generated based on the distance map, and a target topology map can be generated based on the basic road network map, which can realize feasible domain extraction and automatic generation of topology maps. When the target topology map is used for navigation tasks, it has the advantages of sufficient information and less redundant information, and can effectively guide the movement of the robot. The fine feasible domain can be effectively extracted based on point cloud data and the coverage range model, and efficient full-scene coverage three-dimensional collision detection can be achieved. Topological nodes and topological edges can be automatically extracted based on the feasible domain, and a sparse and orthogonal standardized target topology map can be optimized and generated. Task nodes can be added to the target topology map through human-computer interaction, and map expansion and task addition can be carried out efficiently and conveniently, effectively improving the efficiency of path planning task deployment.

[0045] The above technical solutions of the embodiments of the present application are described below in combination with specific application scenarios.

[0046] SLAM, as a map construction method, is widely used in various types of robots. SLAM algorithms can construct dense maps or sparse maps. When sparse maps are used for navigation tasks, there is a problem of insufficient information. When dense maps are used for navigation tasks, a lot of redundant information is provided. In summary, it can be seen that when the map constructed by the SLAM algorithm is used, it cannot effectively guide the movement of the robot.

[0047] In response to the above findings, a map generation method is proposed in an embodiment of the present application, which can effectively extract a fine feasible domain based on point cloud data and a coverage range model, generate a distance map based on the fine feasible domain, generate a basic road network map based on the distance map, and generate a target topology map based on the basic road network map, thereby optimizing the generation of a sparse and orthogonal target topology map, effectively improving the efficiency of path planning task deployment.

[0048] The present application embodiment provides a map generation method, which can be applied to a robot or a robot control device. The robot can be an AGV (Automated Guided Vehicle) or other types of robots. Figure 2 FIG. 4 is a flow chart of the method, which includes:

[0049] Step 201: collect point cloud data in a specified scene through a robot, construct a grid map based on the point cloud data, and obtain an initial feasible domain corresponding to the robot based on the grid map.

[0050] For example, the following steps can be used to obtain the initial feasible domain corresponding to the robot:

[0051] Step 2011: Collect point cloud data in a specified scene through a robot.

[0052] Exemplarily, a radar sensor (such as a laser radar, etc.) can be deployed on the robot, and the radar sensor can periodically collect point cloud data within a specified scene (such as the coverage range of the radar sensor).

[0053] For example, the designated scene may be an indoor scene or an outdoor scene, and there is no restriction on this.

[0054] Step 2012: construct a raster map based on the point cloud data.

[0055] For example, a grid map is a grid-based map representation method, in which the map area is divided into uniform grid cells, and specific attribute information is assigned to each grid cell. Each grid cell can represent different geographical features, landform types, heights, obstacles, and other information.

[0056] Exemplarily, after collecting point cloud data, a grid map can be constructed based on the point cloud data. The grid map can include multiple grid cells, and the value of each grid cell indicates whether there is an obstacle in the grid cell or not (whether there is an obstacle in the grid cell is known based on the point cloud data). There is no restriction on the construction method of the grid map, as long as the grid map can be constructed.

[0057] In a possible implementation, the grid map may be an octree grid map or other types of grid maps. There is no limitation on the type of the grid map. The octree grid map is taken as an example for description. Figure 3 As shown, it is a schematic diagram of an octree grid map. For example, an octree grid map is a three-dimensional map representation structure that projects point cloud observations into a spatial grid along a scan line and uses an octree structure to subdivide the grid, thereby achieving efficient map storage.

[0058] For example, the point cloud data can be projected point by point to generate an octree grid map. For example, each frame of point cloud data in a specified scene is combined with the frame pose, and projected point by point along the scanning ray to the 3D grid space, and the octree grid map is generated in an incremental update manner. The update formula of the octree grid map can be as follows: In the above formula, m is the grid, p(m|z) represents the occupancy probability value of z observed on grid m, and l t (m) is the grid value at time t. Of course, the above is just an example of generating an octree grid map, and there is no limitation on the generation method of the octree grid map.

[0059] The resolution of the octree grid map is consistent with the resolution of the feasible domain. The resolution of the octree grid map is determined by the size of the robot and the robot's motion accuracy, and there is no restriction on this. The feasible domain represents the area that the robot can reach or drive in a specified scene, and also includes the motion attributes allowed in the area.

[0060] For the octree grid map, each node of the octree stores the center point and size of the node cube, and divides the root node into equal parts according to the resolution size to mark the leaf node index for easy access to the leaf node.

[0061] Step 2013: determine the three-dimensional grid occupied by the robot's driving height range in the grid map (such as the octree grid map), and project the three-dimensional grid onto the horizontal ground to obtain a two-dimensional occupied grid map.

[0062] For example, the driving height interval of the robot can be determined according to the prior ground height and the robot height. For example, assuming that the prior ground height (used to indicate the height of the ground) is height value A, and the robot height (used to indicate the height of the robot) is height value B, then the driving height interval of the robot is from height value A to (height value A+height value B), that is, the robot occupies this driving height interval.

[0063] Exemplarily, after obtaining the driving height range, the grid map can be traversed to find the three-dimensional grids (3D grids) occupied by the driving height range in the grid map, and then these three-dimensional grids can be projected onto the horizontal ground to obtain a two-dimensional occupancy grid map (i.e., a 2D occupancy grid map).

[0064] Step 2014: Perform graphics processing on the two-dimensional occupancy grid map based on the size of the robot to obtain at least one connected domain, and determine the largest connected domain as the initial feasible domain corresponding to the robot.

[0065] Exemplarily, after obtaining the two-dimensional occupancy grid map, the two-dimensional occupancy grid map can be subjected to graphics processing such as free area expansion and convolution erosion according to the two-dimensional size of the robot (i.e., the length and width of the robot), so as to remove outliers, burrs and noise. After the two-dimensional occupancy grid map is subjected to graphics processing, at least one connected domain can be found from the two-dimensional occupancy grid map. Then, the area of ​​each connected domain can be calculated, and the connected domain with the largest area can be used as the initial feasible domain (initial 2D feasible domain).

[0066] Exemplarily, the initial feasible domain may include multiple grid points (each grid point may correspond to a grid unit), that is, the initial feasible domain is divided into multiple grid points, and the initial feasible domain is the area that the robot can reach or the area that the robot can travel. For each grid point, the value of the grid point may be a first value (such as 1), and the first value indicates that the grid point belongs to the idle area, that is, when the robot is at the grid point, the robot will not collide with the obstacle. Alternatively, for each grid point, the value of the grid point may be a second value (such as 0), and the second value indicates that the grid point belongs to the obstacle area, that is, when the robot is at the grid point, the robot will collide with the obstacle. For the grid points of the initial feasible domain, the value of the grid point is only an initial value, and the value will be adjusted based on the collision detection result later.

[0067] In summary, the initial feasible domain corresponding to the robot can be obtained based on the grid map, and the initial feasible domain can include multiple grid points, and the value of each grid point can indicate that the grid point belongs to the obstacle area, or the value of each grid point can indicate that the grid point belongs to the idle area.

[0068] At this point, step 201 is completed, and the initial feasible domain corresponding to the robot is obtained.

[0069] Step 202: Obtain the configured coverage range model corresponding to the robot.

[0070] Exemplarily, the coverage range model corresponds to the current motion attribute of the robot. For example, the coverage range model b1 corresponding to the motion attribute a1, the coverage range model b2 corresponding to the motion attribute a2, the coverage range model b3 corresponding to the motion attribute a3, and so on can be pre-configured. If the current motion attribute of the robot is the motion attribute a1, the coverage range model b1 can be obtained, and subsequent collision detection is performed based on the coverage range model b1. If the current motion attribute of the robot is the motion attribute a2, the coverage range model b2 can be obtained, and subsequent collision detection is performed based on the coverage range model b2, and so on.

[0071] The motion attribute can indicate the direction of movement of the robot, and may include but is not limited to forward and backward attributes (i.e., the robot can move forward or backward), left and right attributes (i.e., the robot can move left or right), and rotation attributes (i.e., the robot rotates on the spot). There is no restriction on this motion attribute.

[0072] The current motion attribute of the robot refers to the motion attribute of the robot when it moves within the initial feasible domain. For example, when moving forward or backward within the initial feasible domain, the current motion attribute of the robot is the forward and backward attribute. For example, when rotating in place within the initial feasible domain, the current motion attribute of the robot is the rotation attribute.

[0073] Exemplarily, the coverage model can be a simplified expression for the robot model, and the coverage model can be designed through an obj file, which is a file in a 3D model file format, and there is no restriction on the design process of the coverage model. The coverage model can include a component convex hull, an orientation bounding box, and an axis-aligned bounding box. The component convex hull is the most fine-grained collision detection primitive, the axis-aligned bounding box is the most coarse-grained collision detection primitive, and the orientation bounding box is an intermediate-grained collision detection primitive.

[0074] See also Figure 4 The figure shows a schematic diagram of the coverage range model. The deepest layer is the component convex hull, which is used as a collision detection primitive. The component convex hull can be referred to as the convex hull for short. The component convex hull surrounds the robot by fitting multiple adjacent triangular facets. For example, the component convex hull is a method of characterizing convex polyhedrons, which is used in 3D reconstruction and collision detection. It simplifies the model by fitting and surrounding complex 3D models with many adjacent triangular facets. In this example, the robot can be surrounded by multiple adjacent triangular facets to obtain the component convex hull. There is no restriction on the acquisition of this component convex hull, and it can be configured.

[0075] The second layer of collision detection primitives is the oriented bounding box, which can be called OBB (Oriented Bounding Box). The oriented bounding box is the smallest circumscribed cube used to envelop the convex hull of the component. The outermost layer of collision detection primitives is the axis-aligned bounding box, which can be called AABB (Axis Aligned Bounding Box). The axis-aligned bounding box is the smallest axis-aligned circumscribed cube used to envelop the oriented bounding box.

[0076] At this point, step 202 is completed, and the coverage range model corresponding to the current motion attribute is obtained.

[0077] Step 203: Obtain a refined feasible domain corresponding to the robot based on the initial feasible domain and the coverage range model.

[0078] Exemplarily, a coverage range model can be used to perform collision detection on each grid point in the initial feasible domain, and determine whether the grid point belongs to an obstacle area based on the collision detection result, or determine whether the grid point belongs to a free area based on the collision detection result. In this way, the initial feasible domain can be adjusted to a refined feasible domain.

[0079] For example, for each grid point in the initial feasible region, if the robot is at the grid point and it is determined based on the coverage model that the robot collides with an obstacle, the grid point can be set to belong to the obstacle area. Alternatively, if the robot is at the grid point and it is determined based on the coverage model that the robot does not collide with an obstacle, the grid point can be set to belong to the free area.

[0080] For example, the initial feasible domain includes multiple grid points. For each grid point, the robot is determined to collide with an obstacle when it is at the grid point based on the coverage range model (i.e., collision detection). If the robot collides with an obstacle when it is at the grid point, it is determined that the grid point belongs to the obstacle area. If the robot does not collide with the obstacle when it is at the grid point, it is determined that the grid point belongs to the free area.

[0081] For each grid point in the initial feasible region, if the grid point belongs to the obstacle area, the value of the grid point is set to the second value (such as 0), and the second value indicates that the grid point belongs to the obstacle area, that is, the robot will collide with the obstacle when it is at the grid point. If the grid point belongs to the idle area, the value of the grid point is set to the first value (such as 1), and the first value indicates that the grid point belongs to the idle area, that is, the robot will not collide with the obstacle when it is at the grid point.

[0082] Exemplarily, after the above processing is performed on each grid point of the initial feasible domain, the feasible domain after the processing can be called a refined feasible domain, and the refined feasible domain is the area that the robot can reach or the area that it can drive. For example, the refined feasible domain can include multiple grid points. For each grid point, if the grid point belongs to the obstacle area (such as the value of the grid point is the second value), it means that the robot collides with the obstacle when it is at the grid point. If the grid point belongs to the idle area (such as the value of the grid point is the first value), it means that the robot does not collide with the obstacle when it is at the grid point.

[0083] Exemplarily, when using the coverage range model to perform collision detection on each grid point of the initial feasible domain, each grid point of the initial feasible domain can be traversed in turn, such as using the quadtree method to traverse each grid point of the initial feasible domain. For the currently traversed grid point, when the robot is at this grid point, the center of the component convex hull of the coverage range model is aligned with the center of the grid point. In addition, each grid point of the initial feasible domain corresponds to a grid cell in a grid map (such as an octree grid map), and the value of the grid cell indicates whether there is an obstacle in the grid cell or not. Therefore, each grid point of the initial feasible domain may have an obstacle or not. Based on this, for the currently traversed grid point:

[0084] It can be determined whether the axis-aligned bounding box of the coverage model has an overlapping area with the obstacle. For example, if the axis-aligned bounding box has an overlapping area with the grid point where the obstacle exists, it means that the axis-aligned bounding box has an overlapping area with the obstacle, and if the axis-aligned bounding box has no overlapping area with the grid point where the obstacle exists, it means that the axis-aligned bounding box has no overlapping area with the obstacle.

[0085] If not, it can be determined that the robot has not collided with the obstacle, that is, the robot has not collided with the obstacle when it is at the grid point, and therefore, it can be determined that the grid point belongs to the free area.

[0086] If so, it can be further determined whether there is an overlapping area between the directional bounding box of the coverage range model and the obstacle. For example, if the directional bounding box has an overlapping area with the grid point where the obstacle exists, it means that there is an overlapping area between the directional bounding box and the obstacle; if the directional bounding box does not have an overlapping area with the grid point where the obstacle exists, it means that there is no overlapping area between the directional bounding box and the obstacle.

[0087] If not, it can be determined that the robot has not collided with the obstacle, that is, the robot has not collided with the obstacle when it is at the grid point, and therefore, it can be determined that the grid point belongs to the free area.

[0088] If so, it can be further determined whether the component convex hull of the coverage model has an overlapping area with the obstacle. For example, if the component convex hull has an overlapping area with the grid point where the obstacle exists, it can be said that the component convex hull and the obstacle have an overlapping area, and if the component convex hull and the grid point where the obstacle exists do not have an overlapping area, it can be said that the component convex hull and the obstacle do not have an overlapping area.

[0089] If not, it can be determined that the robot has not collided with the obstacle, that is, the robot has not collided with the obstacle when it is at the grid point, and therefore, it can be determined that the grid point belongs to the free area.

[0090] If so, it can be determined that the robot collides with the obstacle, that is, the robot collides with the obstacle when it is at the grid point. Therefore, it can be determined that the grid point belongs to the obstacle area.

[0091] It can be seen from step 202 that the initial feasible domain corresponding to the robot is obtained based on the grid map, and it can be seen from step 203 that collision detection is performed on each grid point of the initial feasible domain based on the grid map, that is, collision detection and initial feasible domain extraction both rely on the grid map. In addition, before performing collision detection on the grid points, the initial feasible domain can be determined to eliminate absolutely infeasible areas and reduce the number of collision detections.

[0092] In a possible implementation, after obtaining the refined feasible domain, the refined feasible domain may also be assigned a feasible domain motion attribute. For example, if the coverage range model b1 corresponding to the motion attribute a1 is used for collision detection, the feasible domain motion attribute of the refined feasible domain is the motion attribute a1.

[0093] At this point, step 203 is completed, and the refined feasible domain corresponding to the robot can be obtained.

[0094] Step 204: Generate a distance map based on the refined feasible domain, where the distance map includes a plurality of grid positions, and for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle.

[0095] Exemplarily, the fine feasible domain can be understood as a grid map, the fine feasible domain includes multiple grid points (each grid point corresponds to a grid unit), and each grid point belongs to an obstacle area or an idle area. The distance map can also be understood as a grid map, the size of the distance map is the same as the size of the fine feasible domain, the distance map includes multiple grid positions (each grid position corresponds to a grid unit), and each grid position in the distance map corresponds to each grid point in the fine feasible domain, that is, the grid position and the grid point have a corresponding relationship.

[0096] For each grid position in the distance map, find the grid point corresponding to the grid position from the refined feasible domain. If the grid point belongs to the obstacle area, the value of the grid position is 0, indicating that the distance between the grid position and the nearest obstacle is 0. If the grid point belongs to the idle area, since it is known that each grid point in the refined feasible domain belongs to the obstacle area or the idle area, the distance between the grid point and the nearest obstacle (i.e., the grid point belonging to the obstacle area) can be determined, and this distance is set as the value of the grid position, that is, the value of the grid position represents the distance between the grid position and the nearest obstacle.

[0097] In a possible implementation, the fine feasible domain is understood as a two-dimensional image (i.e., a grid map), and the fine feasible domain is generated online through the above steps or obtained by offline loading. The grid points in the fine feasible domain that belong to the obstacle area can be used as obstacle grids, and the grid points in the fine feasible domain that belong to the idle area can be used as idle grids. Starting from the obstacle grid of the fine feasible domain, the wave method is used to propagate the distance from the idle grid to the nearest obstacle grid layer by layer, and the propagation covers all fine feasible domains, and finally a distance map is obtained. The distance map includes multiple grid positions (idle grids and obstacle grids). For each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle.

[0098] When the wave method is used to calculate the distance from the idle grid to the nearest obstacle grid layer by layer, the propagation mode can be four-neighborhood or eight-neighborhood, and there is no restriction on this propagation mode.

[0099] At this point, step 204 is completed, and a distance map corresponding to the machine-fine feasible region can be obtained.

[0100] Step 205: Generate a basic road network map based on the distance map. The basic road network map may include a ridge line extracted based on the distance map. The ridge line includes a plurality of topological nodes, and the distances from each topological node to surrounding obstacles are the same.

[0101] Exemplarily, in order to meet the needs of multi-objective path planning, the Voronoi diagram (Voronoi diagram) of the refined feasible domain can be extracted as the basic road network diagram. For example, the ridge line can be extracted on the basis of the distance map to obtain the Voronoi diagram, and the Voronoi diagram is used as the basic road network diagram. The ridge line of the Voronoi diagram is the meeting point of two or more waves, so the points on the ridge line (topological nodes) have the same shortest distance to multiple surrounding obstacles. For example, the Voronoi diagram is a graph structure used for multi-objective global path planning. Each topological node on the Voronoi diagram is far away from the surrounding obstacles, and the shortest distance to multiple obstacles is the same.

[0102] Exemplarily, in the distance map, the value of each grid position represents the distance between the grid position and the nearest obstacle. Based on the distance between each grid position and the nearest obstacle, a ridge line can be extracted based on the distance map. The ridge line includes multiple topological nodes, and for each topological node, the distance from the topological node to the surrounding obstacles is the same, such as the nearest distance from the topological node to multiple surrounding obstacles is the same.

[0103] After the ridge line is extracted, a basic road network diagram (Voronoi diagram) may be generated based on the ridge line, and the basic road network diagram may include the ridge line, and the ridge line may include multiple topological nodes.

[0104] At this point, step 205 is completed, and the basic road network diagram corresponding to the refined feasible domain can be obtained.

[0105] Step 206: determine a first type of topological node from a plurality of topological nodes of the ridgeline of the basic road network diagram, and the first type of topological node is a topological node of non-single-pixel width. For example, for each topological node, if the width of the ridgeline at the topological node is unique, then the topological node is a topological node of single-pixel width; if the width of the ridgeline at the topological node is not unique, then the topological node is a topological node of non-single-pixel width.

[0106] For example, the ridgeline of the basic road network diagram is a thin line but not a single-pixel-width thin line. In order to facilitate the subsequent topological node extraction and edge tracing, multiple topological nodes of the basic road network diagram can be optimized. For example, the first type of topological nodes can be determined from multiple topological nodes of the ridgeline, and the first type of topological nodes can be removed from the ridgeline, thereby removing topological nodes that are not single-pixel-width, and optimizing the basic road network diagram.

[0107] For example, for each topological node of the ridge, if the eight neighboring nodes of the topological node match the single-pixel width template, the topological node is determined to be a first-class topological node. If the eight neighboring nodes of the topological node do not match the single-pixel width template, the topological node is determined not to be a first-class topological node. After performing the above processing on each topological node of the ridge, all first-class topological nodes can be determined.

[0108] See also Figure 5 As shown in the figure, it is a schematic diagram of a single pixel width template. When the eight neighboring nodes of a topological node are Figure 5 When any single-pixel width template matches, it means that the topological node is a first-class topological node and needs to be removed from all topological nodes of the ridge. Based on the above processing, it can be ensured that the remaining topological nodes of the ridge of the basic road network map are all refined to a single-pixel width of eight neighborhoods.

[0109] The single-pixel width template on the upper left can be expressed as: the upper left neighbor node is not located on the ridge, the upper neighbor node is not located on the ridge, the upper right neighbor node is located on the ridge, the right neighbor node is located on the ridge, the lower right neighbor node is located on the ridge, the lower neighbor node is located on the ridge, the lower left neighbor node is located on the ridge, and the left neighbor node is located on the ridge. The single-pixel width template in the middle of the upper side can be expressed as: the upper left neighbor node is not located on the ridge, the upper neighbor node is not located on the ridge, the upper right neighbor node is not located on the ridge, the right neighbor node is not located on the ridge, the lower right neighbor node is not located on the ridge, the lower neighbor node is located on the ridge, the lower left neighbor node is located on the ridge, and the left neighbor node is located on the ridge. The single-pixel width template on the upper right can be expressed as: the upper left neighbor node is on the ridge, the upper neighbor node is on the ridge, the upper right neighbor node is not on the ridge, the right neighbor node is not on the ridge, the lower right neighbor node is not on the ridge, the lower neighbor node is on the ridge, the lower left neighbor node is on the ridge, and the left neighbor node is on the ridge.

[0110] The single-pixel width template in the lower left can be expressed as: the upper left neighbor node is located on the ridge, the upper neighbor node is located on the ridge, the upper right neighbor node is located on the ridge, the right neighbor node is located on the ridge, the lower right neighbor node is not located on the ridge, the lower neighbor node is not located on the ridge, the lower left neighbor node is located on the ridge, and the left neighbor node is located on the ridge. The single-pixel width template in the lower middle can be expressed as: the upper left neighbor node is not located on the ridge, the upper neighbor node is located on the ridge, the upper right neighbor node is located on the ridge, the right neighbor node is located on the ridge, the lower right neighbor node is not located on the ridge, the lower neighbor node is not located on the ridge, the lower left neighbor node is not located on the ridge, and the left neighbor node is not located on the ridge. The single-pixel width template in the lower right corner can be expressed as: the upper left neighbor node is not located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is located on the ridge line, the lower neighbor node is located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is not located on the ridge line.

[0111] Step 207: determine a second type of topological node from multiple topological nodes of the spine of the basic road network diagram, and the second type of topological node is a non-branch point and non-endpoint topological node, that is, the second type of topological node is not a branch point of the spine, and the second type of topological node is not an endpoint of the spine.

[0112] Exemplarily, each point of the basic road network map is a topological node, and the adjacent nodes constitute edges. The topological nodes and edges of the basic road network map are too dense, which does not meet the sparse characteristics of the topological map. It is inefficient and non-standard in path planning, so the basic road network map needs to be processed to obtain a sparse topological map. For example, branch points and endpoints can be extracted from the basic road network map as topological nodes, that is, the topological nodes of branch points and endpoints are retained, and conversely, non-branch points and non-endpoints can be removed. Therefore, the second type of topological nodes (non-branch points and non-endpoints) can be determined from the multiple topological nodes of the ridge line, and the second type of topological nodes can be removed from the ridge line.

[0113] For example, for each topological node of the ridge, if the eight neighboring nodes of the topological node match the branch point and endpoint template, it is determined that the topological node is not a second-class topological node (i.e., the topological node is a branch point and an endpoint). If the eight neighboring nodes of the topological node do not match the branch point and endpoint template, it is determined that the topological node is a second-class topological node (i.e., the topological node is a non-branch point and a non-endpoint). After performing the above processing on each topological node of the ridge, all second-class topological nodes can be determined.

[0114] See also Figure 6 As shown in the figure, it is a schematic diagram of the branch point and endpoint template. When the eight neighboring nodes of the topological node are Figure 6 When all branch points and endpoint templates do not match, it means that the topological node is a second-type topological node and needs to be removed from all topological nodes of the spine.

[0115] The branch point and endpoint template on the left can be expressed as: the upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is located on the ridge line. In addition, the branch point and endpoint template on the right can be expressed as: the upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is located on the ridge line.

[0116] Step 208: remove the first type of topological nodes and the second type of topological nodes from the multiple topological nodes of the spine of the basic road network map to obtain a target road network map, which includes a spine, and the spine may include remaining topological nodes except the first type of topological nodes and the second type of topological nodes.

[0117] For example, for the ridge of the target road network graph, the topological nodes that are not single-pixel wide, and the topological nodes that are not branch points and non-end points have been removed. Therefore, the topological nodes that remain on the ridge are single-pixel wide, and these topological nodes are the topological nodes of branch points and endpoints, that is, the branch points and endpoints are extracted as topological nodes. Starting from each topological node, trace back along the eight neighborhoods of the target road network graph (Voronoi diagram) to find the next topological node, and the two topological nodes are connected to obtain edges, and the topological nodes along the way are all points on the edge.

[0118] Step 209: Generate a target topology map based on the target road network map.

[0119] In a possible implementation, the target road network diagram includes multiple topological nodes (the remaining topological nodes except the first type of topological nodes and the second type of topological nodes). The target road network diagram can be used as the target topological map, or the topological nodes of the target road network diagram can be optimized, and the optimized target road network diagram can be used as the target topological map. In summary, the target topological map can include multiple topological nodes, which represent turning points or task points, and the edges between adjacent topological nodes represent connected paths. The target topological map is also called a target topological road network. The target topological road network is a graph structure that characterizes the connectivity relationship between nodes at various locations in a scene. The nodes represent turning points or task points, and the edges represent connected paths between nodes.

[0120] Exemplarily, when the topological nodes of the target road network graph are optimized and the optimized target road network graph is used as the target topological map, the target topological map can be generated by the following steps:

[0121] Step 2091: Select redundant topological nodes from multiple topological nodes of the target road network graph, the distance between the redundant topological nodes and the remaining topological nodes is less than a threshold, and remove the redundant topological nodes to obtain a sparse road network graph.

[0122] Exemplarily, when the target road network graph includes multiple topological nodes, two adjacent topological nodes form a straight line (edge), that is, the target road network graph is composed of multiple straight lines. When there are redundant topological nodes with similar distances in the target road network graph, the edge composed of the redundant topological nodes with similar distances is shorter. Based on this, the redundant topological nodes in the target road network graph are traversed and the redundant topological nodes are removed. After removing the redundant topological nodes, the edge composed of two adjacent topological nodes will not be too short, thereby removing the redundant topological nodes and shorter edges in the target road network graph, and obtaining a sparse road network graph (i.e., a sparse topological map), so that there are no redundant topological nodes and shorter edges.

[0123] When traversing the redundant topological nodes in the target road network graph, each topological node can be traversed in turn. When traversing to the current topological node, if the distance between the topological node and the traversed topological node is less than a threshold, the topological node is used as a redundant topological node. Alternatively, if the distance between the topological node and the traversed topological node is not less than a threshold, the topological node is not used as a redundant topological node.

[0124] Exemplarily, before selecting redundant topological nodes from multiple topological nodes of the target road network graph, for the target road network graph, when the curvature of the curved edge composed of multiple topological nodes in a certain direction is greater than a threshold, a new topological node can be added to the target road network graph, thereby splitting the curved edge into multiple straight edges. On this basis, a sparse road network graph can be obtained by fitting each edge with a straight line, that is, redundant topological nodes are selected from multiple topological nodes of the target road network graph, and the sparse road network graph is obtained by removing the redundant topological nodes.

[0125] Step 2092: Optimize the topological nodes in the sparse road network graph to obtain adjusted topological nodes.

[0126] Exemplarily, when optimizing the topological nodes in the sparse road network graph, the coordinates of the topological nodes in the sparse road network graph may be adjusted so that the edges of the adjusted topological nodes are orthogonally normalized.

[0127] The slope of the edge composed of adjacent topological nodes in the sparse road network graph can be calculated. If the slope is less than the first slope threshold (which can be configured based on experience), it means that the type of the edge is horizontal. On this basis, the coordinates of the adjacent topological nodes can be adjusted so that the edge composed of the adjusted topological nodes is on a horizontal line.

[0128] The slope of the edge composed of adjacent topological nodes in the sparse road network graph can be calculated. If the slope is greater than the second slope threshold (which can be configured based on experience), it means that the type of the edge is a vertical type. On this basis, the coordinates of the adjacent topological nodes can be adjusted so that the edge composed of the adjusted topological nodes is on a vertical line.

[0129] The second slope threshold can be greater than the first slope threshold, and the slope of the edge composed of adjacent topological nodes in the sparse road network graph can be calculated. If the slope is not less than the first slope threshold and the slope is not greater than the second slope threshold, it means that the type of the edge is an inclined type. On this basis, the coordinates of the adjacent topological nodes can be adjusted so that the edge composed of the adjusted topological nodes is on a horizontal line, or the coordinates of the adjacent topological nodes can be adjusted so that the edge composed of the adjusted topological nodes is on a vertical line.

[0130] Exemplarily, since the robot's running trajectory is an orthogonal route that is horizontal and vertical, the topological nodes in the sparse road network diagram can be optimized so that the edges composed of the topological nodes are orthogonally normalized. For example, for the edges composed of adjacent topological nodes, based on the slopes and slope thresholds of each edge, they are divided into three categories: horizontal, vertical, and inclined. If the slope of the edge is less than the first slope threshold, the type of the edge is horizontal; if the slope of the edge is greater than the second slope threshold, the type of the edge is vertical; if the slope of the edge is not less than the first slope threshold and not greater than the second slope threshold, the type of the edge is inclined.

[0131] Based on the edge type, the coordinates of the topological nodes can be optimized and adjusted in different situations so that locally similar edges are on the same horizontal line, or locally similar edges are on the same vertical line. For example, see Figure 7 As shown in Figure 1, it is a schematic diagram of edge orthogonal normalization. Figure 7 It can be seen that for each topological node whose edge type is horizontal, the coordinates of these topological nodes are adjusted so that the edges formed by these topological nodes are on the same horizontal line. For each topological node whose edge type is vertical, the coordinates of these topological nodes are adjusted so that the edges formed by these topological nodes are on the same vertical line.

[0132] In a possible implementation, if the topological node is an inflection point (i.e., when the robot is at the topological node, the movement direction of the robot changes), when adjusting the coordinates of the topological node, the adjusted topological node needs to be located in the rotatable area. For example, when adjusting the coordinates of the topological node so that the edge composed of the topological node is on the horizontal line, if the adjusted topological node is not located in the rotatable area, it can be adjusted to the left or right until the adjusted topological node is located in the rotatable area. Similarly, when adjusting the coordinates of the topological node so that the edge composed of the topological node is on the vertical line, if the adjusted topological node is not located in the rotatable area, it can be adjusted upward or downward until the adjusted topological node is located in the rotatable area.

[0133] If the edge type is an inclined type, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted topological nodes is on a horizontal line. If the adjusted topological node is not located in the rotatable area, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted topological nodes is on a vertical line, and the adjusted topological node is located in the rotatable area. Or, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted topological nodes is on a vertical line. If the adjusted topological node is not located in the rotatable area, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted topological nodes is on a horizontal line, and the adjusted topological node is located in the rotatable area.

[0134] In a possible implementation, the definition of the rotatable area may be: the robot does not collide with obstacles when rotating and moving in the rotatable area. Based on this, the adjusted topological node needs to be located in the rotatable area means: if the robot does not collide with obstacles when the adjusted topological node rotates and moves, the adjusted topological node is located in the rotatable area, and conversely, if the robot collides with obstacles when the adjusted topological node rotates and moves, the adjusted topological node is not located in the rotatable area.

[0135] Step 2093: Generate a target topology map based on the adjusted topology nodes, that is, after optimizing the topology nodes in the sparse road network graph, use the optimized sparse road network graph as the target topology map.

[0136] Exemplarily, after optimizing the topological nodes in the sparse road network graph, the edges composed of the adjusted topological nodes can be orthogonally normalized, and the optimized sparse road network graph can be used as the target topological map. The target topological map can include multiple topological nodes (i.e., adjusted topological nodes), and the edges composed of adjacent topological nodes are in a horizontal line and / or the edges composed of adjacent topological nodes are in a vertical line.

[0137] After obtaining the target topology map, the target topology map can be used as the backbone topology road network and the backbone topology road network can be output. Alternatively, after obtaining the target topology map, redundant points can be checked, merged and deleted again. For example, redundant topology nodes can be selected from multiple topology nodes of the target topology map. The distance between the redundant topology node and the remaining topology nodes is less than a threshold. The redundant topology nodes are removed. After the above processing, the processed target topology map is used as the backbone topology road network and the backbone topology road network is output.

[0138] For example, after obtaining the backbone topology network, you can also select task nodes within the feasible domain and add them to the backbone topology network. For example, the feasible domain is superimposed on the backbone topology network display, and task nodes are selected interactively. In addition, each task node searches for the nearest backbone topology path, calculates the shortest route to the path, creates new nodes and edges and adds them to the backbone topology network to obtain a complete topology network.

[0139] It can be seen from the above technical solutions that in the embodiments of the present application, a method for automatic extraction of feasible domains is proposed, which can effectively extract fine feasible domains based on point cloud data and coverage range models, and can realize efficient three-dimensional collision detection with full scene coverage. In the method for automatic extraction of feasible domains, quadtree and multi-motion model (i.e., coverage range model) strategies are used to realize efficient three-dimensional collision detection with full scene coverage, extract feasible domain motion attributes, and realize automatic partitioning of rotation and linear motion. A method for automatic generation of topological road networks is proposed, which can automatically extract topological nodes and topological edges based on the feasible domain grid map, and optimize the generation of sparse and orthogonal normalized trunk topological road networks. Task nodes can be added to the target topological map through human-computer interaction, and map expansion and task addition can be carried out efficiently and conveniently, effectively improving the efficiency of path planning task deployment.

[0140] Based on the same application concept as the above method, a map generation device is proposed in the embodiment of the present application, see Figure 8 FIG. 1 is a schematic diagram of the structure of the device, and the device may include:

[0141] An acquisition module 81 is used to acquire a fine feasible domain corresponding to the robot, wherein the fine feasible domain is an area that the robot can reach; the fine feasible domain includes a plurality of grid points, and for each grid point, if the grid point belongs to an obstacle area, it means that the robot collides with the obstacle when it is at the grid point, and if the grid point belongs to an idle area, it means that the robot does not collide with the obstacle when it is at the grid point;

[0142] A generation module 82 is used to generate a distance map based on the refined feasible domain, the distance map including multiple grid positions; wherein, for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle; a basic road network map is generated based on the distance map, the basic road network map includes a ridge line extracted based on the distance map, the ridge line includes multiple topological nodes, and each topological node has the same distance to the surrounding obstacles; a target topological map is generated based on the basic road network map.

[0143] Exemplarily, when the acquisition module 81 acquires the refined feasible domain corresponding to the robot, it is specifically used to: collect point cloud data in a specified scene through the robot, construct a grid map based on the point cloud data, and acquire the initial feasible domain corresponding to the robot based on the grid map; acquire the configured coverage range model corresponding to the robot; for each grid point in the initial feasible domain, if the robot is at the grid point, it is determined based on the coverage range model that the robot collides with an obstacle, then the grid point is set to belong to the obstacle area; if the robot is at the grid point, it is determined based on the coverage range model that the robot does not collide with an obstacle, then the grid point is set to belong to the idle area.

[0144] Exemplarily, when the acquisition module 81 acquires the initial feasible domain corresponding to the robot based on the grid map, it is specifically used to: determine the three-dimensional grid (i.e., 3D grid) occupied by the driving height range of the robot in the grid map; project the three-dimensional grid onto the horizontal ground to obtain a two-dimensional occupied grid map; perform graphics processing on the two-dimensional occupied grid map based on the size of the robot to obtain at least one connected domain, and determine the largest connected domain as the initial feasible domain.

[0145] Exemplarily, the coverage range model corresponds to the current motion attribute of the robot, and the coverage range model includes a component convex hull, a direction bounding box and an axis-aligned bounding box; wherein the component convex hull is fitted to enclose the robot by a plurality of adjacent triangular facets, the direction bounding box is the minimum circumscribed cube for enveloping the component convex hull, and the axis-aligned bounding box is the minimum axis-aligned circumscribed cube for enveloping the direction bounding box. If the robot is at the grid point, the acquisition module 81 determines that the robot collides with an obstacle based on the coverage range model, or determines that the robot does not collide with the obstacle, specifically for: determining whether there is an overlapping area between the axis-aligned bounding box and the obstacle; if not, determining that the robot does not collide with the obstacle; if so, determining whether there is an overlapping area between the direction bounding box and the obstacle; if not, determining that the robot does not collide with the obstacle; if so, determining whether there is an overlapping area between the component convex hull and the obstacle; if not, determining that the robot does not collide with the obstacle; if so, determining whether there is an overlapping area between the component convex hull and the obstacle; if not, determining that the robot does not collide with the obstacle; if so, determining that the robot collides with the obstacle.

[0146] Exemplarily, when the generation module 82 generates a target topology map based on the basic road network map, it is specifically used to: determine candidate topology nodes from multiple topology nodes of the spine of the basic road network map, and the candidate topology nodes include first-category topological nodes and / or second-category topological nodes; wherein the first-category topological nodes are topology nodes with a width of non-single pixel, and the second-category topological nodes are topology nodes that are non-branch points and non-endpoints; remove the candidate topology nodes from the multiple topology nodes of the basic road network map to obtain a target road network map, wherein the target road network map includes the remaining topology nodes except the candidate topology nodes; and generate the target topology map based on the target road network map.

[0147] Exemplarily, when the generation module 82 determines the first type of topological node from the multiple topological nodes of the ridge line of the basic road network map, it is specifically used to: for each topological node of the ridge line, if the eight neighboring nodes of the topological node match the configured single-pixel width template, then the topological node is determined to be a first type of topological node; if the eight neighboring nodes of the topological node do not match the configured single-pixel width template, then the topological node is determined not to be a first type of topological node; wherein the single-pixel width template includes at least one of the following templates: the upper left neighboring node is not located on the ridge line; line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is located on the ridge line, the lower left neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; the upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower side neighbor node is located on the ridge line, the lower left neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; the upper left neighbor node Located on the ridge, the upper neighbor node is located on the ridge, the upper right neighbor node is not located on the ridge, the right neighbor node is not located on the ridge, the lower right neighbor node is not located on the ridge, the lower neighbor node is located on the ridge, the lower left neighbor node is located on the ridge, and the left neighbor node is located on the ridge; the upper left neighbor node is located on the ridge, the upper neighbor node is located on the ridge, the upper right neighbor node is located on the ridge, the right neighbor node is located on the ridge, the lower right neighbor node is not located on the ridge, the lower neighbor node is not located on the ridge, the lower left neighbor node is located on the ridge, and the left neighbor node is located on the ridge; the upper left neighbor node is located on the ridge, The node is not located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is not located on the ridge line; the upper left neighbor node is not located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is located on the ridge line, the lower neighbor node is located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is not located on the ridge line.

[0148] Exemplarily, when the generation module determines the second type of topological node from the multiple topological nodes of the spine of the basic road network diagram, it is specifically used to: for each topological node of the spine, if the eight neighboring nodes of the topological node match the configured branch point and endpoint template, determine that the topological node is not a second type of topological node; if the eight neighboring nodes of the topological node do not match the configured branch point and endpoint template, determine that the topological node is a second type of topological node; wherein the branch point and endpoint template includes at least one of the following templates: the upper left neighboring node is not located at The ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is on the ridge line; the upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is on the ridge line.

[0149] Exemplarily, when the generation module generates the target topology map based on the target road network map, it is specifically used to: select redundant topology nodes from multiple topology nodes of the target road network map, the distance between the redundant topology nodes and the remaining topology nodes is less than a threshold, and remove the redundant topology nodes to obtain a sparse road network map; if the slope of the edge composed of adjacent topological nodes in the sparse road network map is less than a first slope threshold, then adjust the coordinates of the adjacent topological nodes so that the edge composed of the adjusted topological nodes is on a horizontal line; if the slope of the edge composed of adjacent topological nodes in the sparse road network map is greater than a second slope threshold, then adjust the coordinates of the adjacent topological nodes so that the edge composed of the adjusted topological nodes is on a vertical line; wherein, if the topological node is an inflection point, when adjusting the coordinates of the topological node, the adjusted topological node needs to be located in a rotatable area, and the robot does not collide with obstacles when rotating and moving within the rotatable area; generate a target topology map based on the adjusted topological nodes, the target topology map includes multiple topological nodes, the edge composed of adjacent topological nodes is on a horizontal line and / or the edge composed of adjacent topological nodes is on a vertical line.

[0150] Based on the same application concept as the above method, an electronic device is proposed in the embodiment of the present application, see Fig. 9 As shown, the electronic device includes: a processor 91 and a machine-readable storage medium 92, the machine-readable storage medium 92 stores machine-executable instructions that can be executed by the processor 91; the processor 91 is used to execute the machine-executable instructions to implement the map generation method disclosed in the above example of this application.

[0151] Based on the same application concept as the above method, an embodiment of the present application also provides a machine-readable storage medium, on which a number of computer instructions are stored. When the computer instructions are executed by a processor, the map generation method disclosed in the above example of the present application can be implemented.

[0152] The above-mentioned machine-readable storage medium may be any electronic, magnetic, optical or other physical storage device, which may contain or store information, such as executable instructions, data, etc. For example, the machine-readable storage medium may be: RAM (Radom Access Memory), volatile memory, non-volatile memory, flash memory, storage drive (such as hard disk drive), solid state drive, any type of storage disk (such as CD, DVD, etc.), or similar storage medium, or a combination thereof.

[0153] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the embodiments of the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that contain computer-usable program code.

[0154] The above is only an embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.

Claims

1. A map generation method, It is characterized in that The method comprises: Obtain a refined feasible domain corresponding to the robot, wherein the refined feasible domain is an area that the robot can reach; wherein the refined feasible domain includes a plurality of grid points, and for each grid point, if the grid point belongs to an obstacle area, it means that the robot collides with the obstacle when it is at the grid point, and if the grid point belongs to an idle area, it means that the robot does not collide with the obstacle when it is at the grid point; Generate a distance map based on the refined feasible domain, the distance map comprising a plurality of grid positions; wherein, for each grid position, a value of the grid position represents a distance between the grid position and a nearest obstacle; Generate a basic road network map based on the distance map, wherein the basic road network map includes a ridge line extracted based on the distance map, and the ridge line includes a plurality of topological nodes, and the distance between each topological node and surrounding obstacles is the same; A target topology map is generated based on the basic road network map.

2. The method according to claim 1, It is characterized in that The obtaining of the refined feasible domain corresponding to the robot includes: Collecting point cloud data in a specified scene by the robot, constructing a grid map based on the point cloud data, and obtaining an initial feasible domain corresponding to the robot based on the grid map; Obtaining a configured coverage range model corresponding to the robot; For each grid point in the initial feasible domain, if the robot is at the grid point and it is determined based on the coverable range model that the robot collides with an obstacle, the grid point is set to belong to the obstacle area; if the robot is at the grid point and it is determined based on the coverable range model that the robot does not collide with an obstacle, the grid point is set to belong to the idle area.

3. The method according to claim 2, It is characterized in that The obtaining of the initial feasible domain corresponding to the robot based on the grid map includes: Determine the three-dimensional grid occupied by the driving height range of the robot in the grid map; Projecting the three-dimensional grid onto the horizontal ground to obtain a two-dimensional occupancy grid map; The two-dimensional occupancy grid map is subjected to graphics processing based on the size of the robot to obtain at least one connected domain, and the largest connected domain is determined as the initial feasible domain.

4. The method according to claim 2, It is characterized in that The coverable range model corresponds to the current motion attribute of the robot, and the coverable range model includes a component convex hull, an orientation bounding box and an axis-aligned bounding box; wherein the component convex hull is fitted to enclose the robot by a plurality of adjacent triangular facets, the orientation bounding box is the minimum circumscribed cube for enveloping the component convex hull, and the axis-aligned bounding box is the minimum axis-aligned circumscribed cube for enveloping the orientation bounding box; If the robot is at the grid point, determining based on the coverable range model whether the robot collides with an obstacle, or determining that the robot does not collide with the obstacle, includes: Determine whether there is an overlapping area between the axis-aligned bounding box and the obstacle; If not, it is determined that the robot has not collided with the obstacle; If yes, determine whether there is an overlapping area between the directional bounding box and the obstacle; If not, it is determined that the robot has not collided with the obstacle; If yes, determining whether there is an overlapping area between the convex hull of the component and the obstacle; If not, it is determined that the robot has not collided with the obstacle; If so, it is determined that the robot collides with an obstacle.

5. The method according to claim 1, It is characterized in that The generating of a target topology map based on the basic road network map comprises: Determine candidate topological nodes from a plurality of topological nodes of the ridgeline of the basic road network graph, wherein the candidate topological nodes include first-type topological nodes and / or second-type topological nodes; the first-type topological nodes are topological nodes with a width of non-single pixel, and the second-type topological nodes are topological nodes that are non-branch points and non-end points; Removing the candidate topological node from the multiple topological nodes of the basic road network graph to obtain a target road network graph, wherein the target road network graph includes the remaining topological nodes except the candidate topological node; The target topology map is generated based on the target road network map.

6. The method according to claim 5, It is characterized in that The determining of the first type of topological nodes from the plurality of topological nodes of the ridge line of the basic road network graph comprises: for each topological node of the ridge line, if eight neighboring nodes of the topological node match the configured single-pixel width template, then determining that the topological node is a first type of topological node; if the eight neighboring nodes of the topological node do not match the configured single-pixel width template, then determining that the topological node is not a first type of topological node; The single pixel width template includes at least one of the following templates: The upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is located on the ridge line, the lower neighbor node is located on the ridge line, the lower left neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; The upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is on the ridge line, the lower left neighbor node is on the ridge line, and the left neighbor node is on the ridge line; The upper left neighbor node is located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is located on the ridge line, the lower left neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; The upper left neighbor node is located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; The upper left neighbor node is not located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is not located on the ridge line; The upper left neighbor node is not located on the ridge line, the upper neighbor node is located on the ridge line, the upper right neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the lower right neighbor node is located on the ridge line, the lower neighbor node is located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is not located on the ridge line.

7. The method according to claim 5, It is characterized in that The determining of the second type of topological nodes from the plurality of topological nodes of the spine of the basic road network diagram comprises: for each topological node of the spine, if eight neighboring nodes of the topological node match the configured branch point and endpoint template, determining that the topological node is not a second type of topological node; if the eight neighboring nodes of the topological node do not match the configured branch point and endpoint template, determining that the topological node is a second type of topological node; The branch point and endpoint templates include at least one of the following templates: The upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is located on the ridge line; The upper left neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the upper right neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the lower right neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the lower left neighbor node is not located on the ridge line, and the left neighbor node is on the ridge line.

8. The method according to claim 5, It is characterized in that The generating the target topology map based on the target road network map includes: Selecting a redundant topological node from a plurality of topological nodes of the target road network graph, wherein the distance between the redundant topological node and the remaining topological nodes is less than a threshold, and removing the redundant topological node to obtain a sparse road network graph; If the slope of the edge composed of adjacent topological nodes in the sparse road network graph is less than the first slope threshold, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted topological nodes is on a horizontal line; if the slope of the edge composed of adjacent topological nodes in the sparse road network graph is greater than the second slope threshold, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted topological nodes is on a vertical line; wherein, if the topological node is an inflection point, when adjusting the coordinates of the topological node, the adjusted topological node needs to be located in a rotatable area, and the robot does not collide with obstacles when rotating and moving in the rotatable area; A target topology map is generated based on the adjusted topology nodes. The target topology map includes a plurality of topology nodes. The edges formed by adjacent topology nodes are in a horizontal line and / or the edges formed by adjacent topology nodes are in a vertical line.

9. A map generating device, It is characterized in that The device comprises: An acquisition module is used to acquire a fine feasible domain corresponding to the robot, wherein the fine feasible domain is an area that the robot can reach; wherein the fine feasible domain includes a plurality of grid points, and for each grid point, if the grid point belongs to an obstacle area, it means that the robot collides with the obstacle when it is at the grid point, and if the grid point belongs to an idle area, it means that the robot does not collide with the obstacle when it is at the grid point; A generation module is used to generate a distance map based on the refined feasible domain, the distance map includes multiple grid positions; wherein, for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle; based on the distance map, a basic road network map is generated, the basic road network map includes a ridge line extracted based on the distance map, the ridge line includes multiple topological nodes, and the distance from each topological node to the surrounding obstacles is the same; based on the basic road network map, a target topological map is generated.

10. An electronic device, It is characterized in that include: a processor and a machine-readable storage medium storing machine-executable instructions executable by the processor; The processor is used to execute machine executable instructions to implement the method described in any one of claims 1-8.

Citation Information

Cited By

  • Map generation method and apparatus, device and storage medium

    WO2026021346A1