Path planning method, electronic equipment and storage medium

By acquiring the robot's current point cloud data to predict the collision area and selecting offline path planning, the problems of robot response lag and obstacle avoidance trajectory redundancy in dynamic environments are solved, achieving efficient and stable path planning and obstacle avoidance.

CN122064089APending Publication Date: 2026-05-19HANGZHOU HUACHENG SOFTWARE TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HANGZHOU HUACHENG SOFTWARE TECH CO LTD
Filing Date
2026-03-19
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

Existing robot path planning methods struggle to respond to dynamic obstacles in real time in dynamic and complex environments, resulting in response delays and redundant obstacle avoidance trajectories, making it difficult to meet the real-time and safety requirements of highly dynamic scenarios.

Method used

By acquiring the robot's current point cloud data, predicting the collision area, selecting the target path from the offline path, and controlling the robot to travel along the target path until reaching the task endpoint, the consumption of online computing resources is reduced and the obstacle avoidance response speed is improved.

Benefits of technology

It achieves efficient path planning in dynamic environments, improves the stability of robot path driving and obstacle avoidance response speed, and reduces computing resource consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122064089A_ABST
    Figure CN122064089A_ABST
Patent Text Reader

Abstract

The invention discloses a path planning method, electronic equipment and a storage medium. The path planning method is applied to the robot, and comprises the following steps: in response to the initial position of the robot in a local path in an original planned path and not in a task end point in the original planned path, obtaining current point cloud data when the robot is in the initial position; according to a predicted collision area between the dynamic obstacle and the robot in the current point cloud data, a target path is selected from a plurality of off-line paths with the starting position as a starting point, and at least partial area of one off-line path in the plurality of off-line paths is overlapped with a local path; and controlling the robot to travel along the target path until the robot reaches the task end point. According to the scheme, the driving stability of the robot can be improved by improving the path planning efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of robotics, and in particular to a path planning method, electronic device, and storage medium. Background Technology

[0002] With the rapid development of intelligent manufacturing, warehousing and logistics, and service robots, the demand for autonomous operation of mobile robots in dynamic and complex environments is becoming increasingly urgent. Traditional obstacle avoidance methods mostly rely on static environment modeling or preset path planning. When faced with dynamic disturbances such as people walking or equipment moving, they are prone to problems such as response lag and redundant obstacle avoidance trajectories, making it difficult to meet the real-time and safety requirements of highly dynamic scenarios. For example, when warehouse robots operate between dense shelves, they need to avoid suddenly moving transport vehicles or people; when service robots operate in public places, they need to cope with complex interaction scenarios of randomly moving pedestrians. Existing obstacle avoidance technologies still have bottlenecks in real-time perception of dynamic obstacles, real-time trajectory planning and control, resulting in low robot operation efficiency and high safety risks.

[0003] Therefore, there is an urgent need for an effective path planning method for robots. Summary of the Invention

[0004] This application provides at least one path planning method, electronic device, and storage medium, which can improve the stability of robot driving by improving path planning efficiency.

[0005] This application provides a path planning method applied to a robot. The path planning method includes: in response to the robot being at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path, acquiring the current point cloud data of the robot at the starting position; selecting a target path from a plurality of offline paths starting from the starting position based on the predicted collision area between dynamic obstacles and the robot in the current point cloud data, wherein at least a portion of the offline path overlaps with the local path; and controlling the robot to travel along the target path until the robot reaches the task endpoint.

[0006] This application provides a path planning device, including: an acquisition module, a selection module, and a driving module; the acquisition module is used to acquire the current point cloud data of the robot at the starting position in response to the robot being at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path; the selection module is used to select a target path from a plurality of offline paths starting from the starting position based on the predicted collision area between dynamic obstacles and the robot in the current point cloud data, wherein at least a part of the offline path overlaps with the local path; the driving module is used to control the robot to drive along the target path until the robot reaches the task endpoint.

[0007] This application provides an electronic device, including a memory and a processor, wherein the processor is used to execute program instructions stored in the memory to implement the above-described path planning method.

[0008] This application provides a computer-readable storage medium storing program instructions thereon, which, when executed by a processor, implement the above-described path planning method.

[0009] The above scheme, when the robot is at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path, selects a target path from several offline paths starting from the starting position based on the predicted collision area between the robot and dynamic obstacles in the current point cloud data when the robot is at the starting position. Among the several offline paths, at least a part of the offline path overlaps with the local path. The robot is controlled to travel along the target path until it reaches the task endpoint. In this way, by using offline paths and predicted collision areas, local obstacle avoidance planning does not require dense online sampling, thereby reducing the consumption of computing resources, improving obstacle avoidance response speed, achieving efficient path planning, and then traveling based on the target path until the task endpoint, which can improve the stability of the robot's path travel.

[0010] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this application. Attached Figure Description

[0011] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with this application and, together with the specification, serve to explain the technical solutions of this application.

[0012] Figure 1 This is a flowchart illustrating an exemplary embodiment of the path planning method of this application; Figure 2a This is yet another flowchart illustrating an exemplary embodiment of the path planning method of this application; Figure 2b This is a schematic diagram of the fitting result of point cloud data in an exemplary embodiment of the path planning method of this application; Figure 2c This is a schematic diagram of the collision prediction region in an exemplary embodiment of the path planning method of this application; Figure 3 yes Figure 1 A schematic diagram of the sub-process of step S12; Figure 4 yes Figure 3 A schematic diagram of the sub-process of step S33; Figure 5a This is a schematic diagram of several preset offline paths in an exemplary embodiment of the path planning method of this application; Figure 5b This is a schematic diagram illustrating the relationship between any preset offline path and the task endpoint in an exemplary embodiment of the path planning method of this application; Figure 5c This is a schematic diagram of several preset directions in an exemplary embodiment of the path planning method of this application; Figure 5d This is a schematic diagram illustrating the positional relationship between two adjacent target grid cells and the current grid cell in an exemplary embodiment of the path planning method of this application; Figure 5e This is a schematic diagram illustrating the positional relationship between several preset offline paths and dynamic obstacles in an exemplary embodiment of the path planning method of this application; Figure 6 This is a schematic diagram of the structure of an embodiment of the path planning device of this application; Figure 7 This is a schematic diagram of the structure of an embodiment of the electronic device of this application; Figure 8 This is a schematic diagram of the structure of an embodiment of the computer-readable storage medium of this application. Detailed Implementation

[0013] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. It is understood that the specific embodiments described herein are only for explaining this application and not for limiting it. Furthermore, it should be noted that, for ease of description, only the parts related to this application are shown in the accompanying drawings, not all structures. All other embodiments obtained by those skilled in the art based on the embodiments of this application without creative effort are within the scope of protection of this application.

[0014] In the following description, specific details such as particular system architectures, interfaces, and technologies are presented for illustrative purposes rather than for limiting purposes, in order to provide a thorough understanding of this application.

[0015] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that includes a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus. The term "and / or" is merely a description of the association of related objects, indicating that three relationships can exist; for example, A and / or B can represent: A alone, A and B simultaneously, and B alone. Additionally, the character " / " in this document generally indicates that the preceding and following related objects are in an "or" relationship. Furthermore, "many" in this document means two or more. Furthermore, the term "at least one" in this document means any combination of at least two of any one or more of a plurality of elements, for example, including at least one of A, B, and C, which can mean including any one or more elements selected from the set consisting of A, B, and C. Additionally, the term "several" in this document means one or more.

[0016] This application provides several path planning methods and devices. The application scenarios for these path planning methods include, but are not limited to, robot navigation scenarios. The execution entity of the path planning method can be a path planning device, such as a robot. For example, the path planning device can be located within a terminal device, server, or other processing device. The terminal device can be a user equipment (UE), mobile device, user terminal, terminal, cellular phone, cordless phone, personal digital assistant (PDA), handheld device, computing device, vehicle-mounted device, etc. In some possible implementations, the path planning method can be implemented by a processor calling computer-readable instructions stored in memory.

[0017] Please see Figure 1 , Figure 1 This is a flowchart illustrating an exemplary embodiment of the path planning method of this application. Specifically, the path planning method is applied to a robot and may include the following steps: Step S11: In response to the robot being at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path, obtain the current point cloud data of the robot at the starting position.

[0018] The original planned path represents the planned path from the robot's current position to its task endpoint. When the current position is the robot's task start point, the original planned path can be the path obtained after initial planning based on the robot's task start point and task endpoint. When the current position is not the robot's task start point, the original planned path can be the path obtained after path replanning based on the robot's current position and task endpoint after it has moved. The robot's task start point and task endpoint are the starting and ending positions of the robot when performing its current task, respectively. A local path represents a portion of the original planned path, and the starting position of the local path overlaps with the starting position of the original planned path. The starting position of the local path represents the path's starting point. The task endpoint in the original planned path represents the ending position of the robot's current task. The task endpoint in the original planned path can also represent the ending position of the original planned path. The current point cloud data represents the point cloud data collected by the robot at the starting position of the local path. Specifically, in response to the robot being at the starting position of the local path, the point cloud data collected by the target acquisition device associated with the robot is acquired and used as the current point cloud data associated with the starting position of the local path. For example, the target acquisition device can be a point cloud acquisition device that is communicatively connected to the robot, or a point cloud acquisition device within the robot located at the target position. The target acquisition device can be a LiDAR sensor. The current point cloud data can be point cloud data obtained by the target acquisition device through multiple frame acquisitions at the initial position.

[0019] In some application scenarios, step S11 above can be: the robot periodically performs position detection to obtain position detection results, and in response to the position detection results indicating that the robot is at the starting position of a local path in the original planned path and not at the task endpoint in the original planned path, the current point cloud count when the robot is at the starting position of the local path is obtained.

[0020] In other application scenarios, step S11 above can be: directly using the point cloud data collected by the target acquisition device as the current point cloud data; or, preprocessing the point cloud data collected by the target acquisition device to obtain the current point cloud data. For example, the preprocessing can be point cloud filtering or point cloud coordinate transformation.

[0021] Step S12: Based on the predicted collision area between the dynamic obstacles and the robot in the current point cloud data, select the target path from several offline paths starting from the starting position.

[0022] The dynamic obstacle in the current point cloud data represents the moving obstacle determined based on the current point cloud data. The predicted collision region represents the collision area between the dynamic obstacle in the current point cloud data and the robot. For example, the predicted collision region can be the intersection between the robot's local path and the region where the dynamic obstacle is located. The offline path represents a pre-calculated pre-planned path that starts from the starting position in the local path and conforms to the robot's kinematic constraints. There can be at least two offline paths. At least a portion of the offline path overlaps with the local path. The target path represents one of the offline paths.

[0023] In some application scenarios, step S12 above can be: selecting one of several offline paths as the target path based on the predicted collision area.

[0024] Step S13: Control the robot to travel along the target path until the robot reaches the task endpoint.

[0025] In some application scenarios, step S13 above can be: in response to the target path not containing the task endpoint and the completion of travel along the target path, updating the original planned path with the target path to obtain a new original planned path; wherein, the starting position of the new original planned path is the ending position of the target path and the ending position of the new original planned path is the task endpoint; in response to the robot being at the starting position of a new local path in the new original planned path but not at the task endpoint in the new original planned path, obtaining new current point cloud data of the robot at the starting position of the new local path; based on the new predicted collision area between the dynamic obstacle and the robot in the new current point cloud data, selecting a new target path from several new offline paths starting from the starting position of the new local path, wherein at least a portion of the area of ​​one of the several new offline paths overlaps with the new local path; controlling the robot to travel along the new target path until the robot reaches the task endpoint. It can be considered that after the target path does not contain the task endpoint and the travel along the target path is completed, some steps similar to steps S11 to S13 above are re-executed until the robot travels to the task endpoint and the path planning is completed.

[0026] In other application scenarios, step S13 above can be: in response to the target path containing the task endpoint, controlling the robot to travel along the target path to the task endpoint.

[0027] The above scheme, when the robot is at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path, selects a target path from several offline paths starting from the starting position based on the predicted collision area between the robot and dynamic obstacles in the current point cloud data when the robot is at the starting position. Among the several offline paths, at least a part of the offline path overlaps with the local path. The robot is controlled to travel along the target path until it reaches the task endpoint. In this way, by using offline paths and predicted collision areas, local obstacle avoidance planning does not require dense online sampling, thereby reducing the consumption of computing resources, improving obstacle avoidance response speed, achieving efficient path planning, and then traveling based on the target path until the task endpoint, which can improve the stability of the robot's path travel.

[0028] Please see Figure 2a , Figure 2a This is another flowchart illustrating an exemplary embodiment of the path planning method of this application.

[0029] In some embodiments, prior to step S12, the path planning method may further include the following steps: Step S21: Perform clustering processing on the current point cloud data to obtain at least one current cluster.

[0030] The current point cloud data includes several point clouds, and the current cluster includes at least one point cloud data that meets the clustering requirements.

[0031] In some application scenarios, step S21 above can be: performing clustering processing based on the distance between pairs of point clouds in the current point cloud data to obtain at least one current cluster. In another application scenario, step S21 above can be: performing straight line fitting on the current point cloud data to obtain several fitted line segments; performing clustering processing on the several fitted line segments to obtain at least one current cluster, where each current cluster includes point cloud data located on at least one fitted line segment.

[0032] Step S22: Fit the point cloud data in each current cluster to obtain at least one current fitted circle corresponding to the current point cloud data.

[0033] The point cloud data in the current cluster represents each point cloud within the same current cluster. The currently fitted circle represents the fitted circle obtained by performing circle fitting on the point cloud data in each current cluster. The number of currently fitted circles is less than or equal to the number of current clusters.

[0034] In some application scenarios, step S22 above can be performed for each current cluster as follows: perform circle fitting processing on the point cloud data in the current cluster to obtain the current fitted circle corresponding to the current cluster.

[0035] In some embodiments, step S22 may include the following steps: performing line segment fitting processing on the point cloud data in each current cluster to obtain a fitted line segment corresponding to the current cluster; preprocessing the fitted line segments corresponding to each current cluster to obtain at least one target line segment; and performing circle fitting processing on the at least one target line segment to obtain at least one current fitted circle.

[0036] The fitted line segment representation of the current cluster is at least one line segment obtained by fitting line segments to the point cloud data in the current cluster. This process of fitting line segments to the point cloud data in the current cluster to obtain the fitted line segments of the current cluster specifically includes: The step of performing line detection on the target image to obtain each predicted line segment in the target image can be achieved by performing line detection on the image input to the line detection module to obtain the line detection result. The image input to the line detection module can be the target image. The point cloud data in the current cluster is input into the line detection module to obtain the fitted line segments of the current cluster output by the line detection module. The number of fitted line segments for the current cluster can be at least one. A preset line detection algorithm is set on the line detection module. The preset line detection algorithm can be a Hough Transform or a Line Segment Detector (LSD). The target line segment representation is the processed line segment obtained by filtering and / or merging the fitted line segments corresponding to each current cluster.

[0037] For example, step S11 above may be: based on the lidar sensor mounted on the mobile robot, scanning and constructing an initial environmental map that can be used for navigation planning. The LiDAR sensor can be a single-line or multi-line laser. Tools for building navigation maps include, but are not limited to, LiDAR SLAM algorithms such as Gmapping, Hector, Karto, and Cartographer, which can perform incremental map building. (Obtaining navigation target points) (For example, including the task start and end points when the robot performs the current task), based on the target point and initial environment map Global path planning is performed to obtain an initialized planned path, which serves as the original planned path. The global path planning method can employ the Lazy Theta Star algorithm, which significantly reduces invalid collision detection and improves the speed of global replanning by delaying the detection of collisions between the current path node and its parent node. Global path planning is followed by path replanning at a certain frequency, and replanning is also performed when the robot fails to find a locally optimal path. Point cloud data collected by the LiDAR at the robot's starting position on the local path or at the current moment is acquired. If the LiDAR point cloud data originates from a multi-line laser, the point cloud data is... Merge into directions perpendicular to the map plane The merged point cloud data is arranged in polar coordinate angle order, and all points lie within the same horizontal plane. The point cloud data... This is the current point cloud data. (Regarding the point cloud data...) Subsequent processing yields the following results: Figure 2b The fitting results shown include fitted line segments and / or fitted circles. Figure 2b In Chinese, "robot" represents a robot. The fitted circle represents the circular obstacle, i.e., the dynamic obstacle, and its number 1 represents the first circular obstacle; The numbers represent the fitted line segments, and their serial numbers represent the fitted line segments.

[0038] In some application scenarios, step S21 above can be: processing point cloud data Clustering is performed by dividing points into different groups by examining the distances between consecutive points, resulting in at least one current cluster; the purpose of grouping is to provide a set of points. , representing a series of separable objects. For a point Where 2 represents the type of target acquisition device, namely multi-line laser; Represents the total number of points in the current point cloud dataset or the last point cloud. Calculates the number of any point cloud in the current point cloud dataset. Compared to the previous point cloud Distance between . Specifically, The criteria for grouping are as follows: ,in, It is the clustering distance threshold. It is a point The distance to the radar coordinate origin when the target acquisition device acquires the point cloud. For custom distance coefficients, if the aforementioned criteria are met, then the point... and Divide into the same set of points , Represents the set of points corresponding to any current cluster. This represents the total number of current clusters or the last current cluster.

[0039] In some application scenarios, the steps described above for performing line segment fitting on the point cloud data in the current cluster to obtain the fitted line segment for the current cluster can be: using the least squares method to perform line segment fitting on the clustered point set. Perform a line fitting operation and save the fitting result as a set of line segments. ,in , and Each of the following is a given current cluster. The projection points of the point cloud data corresponding to the two endpoints of the fitted line segment onto the fitted line segment.

[0040] In some application scenarios, the above-mentioned step of preprocessing the fitted line segments corresponding to each current cluster to obtain at least one target line segment can be as follows: in response to the requirement that the line segment attribute information of the fitted line segment corresponding to the current cluster meets the requirements, the fitted line segment corresponding to the current cluster is taken as the target line segment. The line segment attribute information includes the line segment length and / or the line segment width.

[0041] In other application scenarios, the above-mentioned step of preprocessing the fitted line segments corresponding to each current cluster to obtain at least one target line segment can be: processing the fitted line segment set... and the point set corresponding to each current cluster Attempt to split, and repeat the line fitting on the split results until a point set corresponding to any current cluster is found. Points that do not exist on The following distance conditions must be met: ,in, It is a point The distance to the fitted line segment of the point set corresponding to the current cluster. It is the segmentation distance threshold. It is a point The distance from the radar coordinate origin when the target acquisition device collects the point cloud data; the accuracy of the data to be processed by circular fitting is improved by confirming whether the straight line fitting result can be further segmented. Two adjacent straight line segments that form a large included angle are fitted into a straight line. If the above distance condition is not met, it indicates that the fitted line segment set... It can be further divided; the set of line segments after division Hedianji Recorded as and In terms of quantity For the segmented set of lines Hedianji Perform the final merge, and the merge result is denoted as and However, merging two pairs requires meeting the following two conditions. It is a distance condition ( ), It is a condition of collinearity ( ).in, The function calculates the maximum perpendicular distance from the two endpoints of one line segment to another line segment. Represents line segment and The result of the merger It is a distance threshold. It is the collinearity threshold. This step merges two line segments that are close in distance and have a small angle (close to collinear) to obtain the target line segment.

[0042] In some application scenarios, the step of performing circle fitting on at least one target line segment to obtain at least one currently fitted circle can be: [The text abruptly ends here, likely due to an incomplete sentence or a missing section.] Perform circular fitting on (including at least one target line segment), where circular fitting is only performed on lengths less than... The line segments are processed, and the fitted set of circles is denoted as . ,in the center of the circle ( ) and radius ( ).in, It is a line segment Length, It is a line segment The normal vector points to one side of the origin. and It is the line segment pointing from the radar coordinate origin. Vectors with two endpoints.

[0043] Step S23: Determine the predicted collision area based on each current fitted circle and at least one historical fitted circle corresponding to the historical point cloud data, as well as the robot's driving information.

[0044] The historical point cloud data was acquired earlier than the current point cloud data.

[0045] The current fitted circle represents the fitted circle obtained by fitting the current point cloud data.

[0046] Historical point cloud data represents the point cloud data acquired by the current point cloud data acquisition device at a historical moment. The historical moment is earlier than the acquisition moment of the current point cloud data.

[0047] The historical fitting circle represents the fitting circle obtained by fitting historical point cloud data. Specifically, when acquiring historical point cloud data, at least one historical fitting circle can be obtained by using the same fitting method as the current point cloud data (similar to steps S21 and S22 above).

[0048] The robot's driving information represents the robot's driving state at the starting position of a local path, including but not limited to at least one of the following: the robot's pose information (position information and attitude angles) and velocity at the starting position of the local path.

[0049] In some application scenarios, step S23 above may be: determining the motion region corresponding to the dynamic obstacle based on each current fitted circle and at least one historical fitted circle corresponding to the historical point cloud data; determining the motion region corresponding to the robot based on the robot's driving information; determining the predicted collision region based on the motion region corresponding to the dynamic obstacle and the motion region corresponding to the robot, including: taking the union region between the motion region corresponding to the dynamic obstacle and the motion region corresponding to the robot as the predicted collision region.

[0050] In some embodiments, the robot's driving information includes the robot's speed at the starting position. Step S23 may include the following steps: determining the predicted speed of at least one dynamic obstacle based on each currently fitted circle and at least one historical fitted circle corresponding to historical point cloud data. For each dynamic obstacle, determining a collision sub-region between the robot and the dynamic obstacle based on the robot's speed at the starting position and the predicted speed of the dynamic obstacle. Determining a predicted collision region based on the collision sub-regions between the robot and each dynamic obstacle.

[0051] The predicted velocity representation of dynamic obstacles is based on the velocity information predicted for the same obstacle according to the correlation between each current fitted circle and each historical fitted circle.

[0052] The collision sub-region between the robot and the dynamic obstacle represents the area where the probability of collision between the robot and the dynamic obstacle is greater than a preset probability.

[0053] Understandably, each currently fitted circle is considered a current dynamic obstacle, and the identification information (ID) of each current dynamic obstacle is different. Each historical fitted circle corresponds to a historical dynamic obstacle. If the identification information of the dynamic obstacles corresponding to the current and historical fitted circles is the same, the movement speed of the dynamic obstacle is predicted based on the positional difference between the historical and current fitted circles. Alternatively, if the identification information of the dynamic obstacles corresponding to the current and historical fitted circles is the same, the movement speed of the dynamic obstacle is predicted based on the positional difference between the historical and current fitted circles and the historical velocity information associated with the historical fitted circles.

[0054] In some application scenarios, for each dynamic obstacle, a velocity obstacle method or a probability prediction method is used based on the robot's speed at the starting position and the predicted speed of the dynamic obstacle to obtain the area where the collision probability between the robot and the dynamic obstacle is greater than the preset probability, and this area is used as the collision sub-region between the robot and the dynamic obstacle.

[0055] In some application scenarios, determining the predicted collision region based on the collision sub-regions between the robot and each dynamic obstacle can be achieved by taking the union of the collision sub-regions as the predicted collision region.

[0056] For example, the step of determining the predicted velocity of at least one dynamic obstacle based on each current fitted circle and at least one historical fitted circle corresponding to historical point cloud data may include the following steps: obtaining the relationship matrix between each current fitted circle and each historical fitted circle; calculating the difference value between each current fitted circle and each historical fitted circle; based on the relationship matrix and the difference value between each current fitted circle and each historical fitted circle, using the current fitted circle and the historical fitted circle with the same dynamic obstacle's identification information as the trackable objects corresponding to the identification information of that dynamic obstacle, respectively; and performing tracking processing on the trackable objects corresponding to the identification information of each dynamic obstacle according to a preset tracking algorithm to obtain the predicted velocity of each dynamic obstacle at the current time.

[0057] Record the radar point cloud clustering fitting results at historical moments. For line segment sets that are not fitted as circles, classify them as static obstacles. Record the number of circular obstacles at historical moments (i.e., each historical fitted circle) and at the current moment (i.e., each current fitted circle). , Construct a relation matrix between adjacent time points Specifically, it can be expressed as the following formula (1): Formula (1); in, This represents the relationship matrix between each current fitted circle and each historical fitted circle.

[0058] Specifically, the method for calculating the difference cost between each current fitted circle and each historical fitted circle can refer to the following formula (2): Formula (2); in, Represents a circular obstacle and The difference in generational value. Represents the cost threshold. In formula (2), i represents the historical moment, j represents the current moment, ( , )and These represent the coordinates and radius of the center of the historical fitted circle at a given historical moment. , )and These represent the coordinates of the center and radius of the currently fitted circle at the current moment, respectively. If the difference is less than the threshold, C1 is taken as the final output difference value; otherwise, C2 is taken as the final output difference value.

[0059] For example, the relation matrix between adjacent time points The minimum difference cost value can be searched row by row, and the index of the minimum value indicates the obstacle at the current time. Compared to the previous moment Since they are the same object, the Kalman filter algorithm can be used to filter all sets of circles. The system tracks the state of obstacles, including the center position of the same object being tracked. ,radius With speed , The specific process of tracking the target object corresponding to the identification information of each dynamic obstacle according to the preset tracking algorithm and obtaining the predicted speed of each dynamic obstacle at the current moment can be referred to the following formula (3): Formula (3); in, It is a state variable. These are observed values. It is the state transition matrix. It is a control matrix. It is the observation transition matrix. It is Kalman gain. It is the error covariance matrix, subscript and These represent the current moment and a historical moment, respectively. This represents the prior prediction value at the current moment. This represents the posterior estimate at the current time; in this example, the state variables, whether prior predictions or posterior estimates, include... Observed values , For uniform motion, a matrix representation is used. The matrix is ​​zero. u_t-1 is the control input, Q is the covariance matrix of the process noise, and R is the covariance matrix of the measurement noise. It is an identity matrix. This is understandable given the speed mentioned above. It is the rate of change of the radius. It refers to the speed of movement. The output is the predicted velocity of the dynamic obstacle at the current moment.

[0060] After obtaining the position, radius, and velocity information of all circular obstacles at the current moment through obstacle clustering fitting and Kalman filter tracking, the predicted velocity of dynamic obstacles is set to a threshold. The circular obstacle is used as a dynamic obstacle. Combining the robot's current position and current speed given by the robot's odometry information, the process of constructing the predicted collision area based on the speed obstacle method can refer to the following formula (4): Formula (4); Please refer to the following: Figure 2c Let B represent any dynamic obstacle, whose predicted velocity at the current moment is V. b . This represents the velocity region where collisions will occur (i.e., the collision sub-region between the robot and the dynamic obstacle at the current moment). A represents the robot. The robot's velocity at the current moment is V. a The relative velocity between the robot and the dynamic obstacle at the current moment is V. ab . Indicates the relative distance between the robot and the obstacle. and time The relative velocity range within which collisions are unlikely is taken as... supplement As a dynamic obstacle zone, and take all dynamic obstacles. The union of these values ​​serves as the total dynamic obstacle region. That is, predicting the collision area.

[0061] Please see Figure 3 , Figure 3 yes Figure 1 A schematic diagram of the sub-process of step S12.

[0062] In some embodiments, step S12 may include the following steps: Step S31: Determine at least two candidate paths from a number of preset offline paths.

[0063] Candidate paths represent any one of several preset offline paths.

[0064] In some application scenarios, step S31 above may be: selecting at least two candidate paths from a number of preset offline paths based on the robot's pose information at the current moment, including: in response to the angle difference between the robot's initial position in the preset offline path and the robot's pose angle at the current moment being less than or equal to an angle difference threshold, using the preset offline path as a candidate path.

[0065] In some embodiments, step S31 may include the following steps: determining the path search direction based on the start and end positions in the local path; determining the target search range based on the path search direction and the acquisition range of the lidar acquiring the current point cloud data; and selecting at least two candidate paths from a number of preset offline paths based on the target search range.

[0066] The path search direction represents the robot's desired direction of travel during local path replanning. The acquisition range represents the map extent where the LiDAR acquires the current point cloud data. The target search range represents the desired map extent for searching. The target offline path is a preset offline path that satisfies the target search range. Specifically, preset offline paths within the target search range are used as candidate paths.

[0067] For example, the offline path group is loaded before the target path is determined. The local optimum path is selected based on maximum likelihood estimation. Each offline path is pre-calculated and saved according to the robot's kinematic constraints, along with grid points from the environment map. Relationship table with offline path number group This relational table allows you to query the group of offline paths near a specific grid point on the map. In some applications, the step of loading offline paths only needs to be performed once during the robot initialization phase to obtain several preset offline paths.

[0068] Step S32: Mark each grid cell in the grid map according to the predicted collision area to obtain the marking value of each grid cell.

[0069] In some application scenarios, step S32 above may involve performing the following steps for each grid cell: in response to the grid cell being in the predicted collision region, setting a first value to the grid cell's label value; in response to the grid cell not being in the predicted collision region, setting a second value to the grid cell's label value. For example, the first value may be 1, and the second value may be 0.

[0070] Step S33: Determine the path passage probability of the robot on each candidate path based on the label value of each grid.

[0071] The path traversal probability represents the probability that a robot can traverse a corresponding candidate path.

[0072] Please see Figure 4 , Figure 4 yes Figure 3 A schematic diagram of the sub-process of step S33.

[0073] In some embodiments, step S33 above may include the following steps: performing the following steps for each candidate path: Figure 4 The following steps are shown: Step S41: In response to the presence of a preset value in at least one grid cell among the grid cells traversed by the candidate path, the path passage probability of the candidate path is set to a preset passage probability. In some application scenarios, step S33 above may involve performing the following steps for each candidate path: In response to the presence of a first value in each grid cell traversed by the candidate path, the path passage probability of the candidate path is set to a preset passage probability; the preset passage probability represents the probability that the robot will not traverse the corresponding candidate path. The preset value is the aforementioned first value, which represents the grid cell marker value when the grid cell is located in the predicted collision area.

[0074] Step S42: In response to the fact that the marker values ​​of each grid cell traversed by the candidate path are not preset values, determine the path passability probability of the candidate path based on the marker values ​​of each grid cell traversed by the candidate path and the adjacent grid cells of the corresponding grid cell in the grid map.

[0075] In a raster map, the adjacent rasters of a corresponding raster are the rasters that are adjacent to the rasters traversed by the candidate path.

[0076] In some application scenarios, step S42 above may be: statistically analyzing the label values ​​of adjacent grids along the candidate path to obtain statistical results, whereby the statistical results represent the statistical values ​​of adjacent grids with a preset label value, such as the mean, variance, standard deviation, etc.; and determining the path passability probability of the candidate path based on the statistical results, including: normalizing the statistical results to obtain the path passability probability of the candidate path.

[0077] In some embodiments, the step of determining the path passability probability of a candidate path based on the marker values ​​of each grid cell traversed by the candidate path and the adjacent grid cells of the corresponding grid cell in the grid map may include the following steps: traversing each grid cell traversed by the candidate path in the opposite direction to the travel direction of the candidate path, and selecting grid groups corresponding to each preset direction from the adjacent grid cells of the currently traversed grid cell according to several preset directions. Each grid group corresponding to a preset direction includes two target adjacent grid cells. For each grid group corresponding to a preset direction, obtaining the initial grid passability probability of the current grid cell in the corresponding preset direction based on the marker value of the current grid cell and the grid passability probability of each target adjacent grid cell in the grid group. Determining the target grid passability probability of the current grid cell based on the initial grid passability probability of the current grid cell in each preset direction. This process continues until all grid cells in the candidate path have been traversed, and the path passability probability of the candidate path is determined based on the target grid passability probability of each grid cell in the candidate path.

[0078] The driving direction of a candidate path represents the direction of travel from the first point in the candidate path to the last point in the candidate path. The opposite direction of the driving direction of the candidate path represents the direction of travel from the last point in the candidate path to the first point in the candidate path.

[0079] The traversal direction when iterating through the grids traversed by the candidate path is from the last point in the candidate path to the first point in the candidate path. A preset spatial angle is divided into several preset angle intervals, and the middle angle of each preset angle interval corresponds to a preset direction; the preset spatial angle can be 360°. For example, if the preset spatial angle is divided into 12 parts, and a certain preset angle interval is from 0° to 30°, then the middle angle of this preset angle interval is 15°, and the corresponding preset direction is the angle direction corresponding to 15°. In some application scenarios, the preset directions can be the preset directions corresponding to the middle angles of all preset angle intervals obtained by dividing the preset spatial angle into several parts. In other application scenarios, the preset directions can also be the angle directions corresponding to the middle angles of the preset angle intervals obtained by dividing the preset spatial angle into several parts, where the angle between the middle angle and the robot's attitude angle in the current grid is less than or equal to an angle threshold. In still other application scenarios, the preset directions can be specified directions, such as the upper left, directly above, or upper right of the current grid, etc., and the specific method of dividing the preset directions is not limited here.

[0080] The neighboring grids of the current grid represent the grids in the grid map that are adjacent to the current grid. For example, the neighboring grids of the current grid could be the grids that are adjacent to the current grid in the travel direction corresponding to the current grid's attitude angle.

[0081] Each preset direction corresponds to a grid group, and each grid group includes two target adjacent grids. The adjacent grid in the preset direction of the current grid is the reference adjacent grid. The target adjacent grid is the adjacent grid of the current grid that is adjacent to the reference adjacent grid. After obtaining the candidate path, the grid position and the attitude angle (actual attitude angle) of each point in the candidate path are predetermined, i.e., the actual attitude angle of each current grid is fixed. The grid passage probability of the target adjacent grid represents the probability that the robot in the current grid will reach the target adjacent grid through a preset motion method. The initial grid passage probability of the current grid in the corresponding preset direction represents the probability that the robot in the current grid will reach the adjacent grid in the preset direction through a preset motion method. The target grid passage probability of the current grid represents the probability that the robot in the current grid will travel to the previously traversed grid along the actual attitude angle.

[0082] In some application scenarios, the step of obtaining the initial grid passage probability of the current grid in the corresponding preset direction for each grid group corresponding to a preset direction, based on the current grid's marker value and the grid passage probabilities of each target neighboring grid in the grid group, may include the following steps: using the sum of the grid passage probabilities of each target neighboring grid in the grid group as the updated grid passage probability of the target neighboring grid; mapping the obstacle weight of the current grid based on the current grid's marker value, including: in response to the current grid's marker value being a preset value, the obstacle weight of the current grid is a first preset weight; in response to the current grid's marker value not being a preset value, the obstacle weight of the current grid is a second preset weight; the first preset weight is less than the second preset weight; using the obstacle weight of the current grid; and using the product of the obstacle weight of the current grid and the grid passage probabilities of all target neighboring grids in the grid group as the initial grid passage probability of the current grid in the corresponding preset direction.

[0083] In some application scenarios, the step of obtaining the initial grid passage probability of the current grid in the corresponding preset direction for each grid group corresponding to a preset direction, based on the current grid's marker value and the grid passage probabilities of each target neighboring grid in the grid group, may include the following steps: obtaining the relative direction weights of each target neighboring grid relative to the current grid; if the relative directions of the target neighboring grid and the current grid are different, then the relative direction weights of the target neighboring grid relative to the current grid can be different, wherein different turning passage weights can be set for different turning directions according to the path planning accuracy; for each target neighboring grid in the grid group, the product of the grid passage probability of the target neighboring grid and the relative direction weight of the target neighboring grid relative to the current grid is used as the update The grid passage probability of the target neighboring grids is calculated; the sum of the grid passage probabilities of each updated target neighboring grid is used as the grid passage probability of all target neighboring grids in the grid group; the obstacle weight of the current grid is mapped according to the label value of the current grid, including: in response to the label value of the current grid being a preset value, the obstacle weight of the current grid is a first preset weight; in response to the label value of the current grid not being a preset value, the obstacle weight of the current grid is a second preset weight; the first preset weight is less than the second preset weight; the obstacle weight of the current grid is used as the obstacle weight of the current grid; the product of the obstacle weight of the current grid and the grid passage probability of all target neighboring grids in the grid group is used as the initial grid passage probability of the current grid in the corresponding preset direction.

[0084] In some embodiments, the step of obtaining the initial grid passage probability of the current grid in the corresponding preset direction for each grid group corresponding to a preset direction, based on the current grid's marker value and the grid passage probability of each target neighboring grid in the grid group, may include the following steps: for each target neighboring grid in the grid group, determining the updated grid passage probability of the target neighboring grid based on the grid passage probability of the target neighboring grid and the direction angle of the preset direction; obtaining the initial grid passage probability of the current grid in the preset direction based on the updated grid passage probability of each target neighboring grid in the grid group and the current grid's marker value.

[0085] The direction angle of the preset direction represents the direction angle corresponding to the preset direction.

[0086] In other application scenarios, the relative directional weights of each target neighboring grid relative to the current grid are constructed based on the directional angle of a preset direction. The updated grid passage probability of the target neighboring grid represents the degree of influence of the grid passage probability of the target neighboring grid on the grid passage probability of the current grid. Specifically, the step of constructing the relative directional weights of each target neighboring grid relative to the current grid based on the directional angle of a preset direction includes: obtaining the function value of the directional angle of the preset direction in a preset trigonometric function; using the function value as the relative directional weight of each target neighboring grid relative to the current grid; or, for each target neighboring grid, substituting the function value into the calculation template matching the turning direction of the target neighboring grid to obtain the relative directional weight of the target neighboring grid relative to the current grid. The turning directions of each target neighboring grid are the turning directions adjacent clockwise and counterclockwise to the preset direction. The preset trigonometric function can be a tangent function, a cosine function, etc., and this application uses the tangent function as an example. For each target neighboring grid in the grid group, the grid passage probability of the target neighboring grid is multiplied by the relative direction weight of the target neighboring grid relative to the current grid as the updated grid passage probability of the target neighboring grid; the sum of the updated grid passage probabilities of the target neighboring grids is used as the grid passage probability of all target neighboring grids in the grid group; the obstacle weight of the current grid is mapped according to the label value of the current grid, including: in response to the label value of the current grid being a preset value, the obstacle weight of the current grid is a first preset weight; in response to the label value of the current grid not being a preset value, the obstacle weight of the current grid is a second preset weight; the first preset weight is less than the second preset weight; the obstacle weight of the current grid; the product of the obstacle weight of the current grid and the grid passage probability of all target neighboring grids in the grid group is used as the initial grid passage probability of the current grid in the corresponding preset direction.

[0087] In some application scenarios, the step of determining the target grid passage probability of the current grid based on the initial grid passage probability of the current grid in each preset direction can be as follows: the summation or weighted summation of the initial grid passage probabilities of the current grid in each preset direction can be used as the target grid passage probability of the current grid. During the weighted summation, the weighting weight of the initial grid passage probability in the corresponding preset direction can be set according to the degree of deviation between the preset direction and the actual attitude angle of the current grid in the candidate path. The greater the deviation between the preset direction and the actual attitude angle of the current grid in the candidate path, the smaller the weighting weight of the initial grid passage probability in the corresponding preset direction. The actual attitude angle of the current grid in the candidate path represents the attitude angle of the point corresponding to the current grid when it travels to the next point, as pre-stored in the candidate path.

[0088] In some application scenarios, the above steps, which involve traversing all grids in the candidate path and determining the path probability of the candidate path based on the target grid access probability of each grid in the candidate path, can be implemented as follows: Statistical values ​​are obtained by statistically processing the target grid access probabilities of each grid in the candidate path, and these statistical values ​​are used as the path probability of the candidate path. Statistical processing can include averaging, taking the maximum value, etc.

[0089] Step S34: Determine the target path from each candidate path based on the path passability probability of each candidate path.

[0090] In some application scenarios, step S34 above can be: taking the candidate path corresponding to the maximum path passability probability as the target path.

[0091] In other application scenarios, step S34 above can be: sorting the path passability probabilities of each candidate path from largest to smallest to obtain a probability ranking; taking the path passability probabilities of the top preset names in the probability ranking as advanced paths, and obtaining the driving direction angles corresponding to each advanced path, with at least two preset names, and the driving direction angles corresponding to the advanced paths being the vector angles from the start position to the end position in the advanced path; taking the angles between the driving direction angles corresponding to each advanced path and the driving direction angles corresponding to the local paths as the angles to be judged for each advanced path; and taking the advanced path corresponding to the smallest angle to be judged as the target path.

[0092] For example, such as Figure 5a The offline paths shown all start at the same location (the starting position of the local path). Figure 5aThe horizontal and vertical axes represent the x-axis and y-axis coordinates in the raster map, respectively. The basis for selecting the local optimal path from each offline path can be calculated based on the maximum likelihood estimation. The path maximizes the probability of reaching the target point (i.e., the end position of the corresponding offline path). The specific process of determining the path probability of an offline path can be referred to the following formula (5): Formula (5); in, Indicates as Figure 5b The diagram shows the robot's initial state in the offline path, including its position (starting position in the offline path) and orientation (the robot's attitude angles when it is at the starting position in the offline path). "robot" represents the robot. The function... Indicates that the robot is The initial state successfully reached the local target point. The final probability of (the end position in the offline path) can be calculated using formula (5) as the candidate path is selected from the offline path. Here, we assume that point Located within the detection range of lidar (hereinafter referred to as radar) In addition, the distance from the starting position of the local path to the task endpoint G is greater than the offline path length, and the offline path length is greater than or equal to the distance from the starting position of the local path to the boundary of the radar detection range. The lidar is a point cloud acquisition device used to collect current point cloud data, and the lidar's detection range represents the point cloud acquisition range of the robot when collecting current point cloud data. The state of the robot when it reaches the intersection of the offline path and the detection range boundary is represented as... Then the probability It can be represented as The integral of the total probability; where Indicates that the robot is Starting from the state, successfully traversing the obstacle area within the radar detection range and reaching the boundary state. The conditional probability, and For robots from Reach the target point The probability of; therefore, maximizing Calculations need to be done separately. and The optimal path with the largest product is selected, and the initial point of this path is used as the optimal initial state. .because For integral representation, we can first need to... It performs a discretization approximation, while and The discretization approximation will be in Equation (7) and Equation (8) below, respectively.

[0093] In some application scenarios, the law of total probability... The integral calculation can be discretized using Monte Carlo sampling. The larger the number of samples, the closer the approximation is to the true value. (The offline path...) Sufficiently dense and uniformly covered, it can be equivalently regarded as a sampling path: Formula (6); in, For the robot to travel via offline path Reaching the target point without collision The probability, given a sufficient number of offline paths. Approximately equivalent to all offline paths Reach the target point The average of the probability values. Therefore, it is necessary to calculate the number of offline paths that reach the target point without collision. The probability, and calculated according to the above formula (5). Choose the offline path with the highest probability.

[0094] In some application scenarios, the probability of a robot reaching a target point is approximated using offline paths. Further feasibility screening is then performed based on the results within the radar sensor's detection range. This can be calculated using the following formula: Formula (7); in, Indicates offline path The probability of a path being passable is determined by the detection results of radar sensors; if the path... If there are obstacle point clouds above, then the path is impassable, that is... ,therefore Only the average probability of all passable sample paths needs to be calculated; to accelerate passability queries, for a detected obstacle point cloud, query the raster corresponding to all points along its offline path. The correspondence between points and locations is expressed as follows: Let all corresponding , m represents the point corresponding to the end position in the offline path.

[0095] Any offline path, i.e., the i-th offline path A series of robot states Composition, divided into detection range The inner part and parts outside the detection range For the simplified case, it can be considered that That is, the offline path length is equal to the detection range. For the part within the detection range, the passable path has been filtered by the above formula (7), that is... Therefore, it is only necessary to calculate the offline path endpoint reaching the target point without collision. probability The probability value of this grid point is calculated through probability propagation; the robot state includes the grid position information and angle information (i.e., the attitude angle of the corresponding point) of the robot at each point. Probability propagation can be performed between adjacent grids to obtain the target grid passage probability of each point in the offline path or candidate path. Therefore, each grid is classified as follows: The intervals are divided into 12 angular directions. Then, for each offline path (or candidate path), calculate the position of the offline path (or candidate path) in any grid cell, i.e., the current grid cell. The process of determining the passability probability of a target grid can be referred to formula (8): Formula (8); Among them, such as Figure 5c Any preset direction shown , where j represents the current grid; for formula (8) It is the first The direction angle of each preset direction and the positive Angle along the axial direction; It means the first The first offline path or candidate path If a grid cell (i.e., the current grid cell being traversed) is passable, then if the grid cell's flag indicates the presence of a dynamic obstacle, then... ,otherwise Among them, such as Figure 5d As shown, This represents the current grid cell corresponding to the preset direction. and These represent the target adjacent grids in the grid group corresponding to the current grid, respectively, for the preset direction; and These represent references in the preset direction k. In each adjacent grid cell with The corresponding adjacent grid cells of each target, The method for selecting the target adjacent grid is the same as the method for selecting the target adjacent grid in the preset direction of the current grid, and will not be described again here. This represents the probability of passage within the corresponding grid cell; a one-to-one correspondence is not explained here. Coefficient and Calculations were performed from the grid points respectively. The probability of propagation from two adjacent grid cells is given by coefficients a and b. For each grid group corresponding to a preset direction, these coefficients represent the grid passage probability of each target's adjacent grid cells in that grid group. Here, we take the lower left grid cell as an example. and the top right grid Let's take an example to calculate. and Let represent the probabilities of turning and moving forward, respectively, or use them as the relative direction weights of the target's adjacent grid cells relative to the current grid cell. Here, let The probability of the robot moving forward is greater than the probability of it turning around.

[0096] It can be assumed that, based on the probability propagation formula corresponding to the above formula (8), combined with the initial static environment map, from the target point Departure, its It can calculate the arrival times of all map grid points in the offline path or candidate path through backpropagation. The probability value can be used to obtain the offline path. End point The probability of success, i.e. Therefore, by selecting the endpoint with the highest probability in the offline path or candidate path, we can achieve the selection of the locally optimal path from each offline path based on the maximum likelihood estimation.

[0097] In other application scenarios, by calculating the probability of offline paths through probability propagation, it is only necessary to calculate the map grid points outside the detection range of the radar sensor, and the corresponding offline path groups can be eliminated in advance by the location of dynamic obstacles and the predicted collision area, thereby greatly reducing the consumption of computing resources and making the overall implementation have extremely high real-time performance; if the initial static environment map is unknown, the path passability probability calculation of offline paths or candidate paths can be further simplified to the following formula (9): Formula (9); in, Indicates offline path or candidate path End point and target point Maximize the difference in direction and angle between them That is, minimizing the distance from the target point. The path that minimizes the difference in direction and angle between the two paths is taken as the target path.

[0098] After determining the target path, the robot is controlled to move along the target path. If the target path does not include the end position of the original planned path, other paths in the original planned path other than the target path are used as new original planned paths. After reaching the end position of the target path, a new local path is determined from the new original planned path, and new current point cloud data at the starting position of the new local path is obtained. Based on the predicted collision area between the robot and the dynamic obstacles in the new current point cloud data, a new target path is selected from several new offline paths starting from the starting position of the new local path. Among the several new offline paths, at least a part of the new local path overlaps with the new offline path. The robot is controlled to move along the new target path until the robot reaches the task endpoint.

[0099] In some application scenarios, the path planning method of this application can be as follows: A lidar scan is used to construct an initial static environment map; global path planning is performed based on the robot's current task target point (task endpoint) and current position (task start point) to obtain a globally planned path; the globally planned path is used as the initial original planned path; the current point cloud data of the local paths in the initial original planned path is obtained; point cloud clustering, fitting, and segmentation are performed on the current point cloud data to construct obstacle information for dynamic obstacles and to construct the predicted collision area between the dynamic obstacles in the current point cloud data and the robot; a target path is selected from several offline paths associated with the starting position of the local paths in the initial original planned path, and the robot is controlled to travel along the target path; if the target path does not include the task endpoint, the other paths in the local paths of the initial original planned path other than the target path are used as new original planned paths; a new local path is selected starting from the starting position of the new original planned path. In the case of a non-first-time original planned path, the current point cloud data of a local path within that non-first-time original planned path is acquired. Point cloud clustering, fitting, and segmentation are performed on the current point cloud data to construct obstacle information for dynamic obstacles and to construct a predicted collision region between the dynamic obstacles in the current point cloud data and the robot. Then, a target path is selected from several offline paths associated with the starting positions of the local paths in the non-first-time original planned path, and the robot is controlled to travel along the target path. Specifically, during the process of constructing the predicted collision region between the dynamic obstacles in the current point cloud data and the robot, the point cloud clustering and fitting results of the point cloud data acquired by the LiDAR at the previous moment are recorded, and a circular obstacle relationship matrix is ​​constructed; for example... Figure 5e As shown, robot represents a robot; The fitted circle represents the circular obstacle, i.e., the dynamic obstacle, and its number represents each circular obstacle, i.e., each dynamic obstacle; global path represents the original planned path, and G represents the task endpoint. Figure 5e Paths other than the original planned path represent offline paths. For example... Figure 5e The circular obstacle shown can be directly used as a dynamic obstacle. The predicted velocity of the dynamic obstacle can be obtained by updating the state information of the circular obstacle through Kalman filtering. The dynamic obstacle and robot will collide by using the velocity obstacle method, and the dynamic obstacle region is updated to obtain the predicted collision region. Several offline paths are loaded with the starting position of the local path as the starting point. The offline path that meets the requirements is selected as the target path according to the probability propagation and maximum likelihood method. The robot moves along the target path. If the target point (task endpoint) is not reached, the original planned path is re-determined and a new target path is continuously selected to control the robot to move along the new target path until the task endpoint is reached.

[0100] The above scheme, when the robot is at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path, selects a target path from several offline paths starting from the starting position based on the predicted collision area between the robot and dynamic obstacles in the current point cloud data when the robot is at the starting position. Among the several offline paths, at least a part of the offline path overlaps with the local path. The robot is controlled to travel along the target path until it reaches the task endpoint. In this way, by using offline paths and predicted collision areas, local obstacle avoidance planning does not require dense online sampling, thereby reducing the consumption of computing resources, improving obstacle avoidance response speed, achieving efficient path planning, and then traveling based on the target path until the task endpoint, which can improve the stability of the robot's path travel.

[0101] Please see Figure 6 , Figure 6 This is a schematic diagram of an embodiment of the path planning device of this application. The path planning device 60 includes an acquisition module 61, a selection module 62, and a driving module 63; the acquisition module 61 is used to acquire the current point cloud data of the robot at the starting position in response to the robot being at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path; the selection module 62 is used to select a target path from a plurality of offline paths starting from the starting position based on the predicted collision area between dynamic obstacles and the robot in the current point cloud data, wherein at least a part of the offline path overlaps with the local path; the driving module 63 is used to control the robot to drive along the target path until the robot reaches the task endpoint.

[0102] Please refer to the path planning method for the functions performed by each module; they will not be elaborated here.

[0103] The above scheme, when the robot is at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path, selects a target path from several offline paths starting from the starting position based on the predicted collision area between the robot and dynamic obstacles in the current point cloud data when the robot is at the starting position. Among the several offline paths, at least a part of the offline path overlaps with the local path. The robot is controlled to travel along the target path until it reaches the task endpoint. In this way, by using offline paths and predicted collision areas, local obstacle avoidance planning does not require dense online sampling, thereby reducing the consumption of computing resources, improving obstacle avoidance response speed, achieving efficient path planning, and then traveling based on the target path until the task endpoint, which can improve the stability of the robot's path travel.

[0104] Please see Figure 7 , Figure 7 This is a schematic diagram of the structure of an embodiment of the electronic device of this application. The electronic device 70 includes a memory 71 and a processor 72. The processor 72 is used to execute program instructions stored in the memory 71 to implement the steps in the above-described path planning method embodiment. In a specific implementation scenario, the electronic device 70 may include, but is not limited to, a microcomputer or a server. In addition, the electronic device 70 may also include mobile devices such as laptops and tablets, which are not limited here.

[0105] Specifically, processor 72 controls itself and memory 71 to implement the steps in the path planning method embodiments described above. Processor 72 can also be referred to as a CPU (Central Processing Unit). Processor 72 may be an integrated circuit chip with signal processing capabilities. Processor 72 can also be a general-purpose processor, digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. A general-purpose processor can be a microprocessor or any conventional processor. Furthermore, processor 72 can be implemented using integrated circuit chips.

[0106] The above scheme, when the robot is at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path, selects a target path from several offline paths starting from the starting position based on the predicted collision area between the robot and dynamic obstacles in the current point cloud data when the robot is at the starting position. Among the several offline paths, at least a part of the offline path overlaps with the local path. The robot is controlled to travel along the target path until it reaches the task endpoint. In this way, by using offline paths and predicted collision areas, local obstacle avoidance planning does not require dense online sampling, thereby reducing the consumption of computing resources, improving obstacle avoidance response speed, achieving efficient path planning, and then traveling based on the target path until the task endpoint, which can improve the stability of the robot's path travel.

[0107] Please see Figure 8 , Figure 8 This is a schematic diagram of a computer-readable storage medium according to an embodiment of the present application. The computer-readable storage medium 80 stores program instructions 801 thereon, which, when executed by a processor, implement the steps in any of the above-described path planning method embodiments.

[0108] The above scheme, when the robot is at the starting position of a local path in the original planned path but not at the task endpoint in the original planned path, selects a target path from several offline paths starting from the starting position based on the predicted collision area between the robot and dynamic obstacles in the current point cloud data when the robot is at the starting position. Among the several offline paths, at least a part of the offline path overlaps with the local path. The robot is controlled to travel along the target path until it reaches the task endpoint. In this way, by using offline paths and predicted collision areas, local obstacle avoidance planning does not require dense online sampling, thereby reducing the consumption of computing resources, improving obstacle avoidance response speed, achieving efficient path planning, and then traveling based on the target path until the task endpoint, which can improve the stability of the robot's path travel.

[0109] In some embodiments, the functions or modules of the apparatus provided in this disclosure can be used to perform the methods described in the above method embodiments. The specific implementation can be referred to the description of the above method embodiments, and for the sake of brevity, it will not be repeated here.

[0110] The description of the various embodiments above tends to emphasize the differences between the various embodiments. The similarities or similarities between them can be referred to, and for the sake of brevity, they will not be repeated here.

[0111] In the several embodiments provided in this application, it should be understood that the disclosed methods and apparatus can be implemented in other ways. For example, the apparatus implementations described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection of devices or units may be electrical, mechanical, or other forms.

[0112] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0113] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the methods of various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0114] If the technical solution of this application involves personal information, the product using this technical solution has clearly informed the user of the personal information processing rules and obtained the user's voluntary consent before processing the personal information. If the technical solution of this application involves sensitive personal information, the product using this technical solution has obtained the user's separate consent before processing the sensitive personal information, and also meets the requirement of "express consent". For example, at personal information collection devices such as cameras, clear and prominent signs are set up to inform users that they have entered the scope of personal information collection and that personal information will be collected. If an individual voluntarily enters the collection scope, it is deemed that they have agreed to the collection of their personal information; or on the personal information processing device, with clear signs / information informing users of the personal information processing rules, authorization is obtained from the user through pop-up information or by asking the user to upload their personal information; wherein, the personal information processing rules may include information such as the personal information processor, the purpose of personal information processing, the processing method, and the types of personal information processed.

Claims

1. A path planning method, characterized in that, The method is applied to a robot, and the method includes: In response to the robot being at the starting position of a local path in the original planned path and not at the task endpoint in the original planned path, the current point cloud data of the robot at the starting position is obtained; Based on the predicted collision area between the dynamic obstacle and the robot in the current point cloud data, a target path is selected from a plurality of offline paths starting from the starting position, wherein at least a portion of the offline path overlaps with the local path. Control the robot to travel along the target path until the robot reaches the task endpoint.

2. The method according to claim 1, characterized in that, The step of selecting a target path from several offline paths originating from the starting position based on the predicted collision area between the dynamic obstacle and the robot in the current point cloud data includes: Determine at least two candidate paths from the aforementioned preset offline paths; Based on the predicted collision area, each grid cell in the grid map is marked to obtain the marking value of each grid cell; Based on the label value of each grid, the path passage probability of the robot on each candidate path is determined; The target path is determined from the candidate paths based on the path passability probability of each candidate path.

3. The method according to claim 2, characterized in that, The step of determining the path passage probability of the robot on each candidate path based on the label value of each grid includes: For each candidate path, perform the following steps: In response to the fact that at least one grid in each grid traversed by the candidate path has a preset value as its marker, the path passability probability of the candidate path is set to the preset passability probability. In response to the fact that the marker values ​​of each grid cell traversed by the candidate path are not preset values, the path passability probability of the candidate path is determined based on the marker values ​​of each grid cell traversed by the candidate path and the adjacent grid cells of the corresponding grid cell in the grid map.

4. The method according to claim 3, characterized in that, The step of determining the path probability of the candidate path based on the marker values ​​of each grid cell traversed by the candidate path and the adjacent grid cells of the corresponding grid cell in the grid map includes: Traverse each grid along the candidate path in the opposite direction to the travel direction of the candidate path, and select grid groups corresponding to each preset direction from the adjacent grids of the currently traversed grid according to several preset directions. Each grid group corresponding to the preset direction includes two target adjacent grids. For each grid group corresponding to the preset direction, the initial grid passage probability of the current grid in the corresponding preset direction is obtained based on the mark value of the current grid and the grid passage probability of each target adjacent grid in the grid group. Based on the initial grid passage probability of the current grid in each preset direction, determine the target grid passage probability of the current grid; The path passability probability of the candidate path is determined based on the target grid passability probability of each grid in the candidate path, after traversing all grids in the candidate path.

5. The method according to claim 4, characterized in that, The step of obtaining the initial grid passage probability of the current grid in the corresponding preset direction for each grid group corresponding to the preset direction, based on the marker value of the current grid and the grid passage probability of each target adjacent grid in the grid group, includes: For each target neighboring grid in the grid group, the updated grid passage probability of the target neighboring grid is determined based on the grid passage probability of the target neighboring grid and the direction angle of the preset direction. Based on the grid passage probability of each updated target neighboring grid in the grid group and the tag value of the current grid, the initial grid passage probability of the current grid in the preset direction is obtained.

6. The method according to claim 2, characterized in that, The step of determining at least two candidate paths from the plurality of preset offline paths includes: The path search direction is determined based on the start and end positions in the local path; The target search range is determined based on the path search direction and the acquisition range of the lidar that collects the current point cloud data; Based on the target search range, at least two candidate paths are selected from several preset offline paths.

7. The method according to claim 1, characterized in that, Before the step of selecting a target path from several offline paths originating from the starting position based on the predicted collision area between the dynamic obstacle and the robot in the current point cloud data, the method further includes: The current point cloud data is clustered to obtain at least one current cluster. The point cloud data in each current cluster is fitted to obtain at least one current fitted circle corresponding to the current point cloud data, and the number of current fitted circles is less than or equal to the number of current clusters; The predicted collision area is determined based on at least one historical fitted circle corresponding to each current fitted circle and historical point cloud data, as well as the robot's driving information. The historical point cloud data was acquired earlier than the current point cloud data.

8. The method according to claim 7, characterized in that, The step of fitting the point cloud data in each current cluster to obtain at least one current fitted circle corresponding to the current point cloud data includes: Perform line segment fitting on the point cloud data in each current cluster to obtain the fitted line segment corresponding to the current cluster; Preprocess the fitted line segments corresponding to each current cluster to obtain at least one target line segment; Perform circle fitting on the at least one target line segment to obtain the at least one currently fitted circle.

9. The method according to claim 7, characterized in that, The robot's driving information includes the robot's speed at the starting position; The step of determining the predicted collision region based on each current fitted circle and at least one historical fitted circle corresponding to the historical point cloud data, as well as the robot's driving information, includes: Based on each current fitted circle and at least one historical fitted circle corresponding to the historical point cloud data, determine the predicted speed of at least one dynamic obstacle. For each dynamic obstacle, a collision sub-region between the robot and the dynamic obstacle is determined based on the robot's velocity at the initial position and the predicted velocity of the dynamic obstacle. The predicted collision area is determined based on the collision sub-regions between the robot and each dynamic obstacle.

10. An electronic device, characterized in that, include: A memory and a processor, wherein the memory stores program instructions, and the processor retrieves the program instructions from the memory to perform the method as claimed in any one of claims 1-9.

11. A computer-readable storage medium having program instructions stored thereon, characterized in that, When the program instructions are executed by the processor, they are used to implement the method as described in any one of claims 1-9.