State propagator for control-based planning
nav.StatePropagator class is an interface for all state propagators used
with the kinodynamic path planners derived from
from this class if you are defining a propagator for your custom motion model or control
system. For a concrete implementation for mobile robots, see the
This class generates controls, propagates state, and estimates cost or distance between states. Controlled systems utilize two main equations for two steps:
[u(i),steps] = controlFcn(q(i-1),u(i-1),qTgt)generates the next control command from the previous state, control input, and target state.
Propagate the System
q(i) = q(i-1) + integrate(q,u(i),steps)propagates the state
q(i-1)using the generated command
u(i)for the specified number of steps. The propagator uses a fixed step size, specified by the ControlStepSize property.
method defines the integration and optionally, the control behavior, and also checks whether
the generated states are valid within the state space. To skip state validation, use the
When creating an instance of class, specify the StateSpace property, which defines the number of state variables, state bounds, and sampling behavior of the propagator. Also, specify the control limits on creation, which determines the value of the NumControlOutput property.
When you change properties, such as the state space, you may need to change the internal
behavior of the propagator. To do this, implement the changes in the
setup method and
setup(obj) before calling other methods again.
nav.StatePropagator class is a
creates a state propagator object for propagating a kinodynamic system.
propagatorObj = nav.StatePropagator(
StateSpace — State space for sampling during planning
object of subclass of
State space for sampling during planning, specified as an object of a subclass of
The state space is responsible for representing configuration space of a system. The class should include all state information related to the propagated system. Systems employing multi-layer cascade controllers can append persistent low-level control information directly to the state vector, whereas the state propagator directly manages top-level control commands.
ControlStepSize — Duration of each control command
0.1 (default) | positive scalar
Duration of each control command, specified as a positive scalar.
NumControlOutput — Number of variables in control command
Number of variables in the control command, specified as a positive integer.
Introduced in R2021b