Drivable Space Planning Method and Device
By using cost map technology in the driving space planning of autonomous mobile devices, the driving space is explored around obstacles, and the problems of large amount of computing and inefficiency in the existing technology are solved, and more efficient driving space exploration is achieved.
Patent Information
- Application Number
- CN202110064822.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-01-18
- Publication Date
- 2025-06-17
- Estimated Expiration
- 2041-01-18
AI Technical Summary
The prior art has a large amount of calculation in the planning of feasible spaces, making it difficult to find a complete set of feasible spaces in a short time, making it difficult to balance efficiency and cost.
By setting a coordinate system (such as the Frenet coordinate system), a cost map of the area where the autonomous mobile device is located is established, and a driving space around obstacles is explored based on the cost map to reduce the exploration of blank areas.
It improves the efficiency of exploration of feasible space, reduces the exploration of barrier-free areas, and improves the efficiency of driving route planning of autonomous mobile devices.
Smart Images

Figure CN114815791B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of intelligent decision-making technology, and in particular, to a method and device for drivable space planning. Background Art
[0002] With the continuous development of artificial intelligence technology, autonomous mobile devices have gradually entered people's lives. During the autonomous movement of an autonomous mobile device, it is necessary to explore the drivable space, and then based on the explored drivable space, plan a driving route, and then move along the planned driving route. The efficiency of drivable space exploration directly affects the efficiency of subsequent route planning. Therefore, improving the exploration efficiency of the drivable space has become an issue that needs to be continuously studied by those skilled in the art. Summary of the Invention
[0003] Multiple aspects of this application provide a method and device for drivable space planning to improve the efficiency of drivable space planning.
[0004] An embodiment of this application provides a method for drivable space planning, including:
[0005] Obtain a cost map of the area where the autonomous mobile device is located in a set coordinate system;
[0006] According to the obstacle projection position information of the obstacle in the cost map, control the target projection of the autonomous mobile device in the set coordinate system to move around the projection of the obstacle, so as to obtain the target projection position information generated in the cost map during the movement of the target projection towards the destination;
[0007] Based on the target projection position information and the obstacle projection position information, perform a collision detection on the target projection and the projection of the obstacle;
[0008] According to the collision detection result, determine the drivable space around the corresponding obstacle of the autonomous mobile device.
[0009] An embodiment of this application also provides a computing device, including: a memory and a processor; wherein, the memory is used to store a computer program; the processor is coupled to the memory and is used to execute the computer program to execute the steps in the above-mentioned drivable space planning method.
[0010] An embodiment of this application also provides an autonomous mobile device, including: a mechanical body and a computing device disposed in the mechanical body for executing the above-mentioned drivable space planning method.
[0011] The embodiment of the present application also provides a computer-readable storage medium storing a computer program. When the computer program is executed by one or more processors, the one or more processors are caused to execute the steps in the above-mentioned drivable space planning method.
[0012] In the embodiment of the present application, by using a set coordinate system, a cost map of the area space where the autonomous mobile device is located is established in the set coordinate system; and based on the cost map, the drivable space of the autonomous mobile device is explored around the obstacles, reducing the exploration of blank areas and helping to improve the efficiency of drivable space exploration. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation to the present application. In the drawings:
[0014] Figure 1a It is a schematic diagram of the process of horizontal and vertical sampling dynamic programming of the drivable space provided by the embodiment of the present application;
[0015] Figure 1b It is a schematic diagram of the effect of the drivable space planned by the Lattice planning method provided by the embodiment of the present application;
[0016] Figure 1c It is a schematic diagram of the process of planning the drivable space by the Voronoi diagram method provided by the embodiment of the present application;
[0017] Figure 2a It is a schematic flowchart of the drivable space planning method provided by the embodiment of the present application;
[0018] Figure 2b It is a schematic diagram of the method for determining the expansion area provided by the embodiment of the present application;
[0019] Figure 2c It is a schematic diagram of the process of constructing the Frenet coordinate system provided by the embodiment of the present application;
[0020] Figure 2d It is a schematic diagram of the process of simulating the movement of the autonomous mobile device towards the destination provided by the embodiment of the present application;
[0021] Figure 2e It is a schematic flowchart of the cost map construction method provided by the embodiment of the present application;
[0022] Figure 2f It is a schematic flowchart of the drivable space planning method provided by the embodiment of the present application;
[0023] Figure 2g It is a schematic diagram of the structure of the search tree explored provided by the embodiment of the present application;
[0024] Figure 2h and Figure 2i is a schematic diagram of the detour effect obtained by using the drivable space planning method provided in the embodiment of the present application;
[0025] Figure 2j is a schematic diagram of the pile passing effect obtained by using the drivable space planning method provided in the embodiment of the present application;
[0026] Figure 3 is a hardware structure block diagram of the autonomous mobile device provided in the embodiment of the present application;
[0027] Figure 4 is a schematic structural diagram of the computing device provided in the embodiment of the present application. Detailed implementation manners
[0028] To make the objectives, technical solutions and advantages of the present application clearer, the technical solutions of the present application will be clearly and completely described below in conjunction with the specific embodiments of the present application and the corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present application without creative efforts shall fall within the protection scope of the present application.
[0029] In the field of autonomous driving (intelligent driving or driverless driving), the planning of the drivable space of autonomous mobile devices is a problem that needs to be continuously optimized and solved. In practical applications, the planning (exploration) of the drivable space often encounters problems such as trajectory spaces that autonomous mobile devices cannot pass through or trajectory spaces that are not suitable for autonomous mobile devices to pass through (narrow spaces or multi-obstacle spaces). Facing such problems, the following methods can be used to explore the drivable space of autonomous mobile devices:
[0030] Solution 1: Horizontal and vertical sampling method + dynamic programming (DP)
[0031] In Solution 1, first, a multi-layer candidate point set is obtained by uniformly sampling in the horizontal and vertical directions of the lane, and then an initial solution is obtained based on the DP solution. The main idea of dynamic programming is to use the current position of the autonomous mobile device as the starting point, sample some points along the horizontal and vertical directions of the lane. A group of points sampled horizontally is called a horizontal direction sampling point (level). After encapsulating the points into nodes, the costs of the nodes between different levels are calculated respectively, which constitutes a graph. Use DP to update the minimum cost of the node and find a path with the minimum cost of the optimal center line connecting the starting point and the end point. Different from the traditional graph search method to find the shortest path, the difference is that the cost includes indicators of smoothness and collision avoidance.
[0032] The specific steps are as followsFigure 1a As shown, spline curve interpolation is used between every two points between adjacent layers to obtain the local centerline between adjacent layers. Then, an evaluation function that includes various costs such as collision and smoothness is used to evaluate the cost of each local centerline between adjacent layers, and the best local centerline among them is obtained. Then, taking the end point of the optimal local centerline as the starting point for the next calculation, the local optimal connection lines between the subsequent two adjacent layers are calculated layer by layer until the end point is reached.
[0033] The disadvantages of Solution 1 are as follows:
[0034] (1) Only one can be output each time, and all possibilities cannot be completed in one calculation. In the case of many obstacles, the calculation consumption is relatively high and it is not suitable for implementation on the ground.
[0035] (2) It is necessary to set the sampling distance parameters in the horizontal and vertical directions, and it is difficult to balance efficiency and accuracy.
[0036] (3) There are many parameters and it is very complicated to adjust, and it is difficult to be applicable to changing scenarios.
[0037] (4) A set of complex trajectory evaluation methods are required.
[0038] Solution 2: Lattice planning method
[0039] The biggest difference between Lattice planning and EM Planner in design is that Lattice planning solves comprehensively in the horizontal and vertical directions, while EM solves separately. Like EM planner, Lattice Planner also decomposes the trajectory planning problem into independent trajectory planning problems in two 1D spaces in the horizontal and vertical directions, reducing the planning difficulty. Horizontally, it is still the SL problem, that is, Station Lateral, and vertically it is still ST, that is, Station Time problem.
[0040] The first step of the Lattice planning algorithm is to scatter points simultaneously in the position space and time according to the states of the starting point and the end point. There are 6 parameters for each of the starting state and the ending state of the point scattering, including 3 horizontal parameters, namely the horizontal position, the derivative of the horizontal position which is the Heading, and the derivative of the Heading; 3 vertical parameters, namely the vertical position, the first derivative of the vertical position which is the speed, and the second derivative of the vertical position (that is, the acceleration).
[0041] The parameters of the starting point are designed according to the actual state of the vehicle at that time, or the state of Stitch, and the ending state is each situation enumerated by the point scattering. After determining the states of the end point and the starting point, the starting state and the ending state are connected by a fifth-order or fourth-order polynomial to obtain the planned horizontal and vertical trajectories.
[0042] This step is the essence of the Lattice algorithm, which directly determines the efficiency of the algorithm and the solution space. For example, when scattering points, constraints on the physical dynamics performance of the vehicle can be added, and at the same time, the feasible region can be pre-screened according to obstacles, etc., effectively trimming the invalid space, so as to achieve better performance. The second step of the Lattice planning algorithm is to sample enough trajectories to provide as many choices as possible.
[0043] The third step of the Lattice planning algorithm is to calculate the cost of each trajectory. After generating all the one-dimensional trajectories in the lateral and longitudinal directions, they are arranged and combined to synthesize a large number of two-dimensional trajectories (as Figure 1b shown). Then, the best synthesized trajectory is selected according to the loss function. This cost takes into account factors such as the feasibility and safety of the trajectory. Similar to the EMPlanner, the loss function of the Lattice Planner can also be divided into three categories: safety-related, somatosensory-related, and goal completion-related.
[0044] The fourth step of the Lattice planning algorithm is a loop detection process. In this process, we will first select the trajectory with the lowest cost each time and perform physical limit detection and collision detection on it. If the selected trajectory cannot pass both of these detections, it will be screened out and the next lowest-cost trajectory will be examined.
[0045] The disadvantages of Solution 2 are as follows:
[0046] (1) Although multiple trajectory candidates are calculated, it is still impossible to complete all possibilities in one calculation and multiple loop calculations are required. The calculation consumption is relatively high in the case of many obstacles and it is not suitable for implementation.
[0047] (2) It is necessary to set the sampling distance parameters in the lateral and longitudinal directions, and it is difficult to balance efficiency and accuracy.
[0048] (3) There are many parameters and it is very complicated to adjust, and it is difficult to be applicable to changing scenarios.
[0049] (4) It requires a set of complex trajectory evaluation methods.
[0050] Solution 3: Voronoi Diagram
[0051] In Solution 3, as Figure 1c shown, this solution presses the obstacle perception information onto a 2D grid map and uses the Voronoi diagram method to generate a series of bisectors between obstacles to obtain a description of the feasible space. This method mainly includes the following steps:
[0052] A. The steps to establish the Voronoi diagram are as follows:
[0053] (1) Automatically construct a triangular mesh for discrete points, that is, construct a Delaunay triangular mesh. Number the discrete points and the formed triangles, and record which three discrete points each triangle is composed of.
[0054] (2) Calculate the circumcenter of each triangle and record it.
[0055] (3) Traverse the triangle linked list to find the adjacent triangles TriA, TriB, and TriC that share sides with the three sides of the current triangle pTri.
[0056] (4) If found, connect the circumcenter of the found triangle with the circumcenter of pTri and store it in the Voronoi edge linked list. If not found, find the perpendicular bisector ray of the outermost side and store it in the Voronoi edge linked list.
[0057] (5) After the traversal is completed, all Voronoi edges are found, and the Voronoi diagram is drawn based on the edges.
[0058] B. Generation of Delaunay triangular mesh, the main steps are as follows:
[0059] (1) Construct a super triangle that contains all scattered points and put it into the triangle linked list.
[0060] (2) Insert the scattered points in the point set one by one. In the triangle linked list, find the triangles whose circumcircles contain the inserted points (referred to as the influencing triangles of this point), delete the common sides of the influencing triangles, and connect the inserted point with all the vertices of the influencing triangles, thus completing the insertion of a point in the Delaunay triangle linked list.
[0061] (3) Optimize the locally newly formed triangles according to the optimization criterion. Put the formed triangles into the Delaunay triangle linked list.
[0062] (4) Loop and execute the above step (2) until all scattered points are inserted.
[0063] The disadvantages of Scheme 3 are as follows:
[0064] (1) The overall time complexity is O(1) + O(n2) + O(n) + O(n2) + O(n) + 3 * O(n) + O(n) = O(n2), and its complexity is relatively high.
[0065] (2) During the solution process, it is impossible to eliminate unreasonable routes based on vehicle kinematics, and it can only be eliminated through subsequent pruning.
[0066] (3) The output result cannot be directly output as the full solution trajectory space.
[0067] (4) If it is necessary to output the trajectory space, its average complexity is high. For n obstacles in a determined order, there are 2^n candidates.
[0068] (5) If searching in the Voronoi diagram, a complex trajectory evaluation method is also required, and there is only one result, which is incomplete.
[0069] In summary, the existing drivable space planning solutions generally have a large amount of calculation. It is difficult to find a relatively complete set of drivable spaces in a short time with relatively few computing resources. Using more computing resources can solve the time problem of solving to a certain extent, but it will bring the problem of too high cost. Therefore, the solutions provided by the existing technologies do not achieve a good balance between the efficiency and cost of drivable space planning.
[0070] In view of the technical problems faced by the existing drivable space planning, the basic principle of the embodiments of the present application is to use a set coordinate system (preferably the Frenet coordinate system) to establish a cost map of the area space where the autonomous mobile device is located in the set coordinate system. Among them, the cost map includes an obstacle layer, an inflation layer, and a static map layer. Based on the cost map, the drivable space of the autonomous mobile device is explored around the obstacles, reducing the exploration of blank areas (areas without obstacles in the cost map) and improving the exploration efficiency of the drivable space.
[0071] It should be noted that the autonomous mobile devices applicable to the drivable space planning method provided in this embodiment include devices such as robots and driverless vehicles that need to autonomously drive in areas with obstacles. The shape of the robot and the driverless vehicle is not limited in this embodiment. For example, the robot can be circular, oval, triangular, convex polygon, or humanoid, etc. For another example, the driverless vehicle can be a small car, a bus, a freight truck, etc. Among them, the autonomous mobile device can implement the method provided in this embodiment by installing software, an APP, or writing program code in the corresponding device. The drivable space planning method provided in this embodiment is also applicable to computer devices that provide navigation services. For example, in the vehicle navigation scenario, the drivable space planning method is applicable to the server device that provides navigation services.
[0072] The following will detail the technical solutions provided by the embodiments of the present application in conjunction with the accompanying drawings. It should be noted that the same reference numerals represent the same object in the following drawings and embodiments. Therefore, once an object is defined in one drawing or embodiment, it does not need to be further discussed in the subsequent drawings and embodiments.
[0073] Figure 2a It is a flowchart of the drivable space planning method provided by the embodiments of the present application. As Figure 2a shown, the method includes:
[0074] 201. Obtain the cost map of the area where the autonomous mobile device is located in the set coordinate system.
[0075] 202. According to the obstacle projection position information of the obstacle in the cost map, control the target projection of the autonomous mobile device in the set coordinate system to move around the projection of the obstacle, so as to obtain the target projection position information generated in the cost map during the movement of the target projection towards the destination.
[0076] 203. Based on the target projection position information and the obstacle projection position information, perform collision detection on the target projection and the obstacle projection in the cost map.
[0077] 204. According to the collision detection result, determine the drivable space around the corresponding obstacle of the autonomous mobile device.
[0078] The above is the method for planning the drivable space provided by this application. The purpose of exploring the drivable space of the autonomous mobile device is to avoid obstacles in the area where the autonomous mobile device is located during driving, so as to realize the autonomous movement of the autonomous mobile device. In different application scenarios, the obstacles in the area where the autonomous mobile device is located are also different. For example, when the autonomous mobile device is an autonomous driving vehicle, the obstacles in the area where the autonomous mobile device is located can be other vehicles, pedestrians, road piles or toll stations, etc. Another example is that when the autonomous mobile device is a sweeping robot, the obstacles in the area where the autonomous mobile device is located can be furniture, walls or people in the cleaning area, etc. The examples here are only for illustrating the types of obstacles and should not be regarded as a limitation to the solution provided in this embodiment.
[0079] In this embodiment, in order to obtain the drivable space of the autonomous mobile device, in step 201, the cost map of the area where the autonomous mobile device is located in the set coordinate system can be obtained. In this embodiment, the implementation form of the set coordinate system is not limited. Optionally, the set coordinate system can be a Cartesian coordinate system, a polar coordinate system or a Frenet coordinate system, etc., but not limited thereto.
[0080] Preferably, the set coordinate system adopts the Frenet coordinate system. Among them, the Frenet coordinate system is established based on the relative relationship between the autonomous mobile device and the road, and can convert the curved road into a straight line expression, reducing the calculation complexity. In the Frenet coordinate, the variables s and l are used to describe the position of the autonomous mobile device on the road. The s coordinate represents the distance along the road (also called the longitudinal displacement) and the l coordinate represents the left and right position on the road (also called the lateral displacement). Correspondingly, in step 201, the cost map of the area where the autonomous mobile device is currently located in the Frenet coordinate system can be obtained.
[0081] Among them, the cost map of the area where the autonomous mobile device is currently located in the Frenet coordinate system can be a pre-stored cost map or a cost map constructed in real time based on the environmental information of the autonomous mobile device.
[0082] For the implementation method of constructing a cost map in real time based on the environmental information of the autonomous mobile device, before constructing the cost map, a Frenet coordinate system can be established first. Optionally, as Figure 2b shown, the midline of the road between the current position of the autonomous mobile device and the destination can be used as the reference line R, and the point O on the reference line R with the shortest distance from the autonomous mobile device can be used as the starting point of the reference line to establish the Frenet coordinate system. Among them, the connection line between the autonomous mobile device and the starting point O of the reference line is perpendicular to the tangent line at this starting point. As Figure 2b shown, the s-axis of the Frenet coordinate system is the vertical axis of the Frenet coordinate system, and the l-axis is the horizontal axis of the Frenet coordinate system. When the autonomous mobile device moves along the s-axis or a parallel curve of the s-axis, the l-axis coordinate of the autonomous mobile device remains unchanged.
[0083] Furthermore, for the autonomous mobile device, the obstacles in the current area can be detected based on the equipped vision sensor. Optionally, the autonomous mobile device can be equipped with an infrared sensor or a laser sensor. The infrared sensor or the laser sensor can detect the distance and direction of the obstacle relative to the autonomous mobile device. The autonomous mobile device can determine the position of the obstacle based on its own current position and the distance and direction of the obstacle relative to the autonomous mobile device.
[0084] Alternatively, the autonomous mobile device can be equipped with a camera. The camera can collect the environmental images around the current position of the autonomous mobile device during the movement of the autonomous mobile device. Among them, the camera can be a binocular camera, a monocular camera, a depth camera, etc., but not limited to this. Further, the position of the obstacle in the area where the autonomous mobile device is located can be obtained according to the environmental images around the current position of the autonomous mobile device. Optionally, the image features of the environmental images can be obtained; and the position of the obstacle in the area where the autonomous mobile device is located can be obtained according to the image features of the environmental images.
[0085] The position of the above-mentioned obstacle can be the position of the obstacle in any set coordinate system. For example, the position of the obstacle can be the position in the coordinate system of the autonomous mobile device, or the position in the world coordinate system, or the position in the Frenet coordinate system, etc.
[0086] Further, the obstacles in the area where the autonomous mobile device is located can be projected into the Frenet coordinate system to obtain the projection of the obstacles, that is, the projection of the obstacles in the Frenet coordinate system. Further, according to the size of the target projection of the autonomous mobile device in the Frenet coordinate system and the position information of the projection of the obstacles (i.e., the obstacle projection position information), the expansion area of the obstacles in the Frenet coordinate system can be determined. Optionally, as Figure 2c shown, circles can be drawn with several position points of the projection of the obstacles as the centers and the inradius r of the autonomous mobile device as the radius, and the area formed by the several circles obtained is the expansion area. Among them, the other areas in the area formed by the several circles except the area where the obstacles are located are the expansion areas. Figure 2c Only 3 circles are shown for illustration, but it does not constitute a limitation. Further, a cost map can be constructed according to the obstacle projection position information and the expansion area of the obstacles in the Frenet coordinate system. In the cost map, the target projection of the autonomous mobile device in the Frenet coordinate system should not intersect with the area where the obstacles are located, and the center of the target projection should not fall into the expansion area. Otherwise, the autonomous mobile device will collide with the obstacles.
[0087] Based on the above cost map, in step 202, according to the projection position information of the obstacles in the cost map (i.e., the obstacle projection position information), the target projection of the autonomous mobile device in the set coordinate system can be controlled to move around the projection of the obstacles to simulate the movement of the autonomous mobile device towards the destination. During the process of simulating the movement of the autonomous mobile device towards the destination, the target projection position information generated by the target projection moving towards the destination in the cost map can be obtained. If the target projection overlaps with the obstacles in the cost map when moving to a certain projection position, or the center of the target projection falls into the expansion area in the cost map, it means that the autonomous mobile device will collide with the obstacles when moving to this position. Therefore, this position is not the drivable space of the autonomous mobile device. Based on this, in step 203, collision detection can be performed on the target projection and the projection of the obstacles in the cost map based on the target projection position information and the obstacle projection position information generated by the target projection moving towards the destination in the cost map; and in step 204, according to the collision detection result, the drivable space of the autonomous mobile device around the corresponding obstacles can be determined.
[0088] In this embodiment, a cost map of the regional space where the autonomous mobile device is located is established in the set coordinate system; and based on the cost map, the drivable space of the autonomous mobile device is explored around the obstacles, reducing the exploration of the blank area without obstacles, which helps to improve the exploration efficiency of the drivable space.
[0089] In this embodiment, in order to further improve the exploration efficiency of the drivable space, as Figure 2b and Figure 2dAs shown, multiple sampling curves can be set on both the left and right sides of the reference line in the Frenet coordinate system at a set sampling interval (such as Figure 2b and Figure 2d R1 - R6 in Figure 2b and Figure 2d ). Multiple means two or more. Figure 2b and Figure 2d are only illustrated with six sampling curves, but this does not constitute a limitation. The multiple sampling curves are parallel curves to the reference line R in the Frenet coordinate system, such as the dashed lines R1 - R6 parallel to the reference line R shown in
[0090] The multiple sampling curves can be understood as several trajectory lines distributed along the trend of the road extension. The distance between adjacent two sampling curves is equal. Among them, the sampling interval can be flexibly set according to the accuracy requirements of the drivable space and the exploration efficiency requirements. The higher the accuracy requirements of the drivable space, the smaller the sampling interval; the higher the exploration efficiency requirements, the larger the sampling interval.
[0090] For the above - mentioned multiple sampling curves, some are distributed with obstacles and some are not. In this embodiment, when controlling the target projection of the autonomous mobile device to move in the cost map in the Frenet coordinate system, the autonomous mobile device can be controlled to move forward in the direction of the sampling curve without obstacles. In this way, the space distributed with obstacles can be excluded, and the exploration of the blank area without obstacles can be reduced.
[0091] It should be noted that for the autonomous mobile device located on the sampling curve and there is no obstacle on this sampling curve, the movement of the autonomous mobile device in the direction of the sampling curve without obstacles can be understood as: the autonomous mobile device moves forward along the current sampling curve. Based on this, an optional implementation manner of step 202 is: according to the obstacle projection position information of the obstacle in the cost map, determine the target sampling curve without obstacles in the cost map from the multiple sampling curves; and control the target projection of the autonomous mobile device in the Frenet coordinate system to move forward towards the target sampling curve to simulate the movement of the autonomous mobile device to the target location, and obtain the target projection position information generated in the cost map during the movement of the target projection towards the horizontal target line where the destination is located.
[0092] In practical applications, the autonomous mobile device generally moves in three directions when moving forward: straight forward, forward to the left, and forward to the right. Based on this, when exploring the drivable space of the autonomous mobile device, the adjacent space of the autonomous mobile device can be explored, which can further reduce the exploration workload and improve the exploration efficiency. Based on this, according to the projection position information of the obstacle in the cost map, the sampling curves distributed with obstacles in the cost map can be determined from the multiple sampling curves.
[0093] Optionally, as shown in Figure 2dAs shown, based on the projection position information of the obstacle in the cost map, the distribution of the projection of the obstacle on the slot line T can be obtained. Among them, the slot line T is a transverse axis perpendicular to the tangent of the starting point O of the reference line R, that is, the slot line T is the transverse axis where s = 0. Optionally, the transverse coordinate of the projection of the obstacle can be obtained, and the projection of the obstacle is compressed into one dimension in the Frenet coordinate system. Among them, the transverse coordinate of the projection of the obstacle is the coordinate of the obstacle on the slot line T. Further, based on the distribution of the projection of the obstacle on the slot line T, the slot positions occupied by the projection of the obstacle can be obtained. For Figure 2d the Frenet coordinate system shown, l = (-f, -e) and l = (-b, -a) are the partial slot positions occupied by the obstacle. Further, the sampling curve where the slot positions occupied by the projection of the obstacle are located can be used as the sampling curve with obstacles distributed thereon.
[0094] Further, from the sampling curve with obstacles distributed thereon, the boundary sampling curve closest to the target projection of the autonomous mobile device in the Frenet coordinate system is obtained. Optionally, the distance between the target projection and the sampling curve with obstacles distributed thereon can be calculated, and based on the distance between the target projection and the sampling curve with obstacles distributed thereon, the boundary sampling curve closest to the target projection is obtained from the sampling curve with obstacles distributed thereon. Among them, the boundary sampling curve includes: the sampling curve closest to the target projection among the sampling curves with obstacles distributed on the left side of the target projection; and the sampling curve closest to the target projection among the sampling curves with obstacles distributed on the right side of the target projection.
[0095] After obtaining the boundary sampling curves on the left and right sides of the target projection, the drivable space exploration can be carried out in the sampling space defined by the left and right boundary sampling dotted lines. Accordingly, the sampling curve without obstacle distribution between the target projection and the boundary sampling curve can be obtained as the above-mentioned target sampling curve; the target projection of the autonomous mobile device in the Frenet coordinate system is controlled to move forward in the direction of the target sampling curve to simulate the autonomous mobile device moving towards the destination; afterwards, based on the size of the target projection and the target projection position information generated during the process of simulating the autonomous mobile device moving towards the destination, collision detection is performed on the target projection and the projection of the obstacle in the cost map, realizing the exploration of the drivable space around the obstacle, reducing the exploration of the blank area without obstacle distribution, and helping to improve the efficiency of drivable space exploration.
[0096] In this embodiment, an iterative method of a multi - fork tree can be adopted. By simulating the movement of an autonomous mobile device towards a destination and performing collision detection on the target projection and the projection of obstacles during the movement towards the horizontal target line where the destination is located, the drivable space of the autonomous mobile device can be explored. Optionally, the current position of the target projection can be used as the root node, and based on the target sampling curve without obstacle distribution, forward heuristic exploration of the root node can be carried out to determine the subtree of the root node. Any node in the subtree is a drivable position explored for the autonomous mobile device. In this embodiment, the area where the autonomous mobile device is located is defined as an obstacle topological space, and the autonomous mobile device can have three driving states in this topological space: going straight, turning left, and turning right. Therefore, when exploring the drivable space, the three driving states of the autonomous mobile device, namely going straight forward, moving forward to the left, and moving forward to the right, can be explored. The main process is as follows:
[0097] As Figure 2d shown, the target projection can be moved forward a set distance in the direction of the first sampling curve from the current position to simulate the movement of the autonomous mobile device towards the destination, that is, to simulate the autonomous mobile device moving one step towards the destination. The set distance can be set independently. Optionally, it can be set according to the moving speed, inertia, etc. of the autonomous mobile device. Since during the movement of the autonomous mobile device towards the destination, each forward movement mainly includes: moving forward along the current moving direction, moving forward to the left, or moving forward to the right. Therefore, the first sampling curve can be the sampling curve where the target projection is currently located in the target sampling curve, or the sampling curve on the left side of the target projection and closest to the target projection in the target sampling curve (such as Figure 2d in which l = - d, that is, R2), or the sampling curve on the right side of the target projection and closest to the target projection in the target sampling curve (such as Figure 2d in which l = - c, that is, R3). It should be noted that for the case where the first sampling curve is the sampling curve where the target projection is currently located, when the target projection moves forward in the direction of the first sampling curve from the current position, it should be understood that the target projection moves forward along the first sampling curve.
[0098] Correspondingly, after moving the target projection forward a set distance in the direction of the first sampling curve from the current position, the first projection position of the target projection obtained can be used as a target projection position information generated by simulating the movement of the autonomous mobile device towards the destination. Next, collision detection can be performed on the target projection and the projection of the obstacle at the first projection position.
[0099] Optionally, based on the size of the target projection, the projection position information of the obstacle in the cost map, and the inflated area in the cost map, it can be determined whether there is an overlap between the target projection moving to the first projection position and the projection of the obstacle in the cost map, and whether the center of the target projection moving to the first projection position falls into the inflated area. If both judgment results are negative, it is determined that there is no collision between the target projection moving to the first projection position and the obstacle. Here, a negative judgment result means that the target projection moving to the first projection position does not overlap with the projection of the obstacle in the cost map, and the center of the target projection moving to the first projection position does not fall into the inflated area.
[0100] Correspondingly, if there is a case where the judgment result is positive, it is determined that the target projection moving to the first projection position will collide with the projection of the obstacle. That is, if there is an overlap between the target projection moving to the first projection position and the projection of the obstacle in the cost map, and / or the center of the target projection moving to the first projection position falls into the inflated area, it is determined that the target projection moving to the first projection position will collide with the projection of the obstacle.
[0101] Furthermore, in the case where there is no collision between the target projection moving to the first projection position and the projection of the obstacle, forward heuristic search can be continued based on the first projection position to determine the subtree of the root node.
[0102] Correspondingly, in the case where there is no collision between the target projection moving to the first projection position and the projection of the obstacle, a child node of the root node can be determined based on the first projection position. Optionally, it can be determined whether the first projection position is on the first sampling curve. If the judgment result is positive, the first projection position is used as a child node of the root node. If the judgment result is negative, the second projection position on the first sampling curve with the same longitudinal coordinate as the first projection position is used as a child node of the root node. Furthermore, the distance D1 from the first projection position to the second projection position of the target projection can be calculated, and the target projection can be controlled to move horizontally by D1 from the first projection position to move onto the first sampling curve.
[0103] Then, based on the explored child node of the root node, forward heuristic search is continued to determine the lower-level child nodes of the explored child node until the explored child node reaches the lateral target line where the destination is located. The child node that reaches the lateral target line is the leaf node of the search tree. The lateral target line where the destination is located refers to the lateral displacement line of the destination in the Frenet coordinate system. For example, assuming the destination is at s = X in Frenet, then s = X is the lateral target line where the destination is located.
[0104] Next, taking any explored child node as an example, an exemplary description of the forward heuristic search process is given. Here, for the convenience of description, any child node is defined as the first child node.
[0105] For the first child node explored, when the first child node has not reached the horizontal target line where the destination is located, move the target projection of the autonomous mobile device forward by a set distance from the position corresponding to the first child node in the direction of the second sampling curve to obtain the third projection position of the target projection. Herein, the second sampling curve is the sampling curve where the first child node is located; or, the second sampling curve is the sampling curve on the left side of the first child node and closest to the first child node among the target sampling curves without obstacle distribution; or, the second sampling curve is the sampling curve on the right side of the first child node and closest to the first child node among the target sampling curves. It should be noted that for the case where the second sampling area is the sampling curve where the first child node is located, moving the target projection forward from the current position in the direction of the second sampling curve should be understood as moving the target projection forward along the second sampling curve.
[0106] Further, collision detection can be performed on the target projection moved to the third projection position and the projection of the obstacle according to the size of the target projection, the projection position information of the obstacle in the cost map, and the inflated area in the cost map. For the specific implementation manner of performing collision detection on the target projection and the projection of the obstacle at the third projection position, reference can be made to the relevant content of performing collision detection on the target projection and the projection of the obstacle at the first projection position as described above, which will not be elaborated herein.
[0107] If there is no collision between the target projection at the third projection position and the projection of the obstacle, determine the lower-level child node of the first child node based on the third projection position. Optionally, the third projection position can be used as the lower-level child node of the first child node. Or, it can also be determined whether the third projection position is on the second sampling curve; if the determination result is yes, the third projection position is used as a child node of the first child node. If the determination result is no, the position on the second sampling curve with the same longitudinal coordinate as the third projection position is used as a child node of the first child node. Further, the horizontal distance D2 from the third projection position of the target projection to the position on the second sampling curve with the same longitudinal coordinate as the third projection position can be calculated, and the target projection is controlled to move horizontally by D2 from the third projection position to move to the second sampling curve.
[0108] Correspondingly, if there is a collision between the target projection at the third projection position and the projection of the obstacle, move the target projection along the horizontal direction of the first child node by a set distance to determine the moved fourth projection position. Herein, moving along the horizontal direction of the first child node is moving a set distance along the l-axis direction from the first child node. Optionally, the target projection can move a set distance to the left and / or right along the l-axis direction from the first child node.
[0109] Further, collision detection may be performed on the target projection and the obstacle projection at the fourth projection position according to the size of the target projection, the projection position information of the obstacle in the cost map, and the inflated area in the cost map. For the specific implementation of the collision detection on the target projection and the obstacle projection at the fourth projection position, reference may be made to the relevant content of the collision detection on the target projection and the obstacle projection at the first projection position as described above, which will not be elaborated here.
[0110] Further, if there is no collision between the target projection and the obstacle projection at the fourth projection position, a lower-level child node of the first child node is determined based on the fourth projection position. Optionally, the fourth projection position may be used as the lower-level child node of the first child node. Alternatively, it may also be determined whether the fourth projection position is located on the second sampling curve. If the determination result is yes, the fourth projection position is used as a child node of the first child node. If the determination result is no, the position on the second sampling curve that has the same longitudinal coordinate as the fourth projection position is used as a child node of the first child node. Further, the lateral distance D3 from the fourth projection position of the target projection to the position on the second sampling curve that has the same longitudinal coordinate as the fourth projection position may be calculated, and the target projection is controlled to move laterally by D3 from the fourth projection position to move to the second sampling curve.
[0111] After obtaining a child node of the first child node, forward heuristic search may be continued based on the newly explored child node to explore new lower-level child nodes.
[0112] Correspondingly, if there is a collision between the target projection and the obstacle projection at the fourth projection position, the first child node is used as a leaf node of the search tree.
[0113] For each explored child node in the above manner, forward heuristic search is performed until all leaf nodes of the search tree are explored, so that all subtrees of the root node can be explored. The number and layers of the subtrees may be determined by the specific environment of the area where the autonomous mobile device is located.
[0114] Further, the drivable space of the autonomous mobile device around the corresponding obstacle may be determined according to the search tree formed by the root node and the subtrees of the root node. Optionally, the search tree may be traversed to obtain all the drivable spaces of the autonomous mobile device around the corresponding obstacle.
[0115] Further, the blank area without obstacle distribution may be merged with the drivable space of the autonomous mobile device around the corresponding obstacle to obtain all the drivable spaces of the autonomous mobile device from the current position to the destination.
[0116] The drivable space of an autonomous mobile device consists of all the routes it can travel. To achieve navigation of the autonomous mobile device, path planning can also be performed on the autonomous mobile device based on its drivable space to obtain the navigation path of the autonomous mobile device. Further, the navigation path of the autonomous mobile device can be output for the autonomous mobile device to move along the navigation path. Optionally, the execution entity of the above drivable space planning method can be the autonomous mobile device. After planning the navigation path of the autonomous mobile device, the autonomous mobile device can control itself to move along the navigation path. If the execution entity of the above drivable space planning method is the server device providing the navigation service, the server device can send the navigation path to the autonomous mobile device. Correspondingly, the autonomous mobile device receives the navigation path and moves along the navigation path.
[0117] To more clearly illustrate the above process of drivable space exploration, the drivable space planning method will be exemplarily described below in combination with a specific embodiment. As Figure 2e shown, the method mainly includes:
[0118] S1: Taking the midline of the road between the current position of the autonomous mobile device and the destination as the reference line R, and taking the point on the reference line R with the shortest distance from the autonomous mobile device as the starting point of the reference line R, a Frenet coordinate system is established.
[0119] S2: Projecting the obstacles in the area where the autonomous mobile device is located into the Frenet coordinate system to obtain the projections of the obstacles.
[0120] S3: Determining the expansion area of the projection of the obstacle in the Frenet coordinate system according to the size of the target projection and the projection position information of the obstacle.
[0121] S4: Constructing a cost map according to the projection position information of the obstacle and the expansion area of the obstacle in the Frenet coordinate system.
[0122] S5: Setting a plurality of sampling curves on both the left and right sides of the reference line R in the Frenet coordinate system at a set sampling interval; the plurality of sampling curves are parallel curves of the reference line R in the Frenet coordinate system.
[0123] S6: Obtaining the distribution of the projection of the obstacle on the slot line T according to the projection position information of the obstacle in the cost map; the slot line T is a transverse axis perpendicular to the tangent line of the starting point of the reference line R, that is, the slot line T is the l axis where s = 0.
[0124] S7: Obtaining the slot positions occupied by the obstacles according to the distribution of the projection of the obstacles on the slot line.
[0125] S8: Taking the sampling curves corresponding to the slot positions occupied by the obstacles as the sampling curves distributed with obstacles.
[0126] S9: Obtain the boundary sampling curve that is closest to the target projection distance of the autonomous mobile device in the Frenet coordinate system from the sampling curve with obstacles distributed thereon.
[0127] S10: Obtain the sampling curve without obstacle distribution between the target projection and the boundary sampling curve as the target sampling curve.
[0128] The above steps S1 - S10 describe the process of constructing the cost map and the target sampling curve. The following will describe Figure 2f the process of exploring the drivable space of the autonomous mobile device based on the cost map and the target sampling curve. As Figure 2f shown, the main steps include:
[0129] S11: As Figure 2g shown, use the current position of the target projection as the root node A. The current position of the target projection is the position of the target projection when starting to explore the drivable space, that is, the initial projection position.
[0130] Next, start forward heuristic exploration from the root node to explore the subtree of the root node. The main steps are as follows:
[0131] S12: As Figure 2d shown, move the target projection forward by a set distance from the current position in the direction of the first sampling curve to obtain the first projection position of the target projection. Regarding the first sampling curve, refer to the relevant content of the above - mentioned embodiments, and details are not elaborated here.
[0132] S13: Perform collision detection on the target projection moved to the first projection position and the projection of the obstacle according to the size of the target projection, the projection position information of the obstacle in the cost map, and the inflated area in the cost map. If a collision occurs between the target projection at the first projection position and the projection of the obstacle, execute step S14a; if there is no collision between the target projection at the first projection position and the projection of the obstacle, execute step S14b.
[0133] S14a: Move the target projection forward by a set distance from the current position and return to execute step S12.
[0134] It should be noted that when returning to execute step S12, the first sampling curve is the sampling curve where the target projection is currently located in the target sampling curve, the sampling curve on the left side of the target projection and closest to the target projection in the target sampling curve, and the unexplored sampling curve among the sampling curves on the right side of the target projection and closest to the target projection in the target sampling curve. That is, when returning to execute step S12, the first sampling curve is different from the sampling curve used in the previous exploration.
[0135] S14b: Determine whether the first projection position is on the first sampling curve. If the determination result is yes, execute step S15; if the determination result is no, execute step S16.
[0136] S15: Take the first projection position as a child node of the root node, such as Figure 2g node A1 or A2 in
[0137] S16: Take the second projection position on the first sampling curve that has the same longitudinal coordinate as the first projection position as a child node of the root node, such as Figure 2g node A1 or A2 in
[0138] S17: Detect whether the position corresponding to the first child node explored currently reaches the horizontal target line where the destination is located; if it reaches, execute step S27; if it does not reach, execute step S18.
[0139] S18: For the first child node explored currently, move the target projection forward a set distance from the position corresponding to the first child node in the direction of the second sampling curve to obtain the third projection position of the target projection. Regarding the description of the second sampling curve, refer to the relevant content of the above embodiments and will not be elaborated here.
[0140] S19: According to the size of the target projection, the projection position information of the obstacle in the cost map, and the inflated area in the cost map, perform collision detection on the target projection at the third projection position and the projection of the obstacle. If a collision occurs between the target projection at the third projection position and the projection of the obstacle, execute step S20; if there is no collision between the target projection at the third projection position and the projection of the obstacle, execute step S24.
[0141] S20: Move the target projection a set distance to the left and right respectively along the horizontal direction of the first child node to determine the fourth projection position and the fifth position after movement.
[0142] S21: According to the size of the target projection, the position information of the obstacle in the cost map, and the inflated area in the cost map, perform collision detection on the target projection at the fourth projection position and the fifth position respectively with the projection of the obstacle. If the target projections at the fourth projection position and the fifth position both collide with the projection of the obstacle, take the first child node as a leaf node of the search tree and execute step S27; if the target projection at the fourth projection position has no collision with the projection of the obstacle, execute step S22; if the target projection at the fifth position has no collision with the projection of the obstacle, execute step S23.
[0143] S22: Use the fourth projection position as the lower-level node of the first child node, and use the fourth projection position as the new first child node, then return to execute step S17.
[0144] S23: Use the fifth position as the lower-level node of the first child node, and use the fifth position as the new first child node, then return to execute step S17.
[0145] S24: Determine whether the third projection position is on the second sampling curve. If the determination result is yes, execute step S25; if the determination result is no, execute step S26.
[0146] S25: Use the third projection position as the lower-level node of the first child node, and use the third projection position as the new first child node, then return to execute step S17.
[0147] S26: Use the sixth position on the second sampling curve that has the same longitudinal coordinate as the third projection position as the lower-level node of the first child node, and use the sixth position as the new first child node, then return to execute step S17.
[0148] S27: End the exploration of the current subtree and form a subtree of the root node.
[0149] S28: Determine whether the exploration of the subtree of the root node is completed; if it is completed, execute step S29; if it is not completed, return to execute step S12.
[0150] It should be noted that when returning to execute step S12, the first sampling curve is the sampling curve where the target projection is currently located in the target sampling curve, the sampling curve on the left side of the target projection and closest to the target projection in the target sampling curve, and the unexplored sampling curve among the sampling curves on the right side of the target projection and closest to the target projection in the target sampling curve. For example, as Figure 2d shown, when executing step S12 for the first time, move forward a set distance (i.e., forward to the right) along the sampling curve on the right side of the target projection and closest to the target projection in the target sampling curve, then when returning to execute step S12 again, move a set distance (i.e., straight forward) along the sampling curve where the initial projection position of the target projection in the target sampling curve is located; when returning to execute step S12 again, move forward a set distance (i.e., forward to the left) along the sampling curve on the left side of the target projection and closest to the target projection in the target sampling curve. In the embodiments of the present application, the order of execution of the directions in which the target projection moves forward is not limited, and the above is only an exemplary illustration and does not constitute a limitation.
[0151] It is also worth noting that when returning to step S12 after executing S28, the current position of the target projection in step S12 is the position where the target projection is located when starting to execute the drivable space operation, that is, the initial projection position. For example, assume that when starting to execute the drivable space operation, the initial projection position where the target projection is located is (s = 0, l = -100). Then when returning to execute step S12 after executing S28, the current position of the target projection still refers to the initial projection position (s = 0, l = -100).
[0152] S29: Output the search tree formed by the root node and the subtrees of the root node.
[0153] S30: Traverse the search tree to obtain the drivable space around the corresponding obstacle for the autonomous mobile device. That is, traverse the search tree to obtain all feasible solutions.
[0154] Using the drivable space planning method provided by the embodiments of the present application, the drivable space planning is respectively performed on the autonomous mobile device for detouring and passing through piles, and the obtained drivable space planning effects are as Figures 2h - 2j shown. Among them Figure 2h and Figure 2i represent the detouring effect, Figure 2h and Figure 2i In, the dashed line represents the planned drivable space, and the square with an arrow represents a pedestrian, that is, an obstacle. Figure 2j represents the schematic diagram of the pile-passing effect of the autonomous mobile device. In Figure 2j the dashed line represents the planned drivable space, the black rectangles represent road piles 1-4, and the gray squares represent other vehicles. For the autonomous mobile device, both the road piles and other vehicles are obstacles.
[0155] Furthermore, in Figures 2h - 2j navigation path planning can also be performed on the autonomous mobile device according to the planned drivable space, and the obtained navigation path is as shown by the gray curved surface in Figures 2h - 2j . Optionally, in Figures 2h - 2j when performing navigation path planning, the moving speeds of pedestrians and the autonomous mobile device can also be considered.
[0156] In this embodiment, taking the initial projection position of the autonomous mobile device as the root node, and using the sampling curve and the lateral target line as reference scalars, a full-tree search is performed on multiple slots. Through an iterative method, all feasible solutions can be obtained in a relatively short time, that is, all drivable spaces of the autonomous mobile device can be obtained at once. However, the Voronoi diagram cannot directly output the result. It can only output a grid map, and finally, another search method is needed to output the trajectory, and it cannot directly produce the result. Even the Voronoi diagram cannot complete the calculation alone. For dynamic programming (DP) and the lattice algorithm, discrete sampling is required, and then each trajectory is calculated one by one, resulting in low calculation efficiency. On the other hand, the Voronoi diagram, dynamic programming (DP), and the lattice algorithm cannot calculate the complete drivable space in a short time, resulting in an unclear drivable space. In the case of an unclear overall drivable space, it is difficult to ensure the effectiveness of the search. It is often possible to choose a feasible space with a dense obstacle after a complex search, or deviate from the expected walking direction after optimization.
[0157] It should be noted that the execution subject of each step of the method provided in the above embodiment can be the same device, or the method can also be executed by different devices as the execution subject. For example, the execution subject of steps 201 and 202 can be device A; or, the execution subject of step 201 can be device A, and the execution subject of step 202 can be device B; and so on.
[0158] In addition, in some processes described in the above embodiments and the accompanying drawings, multiple operations appear in a specific order. However, it should be clearly understood that these operations can be executed not in the order in which they appear in this article or in parallel. The operation numbers such as 201 and 202 are only used to distinguish different operations, and the numbers themselves do not represent any execution order. In addition, these processes can include more or fewer operations, and these operations can be executed in sequence or in parallel.
[0159] Correspondingly, the embodiment of the present application also provides a computer-readable storage medium storing a computer program. When the computer program is executed by one or more processors, one or more processors are caused to execute the steps in the above-mentioned drivable space planning method.
[0160] The drivable space planning method provided by the embodiment of the present application is applicable to autonomous mobile devices and can also be applicable to computer devices providing navigation services. Correspondingly, the embodiment of the present application also provides autonomous mobile devices and computer devices.
[0161] Figure 3 It is a hardware structure block diagram of an autonomous mobile device provided by an embodiment of the present application. As Figure 3As shown, the autonomous mobile device 30 includes: a mechanical body 30a. A computing device 30a2 is provided inside the mechanical body 30a1. Among them, the computing device may include: a processor 30b and a memory 30c. Among them, the processor 30b and the memory 30c may be provided inside the mechanical body 30a or on the surface of the mechanical body 30a.
[0162] The mechanical body 30a is an actuator of the autonomous mobile device 30 and can perform one or more operations specified by the processor 30b in a determined environment. Among them, the mechanical body 30a to a certain extent reflects the appearance of the autonomous mobile device 30. In this embodiment, the appearance of the autonomous mobile device 30 is not limited. The autonomous mobile device may be a robot, an unmanned vehicle, a drone, or the like.
[0163] A sensor 30d may also be provided on the mechanical body 30a for collecting environmental information or status information of the autonomous mobile device 30. Optionally, the sensor 30d may include: a vision sensor, an inertial sensor, an acceleration sensor, a speed sensor, etc., but is not limited thereto.
[0164] It should be noted that some basic components of the autonomous mobile device 30 are also provided on the mechanical body 30a, such as a drive assembly, an odometer, a power supply assembly, an audio assembly, etc. Optionally, the drive assembly may include drive wheels, drive motors, omnidirectional wheels, etc. These basic components included in different mobile devices and the composition of the basic components will vary. The examples listed in the embodiments of the present application are only partial examples.
[0165] The memory 30c is mainly used to store computer programs, and these computer programs can be executed by one or more processors 30b, causing one or more processors 30b to control the autonomous mobile device 30 to implement corresponding functions, complete corresponding actions or tasks. In addition to storing computer programs, one or more memories 30c may also be configured to store various other data to support operations on the autonomous mobile device 30. Examples of these data include instructions for any application program or method for operating on the autonomous mobile device 30.
[0166] One or more processors 30b, which can be regarded as the control system of the autonomous mobile device 30, can be coupled with one or more memories 30c to execute computer programs stored in the one or more memories 30c to control the autonomous mobile device 30 to implement corresponding functions, complete corresponding actions or tasks. It should be noted that when the autonomous mobile device 30 is in different scenarios, the functions to be implemented, the actions or tasks to be completed will be different; correspondingly, the computer programs stored in the one or more memories 30c will also be different, and the one or more processors 30b executing different computer programs can control the autonomous mobile device 30 to implement different functions, complete different actions or tasks.
[0167] In this embodiment, the processor 30b is mainly used for: obtaining a cost map of the area where the autonomous mobile device is located in a set coordinate system; controlling the target projection of the autonomous mobile device in the set coordinate system to move around the projection of the obstacle according to the obstacle projection position information in the cost map, so as to obtain the target projection position information generated in the cost map during the movement of the target projection towards the destination; performing collision detection on the target projection and the projection of the obstacle based on the target projection position information and the obstacle projection position information; and determining the drivable space of the autonomous mobile device around the corresponding obstacle according to the collision detection result.
[0168] Optionally, the set coordinate system is the Frenet coordinate system. Correspondingly, the processor 30b is further used for: taking the center line of the road between the current position of the autonomous mobile device and the destination as the reference line, and taking the point on the reference line with the shortest distance from the autonomous mobile device as the starting point of the reference line to establish the Frenet coordinate system.
[0169] Correspondingly, when the processor 30b obtains the cost map of the area where the autonomous mobile device is located in the set coordinate system, it is specifically used for: projecting the obstacles in the area where the autonomous mobile device is located into the Frenet coordinate system to obtain the projection of the obstacles; determining the expansion area of the obstacles in the Frenet coordinate system according to the size of the target projection and the obstacle projection position information; and constructing a cost map according to the obstacle projection position information and the expansion area of the obstacles in the Frenet coordinate system.
[0170] In some embodiments, the set coordinate system is the Frenet coordinate system. The processor 30b is further used for: setting a plurality of sampling curves on the left and right sides of the reference line of the Frenet coordinate system at a set sampling interval; the plurality of sampling curves are parallel curves of the reference line.
[0171] Accordingly, when the processor 30b controls the target projection of the autonomous mobile device to move around the projection of the obstacle in the set coordinate system, it is specifically used for: determining the sampling curves with obstacles distributed in the cost map from multiple sampling curves according to the obstacle projection position information; obtaining the boundary sampling curve closest to the autonomous mobile device from the sampling curves with obstacles distributed; obtaining the target sampling curve without obstacle distribution between the autonomous mobile device and the boundary sampling curve; and controlling the target projection to move forward in the direction of the target sampling curve to obtain a target projection position information generated by the movement of the target projection towards the destination in the cost map.
[0172] Optionally, when the processor 30b determines the target sampling curve without obstacle distribution in the cost map, it is further used for: obtaining the distribution of the obstacles on the slot line according to the obstacle projection position information; the slot line is a transverse axis perpendicular to the tangent of the starting point of the reference line; obtaining the slot positions occupied by the obstacles according to the distribution of the obstacles on the slot line; and using the sampling curve where the slot positions occupied by the obstacles are located as the sampling curve with obstacles distributed.
[0173] Furthermore, when the processor 30b determines the sampling curves with obstacles distributed in the cost map, it is specifically used for: obtaining the distribution of the obstacles on the slot line according to the position information of the obstacles in the cost map; the slot line is a transverse axis perpendicular to the tangent of the starting point of the reference line; obtaining the slot positions occupied by the obstacles according to the distribution of the obstacles on the slot line; and using the sampling curve corresponding to the slot positions occupied by the obstacles as the sampling curve with obstacles distributed.
[0174] Optionally, when the processor 30b controls the target projection to move in the direction of the target sampling curve, it is specifically used for: moving the target projection forward by a set distance from the current position in the direction of the first sampling curve to obtain the first projection position of the target projection in the cost map.
[0175] Wherein, the first sampling curve is the sampling curve where the target projection is currently located in the target sampling curve, or the sampling curve on the left side of the target projection and closest to the target projection in the target sampling curve, or the sampling curve on the right side of the target projection and closest to the target projection in the target sampling curve.
[0176] Accordingly, when the processor 30b performs collision detection on the target projection and the projection of the obstacle, it is specifically used for: judging whether the target projection moved to the first projection position overlaps with the projection of the obstacle and judging whether the center of the target projection moved to the first projection position falls into the inflation area according to the size of the target projection, the obstacle projection position information and the inflation area in the cost map; if the judgment results are both negative, it is determined that there is no collision between the target projection at the first projection position and the projection of the obstacle.
[0177] In some embodiments, the processor 30b is further configured to: use the current position of the autonomous mobile device as the root node. Accordingly, when determining the drivable space around the corresponding obstacle of the autonomous mobile device, the processor 30b is specifically configured to: when there is no collision between the target projection at the first projection position and the projection of the obstacle, perform a forward heuristic search based on the first projection position to determine the subtree of the root node; determine the drivable space around the corresponding obstacle of the autonomous mobile device according to the search tree formed by the root node and the subtree of the root node.
[0178] Further, when determining the subtree of the root node, the processor 30b is specifically configured to: determine whether the first projection position is located on the first sampling curve; if the determination result is yes, use the first projection position as a child node of the root node; if the determination result is no, use the second projection position on the first sampling curve that has the same longitudinal coordinate as the first projection position as a child node of the root node; continue to perform a forward heuristic search based on the explored child node to determine the lower-level child nodes of the explored child node until the explored child node reaches the horizontal target line where the destination is located; use the child node that reaches the horizontal target line as the leaf node of the search tree.
[0179] Optionally, when determining the lower-level child nodes of the explored child node, the processor 30b is specifically configured to: for the explored first child node, when the first child node has not reached the horizontal target line, move the target projection forward by a set distance from the position corresponding to the first child node in the direction of the second sampling curve to simulate the autonomous mobile device moving towards the destination, and obtain the third projection position of the target projection; perform a collision detection on the target projection at the third projection position and the projection of the obstacle according to the size of the target projection, the position information of the obstacle in the cost map, and the inflated area in the cost map; if there is no collision between the target projection at the third projection position and the projection of the obstacle, determine the lower-level child node of the first child node based on the third projection position.
[0180] Accordingly, if there is a collision between the target projection at the third projection position and the projection of the obstacle, move the target projection along the horizontal direction of the first child node by a set distance to determine the moved fourth projection position; perform a collision detection on the target projection at the fourth projection position and the projection of the obstacle according to the size of the target projection, the projection position information of the obstacle, and the inflated area in the cost map; if there is no collision between the target projection at the fourth projection position and the obstacle, determine the lower-level child node of the first child node based on the fourth projection position. Accordingly, if there is a collision between the target projection at the fourth projection position and the projection of the obstacle, use the first child node as a leaf node of the search tree.
[0181] Among them, the second sampling curve is the sampling curve where the first sub-node is located; or, among the target sampling curves, it is the sampling curve located to the left of the first sub-node and closest to the first sub-node; or, among the target sampling curves, it is the sampling curve located to the right of the first sub-node and closest to the first sub-node.
[0182] Optionally, when determining the drivable space of the autonomous mobile device around the corresponding obstacle, the processor 30b is specifically configured to: traverse the search tree to obtain the drivable space of the autonomous mobile device around the corresponding obstacle.
[0183] Optionally, the processor 30b is further configured to: perform path planning on the autonomous mobile device according to the drivable space of the autonomous mobile device around the corresponding obstacle to obtain the navigation path of the autonomous mobile device.
[0184] The autonomous mobile device provided in this embodiment can use a set coordinate system to establish a cost map of the area space where the autonomous mobile device is located in the set coordinate system; and based on the cost map, explore the drivable space of the autonomous mobile device around the obstacle, reducing the exploration of blank areas and helping to improve the exploration efficiency of the drivable space.
[0185] Figure 4 It is a schematic structural diagram of a computing device provided in an embodiment of the present application. As Figure 4 shown, the computing device includes: a memory 40a and a processor 40b.
[0186] In this embodiment, the memory 40a is used to store computer programs.
[0187] The processor 40b is coupled to the memory 40a and is configured to execute the computer program to: obtain the cost map of the area where the autonomous mobile device is located in the set coordinate system; control the target projection of the autonomous mobile device in the set coordinate system to move around the projection of the obstacle according to the obstacle projection position information of the obstacle in the cost map to obtain the target projection position information generated in the cost map during the movement of the target projection towards the destination; perform collision detection on the target projection and the projection of the obstacle based on the target projection position information and the obstacle projection position information; and determine the drivable space of the autonomous mobile device around the corresponding obstacle according to the collision detection result.
[0188] Optionally, the set coordinate system is a Frenet coordinate system. Correspondingly, the processor 40b is further configured to: use the midline of the road between the current position of the autonomous mobile device and the destination as the reference line, and use the point on the reference line that is the shortest distance from the autonomous mobile device as the starting point of the reference line to establish a Frenet coordinate system.
[0189] Accordingly, when the processor 40b obtains the cost map of the area where the autonomous mobile device is located in the set coordinate system, it specifically is used for: projecting the obstacles in the area where the autonomous mobile device is located into the Frenet coordinate system to obtain the projections of the obstacles; determining the expansion area of the obstacles in the Frenet coordinate system according to the size of the target projection and the projection position information of the obstacles; and constructing the cost map according to the projection position information of the obstacles and the expansion area of the obstacles in the Frenet coordinate system.
[0190] In some embodiments, the set coordinate system is the Frenet coordinate system. The processor 40b is further used for: respectively setting a plurality of sampling curves on the left and right sides of the reference line in the Frenet coordinate system at a set sampling interval; the plurality of sampling curves are parallel curves of the reference line.
[0191] Accordingly, when the processor 40b controls the target projection in the set coordinate system of the autonomous mobile device to move around the projection of the obstacle, it specifically is used for: determining the sampling curves with obstacles distributed in the cost map from the plurality of sampling curves according to the obstacle projection position information; obtaining the boundary sampling curve closest to the autonomous mobile device from the sampling curves with obstacles distributed; obtaining the target sampling curve without obstacle distribution between the autonomous mobile device and the boundary sampling curve; and controlling the target projection to move forward in the direction of the target sampling curve to obtain a target projection position information generated when the target projection moves towards the destination in the cost map.
[0192] Optionally, when the processor 40b determines the target sampling curve without obstacle distribution in the cost map, it is further used for: obtaining the distribution of the obstacles on the slot line according to the obstacle projection position information; the slot line is a transverse axis perpendicular to the tangent line at the starting point of the reference line; obtaining the slot positions occupied by the obstacles according to the distribution of the obstacles on the slot line; and taking the sampling curve where the slot positions occupied by the obstacles are located as the sampling curve with obstacles distributed.
[0193] Further, when the processor 40b determines the sampling curves with obstacles distributed in the cost map, it specifically is used for: obtaining the distribution of the obstacles on the slot line according to the position information of the obstacles in the cost map; the slot line is a transverse axis perpendicular to the tangent line at the starting point of the reference line; obtaining the slot positions occupied by the obstacles according to the distribution of the obstacles on the slot line; and taking the sampling curve corresponding to the slot positions occupied by the obstacles as the sampling curve with obstacles distributed.
[0194] Optionally, when the processor 40b controls the target projection to move in the direction of the target sampling curve, it specifically is used for: moving the target projection forward a set distance from the current position in the direction of the first sampling curve to obtain the first projection position of the target projection in the cost map.
[0195] Wherein, the first sampling curve is the sampling curve where the target projection currently is in the target sampling curve, or is the sampling curve in the target sampling curve that is located on the left side of the target projection and is closest to the target projection, or is the sampling curve in the target sampling curve that is located on the right side of the target projection and is closest to the target projection.
[0196] Correspondingly, when the processor 40b performs collision detection on the target projection and the projection of the obstacle, it is specifically configured to: based on the size of the target projection, the obstacle projection position information, and the inflated area in the cost map, determine whether the target projection moved to the first projection position overlaps with the projection of the obstacle and determine whether the center of the target projection moved to the first projection position falls into the inflated area; if both judgment results are negative, it is determined that there is no collision between the target projection and the projection of the obstacle at the first projection position.
[0197] In some embodiments, the processor 40b is further configured to: use the current position of the autonomous mobile device as the root node. Correspondingly, when the processor 40b determines the drivable space around the corresponding obstacle of the autonomous mobile device, it is specifically configured to: in the case that there is no collision between the target projection and the projection of the obstacle at the first projection position, perform forward heuristic search based on the first projection position to determine the subtree of the root node; determine the drivable space around the corresponding obstacle of the autonomous mobile device according to the search tree formed by the root node and the subtree of the root node.
[0198] Further, when the processor 40b determines the subtree of the root node, it is specifically configured to: determine whether the first projection position is on the first sampling curve; if the judgment result is yes, use the first projection position as a child node of the root node; if the judgment result is no, use the second projection position on the first sampling curve that has the same longitudinal coordinate as the first projection position as a child node of the root node; continue to perform forward heuristic search based on the explored child node to determine the lower-level child nodes of the explored child node until the explored child node reaches the horizontal target line where the destination is located; use the child node that reaches the horizontal target line as the leaf node of the search tree.
[0199] Optionally, when the processor 40b determines the lower-level child nodes of the explored child node, it is specifically configured to: for the explored first child node, in the case that the first child node has not reached the horizontal target line, move the target projection forward by a set distance from the position corresponding to the first child node in the direction of the second sampling curve to simulate the autonomous mobile device moving towards the destination, to obtain the third projection position of the target projection; perform collision detection on the target projection and the projection of the obstacle at the third projection position according to the size of the target projection, the position information of the obstacle in the cost map, and the inflated area in the cost map; if there is no collision between the target projection and the projection of the obstacle at the third projection position, determine the lower-level child nodes of the first child node based on the third projection position.
[0200] Accordingly, if there is a collision between the target projection at the third projection position and the projection of the obstacle at the third projection position, the target projection is moved a set distance along the lateral direction of the first child node to determine the moved fourth projection position; collision detection is performed on the target projection at the fourth projection position and the projection of the obstacle according to the size of the target projection, the projection position information of the obstacle, and the inflated area in the cost map; if there is no collision between the target projection at the fourth projection position and the obstacle, the lower-level child node of the first child node is determined based on the fourth projection position. Accordingly, if there is a collision between the target projection at the fourth projection position and the projection of the obstacle, the first child node is used as a leaf node of the search tree.
[0201] Wherein, the second sampling curve is the sampling curve where the first child node is located; or, among the target sampling curves, the sampling curve on the left side of the first child node and closest to the first child node; or, the sampling curve on the right side of the first child node and closest to the first child node among the target sampling curves.
[0202] Optionally, when determining the drivable space of the autonomous mobile device around the corresponding obstacle, the processor 40b is specifically configured to: traverse the search tree to obtain the drivable space of the autonomous mobile device around the corresponding obstacle.
[0203] Optionally, the processor 40b is further configured to: perform path planning on the autonomous mobile device according to the drivable space of the autonomous mobile device around the corresponding obstacle to obtain the navigation path of the autonomous mobile device.
[0204] In some alternative embodiments, as Figure 4 shown, the computer device may further include: optional components such as a communication component 40c, a power supply component 40d, a display component 40e, and an audio component 40f. Figure 4 Only some components are schematically shown, which does not mean that the computer device must include Figure 4 all the components shown, nor does it mean that the computer device can only include Figure 4 the components shown.
[0205] The computing device provided in this embodiment can utilize a set coordinate system to establish a cost map of the area space where the autonomous mobile device is located in the set coordinate system; and explore the drivable space of the autonomous mobile device around the obstacle based on the cost map, reducing the exploration of blank areas and helping to improve the exploration efficiency of the drivable space.
[0206] In the embodiments of the present application, the memory is used to store computer programs and can be configured to store various other data to support operations on the device where it is located. Among them, the processor can execute the computer programs stored in the memory to implement corresponding control logic. The memory can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.
[0207] In the embodiments of the present application, the processor can be any hardware processing device capable of executing the above method logic. Optionally, the processor can be a central processing unit (CPU), a graphics processing unit (GPU), or a microcontroller unit (MCU); it can also be a programmable device such as a field-programmable gate array (FPGA), a programmable array logic device (PAL), a general array logic device (GAL), a complex programmable logic device (CPLD), etc.; or an advanced reduced instruction set (RISC) processor (Advanced RISC Machines, ARM) or a system on chip (SOC), etc., but not limited thereto.
[0208] In the embodiments of the present application, the communication component is configured to facilitate communication between the device where it is located and other devices in a wired or wireless manner. The device where the communication component is located can access a wireless network based on a communication standard, such as WiFi, 2G, or 3G, 4G, 5G, or a combination thereof. In an exemplary embodiment, the communication component receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component can also be implemented based on near field communication (NFC) technology, radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, or other technologies.
[0209] In the embodiments of the present application, the display component may include a liquid crystal display (LCD) and a touch panel (TP). If the display component includes a touch panel, the display component may be implemented as a touch screen to receive input signals from a user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensors can sense not only the boundaries of touch or swipe actions, but also detect the duration and pressure associated with the touch or swipe operations.
[0210] In the embodiments of the present application, the power supply component is configured to provide power for various components of the device where it is located. The power supply component may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power for the device where the power supply component is located.
[0211] In the embodiments of the present application, the audio component may be configured to output and / or input audio signals. For example, the audio component includes a microphone (MIC). When the device where the audio component is located is in an operating mode, such as a call mode, a recording mode, and a voice recognition mode, the microphone is configured to receive external audio signals. The received audio signals may be further stored in a memory or transmitted via a communication component. In some embodiments, the audio component further includes a speaker for outputting audio signals. For example, for a device with a language interaction function, voice interaction with a user can be implemented through the audio component.
[0212] It should be noted that the descriptions such as "first" and "second" in this article are used to distinguish different messages, devices, modules, etc., and do not represent a sequence, nor do they limit that "first" and "second" are of different types.
[0213] Those skilled in the art should understand that the embodiments of the present application may be provided as a method, a system, or a computer program product. Therefore, the present application may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk memories, CD-ROMs, optical memories, etc.) containing computer-usable program code.
[0214] This application is described with reference to the flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and combinations of flows and / or blocks in the flowcharts and / or block diagrams can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing device generate means for implementing the functions specified in one or more flows of the flowchart and / or one or more blocks of the block diagram.
[0215] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a particular manner, such that the instructions stored in the computer-readable memory produce a manufacture including instruction means that implement the functions specified in one or more flows of the flowchart and / or one or more blocks of the block diagram.
[0216] These computer program instructions can also be loaded onto a computer or other programmable data processing device, such that a series of operation steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more flows of the flowchart and / or one or more blocks of the block diagram.
[0217] In a typical configuration, a computing device includes one or more processors (CPUs), an input / output interface, a network interface, and memory.
[0218] The memory may include non-permanent memory in the form of computer-readable media, random access memory (RAM), and / or non-volatile memory such as read-only memory (ROM) or flash memory (flash RAM). The memory is an example of computer-readable media.
[0219] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.
[0220] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.
[0221] The above is only an embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.
Claims
1. A method for planning a drivable space, wherein, Including: Obtaining a cost map of the area where the autonomous mobile device is located in a set coordinate system; the set coordinate system is a Frenet coordinate system; multiple sampling curves are respectively arranged on the left and right sides of the reference line of the Frenet coordinate system; According to the obstacle projection position information of the obstacle in the cost map, controlling the target projection of the autonomous mobile device in the set coordinate system to move around the projection of the obstacle, so as to obtain the target projection position information generated in the cost map during the movement of the target projection towards the destination; Based on the target projection position information and the obstacle projection position information, performing collision detection on the target projection and the projection of the obstacle; According to the collision detection result, determining the drivable space of the autonomous mobile device around the corresponding obstacle; Wherein, the controlling the target projection of the autonomous mobile device in the set coordinate system to move around the projection of the obstacle according to the obstacle projection position information of the obstacle in the cost map includes: According to the obstacle projection position information, determining the sampling curves with obstacles distributed in the cost map from the multiple sampling curves; From the sampling curves with obstacles distributed, obtaining the boundary sampling curve closest to the autonomous mobile device; Obtaining the target sampling curve without obstacle distribution between the autonomous mobile device and the boundary sampling curve; Controlling the target projection to move forward in the direction of the target sampling curve, so as to obtain a target projection position information generated in the cost map during the movement of the target projection towards the destination.
2. The method according to claim 1, wherein, The method further includes: According to a set sampling interval, respectively arranging multiple sampling curves on the left and right sides of the reference line of the Frenet coordinate system, and the multiple sampling curves are parallel curves of the reference line.
3. The method according to claim 2, wherein, The determining the sampling curves with obstacles distributed in the cost map according to the obstacle projection position information of the obstacle in the cost map includes: According to the obstacle projection position information, obtaining the distribution of the obstacle on the slot line; the slot line is a transverse axis perpendicular to the tangent line of the starting point of the reference line; According to the distribution of the obstacle on the slot line, obtaining the slot positions occupied by the obstacle; Taking the sampling curve where the slot position occupied by the obstacle is located as the sampling curve with obstacles distributed.
4. The method according to claim 2, wherein, The controlling the target projection to move in the direction of the target sampling curve includes: Moving the target projection forward a set distance from the current position in the direction of the first sampling curve, to obtain the first projection position of the target projection in the cost map; Wherein, the first sampling curve is the sampling curve where the target projection is currently located in the target sampling curve, or the sampling curve on the left side of the target projection and closest to the target projection in the target sampling curve, or the sampling curve on the right side of the target projection and closest to the target projection in the target sampling curve.
5. The method according to claim 4, wherein, The performing collision detection on the target projection and the projection of the obstacle based on the target projection position information and the obstacle projection position information includes: Based on the size of the target projection, the obstacle projection position information, and the inflated area in the cost map, determine whether the target projection moving to the first projection position overlaps with the projection of the obstacle and determine whether the center of the target projection moving to the first projection position falls within the inflated area; If both judgment results are negative, it is determined that there is no collision between the target projection and the projection of the obstacle at the first projection position.
6. The method according to claim 5, wherein, It further includes: Taking the current position of the autonomous mobile device as the root node; The determining the drivable space of the autonomous mobile device according to the collision detection result includes: When there is no collision between the target projection and the projection of the obstacle at the first projection position, perform a forward heuristic search based on the first projection position to determine the subtree of the root node; Determine the drivable space of the autonomous mobile device around the corresponding obstacle according to the search tree formed by the root node and the subtree of the root node.
7. The method according to claim 6, wherein, The performing a forward heuristic search based on the first projection position to determine the subtree of the root node includes: Judge whether the first projection position is located on the first sampling curve; If the judgment result is yes, take the first projection position as a child node of the root node; If the judgment result is no, take the second projection position on the first sampling curve that has the same longitudinal coordinate as the first projection position as a child node of the root node; Continue to perform a forward heuristic search based on the explored child node to determine the lower-level child nodes of the explored child node until the explored child node reaches the horizontal target line where the destination is located; Take the child node that reaches the horizontal target line as the leaf node of the search tree.
8. The method according to claim 7, wherein, The continuing to perform a forward heuristic search based on the explored child node to determine the lower-level child nodes of the explored child node includes: For the first explored child node, when the first explored child node has not reached the horizontal target line, move the target projection forward a set distance from the position corresponding to the first explored child node in the direction of the second sampling curve to simulate the autonomous mobile device moving towards the destination, and obtain the third projection position of the target projection; Perform collision detection on the target projection and the projection of the obstacle at the third projection position according to the size of the target projection, the position information of the obstacle in the cost map, and the inflated area in the cost map; If there is no collision between the target projection and the projection of the obstacle at the third projection position, determine the lower-level child nodes of the first explored child node based on the third projection position; Wherein, the second sampling curve is the sampling curve where the first explored child node is located; or, among the target sampling curves, the sampling curve on the left side of the first explored child node and closest to the first explored child node; or, the sampling curve on the right side of the first explored child node and closest to the first explored child node among the target sampling curves.
9. The method according to claim 8, wherein, It further includes: If there is a collision between the target projection at the third projection position and the projection of the obstacle, move the target projection a set distance along the lateral direction of the first child node to determine the moved fourth projection position; Perform collision detection on the target projection at the fourth projection position and the projection of the obstacle according to the size of the target projection, the projection position information of the obstacle, and the inflated area in the cost map; If there is no collision between the target projection at the fourth projection position and the obstacle, determine the lower-level child node of the first child node based on the fourth projection position.
10. The method according to claim 9, wherein, Further includes: If there is a collision between the target projection at the fourth projection position and the projection of the obstacle, use the first child node as a leaf node of the search tree.
11. The method according to claim 8, wherein, The determining the drivable space of the autonomous mobile device according to the search tree formed by the root node and the subtree of the root node includes: Traverse the search tree to obtain the drivable space of the autonomous mobile device around the corresponding obstacle.
12. The method according to claim 2, wherein, Further includes: Use the midline of the road between the autonomous mobile device and the destination as the reference line, and use the point on the reference line with the shortest distance from the autonomous mobile device as the starting point of the reference line to establish a Frenet coordinate system; The obtaining the cost map of the area where the autonomous mobile device is located in the set coordinate system includes: Project the obstacles in the area where the autonomous mobile device is located into the Frenet coordinate system to obtain the projections of the obstacles; Determine the inflated area of the obstacle in the Frenet coordinate system according to the size of the target projection and the projection position information of the obstacle; Construct the cost map according to the projection position information of the obstacle and the inflated area of the obstacle in the Frenet coordinate system.
13. The method according to any one of claims 1-12, wherein, Further includes: Perform path planning on the autonomous mobile device according to the drivable space of the autonomous mobile device around the corresponding obstacle to obtain the navigation path of the autonomous mobile device.
14. A computing device, wherein, Includes: A memory and a processor; wherein, the memory is used to store a computer program; The processor is coupled to the memory and is used to execute the computer program to perform the steps in the method according to any one of claims 1-13.
15. An autonomous mobile device, wherein, Includes: A mechanical body and a computing device as described in claim 14 provided in the mechanical body.