ompl::control::OpenDEStatePropagator Class Reference

State propagation with OpenDE. Only forward propagation is possible. More...

#include <ompl/extensions/ode/OpenDEStatePropagator.h>

Inheritance diagram for ompl::control::OpenDEStatePropagator:

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 OpenDEEnvironmentPtrgetEnvironment () const
 Get the OpenDE environment this state propagator operates on.
 
bool canPropagateBackward () const override
 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).
 
void propagate (const base::State *state, const Control *control, double duration, base::State *result) const override
 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) More...
 
- Public Member Functions inherited from ompl::control::StatePropagator
 StatePropagator (SpaceInformation *si)
 Constructor.
 
 StatePropagator (const SpaceInformationPtr &si)
 Constructor.
 
virtual bool steer (const base::State *, const base::State *, Control *, double &) 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;. More...
 
virtual bool canSteer () const
 Return true if the steer() function has been implemented.
 

Protected Attributes

OpenDEEnvironmentPtr env_
 The OpenDE environment this state propagator operates on.
 
- Protected Attributes inherited from ompl::control::StatePropagator
SpaceInformationsi_
 The instance of space information this state propagator operates on.
 

Detailed Description

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 124 of file OpenDEStatePropagator.h.

Member Function Documentation

◆ propagate()

void ompl::control::OpenDEStatePropagator::propagate ( const base::State state,
const Control control,
double  duration,
base::State result 
) const
overridevirtual

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)

Parameters
statethe state to start propagating from
controlthe control to apply
durationthe duration for which the control is applied
resultthe state the system is brought to
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.
The pointer to the starting state and the result state may be the same.

Implements ompl::control::StatePropagator.

Definition at line 101 of file OpenDEStatePropagator.cpp.


The documentation for this class was generated from the following files: