State propagation with ODE. Only forward propagation is possible. More...
#include <ODEStatePropagator.h>
Public Member Functions | |
virtual bool | canPropagateBackward (void) 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). | |
const ODEEnvironmentPtr & | getEnvironment (void) const |
Get the ODE environment this state propagator operates on. | |
ODEStatePropagator (const SpaceInformationPtr &si) | |
Construct a representation of ODE state propagator. If si->getStateSpace() does not cast to an ODEStateSpace, an exception is thrown. | |
virtual void | propagate (const base::State *state, const Control *control, const double duration, base::State *result) const |
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). | |
virtual | ~ODEStatePropagator (void) |
Protected Attributes | |
ODEEnvironmentPtr | env_ |
The ODE environment this state propagator operates on. |
State propagation with ODE. Only forward propagation is possible.
At every propagation step, controls are applied using ODEEnvironment::applyControl(), contacts are computed by calling dSpaceCollide() on the spaces in ODEEnvironment::collisionSpaces_ and then dWorldQuickStep() is called. If the state argument of propagate() does not have its ODEStateSpace::StateType::collision field set, it is set based on the information returned by contact computation. Certain collisions (contacts) are allowed, as indicated by ODEEnvironment::isValidCollision().
Definition at line 62 of file ODEStatePropagator.h.
ompl::control::ODEStatePropagator::ODEStatePropagator | ( | const SpaceInformationPtr & | si | ) |
Construct a representation of ODE state propagator. If si->getStateSpace() does not cast to an ODEStateSpace, an exception is thrown.
virtual ompl::control::ODEStatePropagator::~ODEStatePropagator | ( | void | ) | [inline, virtual] |
Definition at line 71 of file ODEStatePropagator.h.
virtual bool ompl::control::ODEStatePropagator::canPropagateBackward | ( | void | ) | const [virtual] |
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).
Reimplemented from ompl::control::StatePropagator.
const ODEEnvironmentPtr& ompl::control::ODEStatePropagator::getEnvironment | ( | void | ) | const [inline] |
Get the ODE environment this state propagator operates on.
Definition at line 76 of file ODEStatePropagator.h.
virtual void ompl::control::ODEStatePropagator::propagate | ( | const base::State * | state, | |
const Control * | control, | |||
const double | duration, | |||
base::State * | result | |||
) | const [virtual] |
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).
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 |
Implements ompl::control::StatePropagator.
The ODE environment this state propagator operates on.
Definition at line 88 of file ODEStatePropagator.h.