State propagation with OpenDE. Only forward propagation is possible. More...
#include <OpenDEStatePropagator.h>
Public Member Functions | |
OpenDEStatePropagator (const SpaceInformationPtr &si) | |
Construct a representation of OpenDE state propagator. If si->getStateSpace() does not cast to an OpenDEStateSpace, an exception is thrown. | |
const OpenDEEnvironmentPtr & | getEnvironment (void) const |
Get the OpenDE environment this state propagator operates on. | |
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). | |
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) | |
![]() | |
StatePropagator (SpaceInformation *si) | |
Constructor. | |
StatePropagator (const SpaceInformationPtr &si) | |
Constructor. | |
bool | steer (const base::State *from, const base::State *to, Control *result, double &duration) 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 stored in duration; return true if the computation was successful; return false otherwise;. |
Protected Attributes | |
OpenDEEnvironmentPtr | env_ |
The OpenDE environment this state propagator operates on. | |
![]() | |
SpaceInformation * | si_ |
The instance of space information this state propagator operates on. |
State propagation with OpenDE. Only forward propagation is possible.
At every propagation step, controls are applied using OpenDEEnvironment::applyControl(), contacts are computed by calling dSpaceCollide() on the spaces in OpenDEEnvironment::collisionSpaces_ and then dWorldQuickStep() is called. If the state argument of propagate() does not have its OpenDEStateSpace::StateType::collision field set, it is set based on the information returned by contact computation. Certain collisions (contacts) are allowed, as indicated by OpenDEEnvironment::isValidCollision().
Definition at line 62 of file OpenDEStatePropagator.h.
|
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.
Definition at line 100 of file OpenDEStatePropagator.cpp.