Map generation method and apparatus, device and storage medium

By generating sparse and orthogonally normalized topological maps, the problem that maps constructed by SLAM algorithms cannot effectively guide robot movement is solved, achieving information-rich and efficient path planning and 3D collision detection, thus improving the efficiency of path planning tasks.

WO2026021346A1PCT designated stage Publication Date: 2026-01-29HANGZHOU HIKROBOT TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/109344
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-24
Filing Date
2025-07-18
Publication Date
2026-01-29

AI Technical Summary

Technical Problem

Existing SLAM algorithms cannot effectively guide robot movement by constructing maps. Sparse maps lack sufficient information, while dense maps contain too much redundant information, resulting in low efficiency in path planning tasks.

Method used

A distance map is generated based on the robot's corresponding fine feasible domain. A basic road network map is generated by extracting ridge lines. The target topology map is then generated, and a sparse and orthogonal topology map is generated. Three-dimensional collision detection and topology node extraction are performed by combining point cloud data and the coverage area model.

Benefits of technology

It achieves map generation with sufficient information and less redundant information, which can effectively guide robot movement, improve the deployment efficiency of path planning tasks, and support efficient full-scene coverage 3D collision detection and map expansion.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025109344_29012026_PF_FP_ABST
    Figure CN2025109344_29012026_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides a map generation method and apparatus, a device and a storage medium. The method comprises: acquiring a refined feasible region corresponding to a robot, the refined feasible region being a region that the robot can reach, wherein the refined feasible region comprises a plurality of grid points; for each grid point, if the grid point belongs to an obstacle region, it indicates that when located at the grid point, the robot collides with an obstacle; and if the grid point belongs to an idle region, it indicates that when located at the grid point, the robot does not collide with the obstacle; generating a distance map on the basis of the refined feasible region, the distance map comprising a plurality of grid positions, wherein for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle; generating a basic road network map on the basis of the distance map, wherein the basic road network map comprises ridge lines extracted on the basis of the distance map, each ridge line comprises a plurality of topological nodes, and the distances from each topological node to surrounding obstacles are the same; and generating a target topological map on the basis of the basic road network map.
Need to check novelty before this filing date? Find Prior Art

Description

Map generation method and device, equipment and storage medium TECHNICAL FIELD

[0001] The present application relates to the technical field of robots, and particularly relates to a map generation method and device, equipment and storage medium. BACKGROUND

[0002] In recent years, various types of robots (such as autonomous mobile robots) have developed rapidly in technology and market. Robots are machines that automatically perform work, and are machines that realize various functions by relying on their own power and control ability. Robots can accept human command, can run pre-programmed programs, and can also act according to strategies formulated by artificial intelligence. For example, a user uses a manual remote controller to control a robot to perform related operations, such as the manual remote controller issuing an operation command to the robot in a wireless manner, and the robot performing the operation specified by the operation command to complete the related function after receiving the operation command.

[0003] With the rapid development of robot technology, robots are increasingly used in logistics, warehousing, factory production and other fields. In these fields, various types of goods can be transported by robots.

[0004] In order to make the robot complete the transportation work, the robot needs to build a map, and SLAM (Simultaneous Localization and Mapping) as a map building method is widely used in various types of robots. The principle of SLAM map construction is that the robot starts moving from an unknown position in an unknown environment, and during the movement, the robot performs self-positioning according to the position and map, and builds an incremental map based on the self-positioning, to realize the autonomous positioning and navigation of the robot.

[0005] SLAM algorithm can construct a dense map or a sparse map. The sparse map has the problem of insufficient information when used for navigation tasks, and the dense map provides a lot of redundant information when used for navigation tasks. In summary, the map constructed by the SLAM algorithm cannot effectively guide the movement of the robot. SUMMARY

[0006] The embodiment of the present application provides a map generation method, the method comprises the following steps: obtaining a fine feasible region corresponding to a robot, the fine feasible region is a region that can be reached by the robot; wherein the fine feasible region comprises a plurality of grid points, for each grid point, if the grid point belongs to an obstacle region, it indicates that the robot collides with the obstacle when being at the grid point, if the grid point belongs to an idle region, it indicates that the robot does not collide with the obstacle when being at the grid point; generating a distance map based on the fine feasible region, the distance map comprises a plurality of grid positions; wherein for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle; generating a basic road network map based on the distance map, the basic road network map comprises a ridge line extracted based on the value of each grid position in the distance map, the ridge line comprises a plurality of topological nodes, for each topological node, the distance from the topological node to the surrounding obstacles is the same; generating a target topological map based on the basic road network map.

[0007] The embodiment of the present application provides a map generation device, the device comprises: an acquisition module, used for acquiring a fine feasible region corresponding to a robot, the fine feasible region is a region that can be reached by the robot; wherein the fine feasible region comprises a plurality of grid points, for each grid point, if the grid point belongs to an obstacle region, it indicates that the robot collides with the obstacle when being at the grid point, if the grid point belongs to an idle region, it indicates that the robot does not collide with the obstacle when being at the grid point; a generation module, used for generating a distance map based on the fine feasible region, the distance map comprises a plurality of grid positions; wherein for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle; generating a basic road network map based on the distance map, the basic road network map comprises a ridge line extracted based on the value of each grid position in the distance map, the ridge line comprises a plurality of topological nodes, for each topological node, the distance from the topological node to the surrounding obstacles is the same; generating a target topological map based on the basic road network map.

[0008] The embodiment of the present application provides an electronic device, comprising: a processor and a machine readable storage medium, the machine readable storage medium stores machine executable instructions capable of being executed by the processor; the processor is used for executing machine executable instructions to realize the map generation method of the above-mentioned embodiment of the present application.

[0009] The embodiment of the present application provides a machine readable storage medium, the machine readable storage medium stores computer instructions, when the computer instructions are executed by a processor, the map generation method of the above-mentioned embodiment of the present application can be realized.

[0010] In the embodiments of the present application, the distance map can be generated based on the fine feasible region corresponding to the robot, the basic road network map can be generated based on the distance map, and the target topological map can be generated based on the basic road network map, so that the feasible region extraction and automatic generation of the topological map can be realized. When the target topological map is used for a navigation task, the target topological map has the advantages of sufficient information and less redundant information, and can effectively guide the movement of the robot. The fine feasible region can be effectively extracted based on the point cloud data and the coverable range model, and efficient full-scene coverage three-dimensional collision detection can be realized. The topological nodes and the topological edges can be automatically extracted based on the feasible region, and the target topological map can be generated by optimization to be sparse and orthogonally normalized. The task nodes can be added to the target topological map by human-computer interaction, the map expansion and task addition can be efficiently and conveniently performed, and the path planning task deployment efficiency can be effectively improved. BRIEF DESCRIPTION OF DRAWINGS

[0011] FIG. 1 is a flowchart of a map generation method according to an embodiment of the present application.

[0012] FIG. 2 is a flowchart of a map generation method according to an embodiment of the present application.

[0013] FIG. 3 is a schematic diagram of an octree grid map according to an embodiment of the present application.

[0014] FIG. 4 is a schematic diagram of a coverable range model according to an embodiment of the present application.

[0015] FIG. 5 is a schematic diagram of a single-pixel width template according to an embodiment of the present application.

[0016] FIG. 6 is a schematic diagram of a branch point and an end point template according to an embodiment of the present application.

[0017] FIG. 7 is a schematic diagram of edge orthogonal normalization according to an embodiment of the present application.

[0018] FIG. 8 is a schematic diagram of a structure of a map generation device according to an embodiment of the present application.

[0019] FIG. 9 is a hardware structure diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0020] A map generation method is provided in the embodiments of the present application, which can be applied to a robot or a control device of the robot. FIG. 1 is a flowchart of the map generation method. As shown in FIG. 1, the method can include steps 101 to 104.

[0021] At step 101, a fine feasible region corresponding to the robot is acquired, the fine feasible region being a region reachable by the robot; wherein the fine feasible region comprises a plurality of grid points, for each grid point, if the grid point belongs to an obstacle region, it indicates that the robot collides with the obstacle when being at the grid point, if the grid point belongs to a free region, it indicates that the robot does not collide with the obstacle when being at the grid point.

[0022] At step 102, a distance map is generated based on the fine feasible region, the distance map comprising 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.

[0023] At step 103, a basic road network map is generated based on the distance map, the basic road network map comprising a ridge line extracted based on the value of each grid position in the distance map, the ridge line comprising a plurality of topological nodes, for each topological node, the distance of the topological node to the surrounding obstacles is the same.

[0024] At step 104, a target topological map is generated based on the basic road network map.

[0025] Illustratively, acquiring the fine feasible region corresponding to the robot can include but is not limited to: collecting point cloud data within a specified scene by the robot, constructing a grid map based on the point cloud data, acquiring an initial feasible region corresponding to the robot based on the grid map, the initial feasible region can comprise a plurality of grid points; acquiring a configured coverable range model corresponding to the robot; for each grid point in the initial feasible region, if the robot is at the grid point, it is determined based on the coverable range model that the robot collides with the obstacle, the grid point is set to belong to the obstacle region; if the robot is at the grid point, it is determined based on the coverable range model that the robot does not collide with the obstacle, the grid point is set to belong to the free region.

[0026] Illustratively, acquiring the initial feasible region corresponding to the robot based on the grid map can include but is not limited to: determining a three-dimensional grid occupied by the driving height interval of the robot in the grid map; projecting the three-dimensional grid to the horizontal ground to obtain a two-dimensional occupancy grid map; performing a graphics processing on the two-dimensional occupancy grid map based on the size of the robot to obtain at least one connected domain, and determining the largest connected domain in the at least one connected domain as the initial feasible region.

[0027] Illustratively, the coverable range model corresponds to the current motion attribute of the robot, and the coverable range model comprises a component convex hull, a direction bounding box and an axis-aligned bounding box; wherein the component convex hull is fitted to surround the robot by a plurality of adjacent triangular facets, the direction bounding box is a minimum circumscribed cube for enveloping the component convex hull, and the axis-aligned bounding box is a minimum axis-aligned circumscribed cube for enveloping the direction bounding box.

[0028] For example, if the robot is at the grid point, the process of determining whether the robot collides with the obstacle or not based on the coverable range model can include but is not limited to: determining whether the axis-aligned bounding box and the obstacle have an overlapping area; if not, it can be determined that the robot does not collide with the obstacle; if yes, further determining whether the directional bounding box and the obstacle have an overlapping area; if not, it can be determined that the robot does not collide with the obstacle; if yes, further determining whether the component convex hull and the obstacle have an overlapping area; if not, it can be determined that the robot does not collide with the obstacle; if yes, it can be determined that the robot collides with the obstacle.

[0029] For example, generating the target topological map based on the base road network map can include but is not limited to: determining candidate topological nodes from the plurality of topological nodes of the ridge line of the base road network map, the candidate topological nodes can include first type topological nodes and / or second type topological nodes; the first type topological nodes are topological nodes with non-single-pixel width, and the second type topological nodes are topological nodes with non-branch points and non-end points; removing the candidate topological nodes from the plurality of topological nodes of the ridge line of the base road network map to obtain a target road network map, the target road network map includes remaining topological nodes other than the candidate topological nodes; generating the target topological map based on the target road network map.

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

[0031] Exemplarily, determining the second type of topological node from the plurality of topological nodes of the ridge line of the base road network map can include but is not limited to: for each topological node of the ridge line, if eight adjacent nodes of the topological node match the configured branch point and endpoint templates, determining that the topological node is not the second type of topological node; if the eight adjacent nodes of the topological node do not match the configured branch point and endpoint templates, determining that the topological node is the 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 left upper adjacent node is not located on the ridge line, the upper adjacent node is not located on the ridge line, the right upper adjacent node is not located on the ridge line, the right adjacent node is not located on the ridge line, the right lower adjacent node is located on the ridge line, the lower adjacent node is not located on the ridge line, the left lower adjacent node is not located on the ridge line, and the left adjacent node is located on the ridge line; the left upper adjacent node is not located on the ridge line, the upper adjacent node is not located on the ridge line, the right upper adjacent node is not located on the ridge line, the right adjacent node is not located on the ridge line, the right lower adjacent node is not located on the ridge line, the lower adjacent node is not located on the ridge line, the left lower adjacent node is not located on the ridge line, and the left adjacent node is located on the ridge line.

[0032] Exemplarily, generating the target topological map based on the target road network map can include but is not limited to: selecting redundant topological nodes from the plurality of topological nodes of the target road network map, the distance between the redundant topological node and any other topological node (any topological node in the target road network map except the redundant topological node) being less than a threshold value, and removing the redundant topological 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, adjusting the coordinates of the adjacent topological nodes so that the edge composed of the adjusted adjacent 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, adjusting the coordinates of the adjacent topological nodes so that the edge composed of the adjusted adjacent topological nodes is on a vertical line; wherein if at least one of the adjacent topological nodes is a turning point, adjusting the coordinates of the at least one of the adjacent topological nodes so that the at least one of the adjacent topological nodes is located in a rotatable area after adjustment, wherein the robot does not collide with the obstacle when rotating in the rotatable area; generating the target topological map based on the adjusted topological nodes, the target topological map including a plurality of topological nodes, the edge composed of adjacent topological nodes being on a horizontal line and / or the edge composed of adjacent topological nodes being on a vertical line.

[0033] In the embodiments of the present application, the distance map can be generated based on the fine feasible region corresponding to the robot, the basic road network map can be generated based on the distance map, and the target topological map can be generated based on the basic road network map, so that the feasible region extraction and automatic generation of the topological map can be realized. When the target topological map is used for a navigation task, it has the advantages of sufficient information and less redundant information, and can effectively guide the movement of the robot. The fine feasible region can be effectively extracted based on the point cloud data and the coverable range model, and efficient full-scene coverage three-dimensional collision detection can be realized. The topological nodes and the topological edges can be automatically extracted based on the feasible region, and the target topological map with sparse and orthogonal norms can be generated, the task nodes can be added to the target topological map through human-computer interaction, the map expansion and task addition can be efficiently and conveniently performed, and the path planning task deployment efficiency can be effectively improved.

[0034] The embodiments of the present application will be described below in combination with specific application scenarios.

[0035] SLAM is widely used in various types of robots as a map construction method. The SLAM algorithm can construct a dense map or a sparse map. When the sparse map is used for a navigation task, it has the problem of insufficient information, and when the dense map is used for a navigation task, it provides a lot of redundant information. As can be seen from the above, when the map constructed by the SLAM algorithm is used, the movement of the robot cannot be effectively guided.

[0036] Therefore, in the embodiments of the present application, a map generation method is proposed, which can effectively extract a fine feasible region based on point cloud data and a coverable range model, generate a distance map based on the fine feasible region, generate a basic road network map based on the distance map, and generate a target topological map based on the basic road network map, so as to generate a target topological map with sparse and orthogonal norms, and effectively improve the path planning task deployment efficiency.

[0037] The embodiments of the present application propose a map generation method, which can be applied to a robot or a control device of the robot. The robot can be an AGV (Automated Guided Vehicle) or other types of robots. FIG. 2 is a flowchart of the map generation method. As shown in FIG. 2, the method includes steps 201 to 209.

[0038] In step 201, the robot collects point cloud data in a specified scene, constructs a grid map based on the point cloud data, and obtains an initial feasible region corresponding to the robot based on the grid map.

[0039] For example, the initial feasible region corresponding to the robot can be obtained by the following steps 2011 to 2014.

[0040] In step 2011, the robot collects point cloud data in a specified scene.

[0041] For example, a radar sensor (such as a lidar, etc.) can be deployed on the robot, and point cloud data within a specified scene (such as the coverage range of the radar sensor) can be periodically collected by the radar sensor.

[0042] For example, the specified scene can be an indoor scene or an outdoor scene, and no limitation is made thereto.

[0043] In step 2012, a grid map is constructed based on the point cloud data.

[0044] For example, the grid map is a grid-based map representation method, in which a map area is divided into uniform grid cells, and each grid cell is assigned specific attribute information. Each grid cell can represent different geographic features, land type, height, obstacles, and the like.

[0045] For example, after the point cloud data is collected, a grid map can be constructed based on the point cloud data, which can include a plurality of grid cells, and the value of each grid cell represents whether there is an obstacle in the grid cell (whether the grid cell has an obstacle is known based on the point cloud data), and no limitation is made to the construction method of the grid map.

[0046] In one possible implementation, the grid map can be an octree grid map or other types of grid maps, and no limitation is made to the type of grid map. Taking the octree grid map as an example for description. Referring to FIG. 3, which is a schematic diagram of an octree grid map. The octree grid map is a three-dimensional map representation structure, which projects point cloud observations along the scanning line into a spatial grid, and uses an octree structure to subdivide the grid, thereby achieving efficient map storage.

[0047] 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 the specified scene is combined with the frame pose, and is projected point by point along the scanning ray to the 3D grid space to generate an octree grid map in an incremental update manner, and the update formula of the octree grid map can be as follows: In the above formula, m is a grid, p(m|z) represents the occupancy probability value of observing z on the grid m, l t (m) is the grid value at time t. Of course, the above is only an example of generating an octree grid map, and no limitation is made to the generation method of the octree grid map.

[0048] The resolution of the octree grid map is consistent with the resolution of the feasible region, and the resolution of the octree grid map is determined by the size of the robot and the motion accuracy of the robot, and no limitation is made thereto. The feasible region represents the area that the robot can reach or drive in the specified scene, and also contains the motion attributes allowed in the area.

[0049] For the octree grid map, each node of the octree saves the center point and size of the node cube, and marks the leaf node index by equally dividing the root node in resolution size, facilitating the access of the leaf node.

[0050] In step 2013, the three-dimensional grid occupied by the travel height interval of the robot in the grid map (such as the octree grid map) is determined, and the three-dimensional grid is projected to the horizontal ground to obtain a two-dimensional occupancy grid map.

[0051] For example, the travel 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 represent the height of the ground) is height value A, and the robot height (used to represent the height of the robot) is height value B, then the travel height interval of the robot is from height value A to (height value A + height value B), that is, the robot occupies this travel height interval.

[0052] For example, after obtaining the travel height interval, the grid map can be traversed to find the three-dimensional grid (i.e., 3D grid) occupied by the travel height interval in the grid map, and then the three-dimensional grid can be projected to the horizontal ground to obtain a two-dimensional occupancy grid map (i.e., 2D occupancy grid map).

[0053] In step 2014, the two-dimensional occupancy grid map is subjected to graphic processing based on the size of the robot to obtain at least one connected domain, and the largest connected domain in the at least one connected domain is determined as the initial feasible region corresponding to the robot.

[0054] For example, after obtaining the two-dimensional occupancy grid map, the two-dimensional occupancy grid map can be subjected to graphic processing such as idle area inflation and convolution erosion according to the two-dimensional size of the robot (i.e., the length of the robot and the width of the robot), so as to eliminate outliers, burrs and noises. After the graphic processing of the two-dimensional occupancy grid map, 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 is taken as the initial feasible region (initial 2D feasible region).

[0055] For example, the initial feasible region can include a plurality of grid points (each grid point can correspond to a grid cell), that is, the initial feasible region is divided into a plurality of grid points, and the initial feasible region is a region that the robot can reach or a region that the robot can travel. For each grid point, the value of the grid point can be a first value (such as 1), and the first value indicates that the grid point belongs to a free region, that is, when the robot is in the grid point, the robot does not collide with the obstacle. Alternatively, for each grid point, the value of the grid point can be a second value (such as 0), and the second value indicates that the grid point belongs to an obstacle region, that is, when the robot is in the grid point, the robot collides with the obstacle. For the grid points of the initial feasible region, the values of the grid points are only initial values, and the values of the grid points will be adjusted based on the collision detection results subsequently.

[0056] In summary, the initial feasible region corresponding to the robot can be obtained based on the grid map, and the initial feasible region can include a plurality of grid points, and the value of each grid point can indicate that the grid point belongs to an obstacle region, or the value of each grid point can indicate that the grid point belongs to a free region.

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

[0058] In step 202, a configured coverable range model corresponding to the robot is obtained.

[0059] For example, the coverable range model corresponds to the current motion attribute of the robot. For example, a coverable range model b1 corresponding to a motion attribute a1, a coverable range model b2 corresponding to a motion attribute a2, a coverable range model b3 corresponding to a motion attribute a3, and the like can be preconfigured. If the current motion attribute of the robot is the motion attribute a1, the coverable range model b1 can be obtained, and subsequent collision detection can be performed based on the coverable range model b1. If the current motion attribute of the robot is the motion attribute a2, the coverable range model b2 can be obtained, and subsequent collision detection can be performed based on the coverable range model b2, and the like.

[0060] The motion attribute can represent the moving direction of the robot, and can include but is not limited to a forward-backward attribute (that is, the robot can move forward or backward), a left-right attribute (that is, the robot can move left or right), and a rotation attribute (that is, the robot rotates in place), without limitation to the motion attribute.

[0061] The current motion attribute of the robot represents the motion attribute when the robot moves in the initial feasible region, such as moving forward or backward in the initial feasible region, and the current motion attribute of the robot is the forward-backward attribute, such as rotating in place in the initial feasible region, and the current motion attribute of the robot is the rotation attribute.

[0062] The example coverable range model can be a simplified representation of the robot model, and the coverable range model can be designed through an.obj file, which is a file format of 3D model files, and the design process of the coverable range model is not limited. The coverable range model can include a part convex hull, an oriented bounding box, and an axis-aligned bounding box. The part 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 oriented bounding box is the intermediate-grained collision detection primitive.

[0063] FIG. 4 is a schematic diagram of the coverable range model. Referring to FIG. 4, the deepest layer is the part convex hull, which is used as a collision detection primitive. The part convex hull can be referred to as a convex hull. The part convex hull is fitted to surround the robot through a plurality of adjacent triangular facets. The part convex hull is a method for representing a convex polyhedron, which is used in three-dimensional reconstruction and collision detection. The part convex hull is used to surround a complex three-dimensional model by fitting a plurality of adjacent triangular facets to achieve the effect of a simplified model. In this example, the part convex hull can be obtained by fitting a plurality of adjacent triangular facets to surround the robot. The acquisition of the part convex hull is not limited and can be configured.

[0064] The second layer of collision detection primitives is the oriented bounding box, which can be referred to as an OBB (Oriented Bounding Box). The oriented bounding box is the smallest circumscribed cube for the part convex hull. The outermost layer of collision detection primitives is the axis-aligned bounding box, which can be referred to as an AABB (Axis Aligned Bounding Box). The axis-aligned bounding box is the smallest axis-aligned circumscribed cube for the oriented bounding box.

[0065] At this point, step 202 is completed, and the coverable range model corresponding to the current motion attribute of the robot is obtained.

[0066] In step 203, a fine feasible region corresponding to the robot is obtained based on the initial feasible region and the coverable range model.

[0067] The example can use the coverable range model to perform collision detection on each grid point of the initial feasible region. Based on the collision detection result, it is determined that the grid point belongs to an obstacle region, or based on the collision detection result, it is determined that the grid point belongs to an idle region. In this way, the initial feasible region can be adjusted to a fine feasible region.

[0068] For example, for each grid point in the initial feasible region, if the robot is at the grid point, it is determined based on the coverable range model whether the robot collides with the obstacle. If the robot collides with the obstacle, the grid point is set to belong to the obstacle region. Alternatively, for each grid point in the initial feasible region, if the robot is at the grid point, it is determined based on the coverable range model whether the robot does not collide with the obstacle. If the robot does not collide with the obstacle, the grid point is set to belong to the free region.

[0069] For example, the initial feasible region includes a plurality of grid points. For each grid point, it is determined based on the coverable range model whether the robot collides with the obstacle when the robot is at the grid point (i.e., collision detection). If the robot collides with the obstacle when the robot is at the grid point, it is determined that the grid point belongs to the obstacle region. If the robot does not collide with the obstacle when the robot is at the grid point, it is determined that the grid point belongs to the free region.

[0070] For each grid point of the initial feasible region, if the grid point belongs to the obstacle region, a value of the grid point is set to a second value (e.g., 0), and the second value indicates that the grid point belongs to the obstacle region, i.e., the robot collides with the obstacle when the robot is at the grid point. If the grid point belongs to the free region, the value of the grid point is set to a first value (e.g., 1), and the first value indicates that the grid point belongs to the free region, i.e., the robot does not collide with the obstacle when the robot is at the grid point.

[0071] For example, after the above processing is performed on each grid point of the initial feasible region, the feasible region after the processing can be referred to as a refined feasible region, and the refined feasible region is a region that the robot can reach or a drivable region. For example, the refined feasible region can include a plurality of grid points. For each grid point, if the grid point belongs to the obstacle region (e.g., the value of the grid point is the second value), it indicates that the robot collides with the obstacle when the robot is at the grid point. If the grid point belongs to the free region (e.g., the value of the grid point is the first value), it indicates that the robot does not collide with the obstacle when the robot is at the grid point.

[0072] For example, when performing collision detection on each grid point of the initial feasible region using the coverable range model, each grid point of the initial feasible region can be traversed in turn, such as using a quadtree method to traverse each grid point of the initial feasible region. For the currently traversed grid point, a center of a part convex hull of the coverable range model is aligned with a center of the grid point. In addition, each grid point of the initial feasible region corresponds to a grid cell in a grid map (e.g., an octree grid map), and a value of the grid cell indicates whether the grid cell has an obstacle or does not have an obstacle. Therefore, each grid point of the initial feasible region can have an obstacle or not have an obstacle.

[0073] Based on this, for the current traversed grid point: whether the axis-aligned bounding box of the coverable range model and the obstacle exist an overlapping region can be determined. For example, if the axis-aligned bounding box and the grid point where the obstacle exists have an overlapping region, it indicates that the axis-aligned bounding box and the obstacle exist an overlapping region, and if the axis-aligned bounding box and the grid point where the obstacle exists do not have an overlapping region, it indicates that the axis-aligned bounding box and the obstacle do not exist an overlapping region.

[0074] If the axis-aligned bounding box of the coverable range model and the obstacle do not exist an overlapping region, it can be determined that the robot and the obstacle do not collide, that is, the robot does not collide with the obstacle when it is at the grid point, and therefore it can be determined that the grid point belongs to the idle region.

[0075] If the axis-aligned bounding box of the coverable range model and the obstacle exist an overlapping region, it can be further determined whether the directional bounding box of the coverable range model and the obstacle exist an overlapping region. For example, if the directional bounding box and the grid point where the obstacle exists have an overlapping region, it indicates that the directional bounding box and the obstacle exist an overlapping region, and if the directional bounding box and the grid point where the obstacle exists do not have an overlapping region, it indicates that the directional bounding box and the obstacle do not exist an overlapping region.

[0076] If the directional bounding box of the coverable range model and the obstacle do not exist an overlapping region, it can be determined that the robot and the obstacle do not collide, that is, the robot does not collide with the obstacle when it is at the grid point, and therefore it can be determined that the grid point belongs to the idle region.

[0077] If the directional bounding box of the coverable range model and the obstacle exist an overlapping region, it can be further determined whether the component convex hull of the coverable range model and the obstacle exist an overlapping region. For example, if the component convex hull and the grid point where the obstacle exists have an overlapping region, it can indicate that the component convex hull and the obstacle exist an overlapping region, and if the component convex hull and the grid point where the obstacle exists do not have an overlapping region, it can indicate that the component convex hull and the obstacle do not exist an overlapping region.

[0078] If the component convex hull of the coverable range model and the obstacle do not exist an overlapping region, it can be determined that the robot and the obstacle do not collide, that is, the robot does not collide with the obstacle when it is at the grid point, and therefore it can be determined that the grid point belongs to the idle region.

[0079] If the component convex hull of the coverable range model and the obstacle exist an overlapping region, it can be determined that the robot and the obstacle collide, that is, the robot collides with the obstacle when it is at the grid point, and therefore it can be determined that the grid point belongs to the obstacle region.

[0080] As can be seen from step 201, the initial feasible region corresponding to the robot is obtained based on the grid map, and as can be seen from step 203, collision detection is performed on each grid point of the initial feasible region based on the grid map, that is, both the collision detection and the initial feasible region extraction depend on the grid map. In addition, before performing collision detection on the grid points, the initial feasible region can be determined to eliminate the absolutely infeasible region and reduce the number of times of collision detection.

[0081] In a possible implementation, after obtaining the fine feasible region, the fine feasible region can also be assigned with a feasible region motion attribute. For example, if the covering range model b1 corresponding to the motion attribute a1 is used for collision detection, the feasible region motion attribute of the fine feasible region is the motion attribute a1.

[0082] At this point, step 203 is completed, and the fine feasible region corresponding to the robot can be obtained.

[0083] In step 204, a distance map is generated based on the fine feasible region. The distance map includes 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.

[0084] For example, the fine feasible region can be understood as a grid map. The fine feasible region includes a plurality of grid points (each grid point corresponds to a grid cell). Each grid point belongs to an obstacle region or a free region. The distance map can also be understood as a grid map. The size of the distance map is the same as that of the fine feasible region. The distance map includes a plurality of grid positions (each grid position corresponds to a grid cell). The plurality of grid positions in the distance map correspond to the plurality of grid points in the fine feasible region one by one, that is, the grid positions and the grid points have a corresponding relationship.

[0085] For each grid position in the distance map, a grid point corresponding to the grid position is found from the fine feasible region. If the grid point belongs to the obstacle region, 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 free region, since it is known that each grid point in the fine feasible region belongs to the obstacle region or the free region, the distance between the grid point and the nearest obstacle (i.e., the grid point belonging to the obstacle region) 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.

[0086] In one possible implementation, the fine feasible region is understood as a two-dimensional image (i.e. a grid map), which is generated online by the above steps or obtained offline. The grid points belonging to the obstacle region in the fine feasible region can be regarded as obstacle grids, and the grid points belonging to the free region in the fine feasible region can be regarded as free grids. Starting from the obstacle grids of the fine feasible region, the distance from the free grids to the nearest obstacle grids is calculated layer by layer using the wave method, which covers all the fine feasible region, and finally a distance map is obtained, which includes a plurality of grid positions (free grids and obstacle grids), and for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle.

[0087] When the distance from the free grids to the nearest obstacle grids is calculated layer by layer using the wave method, the propagation mode can be four-neighbor or eight-neighbor, and there is no limitation on the propagation mode.

[0088] So far, step 204 is completed, and the distance map corresponding to the fine feasible region can be obtained.

[0089] In step 205, a basic road network map is generated based on the distance map, which can include the ridge line extracted based on the distance map, and the ridge line includes a plurality of topological nodes, and for each topological node, the distance from the topological node to the surrounding obstacles is the same.

[0090] For example, in order to meet the needs of multi-objective path planning, the Voronoi diagram of the fine feasible region can be extracted as the basic road network map. For example, the Voronoi diagram can be obtained by extracting the ridge line based on the distance map, and the Voronoi diagram is taken as the basic road network map. The ridge line of the Voronoi diagram is the meeting point of two or more waves, so the distance from the point (topological node) on the ridge line to the surrounding obstacles is the same. The Voronoi diagram is a graph structure for multi-objective global path planning, and each topological node on the Voronoi diagram is far away from the surrounding obstacles, and the distance to the nearest obstacles is the same.

[0091] For example, in the distance map, the value of each grid position represents the distance between the grid position and the nearest obstacle, and based on the distance between each grid position and the nearest obstacle, the ridge line can be extracted based on the distance map, the ridge line includes a plurality of 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 the surrounding obstacles.

[0092] After the ridge line is extracted, the basic road network map (Voronoi diagram) can be generated based on the ridge line, and the basic road network map can include the ridge line, and the ridge line can include a plurality of topological nodes.

[0093] So far, the step 205 is completed, and the basic road network graph corresponding to the fine feasible region is obtained.

[0094] In step 206, the first type of topological node is determined from the plurality of topological nodes of the ridge line of the basic road network graph, and the first type of topological node is a non-single-pixel-width topological node. For example, for each topological node, if the width of the ridge line at the topological node is unique, the topological node is a single-pixel-width topological node, and if the width of the ridge line at the topological node is not unique, the topological node is a non-single-pixel-width topological node.

[0095] For example, the ridge line of the basic road network graph is a thin line but not a single-pixel-width thin line. In order to facilitate subsequent topological node extraction and edge backtracking, the plurality of topological nodes of the basic road network graph can be optimized. For example, the first type of topological node can be determined from the plurality of topological nodes of the ridge line, the first type of topological node is removed from the ridge line, thereby removing the non-single-pixel-width topological node, and the basic road network graph is optimized.

[0096] For example, for each topological node of the ridge line, if the eight neighborhood nodes of the topological node match the single-pixel-width template, the topological node is determined to be the first type of topological node. If the eight neighborhood nodes of the topological node do not match the single-pixel-width template, the topological node is determined to be not the first type of topological node. After the above processing is performed on each topological node of the ridge line, all first type of topological nodes can be determined.

[0097] FIG. 5 is a schematic diagram of a single-pixel-width template. When the eight neighborhood nodes of a topological node match any single-pixel-width template of FIG. 5, it means that the topological node is the first type of topological node, and the topological node needs to be removed from all topological nodes of the ridge line. Based on the above processing, it can be ensured that the remaining topological nodes of the ridge line of the basic road network graph are all refined to eight-neighborhood single-pixel-width. The single-pixel-width template can include a top-left neighborhood node, a top neighborhood node (i.e., a top middle neighborhood node, and the same below), a top-right neighborhood node, a right neighborhood node (i.e., a right middle neighborhood node, and the same below), a bottom-right neighborhood node, a bottom neighborhood node (i.e., a bottom middle neighborhood node, and the same below), a bottom-left neighborhood node, and a left neighborhood node (i.e., a left middle neighborhood node, and the same below).

[0098] The single-pixel width template on the left upper side of FIG. 5 can be represented as: the left upper side neighborhood node is not located on the ridge line, the upper side neighborhood node is not located on the ridge line, the right upper side neighborhood node is located on the ridge line, the right side neighborhood node is located on the ridge line, the right lower side neighborhood node is located on the ridge line, the lower side neighborhood node is located on the ridge line, the left lower side neighborhood node is located on the ridge line, and the left side neighborhood node is located on the ridge line. The single-pixel width template on the upper middle side of FIG. 5 can be represented as: the left upper side neighborhood node is not located on the ridge line, the upper side neighborhood node is not located on the ridge line, the right upper side neighborhood node is not located on the ridge line, the right side neighborhood node is not located on the ridge line, the right lower side neighborhood node is not located on the ridge line, the lower side neighborhood node is located on the ridge line, the left lower side neighborhood node is located on the ridge line, and the left side neighborhood node is located on the ridge line. The single-pixel width template on the right upper side of FIG. 5 can be represented as: the left upper side neighborhood node is located on the ridge line, the upper side neighborhood node is located on the ridge line, the right upper side neighborhood node is not located on the ridge line, the right side neighborhood node is not located on the ridge line, the right lower side neighborhood node is not located on the ridge line, the lower side neighborhood node is located on the ridge line, the left lower side neighborhood node is located on the ridge line, and the left side neighborhood node is located on the ridge line.

[0099] The single-pixel width template on the left upper side of FIG. 5 can be represented as: the left upper side neighborhood node is not located on the ridge line, the upper side neighborhood node is not located on the ridge line, the right upper side neighborhood node is located on the ridge line, the right side neighborhood node is located on the ridge line, the right lower side neighborhood node is located on the ridge line, the lower side neighborhood node is located on the ridge line, the left lower side neighborhood node is located on the ridge line, and the left side neighborhood node is located on the ridge line. The single-pixel width template on the upper middle side of FIG. 5 can be represented as: the left upper side neighborhood node is not located on the ridge line, the upper side neighborhood node is not located on the ridge line, the right upper side neighborhood node is not located on the ridge line, the right side neighborhood node is not located on the ridge line, the right lower side neighborhood node is not located on the ridge line, the lower side neighborhood node is located on the ridge line, the left lower side neighborhood node is located on the ridge line, and the left side neighborhood node is located on the ridge line. The single-pixel width template on the right upper side of FIG. 5 can be represented as: the left upper side neighborhood node is not located on the ridge line, the upper side neighborhood node is not located on the ridge line, the right upper side neighborhood node is not located on the ridge line, the right side neighborhood node is not located on the ridge line, the right lower side neighborhood node is not located on the ridge line, the lower side neighborhood node is located on the ridge line, the left lower side neighborhood node is located on the ridge line, and the left side neighborhood node is located on the ridge line.

[0100] In step 207, a second type of topological node is determined from the plurality of topological nodes of the ridge line of the basic road network map, and the second type of topological node is a topological node that is neither a branch point nor an end point, i.e., the second type of topological node does not belong to a branch point of the ridge line, and the second type of topological node does not belong to an end point of the ridge line.

[0101] For example, each node of the basic road network graph is a topological node, and adjacent nodes form edges. The topological nodes and edges of the basic road network graph are too dense to meet the sparse characteristics of the topological map, and are inefficient and non-standard in path planning. Therefore, the basic road network graph needs to be processed to obtain a sparse topological graph. For example, branch points and end points can be extracted from the basic road network graph as topological nodes, that is, the topological nodes of the branch points and end points are retained, and conversely, non-branch points and non-end points can be removed. Therefore, the second type of topological nodes (non-branch points and non-end points) can be determined from the plurality of topological nodes of the ridge line, and the second type of topological nodes can be removed from the ridge line.

[0102] For example, for each topological node of the ridge line, if the eight adjacent nodes of the topological node match the branch point and end point template, it is determined that the topological node is not a second type of topological node (that is, the topological node is a branch point and / or an end point). If the eight adjacent nodes of the topological node do not match the branch point and end point template, it is determined that the topological node is a second type of topological node (that is, the topological node is a non-branch point and a non-end point). After the above processing is performed on each topological node of the ridge line, all second type of topological nodes can be determined.

[0103] FIG. 6 is a schematic diagram of a branch point and end point template. When the eight adjacent nodes of a topological node do not match all the branch point and end point templates of FIG. 6, it means that the topological node is a second type of topological node, and the topological node needs to be removed from all the topological nodes of the ridge line. The branch point and end point template can include a left upper adjacent node, an upper adjacent node (i.e., an upper middle adjacent node, and the same below), a right upper adjacent node, a right adjacent node (i.e., a right middle adjacent node, and the same below), a right lower adjacent node, a lower adjacent node (i.e., a lower middle adjacent node, and the same below), a left lower adjacent node, and a left adjacent node (i.e., a left middle adjacent node, and the same below).

[0104] The branch point and end point template on the left side of FIG. 6 can be represented as: the left upper adjacent node is not located on the ridge line, the upper adjacent node is not located on the ridge line, the right upper adjacent node is not located on the ridge line, the right adjacent node is not located on the ridge line, the right lower adjacent node is located on the ridge line, the lower adjacent node is not located on the ridge line, the left lower adjacent node is not located on the ridge line, and the left adjacent node is located on the ridge line. In addition, the branch point and end point template on the right side of FIG. 6 can be represented as: the left upper adjacent node is not located on the ridge line, the upper adjacent node is not located on the ridge line, the right upper adjacent node is not located on the ridge line, the right adjacent node is not located on the ridge line, the right lower adjacent node is not located on the ridge line, the lower adjacent node is not located on the ridge line, the left lower adjacent node is not located on the ridge line, and the left adjacent node is located on the ridge line.

[0105] In step 208, the first type of topological node and the second type of topological node are removed from the plurality of topological nodes of the ridge line of the base road network graph, and a target road network graph is obtained, the target road network graph includes a ridge line, and the ridge line can include remaining topological nodes other than the first type of topological node and the second type of topological node.

[0106] For example, for the ridge line of the target road network graph, the topological nodes of non-single-pixel width are removed, and the topological nodes of non-branch points and non-end points are removed, so that the ridge line is left with topological nodes of single-pixel width, and these topological nodes are topological nodes of branch points and end points, that is, the branch points and the end points are extracted as topological nodes. Starting from each topological node, the next topological node is found by tracing along the eight-neighborhood of the target road network graph (Voronoi graph), and the connection between the two topological nodes obtains an edge, and the topological nodes along the way are all points on the edge.

[0107] In step 209, a target topological map is generated based on the target road network graph.

[0108] In one possible implementation, the target road network graph includes a plurality of topological nodes (remaining topological nodes other than the first type of topological node and the second type of topological node), and the target road network graph can be used as the target topological map, or the target road network graph can be optimized, and the optimized target road network graph can be used as the target topological map. In summary, the target topological map can include a plurality of topological nodes, and the topological nodes 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, and the target topological road network is a graph structure representing the connected relationship between nodes in a scene, and the nodes represent turning points or task points, and the edges represent connected paths between nodes.

[0109] For example, when the target road network graph is optimized and the optimized target road network graph is used as the target topological map, the following steps 2091 to 2093 can be used to generate the target topological map.

[0110] In step 2091, redundant topological nodes are selected from the plurality of 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 value, and the redundant topological nodes are removed to obtain a sparse road network graph.

[0111] 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 the target road network graph includes redundant topological nodes with similar distances, the edge formed by the redundant topological nodes with similar distances is relatively short. Based on this, the redundant topological nodes in the target road network graph are traversed, and the redundant topological nodes are removed. After the redundant topological nodes are removed, the edge formed by two adjacent topological nodes is not too short. Therefore, the redundant topological nodes and the short edge in the target road network graph are removed, and a sparse road network graph (that is, a sparse topological map) is obtained, so that there are no redundant topological nodes and short edges.

[0112] When the redundant topological nodes in the target road network graph are traversed, each topological node can be traversed in sequence. When the current topological node is traversed, if the distance between the topological node and the traversed topological node is less than a threshold value, the topological node is regarded as a redundant topological node. Alternatively, if the distance between the topological node and the traversed topological node is not less than the threshold value, the topological node is not regarded as a redundant topological node.

[0113] Exemplarily, before the redundant topological nodes are selected from the multiple topological nodes of the target road network graph, for the target road network graph, when the curvature of the curve edge formed by the multiple topological nodes in a certain direction is greater than a threshold value, a topological node can also be added to the target road network graph, so as to split the curve edge into multiple straight line edges. At this time, the generated topological road network is composed of straight lines, and there are many redundant topological nodes with similar distances and short edges in the topological road network. The topological road network is traversed to remove the redundant topological nodes and the short edges, and a sparse road network graph is obtained. On this basis, the sparse road network graph can be obtained by fitting each edge with a straight line, that is, the redundant topological nodes are selected from the multiple topological nodes of the target road network graph, and the sparse road network graph is obtained by removing the redundant topological nodes.

[0114] In step 2092, the topological nodes in the sparse road network graph are optimized to obtain optimized topological nodes.

[0115] Exemplarily, when the topological nodes in the sparse road network graph are optimized, the coordinates of the topological nodes in the sparse road network graph can be adjusted, so that the edges formed by the optimized topological nodes are orthogonal and normalized.

[0116] The slope of the edge formed by the adjacent topological nodes in the sparse road network graph can be calculated. If the slope is less than a first slope threshold value (which can be configured according to experience), it indicates 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 formed by the adjusted adjacent topological nodes is on a horizontal line.

[0117] The slope of the edge formed by the adjacent topological nodes in the sparse road network map can be calculated. If the slope is greater than a second slope threshold (which can be configured empirically), it indicates that the type of the edge is vertical. On this basis, the coordinates of the adjacent topological nodes can be adjusted so that the edge formed by the adjusted adjacent topological nodes is on a vertical line.

[0118] The second slope threshold can be greater than the first slope threshold. The slope of the edge formed by the adjacent topological nodes in the sparse road network map can be calculated. If the slope is greater than or equal to the first slope threshold and less than or equal to the second slope threshold, it indicates that the type of the edge is inclined. On this basis, the coordinates of the adjacent topological nodes can be adjusted so that the edge formed by the adjusted adjacent topological nodes is on a horizontal line, or the coordinates of the adjacent topological nodes can also be adjusted so that the edge formed by the adjusted adjacent topological nodes is on a vertical line.

[0119] For example, since the running trajectory of the robot is a horizontal and vertical orthogonal route, the topological nodes in the sparse road network map can be optimized so that the edges formed by the topological nodes are orthogonal. For example, for the edges formed by the adjacent topological nodes, based on the slope of each edge and the slope threshold, the edges are divided into three types: 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 greater than or equal to the first slope threshold and less than or equal to the second slope threshold, the type of the edge is inclined.

[0120] Based on the type of the edge, the coordinates of the topological nodes can be adjusted in different cases so that the local similar edges are on the same horizontal line or so that the local similar edges are on the same vertical line. For example, FIG. 7 is a schematic diagram of orthogonal edges. As can be seen from FIG. 7, for the topological nodes whose type of edge 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 the topological nodes whose type of edge 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.

[0121] In a possible implementation, if the topological node is a turning point (i.e., when the robot is at the topological node, the moving direction of the robot changes), when adjusting the coordinates of the topological node, the adjusted topological node needs to be located in the rotatable region. For example, when adjusting the coordinates of the topological node so that the edge formed by the topological node is on a horizontal line, if the adjusted topological node is not located in the rotatable region, the adjustment can be continued to the left or to the right until the adjusted topological node is located in the rotatable region. Similarly, when adjusting the coordinates of the topological node so that the edge formed by the topological node is on a vertical line, if the adjusted topological node is not located in the rotatable region, the adjustment can be continued upwards or downwards until the adjusted topological node is located in the rotatable region.

[0122] If the type of the edge is the inclined type, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted adjacent topological nodes is in a horizontal line. If the adjusted adjacent topological nodes are not located in the rotatable region, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted adjacent topological nodes is in a vertical line and the adjusted adjacent topological nodes are located in the rotatable region. Or, if the type of the edge is the inclined type, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted adjacent topological nodes is in a vertical line. If the adjusted adjacent topological nodes are not located in the rotatable region, the coordinates of the adjacent topological nodes are adjusted so that the edge composed of the adjusted adjacent topological nodes is in a horizontal line and the adjusted adjacent topological nodes are located in the rotatable region.

[0123] In a possible implementation, the definition of the rotatable region can be that the robot does not collide with the obstacle when rotating in place in the rotatable region. Based on this, the adjusted topological nodes need to be located in the rotatable region means that, if the robot does not collide with the obstacle when rotating at the adjusted topological nodes, the adjusted topological nodes are located in the rotatable region, otherwise, if the robot collides with the obstacle when rotating at the adjusted topological nodes, the adjusted topological nodes are not located in the rotatable region.

[0124] In step 2093, the target topological map is generated based on the optimized topological nodes, that is, after the topological nodes in the sparse road network map are optimized, the optimized sparse road network map is taken as the target topological map.

[0125] For example, after the topological nodes in the sparse road network map are optimized, the edges composed of the optimized topological nodes can be orthogonally normalized, and the optimized sparse road network map can be taken as the target topological map. The target topological map can include a plurality of topological nodes (i.e., the optimized topological nodes), 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.

[0126] After the target topological map is obtained, the target topological map can be taken as the backbone topological road network, and the backbone topological road network is output. Alternatively, after the target topological map is obtained, the redundant point checking, merging and deleting can be performed again, for example, the redundant topological nodes are selected from the plurality of topological nodes of the target topological map, the distance between the redundant topological nodes and the remaining topological nodes is less than a threshold, the redundant topological nodes are removed, and after the above processing, the processed target topological map is taken as the backbone topological road network, and the backbone topological road network is output.

[0127] Exemplarily, after obtaining the backbone topology road network, the task nodes can be selected in the feasible domain range and added to the backbone topology road network in proximity, for example, the feasible domain is superimposed on the backbone topology road network to display, and the task nodes are selected interactively. In addition, each task node searches for a nearest backbone topology path, calculates a shortest route to the path, creates a new node and an edge, and adds them to the backbone topology road network to obtain a complete topology road network.

[0128] In the embodiments of the present application, an automatic feasible domain extraction method is proposed, which can effectively extract a fine feasible domain based on point cloud data and a coverable range model, and realize efficient full-scene coverage three-dimensional collision detection. In the automatic feasible domain extraction method, a quadtree and a multi-motion model (i.e., a coverable range model) strategy is used to realize efficient full-scene coverage three-dimensional collision detection, extract the motion attributes of the feasible domain, and realize automatic partitioning of rotation and linear motion. A topology road network automatic generation method is proposed, which can automatically extract topology nodes and topology edges based on a feasible domain grid map, and optimize generation of a sparse and orthogonal standard backbone topology road network. Task nodes can be added to a target topology map by human-computer interaction, which efficiently and conveniently expands the map and adds tasks, and effectively improves the path planning task deployment efficiency.

[0129] Based on the same application concept as the above method, a map generation device is proposed in the embodiments of the present application. FIG. 8 is a structural schematic diagram of the map generation device. Referring to FIG. 8, the device can include an acquisition module 81 and a generation module 82.

[0130] The acquisition module 81 is configured to acquire a fine feasible domain corresponding to a robot, the fine feasible domain being a region reachable by the robot; the fine feasible domain includes a plurality of grid points, for each grid point, if the grid point belongs to an obstacle region, it indicates that the robot collides with the obstacle when being at the grid point, and if the grid point belongs to an idle region, it indicates that the robot does not collide with the obstacle when being at the grid point.

[0131] The generation module 82 is configured to generate a distance map based on the fine feasible domain, the distance map including 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, the basic road network map including a ridge line extracted based on the value of each grid position in the distance map, the ridge line including a plurality of topology nodes, for each topology node, the distance of the topology node to a plurality of surrounding obstacles is the same; and generate a target topology map based on the basic road network map.

[0132] Illustratively, the acquisition module 81 acquires the fine feasible region corresponding to the robot, specifically for: collecting point cloud data in a specified scene by the robot, constructing a grid map based on the point cloud data, and acquiring an initial feasible region corresponding to the robot based on the grid map; acquiring a configured coverable range model corresponding to the robot; for each grid point in the initial feasible region, if the robot is at the grid point, determining whether the robot collides with the obstacle based on the coverable range model, if yes, setting the grid point as belonging to the obstacle region; if no, setting the grid point as belonging to the idle region.

[0133] Illustratively, the acquisition module 81 acquires the initial feasible region corresponding to the robot based on the grid map, specifically for: determining a three-dimensional grid (i.e., 3D grid) occupied by the driving height interval of the robot in the grid map; projecting the three-dimensional grid to the horizontal ground to obtain a two-dimensional occupancy grid map; performing a graphic processing on the two-dimensional occupancy grid map based on the size of the robot to obtain at least one connected domain, and determining the largest connected domain in the at least one connected domain as the initial feasible region.

[0134] Illustratively, the coverable range model corresponds to the current motion attribute of the robot, and the coverable 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 surround the robot by a plurality of adjacent triangular facets, the direction bounding box is a minimum circumscribed cube for enveloping the component convex hull, and the axis-aligned bounding box is a minimum axis-aligned circumscribed cube for enveloping the direction bounding box.

[0135] When the acquisition module 81 determines whether the robot collides with the obstacle based on the coverable range model, or determines whether the robot does not collide with the obstacle based on the coverable range model, it is 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 yes, 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 yes, 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 yes, determining that the robot collides with the obstacle.

[0136] Illustratively, the generating module 82 is specifically configured to generate the target topology map based on the basic road network map as follows. First, candidate topology nodes are determined from the plurality of topology nodes of the ridge line of the basic road network map. The candidate topology nodes include first-type topology nodes and / or second-type topology nodes. The first-type topology nodes are topology nodes that are not single-pixel wide. The second-type topology nodes are topology nodes that are not branch points and not end points. Second, the candidate topology nodes are removed from the plurality of topology nodes of the ridge line of the basic road network map, to obtain a target road network map. The target road network map includes remaining topology nodes other than the candidate topology nodes. Third, the target topology map is generated based on the target road network map.

[0137] Exemplarily, the candidate topological node is a first type of topological node, and the generating module 82 is specifically configured to: for each topological node of the ridge line, if eight neighbor nodes of the topological node match a configured single-pixel width template, determine that the topological node is a first type of topological node; if the eight neighbor nodes of the topological node do not match the configured single-pixel width template, determine that the topological node is not a first type of topological node; wherein the single-pixel width template comprises a left upper neighbor node, an upper neighbor node, a right upper neighbor node, a right neighbor node, a right lower neighbor node, a lower neighbor node, a left lower neighbor node and a left neighbor node; the single-pixel width template comprises at least one of the following templates: the left upper neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the right upper neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the right lower neighbor node is located on the ridge line, the lower neighbor node is located on the ridge line, the left lower neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; the left upper neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the right upper neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the right lower neighbor node is not located on the ridge line, the lower neighbor node is located on the ridge line, the left lower neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; the left upper neighbor node is located on the ridge line, the upper neighbor node is located on the ridge line, the right upper neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the right lower neighbor node is not located on the ridge line, the lower neighbor node is located on the ridge line, the left lower neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; the left upper neighbor node is located on the ridge line, the upper neighbor node is located on the ridge line, the right upper neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the right lower neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the left lower neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; the left upper neighbor node is not located on the ridge line, the upper neighbor node is located on the ridge line, the right upper neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the right lower neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the left lower neighbor node is not located on the ridge line, and the left neighbor node is not located on the ridge line; and the left upper neighbor node is not located on the ridge line, the upper neighbor node is located on the ridge line, the right upper neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the right lower neighbor node is located on the ridge line, the lower neighbor node is located on the ridge line, the left lower neighbor node is not located on the ridge line, and the left neighbor node is not located on the ridge line.

[0138] Exemplarily, the candidate topological node is a second type of topological node, and the generating module is specifically configured to: for each topological node of the ridge line, if eight neighbor 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 neighbor 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 a left upper neighbor node, an upper neighbor node, a right upper neighbor node, a right neighbor node, a right lower neighbor node, a lower neighbor node, a left lower neighbor node, and a left neighbor node; the branch point and endpoint template includes at least one of the following templates: the left upper neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the right upper neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the right lower neighbor node is located on the ridge line, the lower neighbor node is not located on the ridge line, the left lower neighbor node is not located on the ridge line, and the left neighbor node is located on the ridge line; the left upper neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the right upper neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the right lower neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the left lower neighbor node is not located on the ridge line, and the left neighbor node is located on the ridge line.

[0139] Exemplarily, the generating module is specifically configured to: select redundant topological nodes from the plurality of topological nodes of the target road network map, the distance between the redundant topological nodes and any other topological node is less than a threshold value, remove the redundant topological nodes to obtain a sparse road network map; if the slope of an edge composed of adjacent topological nodes in the sparse road network map is less than a first slope threshold, adjust the coordinates of the adjacent topological nodes so that the edge composed of the adjusted adjacent topological nodes is on a horizontal line; if the slope of the edge composed of the adjacent topological nodes in the sparse road network map is greater than a second slope threshold, adjust the coordinates of the adjacent topological nodes so that the edge composed of the adjusted adjacent topological nodes is on a vertical line; wherein if at least one of the adjacent topological nodes is a turning point, adjust the coordinates of the at least one of the adjacent topological nodes so that the at least one of the adjacent topological nodes is located in a rotatable area after adjustment, wherein the robot does not collide with obstacles when rotating in the rotatable area; generate a target topological map based on the adjusted topological nodes, the target topological map including a plurality of topological nodes, the edge composed of adjacent topological nodes being on a horizontal line and / or the edge composed of adjacent topological nodes being on a vertical line.

[0140] For example, the generating module is specifically configured to, when generating the target topological map based on the target road network map: if a slope of an edge formed by adjacent topological nodes in the sparse road network map is greater than or equal to the first slope threshold and less than or equal to the second slope threshold, adjusting coordinates of the adjacent topological nodes so that the edge formed by the adjusted adjacent topological nodes is on a horizontal line or a vertical line.

[0141] Based on the same application concept as the above method, an electronic device is provided in the embodiments of the present application. Referring to FIG. 9, the electronic device includes a processor 91 and a machine-readable storage medium 92, the machine-readable storage medium 92 storing machine-executable instructions capable of being executed by the processor 91; the processor 91 is configured to execute the machine-executable instructions to implement the map generation method disclosed in the embodiments of the present application.

[0142] Based on the same application concept as the above method, the embodiments of the present application further provide a machine-readable storage medium, the machine-readable storage medium storing a plurality of computer instructions, the computer instructions being capable of implementing the map generation method disclosed in the embodiments of the present application when executed by a processor.

[0143] The machine-readable storage medium can be any electronic, magnetic, optical, or other physical storage device, and can contain or store information such as executable instructions, data, and the like. For example, the machine-readable storage medium can be a RAM (Random Access Memory), a volatile memory, a non-volatile memory, a flash memory, a storage drive (such as a hard disk drive), a solid-state disk, any type of storage disk (such as an optical disk, a DVD, etc.), or a similar storage medium, or a combination thereof.

[0144] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the embodiments of the present application can take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, a disk storage, a CD-ROM, an optical storage, etc.) containing computer-usable program code.

[0145] The above only describes the embodiments of the present application and is not intended to limit the present application. Those skilled in the art can make various modifications and changes to the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principles of the present application shall be included in the scope of the claims of the present application.

Claims

1. A map generation method characterized by comprising: The method comprises: acquiring a fine feasible region corresponding to the robot, the fine feasible region being a region reachable by the robot; wherein the fine feasible region comprises a plurality of grid points, for each grid point, if the grid point belongs to an obstacle region, it indicates that the robot collides with an obstacle when being at the grid point, if the grid point belongs to a free region, it indicates that the robot does not collide with an obstacle when being at the grid point; generating a distance map based on the fine feasible region, the distance map comprising a plurality of grid positions; wherein for each grid position, the value of the grid position represents the distance between the grid position and the nearest obstacle; generating a basic road network map based on the distance map, the basic road network map comprising a ridge line extracted based on the value of each grid position in the distance map, the ridge line comprising a plurality of topological nodes, for each topological node, the distance of the topological node to the surrounding obstacles is the same; generating a target topological map based on the basic road network map.

2. The method of claim 1, wherein the acquiring of the fine feasible region corresponding to the robot comprises: collecting point cloud data in a specified scene by the robot, constructing a grid map based on the point cloud data, and acquiring an initial feasible region corresponding to the robot based on the grid map; acquiring a configured coverable range model corresponding to the robot; for each grid point in the initial feasible region, if the robot collides with an obstacle when being at the grid point, the grid point is set to belong to an obstacle region based on the coverable range model; if the robot does not collide with an obstacle when being at the grid point, the grid point is set to belong to a free region based on the coverable range model.

3. The method of claim 2, wherein the acquiring of the initial feasible region corresponding to the robot based on the grid map comprises: determining a three-dimensional grid occupied by the driving height interval of the robot in the grid map; projecting the three-dimensional grid to a horizontal ground to obtain a two-dimensional occupancy grid map; performing a graphics processing on the two-dimensional occupancy grid map based on the size of the robot to obtain at least one connected domain, and determining the largest connected domain in the at least one connected domain as the initial feasible region.

4. The method according to claim 2 or 3, characterized in that, The coverable range model corresponds to the current motion attribute of the robot, and the coverable range model comprises a component convex hull, a direction bounding box and an axis-aligned bounding box; wherein the component convex hull fits to surround the robot through a plurality of adjacent triangular facets, the direction bounding box is a minimum circumscribed cube for enveloping the component convex hull, and the axis-aligned bounding box is a minimum axis-aligned circumscribed cube for enveloping the direction bounding box.

5. The method of claim 4, wherein, The operation of determining that the robot collides with an obstacle based on the coverable range model, or determining that the robot does not collide with an obstacle based on the coverable range model, comprises: determining whether there is an overlapping region between the axis-aligned bounding box and the obstacle; if not, determining that the robot does not collide with the obstacle; If yes, it is determined whether the direction bounding box and the obstacle exist an overlapping area; If no, it is determined that the robot does not collide with the obstacle; If yes, it is determined whether the component convex hull and the obstacle exist an overlapping area; If no, it is determined that the robot does not collide with the obstacle; If yes, it is determined that the robot collides with the obstacle.

6. The method of any one of claims 1-5, wherein the generating a target topology map based on the basic road network map comprises: determining candidate topology nodes from the plurality of topology nodes of the ridge line of the basic road network map, the candidate topology nodes comprising first-type topology nodes and / or second-type topology nodes, the first-type topology nodes being topology nodes that are not single-pixel width, and the second-type topology nodes being topology nodes that are not branch points and not end points; removing the candidate topology nodes from the plurality of topology nodes of the ridge line of the basic road network map to obtain a target road network map; and generating the target topology map based on the target road network map. The candidate topology nodes are the first-type topology nodes, and the determining candidate topology nodes from the plurality of topology nodes of the ridge line of the basic road network map comprises: for each topology node of the ridge line, if eight neighbor nodes of the topology node match a configured single-pixel width template, determining that the topology node is the first-type topology node; and if the eight neighbor nodes of the topology node do not match the configured single-pixel width template, determining that the topology node is not the first-type topology node.

7. The method of claim 6, wherein, The single-pixel width template comprises a left upper neighbor node, an upper neighbor node, a right upper neighbor node, a right neighbor node, a right lower neighbor node, a lower neighbor node, a left lower neighbor node, and a left neighbor node. The single-pixel width template comprises at least one of the following templates: the left upper neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the right upper neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the right lower neighbor node is located on the ridge line, the lower neighbor node is located on the ridge line, the left lower neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; the left upper neighbor node is not located on the ridge line, the upper neighbor node is not located on the ridge line, the right upper neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the right lower neighbor node is not located on the ridge line, the lower neighbor node is located on the ridge line, the left lower neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; the left upper neighbor node is located on the ridge line, the upper neighbor node is located on the ridge line, the right upper neighbor node is not located on the ridge line, the right neighbor node is not located on the ridge line, the right lower neighbor node is not located on the ridge line, the lower neighbor node is located on the ridge line, the left lower neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line; the left upper neighbor node is located on the ridge line, the upper neighbor node is located on the ridge line, the right upper neighbor node is located on the ridge line, the right neighbor node is located on the ridge line, the right lower neighbor node is not located on the ridge line, the lower neighbor node is not located on the ridge line, the left lower neighbor node is located on the ridge line, and the left neighbor node is located on the ridge line. ​ the left upper side neighborhood node is not located on the ridge line, the upper side neighborhood node is located on the ridge line, the right upper side neighborhood node is located on the ridge line, the right side neighborhood node is located on the ridge line, the right lower side neighborhood node is not located on the ridge line, the lower side neighborhood node is not located on the ridge line, the left lower side neighborhood node is not located on the ridge line, and the left side neighborhood node is not located on the ridge line; the left upper side neighborhood node is not located on the ridge line, the upper side neighborhood node is located on the ridge line, the right upper side neighborhood node is located on the ridge line, the right side neighborhood node is located on the ridge line, the right lower side neighborhood node is located on the ridge line, the lower side neighborhood node is located on the ridge line, the left lower side neighborhood node is not located on the ridge line, and the left side neighborhood node is not located on the ridge line.

8. The method of claim 6, wherein, The candidate topology node is the second type of topology node, and the candidate topology node is determined from the plurality of topology nodes of the ridge line of the basic road network map, including: for each topology node of the ridge line, if eight neighborhood nodes of the topology node match the configured branch point and endpoint template, it is determined that the topology node is not the second type of topology node; if the eight neighborhood nodes of the topology node do not match the configured branch point and endpoint template, it is determined that the topology node is the second type of topology node; The branch point and endpoint template includes a left upper side neighborhood node, an upper side neighborhood node, a right upper side neighborhood node, a right side neighborhood node, a right lower side neighborhood node, a lower side neighborhood node, a left lower side neighborhood node, and a left side neighborhood node. The branch point and endpoint template includes at least one of the following templates, wherein: the left upper side neighborhood node is not located on the ridge line, the upper side neighborhood node is not located on the ridge line, the right upper side neighborhood node is not located on the ridge line, the right side neighborhood node is not located on the ridge line, the right lower side neighborhood node is located on the ridge line, the lower side neighborhood node is not located on the ridge line, the left lower side neighborhood node is not located on the ridge line, and the left side neighborhood node is located on the ridge line; the left upper side neighborhood node is not located on the ridge line, the upper side neighborhood node is not located on the ridge line, the right upper side neighborhood node is not located on the ridge line, the right side neighborhood node is not located on the ridge line, the right lower side neighborhood node is not located on the ridge line, the lower side neighborhood node is not located on the ridge line, the left lower side neighborhood node is not located on the ridge line, and the left side neighborhood node is located on the ridge line.

9. The method of any one of claims 6 to 8, wherein the target topology map is generated based on the target road network map, including: a plurality of topology nodes of the target road network map are selected, and a redundant topology node is removed to obtain a sparse road network map, wherein the distance between the redundant topology node and any other topology node is less than a threshold value. ​ If a slope of an edge formed by adjacent topological nodes in the sparse road network map is less than a first slope threshold, coordinates of the adjacent topological nodes are adjusted so that an edge formed by the adjusted adjacent topological nodes is on a horizontal line; if the slope of the edge formed by the adjacent topological nodes is greater than a second slope threshold, the coordinates of the adjacent topological nodes are adjusted so that an edge formed by the adjusted adjacent topological nodes is on a vertical line; if at least one of the adjacent topological nodes is an inflection point, the coordinates of the at least one of the adjacent topological nodes are adjusted so that the at least one of the adjacent topological nodes is located in a rotatable region in which the robot does not collide with obstacles when rotating in the rotatable region. The target topological map is generated based on the adjusted topological nodes, and the target topological map includes a plurality of topological nodes, an edge formed by adjacent topological nodes is on a horizontal line, and / or an edge formed by adjacent topological nodes is on a vertical line.

10. The method of claim 9, wherein, The method of generating the target topological map based on the target road network map further includes: If a slope of an edge formed by adjacent topological nodes in the sparse road network map is greater than or equal to the first slope threshold and less than or equal to the second slope threshold, coordinates of the adjacent topological nodes are adjusted so that an edge formed by the adjusted adjacent topological nodes is on a horizontal line or a vertical line.

11. A map generation apparatus characterized by comprising: The apparatus includes: An obtaining module configured to obtain a fine feasible region corresponding to the robot, the fine feasible region being a region reachable by the robot; the fine feasible region includes a plurality of grid points, for each grid point, if the grid point belongs to an obstacle region, it indicates that the robot collides with obstacles when being at the grid point, and if the grid point belongs to an idle region, it indicates that the robot does not collide with obstacles when being at the grid point; A generating module configured to generate a distance map based on the fine feasible region, the distance map including a plurality of grid positions; 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, the basic road network map including a ridge line extracted based on the value of each grid position in the distance map, the ridge line including a plurality of topological nodes, for each topological node, a distance of the topological node to a plurality of surrounding obstacles is the same; and generate a target topological map based on the basic road network map.

12. An electronic device, comprising: includes: a processor and a machine readable storage medium, the machine readable storage medium storing machine executable instructions executable by the processor; the processor is configured to execute the machine executable instructions to implement the method of generating a map according to any one of claims 1 to 10.

13. A machine-readable storage medium, characterized in that, The machine readable storage medium stores computer instructions, and the computer instructions are executable by a processor to implement the method of generating a map according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Grid map construction method, robot and machine readable storage medium

    CN114779787A

  • Point cloud map topological structure extraction method based on distance map and probability road map

    CN115619900A

  • Map generation method, device and equipment

    CN119107418A

  • Method and apparatus for determining obstacle collision by using object moving path

    US20170169288A1