Class StatePropagator
Defined in File StatePropagator.h
Class Documentation
-
class StatePropagator
Model the effect of controls on system states.
Public Functions
-
inline StatePropagator(SpaceInformation *si)
Constructor.
-
inline StatePropagator(const SpaceInformationPtr &si)
Constructor.
-
virtual ~StatePropagator() = default
-
virtual void propagate(const base::State *state, const Control *control, double duration, base::State *result) const = 0
Propagate from a state, given a control, for some specified amount of time (the amount of time can also be negative, if canPropagateBackward() returns true)
Note
This function is not used for integration internally. If integrating a system of differential equations is needed, this should be implemented inside the propagate() function.
Note
The pointer to the starting state and the result state may be the same.
- Parameters:
state – the state to start propagating from
control – the control to apply
duration – the duration for which the control is applied
result – the state the system is brought to
-
inline virtual bool canPropagateBackward() const
Some systems can only propagate forward in time (i.e., the duration argument for the propagate() function is always positive). If this is the case, this function should return false. Planners that need backward propagation (negative durations) will call this function to check. If backward propagation is possible, this function should return true (this is the default).
-
inline virtual double steer(const base::State*, const base::State*, Control*) const
Compute the control that can take the system from state from to state to. Store that control in result; the duration for which the control should be applied is returned; return < 0.0 if the computation was successful; return the control duration otherwise;.
Note
If a negative value is returned, the content of result may have been changed, but it does not represent a solution;
Protected Attributes
-
SpaceInformation *si_
The instance of space information this state propagator operates on.
-
inline StatePropagator(SpaceInformation *si)