Abstract
Rapidly exploring random trees (RRTs) have proven effective in quickly finding feasible solutions to complex motion planning problems. RRT* is an extension of the RRT algorithm that provides probabilistic asymptotic optimality guarantees when using straight-line motion primitives. This work provides extensions to RRT and RRT* that employ fillets as motion primitives, allowing path curvature constraints to be considered when planning. Two fillets are developed, an arc-based fillet that uses circular arcs to generate paths that respect maximum curvature constraints and a spline-based fillet that uses Bézier curves to additionally respect curvature continuity requirements. Planning with these fillets is shown to far exceed the performance of RRT* using Dubin’s path motion primitives, approaching the performance of planning with straight-line path primitives. Path sampling heuristics are also introduced to accelerate convergence for nonholonomic motion planning. Comparisons to established RRT* approaches are made using the Open Motion Planning Library (OMPL).
Similar content being viewed by others
Code Availability
Simulation code can be found in our open-source repository https://gitlab.com/utahstate/robotics/fillet-rrt-star.
References
Akgun, B. Stilman, M.: Sampling Heuristics for Optimal Motion Planning in High Dimensions. In: 2011 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 2640–2645. (2011). https://doi.org/10.1109/IROS.2011.6095077
Beard, R., McLain, T.: Small Unmanned Aircraft: Theory and Practice. Princeton University Press, USA (2012)
Cui, P., Yan, W., Guo, X.: Path Planning for Robot with Pose Constraints Using Dubins-RRT. In: 2018 3rd International Conference on Advanced Robotics and Mechatronics (ICARM), pp. 560–565. (2018). https://doi.org/10.1109/ICARM.2018.8610812
Gammell, J., Srinivasa, S., Barfoot, T.: Informed rrt*: Optimal Sampling-Based Path Planning Focused via Direct Sampling of an Admissible Ellipsoidal Heuristic. IEEE/RSJ Int. Conf. Intell. Robot. Syst. (2014). https://doi.org/10.1109/IROS.2014.6942976
Gravesen, J.: Adaptive subdivision and the length and energy of bézier curves. Comput. Geom. 8(1), 13–31 (1997). https://doi.org/10.1016/0925-7721(95)00054-2
Karaman, S., Frazzoli, E.: Sampling-Based Algorithms for Optimal Motion Planning. Int. J. Robot. Res. 30(7), 846–894 (2011). https://doi.org/10.1177/0278364911406761
Kobilarov, M.: Cross-Entropy Motion Planning. Int. J. Robot. Res. 31(7), 855–871 (2012). https://doi.org/10.1177/0278364912444543
Kuffner, J.J., LaValle, S.M.: RRT-connect: An Efficient Approach To Single-Query Path Planning. In: Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065), vol. 2, pp. 995–1001. (2000)
Kuwata, Y., Teo, J., Fiore, G., Karaman, S., Frazzoli, E., How, J.P.: Real-Time Motion Planning With Applications to Autonomous Urban Driving. IEEE Trans. Control. Syst. Technol. 17(5), 1105–1118 (2009). https://doi.org/10.1109/TCST.2008.2012116
Lan, X., Di Cairano, S.: Continuous Curvature Path Planning for Semi-Autonomous Vehicle Maneuvers Using RRT. In: 2015 European Control Conference (ECC), pp. 2360–2365. (2015). https://doi.org/10.1109/ECC.2015.7330891
LaValle, S.M.: Planning Algorithms. Cambridge University Press, Cambridge (2006). http://planning.cs.uiuc.edu/
Li, Y., Littlefield, Z., Bekris, K.E.: Asymptotically Optimal Sampling-Based Kinodynamic Planning. Int. J. Robot. Res. 35(5), 528–564 (2016). https://doi.org/10.1177/0278364915614386
Masehian, E., Kakahaji, H.: NRR: a Nonholonomic Random Replanner for Navigation of Car-Like Robots in Unknown Environments. Robotica 32(7), 1101–1123 (2014). https://doi.org/10.1017/S0263574713001276
Moll, M., Sucan, I.A., Kavraki, L.E.: Benchmarking Motion Planning Algorithms: An Extensible Infrastructure for Analysis and Visualization. IEEE Robot. Autom. Mag. 22(3), 96–102 (2015)
Moon, C., Ching, W.: Kinodynamic Planner Dual-Tree RRT (DT-RRT) for Two-Wheeled Mobile Robots Using the Rapidly Exploring Random Tree. IEEE Trans. Ind. Electron. 62, 1080–1090 (2015). https://doi.org/10.1109/TIE.2014.2345351
Nasir, J., Islam, F., Malik, U., Ayaz, Y., Hasan, O., Khan, M., Muhammad, M.: Rrt*-smart: A Rapid Convergence Implementation Of RRT*. Int. J. Adv. Robot. Syst. 10, (2013). https://doi.org/10.5772/56718
Noreen, I., Khan, A., Habib, Z.: Optimal Path Planning Using RRT* Based Approaches: A Survey and Future Directions. Int. J. Adv. Comput. Sci. Appl. 7(11), (2016). https://doi.org/10.14569/IJACSA.2016.071114
Qureshi, A.H., Ayaz, Y.: Intelligent Bidirectional Rapidly-Exploring Random Trees for Optimal Motion Planning in Complex Cluttered Environments. Robot. Auton. Syst. 68, 1–11 (2015). https://doi.org/10.1016/j.robot.2015.02.007. https://www.sciencedirect.com/science/article/pii/S0921889015000317
Tahir, Z., Qureshi, A.H., Ayaz, Y., Nawaz, R.: Potentially Guided Bidirectionalized RRT* for Fast Optimal Path Planning in Cluttered Environments. Robot. Auton. Syst. 108, 13–27 (2018). https://doi.org/10.1016/j.robot.2018.06.013
Venables, W.N., Ripley, B.D.: Modern Applied Statistics with S, 4th edn. Springer, New York (2002). https://www.stats.ox.ac.uk/pub/MASS4/. ISBN 0-387-95457-0
Yang, K., Gan, S.K., Huh, J., Joo, S.: Optimal Spline-Based RRT Path Planning Using Probabilistic Map. In: 2014 14th International Conference on Control, Automation and Systems (ICCAS 2014), pp. 643–646. (2014b)
Yang, K., Sukkarieh, S.: An Analytical Continuous-Curvature Path-Smoothing Algorithm. IEEE Trans. Robot. 26(3), 561–568 (2010)
Yang, K., Moon, S., Yoo, S., Kang, J., Doh, N.L., Kim, H.B., Joo, S.: Spline-Based RRT Path Planner for Non-Holonomic Robots. J. Intell. Robot. Syst. 73(1–4), 763–782 (2014)
Funding
The authors declare that no funds, grants, or other support were received during the preparation of this manuscript.
Author information
Authors and Affiliations
Contributions
All authors contributed to the work’s conception and design. Software development, material preparation, and data collection were performed by James Swedeen. Data analyses were performed by James Swedeen and Dr. Greg Droge. James Swedeen is the primary author with major editorial and conceptual contributions made by Dr. Greg Droge and Dr. Randall Christensen at various stages of the writing process. All authors read and approved the final manuscript.
Corresponding author
Ethics declarations
Competing Interests
The authors have no relevant financial or non-financial interests to disclose.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendix: Reverse Fillet
Appendix: Reverse Fillet
This section describes a novel reverse fillet formulation that enables the ability to plan paths that go forward and backward. The reverse fillet formulation uses a generic one-directional fillet internally that can be replaced by any fillet primitive desired. This section ends with an example planning problem that necessitates reverse and forward motion to follow the shortest path possible.
When using the reverse fillet motion primitive the direction state, d, is added to the state space. \(d=1\) when the vehicle is moving forward and \(d=-1\) when the vehicle is moving backward. It can be determined if a fillet should keep the direction of travel the same or change it by comparing the d values of the nodes that the fillet connect. When using FB-RRT* with the reverse fillet formulation, d is randomly sampled from a uniform distribution when the state space is sampled.
Before the ReverseFillet procedure can be given a few pieces of notation must be defined. We use the notion \(x_{0,d}\) to denote the d value of node \(x_0\) and \(x_{0,xy}\) to denote the position vector of node \(x_0\). The function \(R\left( \cdot \right) \) consumes an angle and produces a two-by-two right handed rotation matrix.
Algorithm 16 gives the procedure for generating a reverse fillet and Fig. 22 illustrates the process. If the direction of travel for the two points being connected, \(x_2\) and \(x_3\), are the same then a normal fillet can be made to connect them, see lines 2 and 3. If the direction of travel changes, more logic is needed to make use of a unidirectional fillet primitive to make a fillet that changes direction. The process, shown on lines 6 through 17, involves flipping \(x_3\) over the plane that intersects \(x_2\) and is perpendicular to \(\overline{x_1 x_2}\) to produce a new point, \(x_{3f}\). An unidirectional fillet can be designed using \(x_{3f}\). The fillet to execute is obtained by flipping the portion of the unidirectional fillet from \(x_2\) to \(x_{3f}\) back so that the path ends at \(x_3\). The portion from \(x_2\) to \(x_{3}\) will then be executed in the opposite direction of that from \(x_1\) to \(x_2\).
First \(x_0\), \(x_1\), and \(x_3\) are transformed into a coordinate frame with \(x_2\) at the origin and \(x_1\) on the x-axis, see lines 6 through 11 and Fig. 22b. This frame is defined to make flipping \(x_3\) easier. The prescript 2 is used to denote a point in this frame, i.e., \(_2x_0\) is the point \(x_{0,xy}\) in the new frame. On line 12, \(_2x_3\) is flipped across the y-axis, see Fig. 22c. The transformed set of points \(_2x_{0}\), \(_2x_{1}\), \(_2x_2\), and \(_{2}x_{3f}\) form a chain of nodes that do not change direction. Line 13 generates a unidirectional fillet called \(X_{unidir}\) with these modified points, see Fig. 22d. Line 15 fills \(X_{fillet}\) with a fillet that starts moving in the same direction at \(x_2\) while the x component of \(X_{unidir}\) is negative. When the x component of \(X_{unidir}\) hits the y-axis the fillet switches to the direction of travel of \(x_3\) and flips the fillet across the y-axis. The result is a fillet that comes to a point on the y-axis and switches direction at that point, see Fig. 22e. Line 17 transforms fillet back to the original coordinate frame, as shown in Fig. 22f.
One scenario where the ability to plan forward and reverse fillets is beneficial is shown in Fig. 23. Figure 23 uses the same planning configuration as Fig. 18 from Section 6.4. The only difference between Figs. 23 and 18 is that Fig. 23 shows the result of path planning using the ReverseFillet procedure in green and red instead of the solution found with straight-line primitives. The solution found from planning without the ReverseFillet procedure is shown in blue. Both planners are using arc-fillets with the same maximum curvature constraint, but the red path makes use of the ReverseFillet procedure.
As is described in Section 6.4, a path that goes through the narrow hallway cannot satisfy the curvature constraints of the problem without hitting walls when solely forward motion is considered. Figure 23 shows that it is possible using the ReverseFillet procedure. Following the green and red solution, generated with forward and reverse motion, the path turns partially into the narrow hallway. When it nears the wall, the path stops and continues the turn in reverse. The path follows the hallway in reverse until it gets to \(X_t\). Without the functionality added with the ReverseFillet procedure, the blue solution is unable to follow the hallway and instead must plan a significantly longer path that goes around the obstacles. Note that the inclusion of the reverse motion causes an increase in convergence time due to the added dimension in the sampling space. Future work could include methods to reduce this complexity and also to penalize long stretches of reverse motion.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Swedeen, J., Droge, G. & Christensen, R. Fillet-based \(\text {RRT}^{*}\): A Rapid Convergence Implementation of RRT* for Curvature Constrained Vehicles. J Intell Robot Syst 108, 68 (2023). https://doi.org/10.1007/s10846-023-01846-x
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s10846-023-01846-x