Local map construction method and device for path planning

By constructing a local map in autonomous driving planning, using the frenet coordinate system to obtain road boundary and obstacle information, and converting it into a Cartesian raster map, the planning limitations of traditional methods in structured and unstructured scenarios are solved. and the problem of high computing power consumption, achieving efficient and accurate path planning.

CN119354181AActive Publication Date: 2025-01-24NEOLITHIC HUITONG TECHNOLOGY CO LTD

Patent Information

Application Number
CN202411942962.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-27
Publication Date
2025-01-24
Estimated Expiration
2044-12-27

AI Technical Summary

Technical Problem

In autonomous driving planning, the traditional reference line system built on the frenet system has limitations in driving planning in structured and unstructured scenarios, especially in situations such as turning around and getting out of trouble, and the computing power consumption of the existing technology is too large. .

Method used

Adopt a local map construction method, obtain road boundary information and obstacle information through the reference line based on the Frenet coordinate system, and convert it into a grid map under the Descartes, build a raster map, prefix grid map, and the prefix grid map and European -style raster maps are planned for path planning.

Benefits of technology

It effectively solves the limitations of traditional planning methods in structured and unstructured scenarios, reduces computing power consumption, and improves the efficiency and accuracy of path planning.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119354181A_ABST
    Figure CN119354181A_ABST
Patent Text Reader

Abstract

The invention discloses a local map construction method and device for path planning. The method comprises the following steps: traversing a preset map according to perception information and map information based on a reference line of a to-be-planned local map under a frenet coordinate system to obtain road boundary information and obstacle information of the to-be-planned local map; road boundary information and obstacle information under the Cartesian system are converted into a grid map, and an occupied grid map of the local map to be planned is constructed; constructing a prefix grid map and an Euclidean distance field grid map of the local map to be planned based on the occupied grid map; and performing path planning according to the occupation grid map, the prefix grid map and the Euclidean distance field grid map of the to-be-planned local map, and obtaining a planned path of the to-be-planned local map.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of autonomous driving planning technology, and more specifically, to a local map construction method and device for path planning. Background Art

[0002] In autonomous driving path planning, driving planning is inconvenient in some structured scenarios, such as U-turns and escapes from difficulties, as well as in driving or parking planning in unstructured scenarios. Planning based on the reference line system built on the Frenet system has certain limitations. At this time, it is necessary to consider planning issues under the Cartesian system. Traditional planning will do some geometric modeling of obstacles and roads within a certain configuration space, and perform planning and collision detection based on this geometric relationship, such as OBCA and other algorithms, but there is a technical problem of excessive computing power consumption. Summary of the invention

[0003] In view of the deficiencies in the prior art, the present invention provides a method and device for constructing a local map for path planning.

[0004] According to one aspect of the present invention, a local map construction method for path planning is provided, comprising: Based on the reference line of the local map to be planned in the frenet coordinate system, the preset map is traversed according to the perception information and map information to obtain the road boundary information and obstacle information of the local map to be planned; Convert the road boundary information and obstacle information in the Cartesian system into a grid map, and construct an occupancy grid map of the local map to be planned; Based on the occupancy grid map, a prefix grid map and a Euclidean distance field grid map of the local map to be planned are constructed; Path planning is performed according to the occupation grid map, the prefix grid map and the Euclidean distance field grid map of the local map to be planned, so as to obtain a planned path of the local map to be planned.

[0005] Optionally, based on the reference line of the local map to be planned in the Frenet coordinate system, traversing the preset map according to the perception information and the map information to obtain the road boundary information, including: Based on the reference line of the frenet coordinate system, customize the vertical starting point start_s and the vertical end point end_s; Traverse all reference points between the starting point and the end point in the preset map, and read the first leftmost boundary point left_xy and the first rightmost boundary point right_xy of each reference point; Read the second leftmost boundary point left_curb_xy and the second rightmost boundary point right_curb_xy of the longitudinal position corresponding to the left and right visual curb information of each reference point; Update the first leftmost boundary point left_xy and the second leftmost boundary point left_curb_xy, whichever is closer to the center of the lane, to the new leftmost boundary point left_xy; Update the first rightmost boundary point right_xy and the second rightmost boundary point right_curb_xy, which is closer to the lane center, to the new rightmost boundary point right_xy, store the new leftmost boundary point left_xy and the new rightmost boundary point right_xy after each reference point is updated into the road boundary container bound_vec, and obtain the road boundary information.

[0006] Optionally, based on the reference line of the local map to be planned in the frenet coordinate system, traversing the preset map according to the perception information and the map information to obtain obstacle information includes: Traverse all reference points between the longitudinal starting point start_s and the longitudinal end point end_s; Determine the left boundary position left_lim_l and the right boundary position right_lim_l of the widest part in this longitudinal interval according to the left boundary left_l and the right boundary right_l of each reference point; Traverse all static obstacles provided by the perception, filter out obstacles that are completely outside the longitudinal start point start_s and the longitudinal end point end_s, and obstacles that are completely outside the left boundary position left_lim_l and the right boundary position right_lim_l, store the remaining obstacles that meet the requirements after filtering into the obstacle container obs_vec, and obtain obstacle information.

[0007] Optionally, converting the road boundary information and obstacle information in the Cartesian system into a grid map, and constructing an occupied grid map of the local map to be planned, including: Traverse the road boundary information and obtain four extreme positions to determine the local map boundary in the Cartesian system; Define the grid resolution step, x-axis grid number, y-axis grid number, and Cartesian origin coordinates of the grid map according to the local map boundary; Initialize the two-dimensional array bin_map, setting each position to 0; Traverse all elements in the obstacle information bound_vec, use the line segment rasterization tool to read all the first grid point sequences passing through the line connecting the two points before and after the traversal, and set the positions in the two-dimensional array bin_map represented by the grid point coordinates in all the first grid point sequences to 1; Call the edge filling tool to set all the parts from the grid boundary in the two-dimensional array bin_map to the obstacle information bound_vec that are integrated with the map lane and the perceived roadside boundary to 1; Define the first grid map obs_map with the same number of rows and columns as the two-dimensional array bin_map to represent obstacles, and set each position to 0; Traverse each obstacle in the first grid map obs_vec, and then traverse the contour points of each obstacle in the second layer. Use the line segment rasterization tool to read all the second grid point sequences passing through the line connecting the two contour points before and after the traversal, and set the positions in the first grid map obs_map represented by the coordinates of all the second grid point sequences to 1; Call the edge filling tool to set all the parts from the grid boundary in the first grid map obs_map to the obstacle contour boundary stored in the obstacle information obs_vec to 2; Traverse the first grid map obs_map, set the obstacle boundary and its interior to 1, and also set the outermost circle of the obstacle to 1; Traverse the first grid map obs_map, find out the position where the grid map obs_map is 1 and update the two-dimensional array bin_map to 1, and construct the occupied grid map of the local map to be planned.

[0008] Optionally, the implementation process of the line segment rasterization tool is: Input the first starting point start and the first end point end in the Cartesian system, and output the grid point container vx_vec that stores all the grid points that need to be passed from the first starting point start to the first end point end in the grid map; Get the vector ray={end[0] - start[0], end[1] - start[1]} formed by the first starting point start and the first end point end of Cartesian. Calculate the line segment according to the vector ray x and y The moving direction on the axis dir={ray[0]>0?1:-1, ray[1]>0?1:-1}, where the moving directions include: {1,1}, {1,-1}, {-1,1} and {-1,-1}; According to the second starting point start_vx and the second end point end_vx of the grid map obtained by the coordinate converter and the moving direction, the grid point is moved in the x-axis and y-axis directions by one grid resolution step respectively and converted into Cartesian coordinates n_vx={(start_vx[0]+ (dir[0]>0)) * step + base[0], (end_vx[1]+ (di[1]>0)) *step + base[1]}; According to the Cartesian coordinate point set, initialize t_max={abs((n_vx[0] - start_vx[0]) / ray[0]), abs((n_vx[1] - start_vx[1]) / ray[1])} and t_step={abs(step / ray[0]* dir[0]), abs(step / ray[1]* dir[1])}, where t_max is used to record the time interval to reach the next grid, and t_step is the time increment of each step; Add the second starting point start_vx of the grid map to the grid point container vx_vec, define the grid point cur_vx to be initialized as the second starting point start_vx, if cur_vx has not moved to the second end_vx, enter the loop, judge the size of the x-axis and y-axis data in t_max, if the x-axis direction is smaller, t_max[0] += t_step[0] and curr_vx[0]+= di[0] to realize the movement in the x-axis direction, otherwise it realizes the movement in the y-axis direction, after the movement is completed, add the moved grid point cur_vx to the grid point container vx_vec.

[0009] Optionally, the edge filling tool is implemented as follows: Traverse the edge of the initial grid map, check whether the value of the edge position is equal to from, and use the breadth-first search tool to change all connected original values ​​from to the target value to, where Traverse the edge of the initial grid map, check whether the value of the edge position is equal to the original value from, and change all connected original values ​​from to the target value to through the breadth-first search tool, including: Traverse each row of the initial grid map, check multiple first values ​​at the first column and the last column, if multiple first values ​​are the original value from, call the breadth-first search tool to fill the original value from with the target value to starting from the first column and the last column; Traverse each column of the initial grid map, check the multiple second values ​​at the first and last row positions, and if the multiple second values ​​are from, call the breadth-first search tool to fill the original value from with the target value to starting from the first and last rows.

[0010] Optionally, based on the occupied grid map, a prefix grid map of the local map to be planned is constructed, including: Define a second grid map with the same number of rows and columns as the two-dimensional array, where each position of the second grid map is set to 0; The value of each grid point in the second grid map is calculated according to the occupied grid map to obtain the prefix grid map, wherein the calculation formula for the value of each grid point in the second grid map is: presum_map[i][j] = bin_map[i - 1][j - 1] + bin_map[i - 1][j] + bin_map[i][j - 1] -bin_map[i- 1][j - 1], where bin_map is the occupied grid map.

[0011] Optionally, based on the occupancy grid map, a Euclidean distance field grid map of the local map to be planned is constructed, including: Define a third grid map with the same number of rows and columns as the two-dimensional array, where each position of the third grid map is set to 0; and initialize a double-ended queue dq and the distance dis from a certain position to its nearest obstacle = 0; Update the occupied position corresponding to 1 in the occupied grid map to -10 in the third grid map, update the unoccupied position corresponding to the position in the third grid map to the distance dis, and add the grid point of the unoccupied position to the double-ended queue dq; When the double-ended queue dq is not empty, a loop is entered, the first point in the double-ended queue dq is popped out to check its adjacent points. If the adjacent point is in a non-occupied position, it is added to the double-ended queue dq, and the value of its position in the third grid map is set to the current distance dis. After each layer of distance dis value is processed, the grid resolution is increased until all grid points in the third grid map are assigned values, and the Euclidean distance field grid map of the local map to be planned is constructed.

[0012] Optionally, path planning is performed according to the occupied grid map, the prefix grid map, and the Euclidean distance field grid map of the local map to be planned to obtain a planned path of the local map to be planned, including: Evaluate points in an initial planning path preset and constructed in the local map to be planned according to the occupancy grid map, and update the initial planning path according to the evaluation result to obtain a first updated planning path; Evaluate the rectangles in the first updated planned path according to the prefix grid map, and update the first updated planned path according to the evaluation result to obtain a second updated planned path; The distances from points in the second updated planned path to obstacles are evaluated according to the prefix grid map, and the second updated planned path is updated according to the evaluation result to obtain the planned path of the local map to be planned.

[0013] According to another aspect of the present invention, there is provided a local map construction device for path planning, comprising: A traversal module is used to traverse the preset map based on the reference line of the local map to be planned in the frenet coordinate system according to the perception information and map information to obtain the road boundary information and obstacle information of the local map to be planned; The first construction module is used to convert the road boundary information and obstacle information in the Cartesian system into a grid map, and construct an occupied grid map of the local map to be planned; The second construction module is used to construct a prefix grid map and a Euclidean distance field grid map of the local map to be planned based on the occupancy grid map; The planning module is used to perform path planning according to the occupied grid map, the prefix grid map and the Euclidean distance field grid map of the local map to be planned, and obtain the planned path of the local map to be planned.

[0014] According to another aspect of the present invention, a computer-readable storage medium is provided, wherein the storage medium stores a computer program, and the computer program is used to execute the method described in any one of the above aspects of the present invention.

[0015] According to another aspect of the present invention, an electronic device is provided, comprising: a processor; a memory for storing instructions executable by the processor; the processor is configured to read the executable instructions from the memory and execute the instructions to implement the method described in any one of the above aspects of the present invention.

[0016] Therefore, the present invention proposes a local map construction method for path planning, based on the reference line of the local map to be planned in the frenet coordinate system, traverse the preset map according to the perception information and map information to obtain the road boundary information and obstacle information of the local map to be planned; convert the road boundary information and obstacle information in the Cartesian system into a grid map, and construct the occupied grid map of the local map to be planned; based on the occupied grid map, construct the prefix grid map and the Euclidean distance field grid map of the local map to be planned; perform path planning according to the occupied grid map, the prefix grid map and the Euclidean distance field grid map of the local map to be planned, and obtain the planned path of the local map to be planned. Planning and collision detection are carried out in the local map constructed by the present invention. Autonomous driving does not have a strong need to compete with dynamic obstacles at the path planning level, and the frame rate of all map construction can be low to reduce computing power consumption. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] A more complete understanding of exemplary embodiments of the present invention may be obtained by referring to the following drawings: Figure 1 is a flow chart of a local map construction method for path planning provided by an exemplary embodiment of the present invention; Figure 2is a schematic diagram of an occupation grid in a U-turn scenario provided by an exemplary embodiment of the present invention; Figure 3 is a schematic diagram of an occupation grid map of a local map to be planned provided by an exemplary embodiment of the present invention; Figure 4 It is a schematic diagram of a prefix grid map of a local map to be planned provided by an exemplary embodiment of the present invention; Figure 5 It is a schematic diagram of a Euclidean distance field grid map of a local map to be planned provided by an exemplary embodiment of the present invention; Figure 6 is a schematic structural diagram of a local map building device for path planning provided by an exemplary embodiment of the present invention; Figure 7 This is a structure of an electronic device provided by an exemplary embodiment of the present invention. DETAILED DESCRIPTION

[0018] Below, the exemplary embodiments according to the present invention will be described in detail with reference to the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, rather than all the embodiments of the present invention, and it should be understood that the present invention is not limited to the exemplary embodiments described here.

[0019] It should be noted that the relative arrangement of components and steps, the numerical expressions and numerical values ​​set forth in these embodiments do not limit the scope of the present invention unless specifically stated otherwise.

[0020] Those skilled in the art can understand that the terms "first" and "second" in the embodiments of the present invention are only used to distinguish different steps, devices or modules, etc., and neither represent any specific technical meaning nor indicate the necessary logical order between them.

[0021] It should also be understood that, in the embodiments of the present invention, “plurality” may refer to two or more than two, and “at least one” may refer to one, two or more than two.

[0022] It should also be understood that any component, data or structure mentioned in the embodiments of the present invention can generally be understood as one or more, unless explicitly limited or otherwise indicated in the context.

[0023] In addition, the term "and / or" in the present invention is only a description of the association relationship of the associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in the present invention generally indicates that the associated objects before and after are in an "or" relationship.

[0024] It should also be understood that the description of the various embodiments of the present invention focuses on the differences between the various embodiments, and the same or similar aspects thereof can be referenced to each other, and for the sake of brevity, they will not be described one by one.

[0025] At the same time, it should be understood that for the convenience of description, the sizes of the various parts shown in the drawings are not drawn according to the actual proportional relationship.

[0026] The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the invention, its application, or uses.

[0027] Technologies, methods, and equipment known to ordinary technicians in the relevant art may not be discussed in detail, but where appropriate, the technologies, methods, and equipment should be considered part of the specification.

[0028] It should be noted that like reference numerals and letters refer to similar items in the following figures, and therefore, once an item is defined in one figure, it need not be further discussed in subsequent figures.

[0029] Embodiments of the present invention can be applied to electronic devices such as terminal devices, computer systems, servers, etc., which can operate with many other general or special computing system environments or configurations. Examples of well-known terminal devices, computing systems, environments and / or configurations suitable for use with electronic devices such as terminal devices, computer systems, servers, etc. include, but are not limited to: personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, microprocessor-based systems, set-top boxes, programmable consumer electronics, network personal computers, small computer systems, large computer systems, and distributed cloud computing technology environments including any of the above systems, etc.

[0030] Electronic devices such as terminal devices, computer systems, servers, etc. can be described in the general context of computer system executable instructions (such as program modules) executed by computer systems. Generally, program modules can include routines, programs, object programs, components, logic, data structures, etc., which perform specific tasks or implement specific abstract data types. Computer systems / servers can be implemented in a distributed cloud computing environment, where tasks are performed by remote processing devices linked through a communication network. In a distributed cloud computing environment, program modules can be located on local or remote computing system storage media including storage devices.

[0031] Exemplary Methods Figure 1 FIG. 1 is a flow chart of a method for constructing a local map for path planning provided by an exemplary embodiment of the present invention. This embodiment can be applied to electronic devices, such as Figure 1As shown, the local map construction method 100 for path planning includes the following steps: Step 101, based on the reference line of the local map to be planned in the Frenet coordinate system, traverse the preset map according to the perception information and the map information to obtain the road boundary information and obstacle information of the local map to be planned; Step 102, converting the road boundary information and obstacle information in the Cartesian system into a grid map, and constructing an occupied grid map of the local map to be planned; Step 103, constructing a prefix grid map and a Euclidean distance field grid map of the local map to be planned based on the occupancy grid map; Step 104 , performing path planning according to the occupation grid map, the prefix grid map, and the Euclidean distance field grid map of the local map to be planned, and obtaining a planned path of the local map to be planned.

[0032] Specifically, in response to the technical problems existing in the background technology, the present invention proposes a local map construction method for path planning, in which planning and collision detection are performed. Autonomous driving does not have a strong need to negotiate with dynamic obstacles at the path planning level, and the frame rate of all map construction can be low to reduce computing power consumption. The specific technical contents include the following: Step S1: element acquisition and processing; Step S11: element preparation: obstacle information and visual roadside information provided by perception; road boundary information provided by the map; Step S11: feature extractor; Based on the reference line of the frenet coordinate system (composed of a series of reference points, which store information such as s, left_l, right_l, left_xy, right_xy, etc.), customize the vertical start and end points s_start and s_end: Traverse all reference points between start_s and end_s, read left_xy and right_xy of the reference points, read left_curb_xy and right_curb_xy of the corresponding longitudinal positions of the left and right visual curb information according to the reference point s, compare left_xy and left_curb_xy and take the one closer to the center of the lane as left_xy, compare right_xy and right_curb_xy and take the one closer to the center of the lane as right_xy, and store the updated left_xy and right_xy in the container bound_vec of the road boundary information; Traverse all reference points between start_s and end_s, and determine the left_lim_l and right_lim_l left and right boundaries of the widest part of this longitudinal interval based on the reference points left_l and right_l. Traverse all static obstacles provided by the perception, filter out obstacles completely outside start_s and end_s, filter out obstacles completely outside left_lim_l and right_lim_l, and store obstacles that meet the requirements in the obstacle information container obs_vec; S2: local map construction; S21: Information initialization: Traverse all elements in bound_vec and find the four extreme positions x_min, x_max, y_im, y_max to determine the local map boundary under the Cartesian system Custom grid resolution step, x-axis grid number x_size: (x_max - x_min) / step + 1, y-axis grid number y_size: (y_max - y_min) / step + 1, Define the Cartesian origin coordinates of the grid map base={x_min, y_min} S22: Related tool design S221: Coordinate converter: can convert Cartesian coordinates into grid coordinates (index in the xy direction of the grid) S222: Line segment rasterization tool; Input the starting and ending points start and end in the Cartesian system, and output the container vx_vec that stores all the grid points that need to be passed from the starting point to the end point in the grid map.

[0033] We get the vector ray={end[0] -start[0], end[1]- start[1]} consisting of the Cartesian starting and ending points. Based on the vector ray, we calculate the moving direction of the line segment on the x and y axes dir={ray[0]>0 ? 1 : -1, ray[1]>0 ? 1 : -1}, which are four possibilities: {1, 1}, {1, -1}, {-1, 1}, and {-1, -1}.

[0034] The coordinate converter is used to obtain the grid start and end points start_vx and end_vx. The grid points are calculated based on the dir direction and moved one step in the x and y directions respectively and converted into Cartesian coordinates n_vx={(start_vx[0] + (dir[0]>0)) * step + base[0], (end_vx[1] + (di[1]>0)) * step + base[1]} Initialize t_max={abs((n_vx[0] - start_vx[0]) / ray[0]),abs((n_vx[1] - start_vx[1]) / ray[1])} Initialize t_step = {abs(step / ray[0] * dir[0]), abs(step / ray[1] * dir[1])}; Among them, t_max is used to record the time interval to reach the next grid, the time interval for the ray to move forward on each axis, based on the grid size step and the direction of the ray ray; t_step is the time increment of each step, also based on the direction of the ray and the step size.

[0035] First, add start_vx to vx_vec. Define the grid point cur_vx to be initialized as start_vx. If cur_vx has not moved to end_vx, enter the loop to determine which of the x and y axis data in t_max is smaller. If the x direction is smaller, t_max[0] += t_step[0] and curr_vx[0]+= di[0] are used to move in the x direction. The same is true for the y direction. After the movement is completed, add the moved grid point cur_vx to vx_vec.

[0036] S223: Edge filling tool; Pass in the grid map, the updated value from and the updated value to. The function is: traverse the edge of the grid map, check whether the value at the edge position is equal to from, and change all connected from values ​​to to through the breadth-first search tool.

[0037] Iterate over each row, checking the values ​​of the first and last column positions, and if the values ​​of these positions are from, call the breadth-first search tool to start filling in from these positions.

[0038] Iterate through each column, check the values ​​of the first and last row positions, and if the values ​​of these positions are from, call the breadth-first search tool to start filling from these positions.

[0039] Breadth-first search tool Pass in the grid map, starting from (i, j), and use the breadth-first search algorithm (mature algorithm) to fill all areas with values ​​from with to.

[0040] S23: Occupancy grid map builder; refer to Figure 2 The occupancy grid diagram in the U-turn scenario shown in the figure initializes a two-dimensional array bin_map according to x_size and y_size, and sets each position to 0; Traverse all elements of bound_vec, read the two points before and after the traversal, pass them into the line segment rasterization tool, get the sequence of all grid points passing through the line connecting these two points, and set the position in bin_map represented by the grid point coordinates in this sequence to 1; Call the edge fill tool to set all the parts from the grid boundary in bin_map to the bound_vec that merges the map lane & perceived curb boundary to 1; Define a grid map obs_map with the same number of rows and columns as bin_map, and set each position to 0, which is specifically used to represent obstacles; Traverse each obstacle in obs_vec, and then traverse the contour points of each obstacle in the second layer, read the two contour points before and after the traversal, pass them into the line segment rasterization tool, and obtain the sequence of all grid points passing through the line connecting these two points. Set the position in obs_map represented by the coordinates of the grid points in this sequence to 1; Call the edge filling tool to set all the parts from the grid boundary in obs_map to the obstacle outline boundary stored in obs_vec to 2; Traverse obs_map, set the obstacle boundary and its interior to 1, and also set the outermost circle of obstacles to 1; Traverse obs_map and find the position where obs_map is 1 and update bin_map to 1. Figure 3 The figure shows a schematic diagram of bin_map. The dark green grid represents the occupied part, which is represented by 1, and the rest represents the unoccupied part, which is represented by 0.

[0041] S24: prefix and raster map builder; Define a grid map presum_map with the same number of rows and columns as bin_map, and set each position to 0; Traverse presum_map and calculate presum_map[i][j]= bin_map[i - 1][j - 1] + bin_map[i- 1][j]+ bin_map[i][j - 1]-bin_map[i - 1][j - 1]. Figure 4 This is a schematic diagram of pre_sum_map. The dark green and non-dark green parts have the same meaning. The value of each grid before represents the prefix sum, which is used to calculate collision detection.

[0042] S25: Euclidean distance field grid map builder; Define a grid map esdf_map with the same number of rows and columns as bin_map, and set each position to 0. Initialize a double-ended queue dq, and initialize dis=0; Traverse esdf_map, update esdf_map to -10 for occupied positions with 1 in bin_map, update the value of each unoccupied position to dis, and add the grid point to dq; When dq is not empty, enter the loop, pop out the first point in dq to check its adjacent points, if the adjacent point is in a non-occupied position, add it to the queue, and set the value of its esdf_map position to the current distance dis. After each layer of dis is processed, the value increases by step. Figure 5 This is a schematic diagram of esdf_map. The value represents the distance from the grid to the nearest obstacle, so the dark green part is represented by a negative number, and the farther the rest is from the obstacle, the larger the value.

[0043] S3: relevant functions that can be realized; S31:IsPointOccupied; Determine whether a Cartesian point is occupied; Pass in a Cartesian point, get the grid coordinates through the coordinate converter, query the value of the grid coordinate in bin_map, and return it.

[0044] S32:IsAaBoxOccupied; Determine whether an AABox is occupied; Pass in the lower left and upper right points of the AABox, first use IsPointOccupied to determine whether the two points are occupied. If occupied, return directly, otherwise calculate the grid coordinates of the lower left point (x_min, y_min) and the upper right point (x_max, y_max), use presum_map to calculate the sum of the area from (x_min, y_min) to (x_max, y_max) (hash method), and 0 means no occupation, otherwise it means occupation, and return.

[0045] S33: GetPointMinDistanceToObstacle; Calculate the distance from a Cartesian point to the nearest occupied position; Pass in a Cartesian point, get the grid coordinates through the coordinate converter, query the value of the grid coordinate in esdf_map, and return it.

[0046] Therefore, the present invention proposes a local map construction method for path planning, based on the reference line of the local map to be planned in the frenet coordinate system, traverse the preset map according to the perception information and map information to obtain the road boundary information and obstacle information of the local map to be planned; convert the road boundary information and obstacle information in the Cartesian system into a grid map, and construct the occupied grid map of the local map to be planned; based on the occupied grid map, construct the prefix grid map and the Euclidean distance field grid map of the local map to be planned; perform path planning according to the occupied grid map, the prefix grid map and the Euclidean distance field grid map of the local map to be planned, and obtain the planned path of the local map to be planned. Planning and collision detection are carried out in the local map constructed by the present invention. Autonomous driving does not have a strong need to compete with dynamic obstacles at the path planning level, and the frame rate of all map construction can be low to reduce computing power consumption.

[0047] Exemplary Devices Figure 6 FIG. 1 is a schematic diagram of a local map construction device for path planning provided by an exemplary embodiment of the present invention. Figure 6 As shown, the device 600 includes: A traversal module 610 is used to traverse a preset map based on a reference line of the local map to be planned in the Frenet coordinate system according to the perception information and the map information to obtain road boundary information and obstacle information of the local map to be planned; A first construction module 620 is used to convert the road boundary information and obstacle information in the Cartesian system into a grid map, and construct an occupied grid map of the local map to be planned; A second construction module 630 is used to construct a prefix grid map and a Euclidean distance field grid map of the local map to be planned based on the occupancy grid map; The planning module 640 is used to perform path planning according to the occupation grid map, the prefix grid map and the Euclidean distance field grid map of the local map to be planned, and obtain the planned path of the local map to be planned.

[0048] Optionally, the traversal module 610 traverses the preset map to obtain road boundary information based on the reference line of the local map to be planned in the Frenet coordinate system according to the perception information and the map information, including: Based on the reference line of the frenet coordinate system, customize the vertical starting point start_s and the vertical end point end_s; Traverse all reference points between the starting point and the end point in the preset map, and read the first leftmost boundary point left_xy and the first rightmost boundary point right_xy of each reference point; Read the second leftmost boundary point left_curb_xy and the second rightmost boundary point right_curb_xy of the longitudinal position corresponding to the left and right visual curb information of each reference point; Update the first leftmost boundary point left_xy and the second leftmost boundary point left_curb_xy, whichever is closer to the center of the lane, to the new leftmost boundary point left_xy; Update the first rightmost boundary point right_xy and the second rightmost boundary point right_curb_xy, which is closer to the lane center, to the new rightmost boundary point right_xy, store the new leftmost boundary point left_xy and the new rightmost boundary point right_xy after each reference point is updated into the road boundary container bound_vec, and obtain the road boundary information.

[0049] Optionally, the traversal module 610 traverses the preset map to obtain obstacle information based on the reference line of the local map to be planned in the Frenet coordinate system according to the perception information and the map information, including: Traverse all reference points between the longitudinal starting point start_s and the longitudinal end point end_s; Determine the left boundary position left_lim_l and the right boundary position right_lim_l of the widest part in this longitudinal interval according to the left boundary left_l and the right boundary right_l of each reference point; Traverse all static obstacles provided by the perception, filter out obstacles that are completely outside the longitudinal start point start_s and the longitudinal end point end_s, and obstacles that are completely outside the left boundary position left_lim_l and the right boundary position right_lim_l, store the remaining obstacles that meet the requirements after filtering into the obstacle container obs_vec, and obtain obstacle information.

[0050] Optionally, the first building module 620 includes: Traverse the road boundary information and obtain four extreme positions to determine the local map boundary in the Cartesian system; Define the grid resolution step, x-axis grid number, y-axis grid number, and Cartesian origin coordinates of the grid map according to the local map boundary; Initialize the two-dimensional array bin_map, setting each position to 0; Traverse all elements in the obstacle information bound_vec, use the line segment rasterization tool to read all the first grid point sequences passing through the line connecting the two points before and after the traversal, and set the positions in the two-dimensional array bin_map represented by the grid point coordinates in all the first grid point sequences to 1; Call the edge filling tool to set all the parts from the grid boundary in the two-dimensional array bin_map to the obstacle information bound_vec that are integrated with the map lane and the perceived roadside boundary to 1; Define the first grid map obs_map with the same number of rows and columns as the two-dimensional array bin_map to represent obstacles, and set each position to 0; Traverse each obstacle in the first grid map obs_vec, and then traverse the contour points of each obstacle in the second layer. Use the line segment rasterization tool to read all the second grid point sequences passing through the line connecting the two contour points before and after the traversal, and set the positions in the first grid map obs_map represented by the coordinates of all the second grid point sequences to 1; Call the edge filling tool to set all the parts from the grid boundary in the first grid map obs_map to the obstacle contour boundary stored in the obstacle information obs_vec to 2; Traverse the first grid map obs_map, set the obstacle boundary and its interior to 1, and also set the outermost circle of the obstacle to 1; Traverse the first grid map obs_map, find out the position where the grid map obs_map is 1 and update the two-dimensional array bin_map to 1, and construct the occupied grid map of the local map to be planned.

[0051] Optionally, the implementation process of the line segment rasterization tool is: Input the first starting point start and the first end point end in the Cartesian system, and output the grid point container vx_vec that stores all the grid points that need to be passed from the first starting point start to the first end point end in the grid map; Get the vector ray={end[0] - start[0], end[1] - start[1]} formed by the first starting point start and the first end point end of Cartesian. Calculate the line segment according to the vector ray x and y The moving direction on the axis dir={ray[0]>0?1:-1, ray[1]>0?1:-1}, where the moving directions include: {1,1}, {1,-1}, {-1,1} and {-1,-1}; According to the second starting point start_vx and the second end point end_vx of the grid map obtained by the coordinate converter and the moving direction, the grid point is moved in the x-axis and y-axis directions by one grid resolution step respectively and converted into Cartesian coordinates n_vx={(start_vx[0]+ (dir[0]>0)) * step + base[0], (end_vx[1]+ (di[1]>0)) *step + base[1]}; According to the Cartesian coordinate point set, initialize t_max={abs((n_vx[0] - start_vx[0]) / ray[0]), abs((n_vx[1] - start_vx[1]) / ray[1])} and t_step={abs(step / ray[0]* dir[0]), abs(step / ray[1]* dir[1])}, where t_max is used to record the time interval to reach the next grid, and t_step is the time increment of each step; Add the second starting point start_vx of the grid map to the grid point container vx_vec, define the grid point cur_vx to be initialized as the second starting point start_vx, if cur_vx has not moved to the second end_vx, enter the loop, judge the size of the x-axis and y-axis data in t_max, if the x-axis direction is smaller, t_max[0] += t_step[0] and curr_vx[0]+= di[0] to realize the movement in the x-axis direction, otherwise it realizes the movement in the y-axis direction, after the movement is completed, add the moved grid point cur_vx to the grid point container vx_vec.

[0052] Optionally, the edge filling tool is implemented as follows: Traverse the edge of the initial grid map, check whether the value of the edge position is equal to from, and use the breadth-first search tool to change all connected original values ​​from to the target value to, where Traverse the edge of the initial grid map, check whether the value of the edge position is equal to the original value from, and change all connected original values ​​from to the target value to through the breadth-first search tool, including: Traverse each row of the initial grid map, check multiple first values ​​at the first column and the last column, if multiple first values ​​are the original value from, call the breadth-first search tool to fill the original value from with the target value to starting from the first column and the last column; Traverse each column of the initial grid map, check the multiple second values ​​at the first and last row positions, and if the multiple second values ​​are from, call the breadth-first search tool to fill the original value from with the target value to starting from the first and last rows.

[0053] Optionally, the second construction module 630 constructs a prefix grid map of the local map to be planned based on the occupied grid map, including: Define a second grid map with the same number of rows and columns as the two-dimensional array, where each position of the second grid map is set to 0; The value of each grid point in the second grid map is calculated according to the occupied grid map to obtain the prefix grid map, wherein the calculation formula for the value of each grid point in the second grid map is: presum_map[i][j] = bin_map[i - 1][j - 1] + bin_map[i - 1][j] + bin_map[i][j - 1] -bin_map[i- 1][j - 1], where bin_map is the occupied grid map.

[0054] Optionally, the second construction module 630 constructs a Euclidean distance field grid map of the local map to be planned based on the occupancy grid map, including: Define a third grid map with the same number of rows and columns as the two-dimensional array, where each position of the third grid map is set to 0; and initialize a double-ended queue dq and the distance dis from a certain position to its nearest obstacle = 0; Update the occupied position corresponding to 1 in the occupied grid map to -10 in the third grid map, update the unoccupied position corresponding to the position in the third grid map to the distance dis, and add the grid point of the unoccupied position to the double-ended queue dq; When the double-ended queue dq is not empty, a loop is entered, the first point in the double-ended queue dq is popped out to check its adjacent points. If the adjacent point is in a non-occupied position, it is added to the double-ended queue dq, and the value of its position in the third grid map is set to the current distance dis. After each layer of distance dis value is processed, the grid resolution is increased until all grid points in the third grid map are assigned values, and the Euclidean distance field grid map of the local map to be planned is constructed.

[0055] Optionally, the planning module 640 includes: Evaluate points in an initial planning path preset and constructed in the local map to be planned according to the occupancy grid map, and update the initial planning path according to the evaluation result to obtain a first updated planning path; Evaluate the rectangles in the first updated planned path according to the prefix grid map, and update the first updated planned path according to the evaluation result to obtain a second updated planned path; The distances from points in the second updated planned path to obstacles are evaluated according to the prefix grid map, and the second updated planned path is updated according to the evaluation result to obtain the planned path of the local map to be planned.

[0056] Exemplary Electronic Devices Figure 7 This is a structure of an electronic device provided by an exemplary embodiment of the present invention. Figure 7 As shown, the electronic device 70 includes one or more processors 71 and a memory 72 .

[0057] The processor 71 may be a central processing unit (CPU) or other forms of processing units having data processing capabilities and / or instruction execution capabilities, and may control other components in the electronic device to perform desired functions.

[0058] The memory 72 may include one or more computer program products, which may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. The volatile memory may include, for example, a random access memory (RAM) and / or a cache memory (cache), etc. The non-volatile memory may include, for example, a read-only memory (ROM), a hard disk, a flash memory, etc. One or more computer program instructions may be stored on the computer-readable storage medium, and the processor 71 may run the program instructions to implement the methods of the software programs of the various embodiments of the present invention described above and / or other desired functions. In one example, the electronic device may also include: an input device 73 and an output device 74, which are interconnected via a bus system and / or other forms of connection mechanisms (not shown).

[0059] In addition, the input device 73 may also include, for example, a keyboard, a mouse, and the like.

[0060] The output device 74 can output various information to the outside, and can include, for example, a display, a speaker, a printer, a communication network and a remote output device connected thereto.

[0061] Of course, to simplify, Figure 7 Only some of the components related to the present invention in the electronic device are shown, and components such as a bus, an input / output interface, etc. are omitted. In addition, the electronic device may further include any other appropriate components according to specific application conditions.

[0062] Exemplary computer program products and computer-readable storage media In addition to the above-mentioned methods and devices, an embodiment of the present invention may also be a computer program product, which includes computer program instructions, which, when executed by a processor, enable the processor to execute the steps of the method according to various embodiments of the present invention described in the above-mentioned "Exemplary Method" section of this specification.

[0063] The computer program product may be written in any combination of one or more programming languages ​​to write program code for performing the operations of the embodiments of the present invention, including object-oriented programming languages ​​such as Java, C++, etc., and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server.

[0064] In addition, an embodiment of the present invention may also be a computer-readable storage medium having computer program instructions stored thereon, which, when executed by a processor, enable the processor to execute the steps of the method according to various embodiments of the present invention described in the above “Exemplary Method” section of this specification.

[0065] The computer readable storage medium can adopt any combination of one or more readable media. The readable medium can be a readable signal medium or a readable storage medium. The readable storage medium can include, for example, but is not limited to, a system, system or device of electricity, magnetism, light, electromagnetic, infrared, or semiconductor, or any combination of the above. More specific examples (non-exhaustive list) of readable storage media include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0066] The basic principle of the present invention is described above in conjunction with specific embodiments. However, it should be pointed out that the advantages, strengths, effects, etc. mentioned in the present invention are only examples and not limitations, and it cannot be considered that these advantages, strengths, effects, etc. must be possessed by each embodiment of the present invention. In addition, the specific details disclosed above are only for the purpose of illustration and facilitation of understanding, rather than limitation, and the above details do not limit the present invention to being implemented by adopting the above specific details.

[0067] Each embodiment in this specification is described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the embodiments can be referred to each other. For the system embodiment, since it basically corresponds to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0068] The block diagrams of the devices, systems, equipment, and systems involved in the present invention are only illustrative examples and are not intended to require or imply that they must be connected, arranged, and configured in the manner shown in the block diagram. As will be appreciated by those skilled in the art, these devices, systems, equipment, and systems can be connected, arranged, and configured in any manner. Words such as "including", "comprising", "having", etc. are open words, referring to "including but not limited to", and can be used interchangeably with them. The words "or" and "and" used here refer to the words "and / or" and can be used interchangeably with them, unless the context clearly indicates otherwise. The word "such as" used here refers to the phrase "such as but not limited to", and can be used interchangeably with it.

[0069] The method and system of the present invention may be implemented in many ways. For example, the method and system of the present invention may be implemented by software, hardware, firmware or any combination of software, hardware, firmware. The above order of steps for the method is only for illustration, and the steps of the method of the present invention are not limited to the order specifically described above, unless otherwise specifically stated. In addition, in some embodiments, the present invention may also be implemented as a program recorded in a recording medium, which includes machine-readable instructions for implementing the method according to the present invention. Thus, the present invention also covers a recording medium storing a program for executing the method according to the present invention.

[0070] It should also be noted that in the system, device and method of the present invention, each component or each step can be decomposed and / or recombined. These decompositions and / or recombinations should be regarded as equivalent schemes of the present invention. The above description of the disclosed aspects is provided to enable any technician in the field to make or use the present invention. Various modifications to these aspects are very obvious to those skilled in the art, and the general principles defined here can be applied to other aspects without departing from the scope of the present invention. Therefore, the present invention is not intended to be limited to the aspects shown here, but in accordance with the widest range consistent with the principles and novel features disclosed here.

[0071] The above description has been given for the purpose of illustration and description. In addition, this description is not intended to limit the embodiments of the present invention to the forms disclosed herein. Although a number of example aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, changes, additions and sub-combinations thereof.

Claims

1. A local map construction method for path planning, characterized in that: include: Based on the reference line of the local map to be planned in the frenet coordinate system, traverse the preset map according to the perception information and the map information to obtain the road boundary information and obstacle information of the local map to be planned; Convert the road boundary information and the obstacle information in a Cartesian system into a grid map, and construct an occupied grid map of the local map to be planned; Based on the occupancy grid map, construct a prefix grid map and a Euclidean distance field grid map of the local map to be planned; Path planning is performed according to the occupied grid map, the prefix grid map, and the Euclidean distance field grid map of the local map to be planned, so as to obtain a planned path of the local map to be planned.

2. The method according to claim 1, characterized in that The reference line of the local map to be planned in the frenet coordinate system traverses the preset map to obtain road boundary information according to the perception information and map information, including: Based on the reference line of the frenet coordinate system, customize the longitudinal starting point start_s and the longitudinal end point end_s; Traverse all reference points between the starting point and the end point in the preset map, and read the first leftmost boundary point left_xy and the first rightmost boundary point right_xy of each reference point; Read the second leftmost boundary point left_curb_xy and the second rightmost boundary point right_curb_xy of the longitudinal position corresponding to the left and right visual curb information of each reference point; Update the first leftmost boundary point left_xy and the second leftmost boundary point left_curb_xy, whichever is closer to the center of the lane, to the new leftmost boundary point left_xy; The first rightmost boundary point right_xy and the second rightmost boundary point right_curb_xy, which is closer to the lane center, is updated as a new rightmost boundary point right_xy, and the new leftmost boundary point left_xy and the new rightmost boundary point right_xy after each reference point is updated are stored in the road boundary container bound_vec to obtain the road boundary information.

3. The method according to claim 2, characterized in that The reference line of the local map to be planned in the frenet coordinate system traverses the preset map to obtain obstacle information according to the perception information and map information, including: Traverse all reference points between the longitudinal starting point start_s and the longitudinal end point end_s; Determine the left boundary position left_lim_l and the right boundary position right_lim_l of the widest part in this longitudinal interval according to the left boundary left_l and the right boundary right_l of each reference point; Traverse all static obstacles provided by perception, filter out obstacles completely outside the longitudinal start point start_s and the longitudinal end point end_s, and obstacles completely outside the left boundary position left_lim_l and the right boundary position right_lim_l, store the remaining obstacles that meet the requirements after filtering into the obstacle container obs_vec, and obtain the obstacle information.

4. The method according to claim 1, characterized in that: Converting the road boundary information and the obstacle information in the Cartesian system into a grid map, and constructing an occupied grid map of the local map to be planned, including: Traversing the road boundary information, obtaining four extreme positions to determine the local map boundary in a Cartesian system; Define the grid resolution step, x-axis grid number, y-axis grid number and Cartesian origin coordinates of the grid map according to the local map boundary; Initialize the two-dimensional array bin_map, setting each position to 0; Traverse all elements in the obstacle information bound_vec, use the line segment rasterization tool to read all first grid point sequences passing through the line connecting the two points before and after the traversal, and set the positions in the two-dimensional array bin_map represented by the grid point coordinates in all first grid point sequences to 1; Calling the edge filling tool to set all the parts from the grid boundary in the two-dimensional array bin_map to the boundary of the obstacle information bound_vec that integrates the map lane and the perceived roadside boundary to 1; Define a first grid map obs_map with the same number of rows and columns as the two-dimensional array bin_map to represent obstacles, and set each position to 0; Traverse each obstacle in the first grid map obs_vec, and then traverse the contour points of each obstacle in the second layer, use the line segment rasterization tool to read all the second grid point sequences passing through the line connecting the two contour points before and after the traversal, and set the positions in the first grid map obs_map represented by the coordinates of the grid points in all the second grid point sequences to 1; Calling the edge filling tool to set all the portions from the grid boundary in the first grid map obs_map to the obstacle contour boundary stored in the obstacle information obs_vec to 2; Traverse the first grid map obs_map, set the obstacle boundary and its interior to 1, and also set the outermost circle of the obstacle to 1; The first grid map obs_map is traversed to find out the position where the grid map obs_map is 1 and the corresponding position is updated to 1 in the two-dimensional array bin_map, so as to construct the occupied grid map of the local map to be planned.

5. The method according to claim 4, characterized in that The implementation process of the line segment rasterization tool is as follows: Input a first starting point start and a first end point end in a Cartesian system, and output a grid point container vx_vec storing all grid points that need to be passed from the first starting point start to the first end point end in the grid map; Get the vector ray={end[0] - start[0], end[1]-start[1]} formed by the first starting point start and the first end point end of Cartesian. Calculate the line segment according to the vector ray x and y The moving direction on the axis dir={ray[0] > 0 ? 1 : -1, ray[1] > 0 ? 1 : -1}, wherein the moving directions include: {1, 1}, {1, -1}, {-1, 1} and {-1, -1}; According to the second starting point start_vx and the second end point end_vx of the grid map obtained by the coordinate converter and the moving direction, the grid point is moved in the x-axis and y-axis directions by one grid resolution step respectively and converted into Cartesian coordinates n_vx={(start_vx[0] + (dir[0] > 0)) * step + base[0], (end_vx[1] + (di[1] >0)) * step + base[1]}; According to the Cartesian coordinate point set, initialize t_max={abs((n_vx[0] - start_vx[0]) / ray[0]), abs((n_vx[1] - start_vx[1]) / ray[1])} and t_step={abs(step / ray[0] *dir[0]), abs(step / ray[1] * dir[1])}, where t_max is used to record the time interval to reach the next grid, and t_step is the time increment of each step; Add the second starting point start_vx of the grid map to the grid point container vx_vec, define the grid point cur_vx to be initialized as the second starting point start_vx, if cur_vx has not moved to the second end_vx, enter the loop, judge the size of the x-axis and y-axis data in t_max, if the x-axis direction is smaller, t_max[0] += t_step[0] and curr_vx[0] += di[0] to realize the movement in the x-axis direction, otherwise it realizes the movement in the y-axis direction, after the movement is completed, add the moved grid point cur_vx to the grid point container vx_vec.

6. The method according to claim 4, characterized in that The implementation process of the edge filling tool is as follows: Traverse the edge of the initial grid map, check whether the value of the edge position is equal to from, and use the breadth-first search tool to change all connected original values ​​from to the target value to, where Traverse the edge of the initial grid map, check whether the value of the edge position is equal to the original value from, and change all connected original values ​​from to the target value to through a breadth-first search tool, including: Traversing each row of the initial grid map, checking multiple first values ​​at the first column and the last column, if the multiple first values ​​are the original value from, calling a breadth-first search tool to fill the original value from with the target value to starting from the first column and the last column; Each column of the initial grid map is traversed to check the multiple second values ​​at the first row and the last row. If the multiple second values ​​are from, a breadth-first search tool is called to fill the original value from with the target value to starting from the first row and the last row.

7. The method according to claim 4, characterized in that Based on the occupied grid map, constructing a prefix grid map of the local map to be planned, including: defining a second grid map having the same number of rows and columns as the two-dimensional array, wherein each position of the second grid map is set to 0; The value of each grid point of the second grid map is calculated according to the occupied grid map to obtain the prefix grid map, wherein the calculation formula for the value of each grid point of the second grid map is: presum_map[i][j] = bin_map[i - 1][j - 1] + bin_map[i - 1][j] + bin_map[i][j - 1] -bin_map[i - 1][j - 1], where bin_map is the occupied grid map.

8. The method according to claim 4, characterized in that Based on the occupancy grid map, constructing a Euclidean distance field grid map of the local map to be planned, including: Define a third grid map with the same number of rows and columns as the two-dimensional array, wherein each position of the third grid map is set to 0; and initialize a double-ended queue dq and a distance dis from a certain position to its nearest obstacle = 0; Update the occupied position corresponding to 1 in the occupied grid map to -10 in the third grid map, update the unoccupied position corresponding to the position in the third grid map to the distance dis, and add the grid point of the unoccupied position to the double-ended queue dq; When the double-ended queue dq is not empty, a loop is entered, the first point in the double-ended queue dq is popped out to check its adjacent points. If the adjacent point is in a non-occupied position, it is added to the double-ended queue dq, and the value of its position in the third grid map is set to the current distance dis. After each layer of distance dis value is processed, the grid resolution is increased until all grid points of the third grid map are assigned values, and the Euclidean distance field grid map of the local map to be planned is constructed.

9. The method according to claim 1, characterized in that: Performing path planning according to the occupied grid map, the prefix grid map, and the Euclidean distance field grid map of the local map to be planned to obtain a planned path of the local map to be planned, including: Evaluate points in an initial planning path preset and constructed in the local map to be planned according to the occupancy grid map, and update the initial planning path according to the evaluation result to obtain a first updated planning path; Evaluate the rectangles in the first updated planned path according to the prefix grid map, and update the first updated planned path according to the evaluation result to obtain a second updated planned path; The distances from points in the second updated planned path to obstacles are evaluated according to the prefix grid map, and the second updated planned path is updated according to the evaluation result to obtain the planned path of the local map to be planned.

10. A local map construction device for path planning, characterized in that: include: A traversal module, used to traverse a preset map based on a reference line of a local map to be planned in a frenet coordinate system according to perception information and map information to obtain road boundary information and obstacle information of the local map to be planned; A first construction module is used to convert the road boundary information and the obstacle information in a Cartesian system into a grid map, and construct an occupied grid map of the local map to be planned; A second construction module is used to construct a prefix grid map and a Euclidean distance field grid map of the local map to be planned based on the occupancy grid map; A planning module is used to perform path planning according to the occupied grid map, the prefix grid map and the Euclidean distance field grid map of the local map to be planned, so as to obtain a planned path of the local map to be planned.

Citation Information

Patent Citations

  • Wheeled robot path planning method applied to cross-heterogeneous multilayer space

    CN114577214A

  • Local path planning method and system and storage medium

    CN114815794A

  • Path planning method and device, vehicle and storage medium

    CN114894206A

  • Three-dimensional dense mapping method based on ORB-SLAM2 and monocular depth camera

    CN116337038A

  • Unmanned surface vessel energy consumption minimum trajectory planning method

    CN116466701A

Cited By

  • Self-adaptive path planning method and system based on manual rough drawing guidance

    CN121855567A