Template Class ODEErrorSolver

Inheritance Relationships

Base Type

Class Documentation

template<class Solver = odeint::runge_kutta_cash_karp54<ODESolver::StateType>>
class ODEErrorSolver : public ompl::control::ODESolver

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.

Public Functions

inline 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.

inline ODESolver::StateType getError()

Retrieves the error values from the most recent integration.

Protected Functions

inline virtual void solve(StateType &state, const Control *control, double duration) const override

Solve the ODE using boost::numeric::odeint. Save the resulting error values into error_.

Protected Attributes

mutable ODESolver::StateType error_

The error values calculated during numerical integration.