KrisLibrary  1.0.0
Public Member Functions | Public Attributes | List of all members
KinodynamicSpace Class Reference

A class used for kinodynamic planning. Combines a CSpace defining the state space, as well as a ControlSpace. More...

#include <KinodynamicSpace.h>

Inheritance diagram for KinodynamicSpace:
DoubleIntegratorKinodynamicSpace IntegratedKinodynamicSpace KinematicCSpaceAdaptor StateCostKinodynamicSpace SpaceTimeIntegratedKinodynamicSpace

Public Member Functions

 KinodynamicSpace (const std::shared_ptr< CSpace > &xspace, const std::shared_ptr< ControlSpace > &uspace)
 
std::shared_ptr< ControlSpaceGetControlSpace () const
 
std::shared_ptr< CSpaceGetStateSpace () const
 
std::shared_ptr< CSetGetControlSet (const Config &x)
 
virtual EdgePlannerPtr PathChecker (const InterpolatorPtr &path)
 
virtual EdgePlannerPtr TrajectoryChecker (const ControlInput &u, const InterpolatorPtr &path)
 
virtual EdgePlannerPtr TrajectoryChecker (const KinodynamicMilestonePath &path)
 Return an edge planner that checks the path for feasibility.
 
bool IsValidControl (const State &x, const ControlInput &u)
 
InterpolatorPtr Simulate (const State &x0, const ControlInput &u)
 
void Successor (const State &x0, const ControlInput &u, State &x1)
 Executes the simulation function x1 = f(x0,u)
 
bool NextState (const State &x0, const ControlInput &u, State &x1)
 
bool PreviousState (const State &x1, const ControlInput &u, State &x0)
 
virtual void Properties (PropertyMap &props) const
 Marks this as being a dynamic problem.
 

Public Attributes

std::shared_ptr< CSpacestateSpace
 
std::shared_ptr< ControlSpacecontrolSpace
 

Detailed Description

A class used for kinodynamic planning. Combines a CSpace defining the state space, as well as a ControlSpace.

Kinodynamic planning is used for systems with nonholonomic constraints as well as other types of state-dependent constraints.

A ControlSpace gives a simulation function x' = f(x,u) where x is the input state, u is the control input, and x' is the next state. The control space

For differential constraints, please use IntegratedKinodynamicSpace.

Member Function Documentation

bool KinodynamicSpace::NextState ( const State x0,
const ControlInput u,
State x1 
)

If the trajectory from x0 controlled by u is feasible, sets x1 to the end state and returns true. If infeasible, returns false. (implementation calls Simulate() and TrajectoryChecker()->IsVisible())

Referenced by Successor().

bool KinodynamicSpace::PreviousState ( const State x1,
const ControlInput u,
State x0 
)

If the trajectory from x1 reverse-controlled by u is feasible, sets x0 to the initial state and returns true. If infeasible, returns false. (implementation calls ReverseSimulate() and TrajectoryChecker()->IsVisible())

Referenced by Successor().

InterpolatorPtr KinodynamicSpace::Simulate ( const State x0,
const ControlInput u 
)
inline

Executes the simulation function f(x0,u) and records its trace in the result. The trace is an interpolator between x0 and the successor state

Referenced by KinodynamicMilestonePath::MakeEdges().

EdgePlannerPtr KinodynamicSpace::TrajectoryChecker ( const ControlInput u,
const InterpolatorPtr &  path 
)
virtual

Return an edge planner that checks the simulation trace p for feasibility Typically, just return the state space's PathChecker

Reimplemented in IntegratedKinodynamicSpace, StateCostKinodynamicSpace, and DoubleIntegratorKinodynamicSpace.

Referenced by KinodynamicMilestonePath::MakeEdges(), KinodynamicMilestonePath::SimulateFromControls(), and StateCostKinodynamicSpace::TrajectoryChecker().


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