Skip to main content
Log in

Fillet-based \(\text {RRT}^{*}\): A Rapid Convergence Implementation of RRT* for Curvature Constrained Vehicles

  • Regular paper
  • Published:
Journal of Intelligent & Robotic Systems Aims and scope Submit manuscript

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).

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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

  1. 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

  2. Beard, R., McLain, T.: Small Unmanned Aircraft: Theory and Practice. Princeton University Press, USA (2012)

    Book  Google Scholar 

  3. 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

  4. 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

  5. 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

    Article  MathSciNet  MATH  Google Scholar 

  6. 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

    Article  MATH  Google Scholar 

  7. Kobilarov, M.: Cross-Entropy Motion Planning. Int. J. Robot. Res. 31(7), 855–871 (2012). https://doi.org/10.1177/0278364912444543

    Article  Google Scholar 

  8. 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)

  9. 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

    Article  Google Scholar 

  10. 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

  11. LaValle, S.M.: Planning Algorithms. Cambridge University Press, Cambridge (2006). http://planning.cs.uiuc.edu/

  12. 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

  13. 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

    Article  Google Scholar 

  14. 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)

  15. 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

    Article  Google Scholar 

  16. 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

  17. 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

  18. 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

  19. 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

    Article  Google Scholar 

  20. 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

  21. 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)

  22. Yang, K., Sukkarieh, S.: An Analytical Continuous-Curvature Path-Smoothing Algorithm. IEEE Trans. Robot. 26(3), 561–568 (2010)

    Article  Google Scholar 

  23. 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)

    Article  Google Scholar 

Download references

Funding

The authors declare that no funds, grants, or other support were received during the preparation of this manuscript.

Author information

Authors and Affiliations

Authors

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

Correspondence to James Swedeen.

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.

figure p

\(X_{fillet} \leftarrow ReverseFillet\left( x_0,x_1,x_2,x_3\right) \).

Fig. 22
figure 22

An illustration of the ReverseFillet procedure

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.

Fig. 23
figure 23

The resulting paths from running FB-RRT* in an environment where the shortest path turns sharply down a corridor. Solutions from planning with arc-fillet paths are shown in blue. Solutions from planning with reverse-arc-fillet paths are shown in green when \(d=1\), forward, and red when \(d=-1\), reverse

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.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10846-023-01846-x

Keywords

Navigation