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

A class that produces a KinodynamicCSpace from a dynamics function subclassed from IntegratedControlSpace. Collision checking is performed at the integration resolution given in the dynamics function. More...

#include <KinodynamicSpace.h>

Inheritance diagram for IntegratedKinodynamicSpace:
KinodynamicSpace SpaceTimeIntegratedKinodynamicSpace

Public Member Functions

 IntegratedKinodynamicSpace (const std::shared_ptr< CSpace > &xspace, const std::shared_ptr< IntegratedControlSpace > &controlSpace)
 
virtual EdgePlannerPtr TrajectoryChecker (const ControlInput &u, const InterpolatorPtr &path)
 
- Public Member Functions inherited from KinodynamicSpace
 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 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< IntegratedControlSpacecontrolSpace
 
- Public Attributes inherited from KinodynamicSpace
std::shared_ptr< CSpacestateSpace
 
std::shared_ptr< ControlSpacecontrolSpace
 

Detailed Description

A class that produces a KinodynamicCSpace from a dynamics function subclassed from IntegratedControlSpace. Collision checking is performed at the integration resolution given in the dynamics function.

A differential constraint is expressed as x' = g(x,u), where x is a state, x' is its time derivative, and u is the control input. x is still subject to the standard feasibility constraints (checked using IsFeasible() declared in CSpace), but also u is subject to validity constraints.

This constraint is described by a "simulation function". Given an initial state x0 and control input u, the function f(x0,u) returns a new state x1. In the case of the nonholonomic constraint x'=g(x,u), we could define f as the Euler step

f(x0,u) = x0 + dt*g(x0,u)

or any other type of PDE integrator. The functionality should be implemented in the function Simulate().

Note: the choice of time step dt can potentially create a resolution issue. It may be wise to include dt in the control input variable. I.e. let u = [dt, v], and g = g(x,v). This allows some flexibility in choosing the time step during sampling.

Member Function Documentation

EdgePlannerPtr IntegratedKinodynamicSpace::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 from KinodynamicSpace.

References KinodynamicMilestonePath::MakePaths(), and KinodynamicMilestonePath::SimulateFromControls().


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