A robotic adaptive navigation method and system
By constructing a topology graph and using an improved A* algorithm, combined with particle filtering and exponentially weighted moving average, and leveraging the robot's historical navigation experience, the navigation path is optimized. This solves the problem of insufficient adaptability of existing navigation algorithms in uncertain environments, and improves navigation efficiency and success rate.
Patent Information
- Application Number
- CN202411991424.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-31
- Publication Date
- 2026-02-17
- Estimated Expiration
- 2044-12-31
AI Technical Summary
Existing navigation algorithms perform poorly in highly uncertain environments, easily causing robots to get trapped in crowds and fail in their missions. They also lack adaptability and escape mechanisms.
A topology map is constructed, and the improved A* algorithm is combined with particle filtering and exponentially weighted moving average method. Based on the robot's historical navigation experience, obstacle probability information is updated in real time. The navigation path is optimized by judging topological feature points and dangerous areas.
It improves the robot's navigation efficiency and success rate in uncertain environments, reduces the frequency of being blocked by obstacles, and enhances adaptability and safety.
Smart Images

Figure CN120043547B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of robot navigation, in particular to a robot adaptive navigation method and system. BACKGROUND
[0002] In the research of mobile robots, the research of global and local path planning algorithms as the key to determine the motion strategy of the robot has always been the key part of the autonomous navigation of the robot. However, the working environment of the mobile robot in reality is full of uncertainty, and the execution of the navigation task of the robot may be affected by uncertain factors such as the blockage of the entrance and exit by the dense crowd, the opening and closing of the door, etc. These uncertain factors challenge the decision of the robot. At present, most navigation strategies rely on global static maps and combine traditional local planning algorithms to deal with new obstacles, but this may cause the robot to need to frequently re-plan the path in a complex and uncertain environment. At the same time, the traditional navigation system usually adopts a reactive real-time strategy to deal with sudden obstacles, and cannot remember and use the obstacle probability information in the previous task, and the position information of the obstacle is also difficult to learn, so it cannot optimize the navigation strategy through historical navigation experience. For the robot that performs the task for a long time, this fixed strategy does not have environmental adaptability, because the robot may frequently try to pass through the route with high blockage probability. The Canadian Traveler Problem (CTP) is closely related to the motion planning of the mobile robot in the uncertain environment, and the CTP involves finding the optimal path from the starting point to the ending point in the graph structure. Some edges in the graph may not be connected, and the edge can only be confirmed to be passable when the robot reaches any end of the edge. There are several problems in the current solution algorithm of the CTP: first, most of the CTP algorithms require the probability of the edge being blocked as prior information, but this information cannot be obtained in advance in the real environment; second, the existing CTP algorithms are mostly based on graph theory and are used more in discrete environments, but it is difficult to combine with the navigation system in continuous real environments; in addition, most algorithms only focus on the optimization of the strategy for single solution, and fail to use the past navigation experience to improve the future strategy, and the real-time performance is poor.
[0003] Many existing navigation algorithms (for example, the fusion algorithm combining A* algorithm and DWA algorithm) perform poorly in highly uncertain environments, such as stations with a large number of people and high fluidity or large shopping malls with many doors. Specifically, the existing navigation algorithm cannot consider the uncertainty that causes the change of the traversability of the environment, so that the robot continues to take a fixed and rigid optimistic strategy, which is easy to block the robot in the navigation process and frequently replan the path, and it is difficult to adapt to the changing environment. Secondly, the existing navigation algorithm ignores the position information of the obstacles in the environment and cannot effectively utilize it in the navigation task. In addition, the existing navigation algorithm does not utilize the historical navigation experience of the robot and ignores the probability information of the appearance of the obstacles, resulting in unreasonable decisions of the robot. Finally, the existing navigation algorithm makes the robot consider to bypass only when it is close to the crowd, and has no escape mechanism, which is easy to cause the robot to be trapped by the crowd and fail in the task. SUMMARY
[0004] To this end, the technical problem to be solved by the present application is to overcome the problem that the existing navigation algorithm performs poorly in highly uncertain environments and has no escape mechanism, which is easy to cause the robot to be trapped by the crowd and fail in the task.
[0005] To solve the above technical problems, the present application provides a robot adaptive navigation method, comprising:
[0006] Step S1: guiding the robot to construct an initial static map in a dynamic obstacle-free environment;
[0007] Step S2: inputting the starting point and the end point of the navigation task, and acquiring the topological feature points in the environment, the topological feature points being key points for the robot to make decisions, and connecting the topological feature points around each topological feature point in pairs to form topological edges to form a topological graph;
[0008] Step S3: if the direct connection between two topological feature points does not pass through any fixed obstacle in the static map, using Euclidean distance to calculate the path cost; if the direct connection between two topological feature points passes through the fixed obstacle in the static map, using Dijkstra algorithm to calculate a path cost bypassing the fixed obstacle;
[0009] Step S4: after acquiring the topological feature points in the environment in step S2, setting an inflation parameter with the topological feature points as the center, and inflating to obtain a square region, taking the square region as a dangerous region in the map;
[0010] Step S5: the robot performs navigation, reads the environment probability information estimated in the last navigation, and uses the edge probability information of the probability topological map estimated in the previous navigation as prior information of the current navigation before the current navigation task starts, and inputs the prior information into the improved A* algorithm of step S7;
[0011] Step S6: it is judged whether the robot reaches the end point or cannot perform the task, if the robot reaches the end point or cannot perform the task, the passing and blocking conditions of the topological edges in the topological map in the current navigation task are saved and recorded, and the current navigation task ends; if the robot does not reach the end point, step S7 is performed;
[0012] Step S7: the improved A* algorithm is used to calculate the heuristic estimation cost h(n), and the starting point, the end point, the topological feature points and the topological edges of the topological map, the path cost and the probability information of the edge blocking in the topological map are used as input parameters, and finally a coordinate sequence of a series of target points is output as a navigation path for guiding the robot;
[0013] Step S8: during the navigation process of the robot according to the navigation path, it is judged whether the robot is blocked by obstacles in combination with the dangerous area in step S4: if the robot is blocked by a door, the robot temporarily stops moving, updates the current position of the robot, marks the current topological edge as blocked, and turns to step S9 to update the edge blocking probability; if the robot is blocked by a crowd, the robot is asked to retreat from the crowd position, the current topological edge is marked as blocked, and step S9 is turned to update the edge blocking probability; if the robot is knocked down by a crowd and cannot perform the task, step S6 is turned to;
[0014] Step S9: when the robot successfully passes through a topological edge or is blocked on a topological edge, the edge blocking probability of the topological edge passed through at this time is calculated based on the particle filter algorithm and the exponential weighted moving average method and according to the types of obstacles;
[0015] Step S10: the robot is guided to move to the target point position according to the coordinate sequence of the series of target points calculated in step S7, and steps S8 and S9 are performed at the same time;
[0016] Step S11: steps S5-S10 are repeated until the navigation task ends.
[0017] In an embodiment of the present application, the method for acquiring the topological feature points in the environment in step S2 comprises:
[0018] Step S21: a cruise point sequence is set in the static map, and the cruise point sequence is randomly disturbed and randomly released as a target point to the robot for performing a task;
[0019] Step S22: the robot moves to the current target point according to the cruise point sequence;
[0020] Step S23: At the current target point, it is judged whether the robot is blocked by the newly added obstacle: the average of the laser radar data within a 30-degree range in front of the robot is compared with a threshold value, if less than the threshold value, it is judged that the robot is blocked, and step S24 is jumped to; otherwise, step S22 is continuously executed;
[0021] Step S24: If the robot is blocked, the position of the robot at this time is saved and recorded;
[0022] Step S25: The robot collects a preset number of blocked positions as blocked feature points by continuous cruising, adopts a Gaussian mixture model (GMM) to perform clustering operation on the blocked feature points, and takes the center point of the clustering as a topological feature point in the environment.
[0023] In an embodiment of the present application, the method for improving the heuristic estimation cost of the A* algorithm in step S7 comprises:
[0024] Step S71: Set the sampling number;
[0025] Step S72: The topological edges in the topological graph are randomly sampled by using the topological edge blocking probability estimated in advance, so as to generate a topological graph in which the states of all edges are determined;
[0026] Step S73: On the determined topological graph, the Dijkstra algorithm is used to calculate the distance from the current node to the destination node;
[0027] Step S74: The obtained distance is accumulated and summed;
[0028] Step S75: Steps S72 to S74 are repeatedly executed until the set sampling number is completed, and finally the average value of the accumulated distance is taken as the value of the heuristic estimation cost h(n) of the improved A* algorithm, the value of the heuristic estimation cost h(n) of each time is taken as the value of a sub-target point, and finally a coordinate sequence of a series of sub-target points is obtained.
[0029] In an embodiment of the present application, the method for judging whether the robot is blocked by the obstacle in step S8 comprises:
[0030] Step S81: It is judged which obstacle blocks the robot: if a pedestrian is detected by using a pedestrian detection algorithm, the robot is blocked by the pedestrian, otherwise, the robot is blocked by the door;
[0031] Step S82: It is judged whether the robot is blocked by the door: if the average of the 30-degree laser radar data in front of the robot is less than a threshold value, and the position of the robot is in the dangerous area divided in step S4, the robot is considered to be blocked by the door;
[0032] Step S83: judging whether the robot is blocked by the crowd: if the distance between the robot and the people is less than a threshold value detected by the laser and the speed of the robot is less than a certain threshold value, the robot is considered to be blocked by the crowd.
[0033] In an embodiment of the present application, the method for calculating the topological edge blocking probability in step S9 comprises:
[0034] Step S91: if the robot is blocked by the door, a probability estimation strategy based on the particle filter algorithm PF is adopted, and step S92 is executed; if the robot is blocked by the crowd, step S98 is jumped to;
[0035] Step S92: particle initialization: a plurality of particles are first scattered on each edge, and the values of 0-1 are randomly assigned to represent the initial probability, and the initial weights of each particle are set to be equal;
[0036] Step S93: moving and observing: a binomial likelihood model is adopted, when the robot observes the edge blocking, the particle with a high probability of blocking is more capable of explaining the observation result, and the likelihood is set to be the probability estimation of the particle blocking; otherwise, the likelihood is set to be 1-probability estimation;
[0037] Step S94: updating the weight by using the EWMA formula, and then normalizing to obtain a new weight;
[0038] Step S95: system resampling: first, the cumulative weight is calculated: the weights of all particles are added to form a cumulative weight array; second, the sampling points are generated: the points are uniformly distributed in the interval [0, 1); then, the particles are selected: the search sorting function is used to find the particle index corresponding to each sampling point in the cumulative weight array, and a new particle set is selected from the original particle array according to the indexes, and the particles with high weights will be selected multiple times; finally, the weight is updated and normalized;
[0039] Step S96: calculating and estimating the probability: the weighted average of all particles is calculated to obtain the final blocking probability of each edge;
[0040] Step S97: whenever the robot has a new observation result, steps S93-S95 are repeated;
[0041] Step S98: observing and recording: each time the robot attempts to pass through a specific edge, the observation result is recorded, including blocking and non-blocking.
[0042] In an embodiment of the present application, the weight is updated by using the EWMA formula in step S94, and then the new weight is normalized, and the update formula is:
[0043]
[0044] wherein, is a likelihood, is a smoothing factor for controlling the length of the model's memory of historical data, represents the weight before updating.
[0045] In an embodiment of the present application, in the step S10 of navigating the robot to the sub-target point as the current navigation target, the A* algorithm is used as the global path planning algorithm, and the dynamic window method (DWA) is used as the local path planning algorithm, both of which guide the robot to the sub-target point.
[0046] To solve the above technical problems, the present application provides a robot adaptive navigation system, comprising:
[0047] The first construction module guides the robot to construct an initial static map in a dynamic obstacle-free environment.
[0048] The second construction module inputs the start point and the end point of the navigation task, and then acquires the topological feature points in the environment, wherein the topological feature points are key points for the robot to make decisions, and the topological edges are formed by connecting the topological feature points around each topological feature point in a straight line, so as to form a topological graph.
[0049] The cost calculation module uses the Euclidean distance to calculate the cost if the direct connection between the two topological feature points does not pass through any fixed obstacle in the static map, and uses the Dijkstra algorithm to calculate the cost of a path that bypasses the fixed obstacle if the direct connection between the two topological feature points passes through the fixed obstacle in the static map.
[0050] The dangerous area construction module sets the inflation parameter and performs inflation to obtain a square area as a dangerous area in the map after acquiring the topological feature points in the environment in the second construction module.
[0051] The navigation module reads the environmental probability information estimated in the last navigation, and uses the edge probability information of the probability topological map estimated in the previous navigation as the prior information of the current navigation before the current navigation task starts, and inputs the information into the decision solving algorithm.
[0052] The first judgment module judges whether the robot has reached the end point or cannot execute the task, and if so, saves and records the passing and blocking conditions of the topological edges in the topological graph in the current navigation task, and the current navigation task ends; if not, the path planning module is executed.
[0053] Path planning module: by improving the calculation method of the heuristic estimation cost h(n) of A* algorithm, using the starting point, end point, topological feature point and topological edge of topological graph, path cost and probability information of edge obstruction in topological graph as input parameters, finally output a coordinate sequence of a series of sub-target points as the navigation path of guiding the robot;
[0054] Second judgment module: during the navigation process of the robot according to the navigation path, the dangerous area in the dangerous area construction module is combined to judge whether the robot is blocked by obstacles: if blocked by a door, the robot temporarily stops moving, updates the current position, marks the current topological edge as obstruction and goes to the edge obstruction probability calculation module to update the edge obstruction probability; if blocked by a crowd, the robot is asked to retreat from the crowd position, and the topological edge is marked as obstruction, and goes to the edge obstruction probability calculation module to update the edge obstruction probability; if the robot is knocked down by the crowd and cannot execute the task, go to the navigation module;
[0055] Edge obstruction probability calculation module: when the robot successfully walks through a topological edge or is obstructed on a topological edge, the edge obstruction probability of the topological edge passed at this time is calculated based on the particle filtering algorithm and the exponential weighted moving average method according to the type of obstacle;
[0056] Moving module: taking the sub-target point as the current navigation target of the robot, guiding the robot to move to the sub-target point position according to the coordinate sequence of the series of sub-target points calculated in the path planning module, and simultaneously executing the second judgment module and the edge obstruction probability calculation module;
[0057] Loop module: loop the process of the navigation module to the moving module until the repeated navigation task ends.
[0058] To solve the above technical problems, the present application provides an electronic device, comprising a memory, a processor and a computer program stored on the memory and executable on the processor, wherein the processor executes the computer program to realize the steps of the above-mentioned robot adaptive navigation method.
[0059] To solve the above technical problems, the present application provides a computer readable storage medium having a computer program stored thereon, wherein the computer program is executed by a processor to realize the steps of the above-mentioned robot adaptive navigation method.
[0060] The above technical solution of the present application has the following advantages compared with the prior art:
[0061] The robot adaptive navigation method constructed by the present application can enable the robot to autonomously collect environmental information and improve its own decision-making during task execution, solving the problem of difficulty in effectively utilizing navigation experience;
[0062] The application designs a Gaussian mixture model (GMM) based obstacle position feature self-learning method, and solves the problem of difficult acquisition of environment prior information.
[0063] The application designs an obstacle probability real-time estimation method based on exponential weighted moving average (EWMA) and particle filtering, and improves the navigation efficiency of the robot in the uncertain environment such as the gathering crowd. BRIEF DESCRIPTION OF DRAWINGS
[0064] In order to make the content of the application more easily understood, the application will be further described in detail below according to specific embodiments of the application and in combination with the drawings.
[0065] Figure 1 is a method flowchart of the application;
[0066] Figure 2 is a probability topological map construction schematic diagram of the application;
[0067] Figure 3 is a Gaussian mixture model clustering topological feature point acquisition schematic diagram of the application. DETAILED DESCRIPTION
[0068] The application will be further described below in combination with the drawings and specific embodiments, so that those skilled in the art can better understand the application and implement it, but the embodiments are not limiting to the application.
[0069] Embodiment one
[0070] Referring to Figure 1 The application relates to a robot adaptive navigation method, and specifically comprises the following steps:
[0071] S1, constructing an initial map. First, the starting position of the robot is set in an unexplored dynamic obstacle-free environment, the robot relies on its simultaneous localization and mapping (SLAM) technology, adopts a Gmapping mapping algorithm, and collects surrounding environment information in combination with a sensor carried by the robot. In this process, the robot also uses adaptive Monte Carlo localization (AMCL) technology to accurately locate itself, and ensures the accuracy of the map construction. The robot can generate an initial two-dimensional grid map, which will serve as a basic map for task execution, and the robot can be guided by remote control to complete static map construction of the entire environment;
[0072] S2, probability topological map construction. First, the starting point and the ending point of the navigation task are input, and then the topological feature points in the environment are acquired, which are used to represent key points for decision-making of the robot, and are generally the two sides of a door or the surrounding area of a frequently appearing new obstacle. Then, the nearby feature points of all feature points are connected two by two to form topological edges;
[0073] S3, initialize the probabilistic topology map. Cost initialization: if the direct connection between two topology nodes does not pass any fixed obstacle in the static map, the path cost is directly calculated by Euclidean distance. If the connection passes a fixed obstacle, the Dijkstra algorithm is used to calculate the path cost around the obstacle. Probability initialization: before a series of navigation tasks, all edges are assumed to be equally likely to be blocked, and the blocking probability of all topology edges is set to 0.5. See Figure 2 ;
[0074] S4, set the dangerous area. After obtaining the topology nodes in the environment in step S2, set the inflation parameter based on the nodes to obtain a square area as the dangerous area in the map. This represents the area in the map where the blockage often occurs.
[0075] S5, read the environmental probability information estimated in the last navigation. Before the start of the current navigation task, the edge probability information of the probabilistic topology map estimated previously is used as the prior information of the current navigation, and is input to the improved A* algorithm in step S7.
[0076] S6, determine whether the robot has reached the destination or cannot perform the task. If the robot has reached the destination or cannot perform the task, save and record the passage and blockage of the topology map edges in the current navigation task, and the current navigation task ends. If the robot has not reached the destination, execute S7.
[0077] S7, solve the navigation strategy in an uncertain environment. The calculation method of the heuristic estimate cost h(n) of the A* algorithm is modified, and the algorithm uses the starting point, the destination, the nodes and edges of the topology map, the edge cost, and the probability information of the edge blockage in the map as input parameters. Finally, a sequence of point coordinates is output to guide the navigation path of the robot.
[0078] S8, determine whether the robot is completely blocked by an obstacle and which obstacle blocks it. (1) If the robot is blocked by a door, it immediately stops moving temporarily, updates its current position, marks the current topology edge as blocked, and goes to step S9. (2) If the robot is blocked by a crowd, it first escapes from the crowd, withdraws from the crowd position, marks the edge as blocked, and goes to S9 to calculate and update the edge probability. If the robot is knocked down by the crowd and cannot perform the task, it goes to S6.
[0079] S9, topology edge blockage probability estimation. When the robot successfully passes through a topology edge or is blocked on an edge, the topology edge blockage probability information at this time is calculated based on the particle filter algorithm (PF) and the exponential weighted moving average method (EWMA) according to the type of obstacle.
[0080] S10, take the sub-target point as the current navigation target of the robot. According to the coordinate sequence of the series of sub-target points calculated in S7, guide the robot chassis to move to the sub-target position, at this time, S8 and S9 are executed simultaneously;
[0081] S11, repeat steps S5-S10 until the series of repeated navigation tasks ends.
[0082] In the above technical solution, the step S2 of acquiring the topological feature points in the environment comprises the following steps:
[0083] S21, cruise task setting. Set a sequence of cruise points in the global static map, and randomly shuffle the sequence to randomly publish the target points to the robot for task execution. The purpose of random shuffling is to make the recorded feature points more evenly distributed in the map, facilitating subsequent clustering.
[0084] S22, the robot moves to the target point according to the sequence until enough feature points when blocked are recorded.
[0085] S23, block feature point recording. Determine whether the robot is blocked by the newly added obstacle. Compare the average value of the laser radar data within 30 degrees in front of the robot with the threshold value. If it is less than the threshold value, it is determined to be blocked, and jump to S24, otherwise continue to execute S22.
[0086] S24, if blocked, save and record the position of the robot at this time, and visualize and publish to Rviz.
[0087] S25, Gaussian Mixture Model (GMM) clustering. After the robot cruises for a period of time, enough blocked position feature points are collected, GMM is used to cluster these points, and the center point of the cluster is taken as the topological feature point in the environment. For details, please refer to Figure 3 .
[0088] In the above technical solution, the heuristic cost estimation of the improved A* algorithm in step S7 comprises the following steps:
[0089] S71, set the sampling number, more sampling number helps the robot to prefer to choose a more reliable path, rather than just a shorter path, but this will lead to an increase in computational complexity;
[0090] S72, use the pre-estimated topological edge blocking probability to randomly sample the topological edges in the topological graph, thereby generating a topological graph in which the state of all edges is determined;
[0091] S73, use Dijkstra algorithm to calculate the distance from the current node to the destination node on this fixed topological graph;
[0092] S74, accumulate the obtained distances;
[0093] S75, repeat steps S72 to S74 until the set number of samples is completed, and finally take the average value of the accumulated distances as the value of the heuristic estimation cost h(n) of the improved A* algorithm, take the value of each heuristic estimation cost h(n) as the value of a sub-target point, and finally obtain a coordinate sequence of a series of sub-target points.
[0094] In the technical solution, the step S8 of judging whether the path is completely blocked by the obstacle includes the following steps:
[0095] S81, judging which obstacle blocks the robot. If the laser detection leg algorithm leg_detector detects a pedestrian, the robot is blocked by the pedestrian, otherwise, the robot is blocked by the door.
[0096] S82, judging whether the robot is blocked by the door. If the average value of the 30-degree laser radar data in front of the robot is less than a threshold value, and the position of the robot is in the dangerous area divided in step S4, the robot is considered to be blocked by the door.
[0097] S83, judging whether the robot is blocked by the crowd. If the laser detection leg algorithm leg_detector detects that the distance between the person and the robot is less than a threshold value, and the speed of the robot at this time is less than a certain threshold value, the robot is considered to be blocked by the crowd.
[0098] In the technical solution, the step S9 of estimating the topological edge blocking probability includes the following steps:
[0099] S91, if the robot is blocked by the door, a probability estimation strategy based on the particle filter algorithm (PF) is used, and step S92 is executed. If the robot is blocked by the crowd, jump to S98.
[0100] S92, particle initialization. First, some particles are scattered on each edge, and the initial probability is randomly assigned as 0-1, and the initial weight of each particle is set to be equal.
[0101] S93, moving and observing. A binomial likelihood model is used. When the robot observes the edge blocking, the particle with a high probability of blocking is considered to be able to better explain the observation result, and the likelihood is set as the probability estimation of the particle. Conversely, the likelihood is set as 1-probability estimation.
[0102] S94, weight updating. The weight is updated by using the EWMA formula, and the new weight is obtained by normalization. The update formula is:
[0103]
[0104] wherein, is the likelihood, To smooth the factor used to control the length of the model's memory of historical data, The weights before update. The advantage of EWMA is that it can adjust the parameter to value recent observation data, different The value has an impact on the probability estimate, smaller Respond faster to new changes. This embodiment hopes that the robot's probability estimate of such obstacles as people will have a faster response speed to ensure safety.
[0105] S95, system resampling. First, calculate the cumulative weight: add up the weights of all particles to form a cumulative weight array. Second, generate uniformly spaced sampling points: these points are uniformly distributed in the interval [0,1). Then, select particles: use the search sort function to find the particle index corresponding to each sampling point in the cumulative weight array, and select a new particle set from the original particle array according to these indexes, and particles with high weights will be selected multiple times. Finally, update the weights and normalize.
[0106] S96, calculate and estimate the probability. All particles take the weighted average to calculate the final obstacle probability of each edge.
[0107] S97, whenever the robot has new observations. Repeat steps S93-S95.
[0108] S98, observation and record: each time the robot tries to pass through a certain edge, record the observation results, including obstacles and non-obstacles.
[0109] In the above technical solution, the A* algorithm is used as the global path planning algorithm in the step S10 of navigating to the sub-target point, and the dynamic window method (Dynamic Window Approach, DWA) is used as the local path planning algorithm, which realizes basic dynamic obstacle avoidance while guiding the robot to the sub-target point.
[0110] Experimental comparison
[0111] To fully demonstrate the effectiveness of the present application, the present application and the fusion algorithm (hereinafter referred to as "fusion algorithm") combining A* algorithm and DWA algorithm globally are compared in simulation scenarios under four population distribution environments. This algorithm aims to verify the superiority of the method of the present embodiment in autonomous decision-making of robots in uncertain environments with clustered crowds and the adaptability to environmental changes. For each environment, each algorithm will be tested for 20 times. After 20 experiments in an environment, the crowd will move to form a new crowd distribution, and then 20 experiments will be performed, and so on, until the experiments of the four environments are completed. Note: After switching environments, the probability estimation of the method of the present embodiment will not be reinitialized, aiming to test the adjustment ability and adaptability of the algorithm to new environments - the new environment may cause a large deviation in the probability parameters of the previously constructed probability topological map, which needs to be adjusted based on the current observation.
[0112] For the experimental environment, a total of 160 experiments were conducted, including 80 using the fusion algorithm and 80 using the method of the present embodiment. The comparison indicators of the experiment are the time (s) used to complete the navigation task, the completion rate of the task, the time (s) of approaching the pedestrian too close in the task, and the total length (m) of the path. Note: The total time and path length only record the data when the task is successfully completed, and do not record when the task fails (the robot collides with the pedestrian and cannot continue the task). In addition, the distance to the person is set to less than 1m, and the present embodiment is also interested in the time of approaching the person too close in the task when the task is successfully completed.
[0113] The experimental data shows (such as Table 1 for 1-20 rounds of experimental data, Table 2 for 21-40 rounds of experimental data, Table 3 for 41-60 rounds of experimental data, Table 4 for 61-80 rounds of experimental data, and Table 5 for 80 experiments comprehensive data) that in the 20 rounds of experiments in simulation environment 1 (such as Table 1), the method of the present embodiment compared with the fusion algorithm, the average task completion rate is increased by 34%, the average time of approaching the person too close is reduced by 49.71 seconds, and the average navigation time is reduced by 49 seconds.
[0114] In the 20 rounds of experiments in simulation environment 2 (such as Table 2), the method of the present embodiment compared with the fusion algorithm, the average task completion rate is increased by 40%, the average time of approaching the person too close is reduced by 25.91 seconds, and the average navigation time is reduced by 5 seconds.
[0115] In the 20 rounds of experiments in simulation environment 3 (such as Table 3), the method of the present embodiment compared with the fusion algorithm, the average task completion rate is increased by 21%, the average time of approaching the person too close is reduced by 17.35 seconds, and the average navigation time is reduced by 3 seconds.
[0116] In the 20 rounds of experiments in the simulation environment 4 (as shown in Table 3), the method of the embodiment increased the average task completion rate by 34% and reduced the average time of passing close to the person by 41.85 seconds compared with the fusion algorithm.
[0117] In the comprehensive data of 80 experiments in Table 5, the method of the embodiment increased the average task success rate by 34.9%, reduced the average time of passing close to the person by 33.7 seconds, and reduced the average navigation time by 12 seconds compared with the fusion algorithm.
[0118] It is worth discussing that the average navigation time of the method of the embodiment in environment 4 is 10 seconds slower than that of the fusion algorithm, because the method of the embodiment selects a safer path to bypass the pedestrian, which is longer in length, and sacrifices the path length to prioritize the task success rate and stability. The fusion algorithm adopts a greedy strategy, resulting in a shorter path and a shorter time when successful, but a low success rate, a long time of passing close to the person on the successfully navigated path, a high risk level, and an invasion of the private space of the pedestrian.
[0119] Experiments show that the method of the embodiment has a higher task execution success rate than traditional algorithms in complex uncertain environments, and can adapt to uncertain environments and gradually adjust the strategy to adapt to changing uncertain environments, reflecting the adaptive characteristics of the method of the embodiment.
[0120] Table 1
[0121]
[0122] Table 2
[0123]
[0124] Table 3
[0125]
[0126] Table 4
[0127]
[0128] Table 5
[0129]
[0130] Embodiment Two
[0131] The embodiment provides a robot adaptive navigation system, comprising:
[0132] The first construction module: in a dynamic obstacle-free environment, guide the robot to construct an initial static map;
[0133] Second constructing module: input the start point and the end point of the navigation task, and then obtain the topological feature points in the environment, which are the key points for the robot to make decisions, and connect the topological feature points around each topological feature point in pairs to form topological edges to form a topological graph;
[0134] Cost calculation module: if the direct connection between two topological feature points does not pass through any fixed obstacle in the static map, the Euclidean distance is used to calculate the path cost; if the direct connection between two topological feature points passes through a fixed obstacle in the static map, the Dijkstra algorithm is used to calculate the path cost of a path that avoids the fixed obstacle;
[0135] Dangerous area constructing module: after obtaining the topological feature points in the environment in the second constructing module, set the inflation parameter and perform inflation to obtain a square area centered on the topological feature points, and take the square area as the dangerous area in the map;
[0136] Navigation module: the robot performs navigation, reads the environmental probability information estimated in the last navigation, and uses the edge probability information of the probability topological map estimated previously as prior information for the current navigation before the current navigation task starts, and inputs the information into the improved A* algorithm;
[0137] First judging module: judge whether the robot has reached the end point or cannot perform the task, if so, save and record the passing and blocking conditions of the topological edges in the topological graph in the current navigation task, and the current navigation task ends; if not, execute the path planning module;
[0138] Path planning module: by improving the calculation method of the heuristic estimation cost h(n) of the A* algorithm, use the start point, end point, topological feature points and topological edges of the topological graph, path cost, and probability information of the edge blocking in the topological graph as input parameters, and finally output a coordinate sequence of a series of target points as the navigation path for guiding the robot;
[0139] Second judging module: during the navigation process of the robot according to the navigation path, judge whether the robot is blocked by obstacles in combination with the dangerous areas in the dangerous area constructing module: if blocked by a door, the robot temporarily stops moving, updates its current position, marks the topological edge as blocked, and goes to the edge blocking probability calculation module to update the edge blocking probability; if blocked by a crowd, the robot retreats from the crowd position, marks the topological edge as blocked, and goes to the edge blocking probability calculation module to update the edge blocking probability; if the robot is knocked down by the crowd and cannot perform the task, go to the navigation module;
[0140] Edge obstacle probability calculation module: when the robot successfully walks through a topological edge or is obstructed on a topological edge, the edge obstacle probability of the topological edge passed at this time is calculated based on the particle filtering algorithm and the exponential weighted moving average method, and according to the obstacle type;
[0141] Moving module: according to the coordinate sequence of a series of sub-target points calculated in the path planning module, the robot is guided to move to the sub-target point position, and at the same time, the second judgment module and the edge obstacle probability calculation module are executed;
[0142] Looping module: the process of looping the navigation module to the moving module until the repeated navigation task ends.
[0143] Example three
[0144] The embodiment provides an electronic device, which comprises a memory, a processor, and a computer program stored in the memory and executable on the processor, and the processor implements the steps of the robot adaptive navigation method in the embodiment one when executing the computer program.
[0145] Example four
[0146] The embodiment provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the steps of the robot adaptive navigation method in the embodiment one.
[0147] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can adopt a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can adopt a computer program product in the form of one or more computer usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer usable program codes. The solutions in the embodiments of the present application can be implemented in various computer languages, such as object-oriented programming language Java and interpreted scripting language JavaScript.
[0148] The present application is described with reference to flowcharts and / or block diagrams according to the methods, devices (systems), and computer program products of the embodiments of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and the combination of the flows and / or blocks in the flowcharts and / or block diagrams can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing devices to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing devices produce a device that implements the functions described in the flowcharts and / or block diagrams. Figure 1 one flow or multiple flows and / or blocksFigure 1 means for performing the function specified in the block or blocks.
[0149] These computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture including instructions which implement the flow Figure 1 flow or flows and / or blocks Figure 1 means for performing the function specified in the block or blocks.
[0150] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the flow Figure 1 flow or flows and / or blocks Figure 1 steps of means for performing the function specified in the block or blocks.
[0151] Although preferred embodiments of the application have been described herein, it will be apparent to those skilled in the art that various modifications can be made within the scope of the application. Accordingly, it is intended that all content of the above description and all variations thereto be included within the scope of the application. The claims are to be interpreted broadly in accordance with the principles of the application and should not be limited solely to the description of the preferred embodiments.
[0152] Obviously, the embodiments described above are only examples and are not intended to limit the present application. Other variations and modifications to the embodiments described above can be apparent to those of ordinary skill in the art. The scope of the present application is not to be limited by the specific examples described above but only by the claims that follow.
Claims
1. A method of robot adaptive navigation, the method comprising: The application relates to a method for guiding a robot to complete a navigation task in a dynamic environment. Step S1: guiding the robot to construct an initial static map in a dynamic obstacle-free environment; Step S2: inputting a starting point and an ending point of the navigation task, and acquiring topological feature points in the environment, the topological feature points being key points for the robot to make decisions, connecting topological feature points around each topological feature point in a straight line to form topological edges to form a topological map; Step S3: if a direct connection between two topological feature points does not pass through any fixed obstacle in the static map, using Euclidean distance to calculate a path cost; if the direct connection between the two topological feature points passes through a fixed obstacle in the static map, using Dijkstra algorithm to calculate a path cost which bypasses the fixed obstacle; Step S4: after acquiring the topological feature points in the environment in step S2, setting an inflation parameter based on the topological feature points, and performing inflation to obtain a square region, and taking the square region as a dangerous region in the map; Step S5: the robot performs navigation, reads environmental probability information estimated in the last navigation, and uses previous navigation experience to take edge probability information of a probability topological map estimated previously as prior information of the present navigation, and inputs the prior information into improved A* algorithm of step S7; Step S6: judging whether the robot reaches the ending point or cannot execute the task, if yes, saving and recording passing and blocking conditions of topological edges in the topological map in the present navigation task, and ending the present navigation task; if not, executing step S7; Step S7: using a starting point, an ending point, topological feature points and topological edges of the topological map, a path cost and probability information of edge blocking in the topological map as input parameters, and finally outputting a coordinate sequence of a series of target points as a navigation path for guiding the robot; Step S8: in the navigation process of the robot according to the navigation path, judging whether the robot is blocked by an obstacle according to the dangerous region in step S4: if the robot is blocked by a door, the robot temporarily stops moving, updates a current position of the robot, marks a topological edge where the robot is currently located as blocked, and turns to step S9 to update edge blocking probability; if the robot is blocked by a crowd, the robot retreats from the crowd position, marks the topological edge where the robot is currently located as blocked, and turns to step S9 to update edge blocking probability; if the robot is knocked down by the crowd and cannot execute the task, the robot turns to step S6; Step S9: when the robot successfully passes through a topological edge or is blocked on a topological edge, based on a particle filter algorithm and an exponential weighted moving average method, and according to a type of the obstacle, edge blocking probability of the topological edge passed through at the moment is calculated; Step S10: according to the coordinate sequence of the series of target points calculated in step S7, guiding the robot to move to the target point position, and simultaneously executing step S8 and step S9; Step S11: repeating steps S5-S10 until the navigation task ends.
2. The method of claim 1, wherein: The method for acquiring the topological feature points in the environment in step S2 comprises the following steps: Step S21: Set a sequence of cruise points in the static map, and randomly shuffle the sequence of cruise points as target points to be sent to the robot to perform a task; Step S22: The robot moves to the current target point according to the sequence of cruise points; Step S23: At the current target point, it is judged whether the robot is blocked by a newly added obstacle: the average value of the laser radar data within a 30-degree range in front of the robot is compared with a threshold value, and if it is less than the threshold value, it is judged that the robot is blocked, and the step S24 is jumped to; otherwise, the step S22 is continuously executed; Step S24: If the robot is blocked, the position of the robot at this time is saved and recorded; Step S25: The robot collects a preset number of blocked positions as blocked feature points by continuously cruising, performs clustering operation on the blocked feature points by using a Gaussian mixture model GMM, and takes the center point of the clustering as a topological feature point in the environment.
3. The method of claim 1, wherein: The improved A* algorithm heuristic estimation cost method in the step S7 includes: Step S71: Set the sampling number; Step S72: Use the pre-estimated topological edge blocking probability to randomly sample the topological edges in the topological graph, thereby generating a topological graph in which the states of all edges are determined; Step S73: On the determined topological graph, the distance from the current node to the destination node is calculated by using the Dijkstra algorithm; Step S74: The obtained distance is cumulatively summed; Step S75: Steps S72 to S74 are repeatedly executed until the set sampling number is completed, and finally the average value of the cumulative distance is taken as the value of the heuristic estimation cost h(n) of the improved A* algorithm, and the minimum value of each heuristic estimation cost h(n) is taken as a sub-target point, and finally a coordinate sequence of a string of sub-target points is obtained.
4. The method of claim 1, wherein: The method for judging whether the robot is blocked by an obstacle in the step S8 includes: Step S81: Judge which obstacle blocks the robot: if a pedestrian is detected by a pedestrian detection algorithm, the robot is blocked by a person, otherwise the robot is blocked by a door; Step S82: Judge whether the robot is blocked by a door: if the average value of the 30-degree laser radar data in front of the robot is less than a threshold value, and the position of the robot is in the dangerous area divided in the step S4, the robot is considered to be blocked by a door; Step S83: Judge whether the robot is blocked by a crowd: if the distance between a person and the robot is less than a threshold value by using laser detection by a pedestrian detection algorithm, and the speed of the robot at this time is less than a certain threshold value, the robot is considered to be blocked by a crowd.
5. The method of claim 1, wherein: The calculation method of the topological edge blocking probability in the step S9 includes: Step S91: If the robot is blocked by a door, a probability estimation strategy based on a particle filter PF algorithm PF is used, and step S92 is executed; if the robot is blocked by a crowd, step S98 is jumped to; Step S92: Particle initialization: first, a plurality of particles are scattered on each edge, and a random value 0-1 is assigned, representing the initial probability, and the initial weight of each particle is set to be equal; Step S93: Move and observe: a binomial likelihood model is used, when the robot observes that an edge is blocked, the particle with a high blocking probability is considered to be more capable of explaining the observation result, and the likelihood is set to be the particle blocking probability estimation itself; otherwise, the likelihood is set to be 1-probability estimation; Step S94: update the weight using the EWMA formula, and then normalize to obtain a new weight; Step S95: system resampling: first, calculate the cumulative weight, and add up the weights of all particles to form a cumulative weight array; second, generate uniformly spaced sampling points, which are uniformly distributed in the interval [0, 1); then select particles, use the search sorting function to find the particle index corresponding to each sampling point in the cumulative weight array, and select a new particle set from the original particle array according to the index, and the particles with high weights will be selected multiple times; finally, update the weight and normalize; Step S96: calculate and estimate the probability: take the weighted average of all particles to calculate the final obstacle probability of each edge; Step S97: repeat steps S93-S95 whenever the robot has new observations; Step S98: observation and record: record the observation results, including obstacles and non-obstacles, each time the robot tries to pass through a specific edge.
6. The method of claim 5, wherein: In step S94, the weight is updated using the EWMA formula, and then normalized to obtain a new weight, and the update formula is: ; wherein, is the likelihood, is a smoothing factor for controlling the length of the model's memory of historical data, denotes the weight before update.
7. The method of claim 1, wherein: In step S10, when the sub-target point is taken as the current navigation target of the robot for navigation, the A* algorithm is used as the global path planning algorithm, and the dynamic window method (DWA) is used as the local path planning algorithm, both of which guide the robot to the sub-target point.
8. A robotic adaptive navigation system, characterized by: Comprise: First construction module: in a dynamic obstacle-free environment, guide the robot to construct an initial static map; Second construction module: input the starting point and ending point of the navigation task, and then obtain the topological feature points in the environment, the topological feature points are key points for the robot to make decisions, and the topological edges are formed by connecting the topological feature points around each topological feature point in a straight line to form a topological graph; Cost calculation module: if the direct connection between two topological feature points does not pass through any fixed obstacle in the static map, use the Euclidean distance to calculate the path cost; if the direct connection between two topological feature points passes through a fixed obstacle in the static map, use the Dijkstra algorithm to calculate the path cost of a path that avoids the fixed obstacle; Dangerous area construction module: after obtaining the topological feature points in the environment in the second construction module, set the inflation parameter and perform inflation to obtain a square region, and take the square region as the dangerous area in the map; Navigation module: the robot performs navigation, reads the environmental probability information estimated in the last navigation, and uses the edge probability information of the probability topological map estimated in the previous navigation as prior information for this navigation, and inputs it into the improved A* algorithm; First judgment module: judge whether the robot has reached the end point or cannot execute the task, if it has reached the end point or cannot execute the task, save and record the passing and obstacle conditions of the topological edges in the topological graph in this navigation task, and the navigation task ends; If not, execute the path planning module; The path planning module: by improving the calculation method of the heuristic estimation cost h(n) of the A* algorithm, using the starting point, the end point, the topological feature points and topological edges of the topological graph, the path cost and the probability information of the edge obstruction in the topological graph as input parameters, finally outputting a series of coordinate sequences of sub-target points as the navigation path of the robot; The second judgment module: during the navigation process of the robot according to the navigation path, combining the dangerous area in the dangerous area construction module to judge whether the robot is blocked by the obstacle: if it is blocked by the door, the robot temporarily stops moving, updates the current position, marks the current topological edge as obstruction and goes to the edge obstruction probability calculation module to update the edge obstruction probability; if it is blocked by the crowd, the robot is asked to retreat from the crowd position, and the topological edge is marked as obstruction, and goes to the edge obstruction probability calculation module to update the edge obstruction probability; if the robot is knocked down by the crowd and cannot execute the task, go to the navigation module; The edge obstruction probability calculation module: when the robot successfully walks through a topological edge or is blocked on a topological edge, based on the particle filtering algorithm and the exponential weighted moving average method, and according to the type of the obstacle, the edge obstruction probability of the topological edge passed at this time is calculated; The moving module: according to the coordinate sequence of a series of sub-target points calculated in the path planning module, guiding the robot to move to the sub-target point position, and simultaneously executing the second judgment module and the edge obstruction probability calculation module; The cycle module: the process of repeating the navigation module to the moving module until the repeated navigation task is completed.
9. An electronic device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that: The processor executes the computer program to realize the steps of the robot adaptive navigation method in any one of claims 1 to 7.
10. A computer readable storage medium having stored thereon a computer program, characterized in that: The computer program is executed by the processor to realize the steps of the robot adaptive navigation method in any one of claims 1 to 7.
Citation Information
Patent Citations
Indoor map building method for improving robot path planning efficiency
CN104898660A
Method for estimating dynamic obstacle speed in mobile robot using cost map
CN111966089A