CERRT: A Mobile Robot Path Planning Algorithm Based on RRT in Complex Environments
Abstract
:1. Introduction
- (1)
- We have designed a new process for environmental perception. This process determines the type of environment by sampling the local area, eliminating the need for principal component analysis and significantly reducing computational complexity.
- (2)
- We propose a pre-allocated vertex expansion method in conjunction with a vertex death mechanism. This approach foregoes the expansion of inactive tree vertices to prevent the algorithm from getting stuck in concave areas. When combined with the environment-aware capability, the algorithm deftly navigates complex environments such as mazes, narrow passages, and concave regions.
- (3)
- We also suggest a bidirectional contraction optimization strategy. Once a feasible path is identified, its points are contracted in both directions, yielding a more streamlined and efficient path.
2. Background
2.1. Problem Definition
2.2. RRT
2.3. RRV
3. CERRT
3.1. Algorithm Framework
Algorithm 1 CERRT(xstart, xgoal, dstep, dgap, N, Map) |
1: T = {xstart}; 2: V = T; 3: xstart.CAND = initTree(xstart); 4: for i = 1 to N do 5: xrand = GetSample(i); 6: (xnearest, nearidx) = GetNearest(V, xrand); 7: (xnew, newidx) = min(distance(xnearest.CAND(:), xrand)); 8: Delete(xnearest.CAND(newidx)); 9: if Empty(xnearest.CAND) then 10: Delete(V(nearidx)); 11: end if 12: if Overlap(xnew, T) then continue; end if 13: if Collision(xnew, xnearest, Map) then 14: (xnew, Fig) = Aware(xnearest.parent, xnearest, Map, dstep, dgap); 15: if ~Fig then continue; end if 16: end if 17: xnew.CAND = SetCAND(xnearest, xnew, dstep, T, V); 18: if NoEmpty(xnew.CAND) 19: V = V {xnew}; 20: end if 21: T = T {xnew}; 22: if xnew Xgoal then break; end if 23: end for 24: 25: return |
3.2. Vertex Expansion Method
Algorithm 2 SetCAND(xnearest, xnew, dstep, T, V) |
1: ang0 = GetCartesianAngle(xnearest, xnew); 2: ang1 = ang0 + 120; ang2 = ang0 + 240; 3: new1 = xnew + dstep*[sin(ang1), cos(ang1)]; 4: new2 = xnew + dstep*[sin(ang2), cos(ang2)]; 5: CAND = []; 6: if NoOverlap(new1, T) then 7: CAND(end + 1) = new1; 8: else if NoOverlap(new2, T) then 9: CAND(end + 1) = new2; 10: end if 11: return CAND; |
3.3. Environmental Awareness
Algorithm 3 Aware(xparent, xnearest, Map, dstep, dgap) |
1: xnew = []; Fig = false; 2: (Sfree, Sobs) = LocalSample(xnearest, Map, dstep, dgap); 3: Sbdry = GetBoundary(Sfree, Sobs); 4: if size(Sbdry) == 2 && size(Sfree) > 2 then 5: Fig = false; 6: return (xnew, Fig); 7: else 8: (R, n) = DivideRegion(Sfree, Sobs, Sbdry); 9: for i = 1 to n do 10: if xparent Ri then R = RRi end if 11: end for 12: xnew = ChoseNew(R, Sfree, n1); 13: Fig = true; 14: end if 15: return (xnew, Fig); |
3.4. Path Optimization Strategy
- (1)
- Obtain the initial optimized path (x0, x1, …, xn) using the CERRT and pruning optimization strategies, where xi (i = 0, 1, …, n) is a path point and i is the path point number.
- (2)
- Initialize i = 1.
- (3)
- Check whether i is less than n. If it is, put xi into the temporary variable xtemp, put xi-1 into the variable xpre, and put xi + 1 into the variable xpost. If not, go to step (6).
- (4)
- Move the current variable point xtemp one step toward the variable point xpost.
- (5)
- Check whether the path segment xtemp-xpre collides with any obstacles. If there is a collision, move xtemp one step toward the opposite direction of xpost, update the path point xi to xtemp, set i = i + 1, and go to step (3). If there is no collision, go to step (4).
- (6)
- Set i = n − 1.
- (7)
- Check whether i is greater than 0. If it is, put xi into the temporary variable xtemp, put xi+1 into the variable xpre, and put xi-1 into the variable xpost. If not, the optimized path is obtained, and the process ends.
- (8)
- Move the current variable point xtemp one step toward the variable point xpost.
- (9)
- Check whether the path segment xtemp-xpre collides with any obstacles. If there is a collision, move xtemp one step toward the opposite direction of xpost, update the path point xi to xtemp, set i = i − 1, and go to step (7). If there is no collision, go to step (8).
4. Simulation and Experiment
4.1. Path Planning Simulation
4.1.1. Simple Environment
4.1.2. Maze Environment
4.1.3. Narrow Environment
4.1.4. Bug Trap Environment
4.2. Path Optimization Simulation
4.2.1. Maze Environment Path Optimization
4.2.2. Bug Trap Environment Path Optimization
4.3. Evaluation of Algorithms in Real Environment
Algorithm Comparison
5. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Hichri, B.; Gallala, A.; Giovannini, F.; Kedziora, S. Mobile robots path planning and mobile multirobots control: A review. Robotica 2022, 40, 4257–4270. [Google Scholar] [CrossRef]
- Öztürk, Ü.; Akdağ, M.; Ayabakan, T. A review of path planning algorithms in maritime autonomous surface ships: Navigation safety perspective. Ocean. Eng. 2022, 251, 111010. [Google Scholar] [CrossRef]
- Wang, X.; Wei, J.; Zhou, X.; Xia, Z.; Gu, X. AEB-RRT*: An adaptive extension bidirectional RRT* algorithm. Auton. Robot. 2022, 46, 685–704. [Google Scholar]
- Kuffner, J.J.; LaValle, S.M. RRT-connect: An efficient approach to single-query path planning. In Proceedings of the Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No. 00CH37065), San Francisco, CA, USA, 24–28 April 2000; IEEE: Piscataway, NJ, USA, 2000; pp. 995–1001. [Google Scholar]
- Tahirovic, A.; Ferizbegovic, M. Rapidly-exploring random vines (RRV) for motion planning in configuration spaces with narrow passages. In Proceedings of the 2018 IEEE International Conference on Robotics and Automation (ICRA), Brisbane, QLD, Australia, 21–25 May 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 7055–7062. [Google Scholar]
- Hsu, D.; Jiang, T.; Reif, J.; Sun, Z. The bridge test for sampling narrow passages with probabilistic roadmap planners. In Proceedings of the 2003 IEEE International Conference on Robotics and Automation (cat. no. 03CH37422), Taipei, Taiwan, 14–19 September 2003; IEEE: Piscataway, NJ, USA, 2003; pp. 4420–4426. [Google Scholar]
- Wu, Z.; Meng, Z.; Zhao, W.; Wu, Z. Fast-RRT: A RRT-Based Optimal Path Finding Method. Appl. Sci. 2021, 11, 11777. [Google Scholar] [CrossRef]
- Cai, P.; Yue, X.; Zhang, H. ADD-RRV for motion planning in complex environments. Robotica 2022, 40, 136–153. [Google Scholar] [CrossRef]
- Li, B.; Chen, B. An adaptive rapidly-exploring random tree. IEEE/CAA J. Autom. Sin. 2021, 9, 283–294. [Google Scholar] [CrossRef]
- Chi, W.; Ding, Z.; Wang, J.; Chen, G.; Sun, L. A Generalized Voronoi Diagram-Based Efficient Heuristic Path Planning Method for RRTs in Mobile Robots. IEEE Trans. Ind. Electron. 2021, 69, 4926–4937. [Google Scholar] [CrossRef]
- Taheri, E.; Ferdowsi, M.H.; Danesh, M. Fuzzy greedy RRT path planning algorithm in a complex configuration space. Int. J. Control. Autom. Syst. 2018, 16, 3026–3035. [Google Scholar] [CrossRef]
- Karaman, S.; Frazzoli, E. Sampling-based algorithms for optimal motion planning. Int. J. Robot. Res. 2011, 30, 846–894. [Google Scholar] [CrossRef]
- Islam, F.; Nasir, J.; Malik, U.; Ayaz, Y.; Hasan, O. Rrt∗-smart: Rapid convergence implementation of rrt∗ towards optimal solution. In Proceedings of the 2012 IEEE International Conference on Mechatronics and Automation, Chengdu, China, 5–8 August 2012; IEEE: Piscataway, NJ, USA, 2012; pp. 1651–1656. [Google Scholar]
- Gammell, J.D.; Srinivasa, S.S.; Barfoot, T.D. Informed RRT*: Optimal sampling-based path planning focused via direct sampling of an admissible ellipsoidal heuristic. In Proceedings of the 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems, Chicago, IL, USA, 14–18 September 2014; IEEE: Piscataway, NJ, USA, 2014; pp. 2997–3004. [Google Scholar]
- Qureshi, A.H.; Ayaz, Y. Potential functions based sampling heuristic for optimal path planning. Auton. Robot. 2016, 40, 1079–1093. [Google Scholar] [CrossRef]
- Jeong, I.-B.; Lee, S.-J.; Kim, J.-H. Quick-RRT*: Triangular inequality-based implementation of RRT* with improved initial solution and convergence rate. Expert Syst. Appl. 2019, 123, 82–90. [Google Scholar] [CrossRef]
- Liao, B.; Wan, F.; Hua, Y.; Ma, R.; Zhu, S.; Qing, X. F-RRT*: An improved path planning algorithm with improved initial solution and convergence rate. Expert Syst. Appl. 2021, 184, 115457. [Google Scholar] [CrossRef]
- Qian, K.; Liu, Y.; Tian, L.; Bao, J. Robot path planning optimization method based on heuristic multi-directional rapidly-exploring tree. Comput. Electr. Eng. 2020, 85, 106688. [Google Scholar] [CrossRef]
- Chen, Y.; Fu, Y.; Zhang, B.; Fu, W.; Shen, C. Path planning of the fruit tree pruning manipulator based on improved RRT-Connect algorithm. Int. J. Agric. Biol. Eng. 2022, 15, 177–188. [Google Scholar] [CrossRef]
- Hao, K.; Zhao, J.; Wang, B.; Liu, Y.; Wang, C. The Application of an Adaptive Genetic Algorithm Based on Collision Detection in Path Planning of Mobile Robots. Comput. Intell. Neurosci. 2021, 2021, 5536574. [Google Scholar] [CrossRef]
- Morgan, F. The hexagonal honeycomb conjecture. Trans. Am. Math. Soc. 1999, 351, 1753–1763. [Google Scholar] [CrossRef]
Algorithm | Avg. Time (ms) | Min Time (ms) | Max Time (ms) | Std | Avg. Nodes | Success Rate |
---|---|---|---|---|---|---|
RRT | 9.08 | 5.61 | 14.48 | 2.04 | 263 | 1.00 |
RRV | 37.04 | 7.33 | 71.00 | 10.90 | 281 | 1.00 |
Fast-RRT | 13.15 | 6.58 | 32.45 | 3.94 | 355 | 1.00 |
CERRT | 15.86 | 9.28 | 24.63 | 2.81 | 286 | 1.00 |
Algorithm | Avg. Time (ms) | Min Time (ms) | Max Time (ms) | Std | Avg. Nodes | Success Rate |
---|---|---|---|---|---|---|
RRT | 108.29 | 83.66 | 153.99 | 13.97 | 2284 | 1.00 |
RRV | 603.24 | 438.86 | 1001.21 | 120.67 | 3042 | 1.00 |
Fast-RRT | 68.93 | 48.75 | 135.38 | 11.58 | 1368 | 1.00 |
CERRT | 39.73 | 34.59 | 112.35 | 8.66 | 610 | 1.00 |
Algorithm | Avg. Time (ms) | Min Time (ms) | Max Time (ms) | Std | Avg. Nodes | Success Rate |
---|---|---|---|---|---|---|
RRT | 455.13 | 7.52 | 5189.01 | 871.53 | 2931 | 0.97 |
RRV | 65.72 | 25.04 | 1287.83 | 127.12 | 259 | 1.00 |
Fast-RRT | 58.03 | 4.87 | 3779.04 | 487.47 | 869 | 1.00 |
CERRT | 16.70 | 11.66 | 74.69 | 6.42 | 255 | 1.00 |
Algorithm | Avg. Time (ms) | Min Time (ms) | Max Time (ms) | Std | Avg. Nodes | Success Rate |
---|---|---|---|---|---|---|
RRT | 2725.83 | 504.12 | 8782.20 | 1856.74 | 13902 | 0.90 |
RRV | 1418.43 | 31.42 | 6234.62 | 1160.86 | 2679 | 1.00 |
Fast-RRT | 1674.35 | 267.01 | 9574.50 | 1313.36 | 9798 | 0.92 |
CERRT | 26.97 | 13.36 | 35.28 | 3.53 | 474 | 1.00 |
Algorithm | Path Cost | POS Cost | BSOS Cost | Path Smoothness | POS Smoothness | BSOS Smoothness |
---|---|---|---|---|---|---|
RRT | 5346.20 | 4413.83 | 4076.84 | 78.24 | 12.20 | 11.16 |
RRV | 4838.35 | 4392.98 | 4056.15 | 33.77 | 12.50 | 11.31 |
Fast-RRT | 5426.26 | 4408.72 | 4062.23 | 65.32 | 11.78 | 11.24 |
CERRT | 6033.47 | 4397.60 | 4071.37 | 226.11 | 11.85 | 11.12 |
Algorithm | Path Cost | POS Cost | BSOS Cost | Path Smoothness | POS Smoothness | BSOS Smoothness |
---|---|---|---|---|---|---|
RRT | 1723.38 | 1386.87 | 1289.38 | 32.75 | 4.48 | 4.15 |
RRV | 1618.49 | 1383.94 | 1281.70 | 13.58 | 4.78 | 4.34 |
Fast-RRT | 1682.35 | 1375.54 | 1285.46 | 29.74 | 4.36 | 4.21 |
CERRT | 1619.61 | 1323.14 | 1283.38 | 55.53 | 4.08 | 4.05 |
Algorithm | Avg. Time (ms) | Std | Avg. Nodes | Path Cost | BSOS Cost |
---|---|---|---|---|---|
RRT | 278.31 | 139.61 | 3126 | 2499.48 | 2104.93 |
RRV | 2782.19 | 435.89 | 3149 | 2446.17 | 2036.01 |
Fast-RRT | 365.72 | 138.94 | 2674 | 2545.87 | 2124.81 |
CERRT | 55.23 | 4.68 | 907 | 1990.01 | 1706.98 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Hao, K.; Yang, Y.; Li, Z.; Liu, Y.; Zhao, X. CERRT: A Mobile Robot Path Planning Algorithm Based on RRT in Complex Environments. Appl. Sci. 2023, 13, 9666. https://doi.org/10.3390/app13179666
Hao K, Yang Y, Li Z, Liu Y, Zhao X. CERRT: A Mobile Robot Path Planning Algorithm Based on RRT in Complex Environments. Applied Sciences. 2023; 13(17):9666. https://doi.org/10.3390/app13179666
Chicago/Turabian StyleHao, Kun, Yang Yang, Zhisheng Li, Yonglei Liu, and Xiaofang Zhao. 2023. "CERRT: A Mobile Robot Path Planning Algorithm Based on RRT in Complex Environments" Applied Sciences 13, no. 17: 9666. https://doi.org/10.3390/app13179666
APA StyleHao, K., Yang, Y., Li, Z., Liu, Y., & Zhao, X. (2023). CERRT: A Mobile Robot Path Planning Algorithm Based on RRT in Complex Environments. Applied Sciences, 13(17), 9666. https://doi.org/10.3390/app13179666