Overview
The goal of the project was to develop a 3D planning algorithm that avoids static obstacles while meeting the minimum turning radius and boundary conditions. I achieved this by integrating Rapidly-Exploring Random Trees (RRT*) with Dubins paths. RRT* serves as the planning framework, while Dubins paths handle trajectory expansion between points, ensuring smooth and minimal-length paths under curvature constraints. The closed-form solution of Dubins paths reduces computation time during tree expansion.
The algorithm creates trajectories, checks for collisions with static obstacles, and adds valid paths to the planning tree. It has been tested with different configurations, obstacle placements, and curvature constraints. In 3D, the algorithm combines planar maneuvers to create feasible trajectories.
RRT* provides asymptotic optimality, but simulation time limits lead to sub-optimal solutions. Challenges include slower 3D convergence due to larger state-space and difficulties in finding feasible paths for some configurations. Future improvements focus on faster convergence, handling dynamic environments/constraints.
Pseudo-code for RRT*
- Initialization
- Initialize the tree
Twith the initial stateXinit
- Initialize the tree
- Main Loop
Fork = 1toK(number of iterations)- Generate a random state
XrandusingRANDOM_STATE() - Find the nearest node
XnearinTusingNEAREST_NEIGHBOUR(Xrand, T) -
Steer from
XneartowardsXrandto create a new stateXnewusingSTEER(Xrand, Xnear) - If
Xnewis collision-free- Identify nearby nodes
Lnearwithin a radiusRusingNEAR_NODES(T, Xnew, V) - Choose the best parent for
XnewfromLnearusingCHOOSE_PARENT(T, Xnew, Lnear) - Add
Xnewto the treeTusingINSERT_NODE(Xnew) - Rewire the tree within radius
Rto update parent connections usingREWIRE(T, Xnew, Lnear)
- Identify nearby nodes
- Generate a random state
- Output
- Return the tree
T
- Return the tree
Pseudo-code for 3D Dubins Path Planning
- Input Definitions
- Define the initial point
(xi, yi, zi, θi, φi)and the final point(xf, yf, zf, θf, φf)
- Define the initial point
- Coordinate Transformation
- Translate and rotate the coordinate system to align the local frame with the initial point
- Define the local frame with
xt-axis aligned to the velocity vector at the initial point
- Trajectory Planning
- T-plane Maneuver
- Restrict motion to the horizontal plane
(xt, yt) - Compute the switching point where the trajectory intersects the P-plane tangentially
- Ensure that the flight path angle
φremains zero throughout this maneuver
- Restrict motion to the horizontal plane
- P-plane Maneuver
- Define a new local coordinate frame at the switching point
- Reduce the problem to a 2D Dubins path in the P-plane
- Divide the path into CSC segments
- Segment 1: An arc from the switching point to the start of the straight-line segment
- Segment 2: A straight-line segment
- Segment 3: An arc from the straight-line segment to the final point
- T-plane Maneuver
- Path Generation
- Compute the length of each segment
- Ensure curvature constraints are satisfied
- Output
- Combine the T-plane and P-plane paths to generate the final 3D Dubins path
- Return the 3D path

Simulation Results
References and Acknowledgment
-
Babaei AR and Mortazavi M. “Three-dimensional curvature-constrained trajectory planning based on in-flight waypoints.” Journal of Aircraft, vol. 47, no. 4, 2010, pp. 1391–1398.
-
Dubins Lester E. “On curves of minimal length with a constraint on average curvature, and with prescribed initial and terminal positions and tangents.” American Journal of Mathematics, vol. 79, no. 3, 1957, pp. 497–516.
-
Islam Fahad et al. “RRT-Smart: Rapid convergence implementation of rrt towards optimal solution.” 2012 IEEE International Conference on Mechatronics and Automation, IEEE, 2012, pp. 1651–1656.
-
Latombe Jean-Claude. Robot Motion Planning. Norwell, MA, USA: Kluwer Academic Publishers, 1991. ISBN: 079239206X.
-
LaValle Steven M and Kuffner Jr James J. “Randomized kinodynamic planning.” The International Journal of Robotics Research, vol. 20, no. 5, 2001, pp. 378–400.
-
Shkel Andrei M and Lumelsky Vladimir. “Classification of the Dubins set.” Robotics and Autonomous Systems, vol. 34, no. 4, 2001, pp. 179–202.
-
Karaman Sertac and Frazzoli Emilio. “Incremental sampling-based algorithms for optimal motion planning.” arXiv preprint arXiv:1005.0416, 2010.