All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator
ompl::control::ControlManifold Class Reference

A manifold representing the space of applicable controls. More...

#include <ControlManifold.h>

Inheritance diagram for ompl::control::ControlManifold:

List of all members.

Public Member Functions

 ControlManifold (const base::StateManifoldPtr &stateManifold)
 Construct a control manifold, given the state manifold.
template<class T >
T * as (void)
 Cast this instance to a desired type.
template<class T >
const T * as (void) const
 Cast this instance to a desired type.
const std::string & getName (void) const
 Get the name of the manifold.
void setName (const std::string &name)
 Set the name of the manifold.
const base::StateManifoldPtrgetStateManifold (void) const
 Return the state manifold this control manifold depends on.
virtual unsigned int getDimension (void) const =0
 Get the dimension of this manifold.
virtual ControlallocControl (void) const =0
 Allocate memory for a control.
virtual void freeControl (Control *control) const =0
 Free the memory of a control.
virtual void copyControl (Control *destination, const Control *source) const =0
 Copy a control to another.
virtual bool equalControls (const Control *control1, const Control *control2) const =0
 Check if two controls are the same.
virtual void nullControl (Control *control) const =0
 Make the control have no effect if it were to be applied to a state for any amount of time.
virtual ControlSamplerPtr allocControlSampler (void) const =0
 Allocate a control sampler.
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 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).
void setPropagationFunction (const StatePropagationFn &fn)
 Set the function that performs state propagation.
virtual double * getValueAddressAtIndex (Control *control, const unsigned int index) const
 Many controls contain a number of double values. This function provides a means to get the memory address of a double value from a control control located at position index. The first double value is returned for index = 0. If index is too large (does not point to any double values in the control), the return value is NULL.
virtual void printControl (const Control *control, std::ostream &out) const
 Print a control to a stream.
virtual void printSettings (std::ostream &out) const
 Print the settings for this manifold to a stream.
virtual void setup (void)
 Perform final setup steps. This function is automatically called by the SpaceInformation.

Protected Attributes

base::StateManifoldPtr stateManifold_
 The state manifold controls can be applied to.
StatePropagationFn statePropagation_
 Function that can perform state propagation.

Detailed Description

A manifold representing the space of applicable controls.

Definition at line 67 of file ControlManifold.h.


Member Function Documentation

template<class T >
const T* ompl::control::ControlManifold::as ( void  ) const [inline]

Cast this instance to a desired type.

Make sure the type we are casting to is indeed a control manifold

Definition at line 88 of file ControlManifold.h.

template<class T >
T* ompl::control::ControlManifold::as ( void  ) [inline]

Cast this instance to a desired type.

Make sure the type we are casting to is indeed a control manifold

Definition at line 78 of file ControlManifold.h.

void ompl::control::ControlManifold::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)

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.

Reimplemented in ompl::control::CompoundControlManifold, and ompl::control::ODEControlManifold.

Definition at line 83 of file ControlManifold.cpp.


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