nav.StatePropagator Class
Namespace: nav
Description
The nav.StatePropagator
class is an interface for all state propagators used
with the kinodynamic path planners derived from nav.StateSpace
. Derive
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 mobileRobotPropagator
object.
This class generates controls, propagates state, and estimates cost or distance between states. Controlled systems utilize two main equations for two steps:
Initial Control
[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 stateq(i-1)
using the generated commandu(i)
for the specified number of steps. The propagator uses a fixed step size, specified by the ControlStepSize property.
The propagateWhileValid
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
propagate
method.
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
call setup(obj)
before calling other methods again.
The nav.StatePropagator
class is a handle
class.
Creation
Description
creates a state propagator object for propagating a kinodynamic system.propagatorObj
= nav.StatePropagator(stateSpace
,stepSize
,numControlOutput
)
Properties
Methods
Version History
Introduced in R2021b