plannerControlRRT
Description
The plannerControlRRT
object is a rapidly exploring random tree (RRT)
planner for solving kinematic and dynamic (kinodynamic) planning problems using controls. The
RRT algorithm is a tree-based motion planning routine that incrementally grows a search tree.
In kinematic planners, the tree grows by randomly sampling states in system configuration
space, and then attempts to propagate the nearest node toward that state. The state propagator
samples controls for reaching the state based on the kinematic model and control policies. As
the tree adds nodes, the sampled states span the search space and eventually connect the start
and goal states.
These are the control-based RRT algorithm steps:
Planner,
plannerControlRRT
, requests a state from the state space.Planner finds the nearest state in the search tree based on cost.
State propagator,
mobileRobotPropagator
, samples control commands and durations to propagate toward the target state.State propagator propagates toward the target state.
If the propagator returns a valid trajectory to the state, then add the state to the tree.
Optional: Attempt to direct trajectory toward final goal based on NumGoalExtension and GoalBias properties.
Continue searching until the search tree reaches the goal or satisfies other exit criteria.
The benefit of a kinodynamic planner like plannerControlRRT
is that it is
guaranteed to return a sequence of states, controls, and references which comprise a
kinematically or dynamically feasibly path. The drawback to a kinodynamic planner is that the
kinematic propagations cannot guarantee that new states are exactly equal to the target states
unless there exists and analytic representation for a sequence of controls that drive the
system between two configurations with zero residual error. This means that kinodynamic
planners are typically asymptotically complete and guarantee kinematic feasibility, but often
can not guarantee asymptotic optimality.
Creation
Syntax
Description
creates a kinodynamic RRT planner from a state propagator object and sets the
controlPlanner
= plannerControlRRT(propagator)StatePropagator
property.
specifies additional properties using name-value arguments. For example,
controlPlanner
= plannerControlRRT(propagator,Name=Value)plannerControlRRT(propagator,ContinueAfterGoalReached=1)
continues
to search for alternative paths after the tree first reaches the goal.
Properties
Object Functions
Examples
References
[1] S.M. Lavalle, J.J. Kuffner, "Randomized kinodynamic planning", International Journal of Robotics Research, vol. 20, no. 5, pp. 378-400, May 2001
[2] Kavraki, L. and S. LaValle. "Chapter 5 Motion Planning", 1st ed., B. Siciliano et O. Khatib, Ed. New York: Springer-Verlag Berlin Heidelberg, 2008, pp. 109-131.
Extended Capabilities
Version History
Introduced in R2021b