All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
ompl::control::ODEErrorSolver< Solver > Class Template Reference

Solver for ordinary differential equations of the type q' = f(q, u), where q is the current state of the system and u is a control applied to the system. StateType defines the container object describing the state of the system. Solver is the numerical integration method used to solve the equations. The default is a fifth order Runge-Kutta Cash-Karp method with a fourth order error bound. This class wraps around the error stepper concept from boost::numeric::odeint. More...

#include <ODESolver.h>

Inheritance diagram for ompl::control::ODEErrorSolver< Solver >:

Public Member Functions

 ODEErrorSolver (const SpaceInformationPtr &si, const ODESolver::ODE &ode, double intStep=1e-2)
 Parameterized constructor. Takes a reference to the SpaceInformation, an ODE to solve, and the integration step size - default is 0.01.
ODESolver::StateType getError (void)
 Retrieves the error values from the most recent integration.
- Public Member Functions inherited from ompl::control::ODESolver
 ODESolver (const SpaceInformationPtr &si, const ODE &ode, double intStep)
 Parameterized constructor. Takes a reference to SpaceInformation, an ODE to solve, and the integration step size.
virtual ~ODESolver (void)
 Destructor.
void setODE (const ODE &ode)
 Set the ODE to solve.
double getIntegrationStepSize (void) const
 Return the size of a single numerical integration step.
void setIntegrationStepSize (double intStep)
 Set the size of a single numerical integration step.
StatePropagatorPtr getStatePropagator (const PostPropagationEvent &postEvent=NULL) const
 Retrieve a StatePropagator object that solves the system of ordinary differential equations defined by this ODESolver. An optional PostPropagationEvent can also be specified as a callback after numerical integration is finished for further operations on the resulting state.

Protected Member Functions

virtual void solve (StateType &state, const Control *control, const double duration) const
 Solve the ODE using boost::numeric::odeint. Save the resulting error values into error_.

Protected Attributes

ODESolver::StateType error_
 The error values calculated during numerical integration.
- Protected Attributes inherited from ompl::control::ODESolver
const SpaceInformationPtr si_
 The SpaceInformation that this ODESolver operates in.
ODE ode_
 Definition of the ODE to find solutions for.
double intStep_
 The size of the numerical integration step. Should be small to minimize error.

Additional Inherited Members

- Public Types inherited from ompl::control::ODESolver
typedef std::vector< double > StateType
 Portable data type for the state values.
typedef boost::function< void(const
StateType &, const Control
*, StateType &)> 
ODE
 Callback function that defines the ODE. Accepts the current state, input control, and output state.
typedef boost::function< void(const
Control *, base::State *)> 
PostPropagationEvent
 Callback function to perform an event at the end of numerical integration. This functionality is optional.

Detailed Description

template<class Solver = boost::numeric::omplext_odeint::runge_kutta_cash_karp54<ODESolver::StateType>>
class ompl::control::ODEErrorSolver< Solver >

Solver for ordinary differential equations of the type q' = f(q, u), where q is the current state of the system and u is a control applied to the system. StateType defines the container object describing the state of the system. Solver is the numerical integration method used to solve the equations. The default is a fifth order Runge-Kutta Cash-Karp method with a fourth order error bound. This class wraps around the error stepper concept from boost::numeric::odeint.

Definition at line 209 of file ODESolver.h.


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