1 #ifndef KINODYNAMIC_PATH_H 2 #define KINODYNAMIC_PATH_H 4 #include "EdgePlanner.h" 28 virtual const Config& Start()
const {
return milestones.front(); }
29 virtual const Config& End()
const {
return milestones.back(); }
30 virtual void Eval(Real u,
Config& q)
const { Eval2(u,q); }
31 virtual Real Length()
const;
34 bool IsConstant()
const;
36 inline int NumMilestones()
const {
return milestones.size(); }
37 inline const Config& GetMilestone(
int i)
const {
return milestones[i]; }
50 void Append(
const ControlInput& u,
const InterpolatorPtr& path,
const EdgePlannerPtr& e);
56 int Eval2(Real u,
Config& q)
const;
59 Real
StartTime(
int timeindex=0)
const {
return Start()[timeindex]; }
61 Real
EndTime(
int timeindex=0)
const {
return End()[timeindex]; }
63 Real
Duration(
int timeIndex=0)
const {
return milestones.back()[timeIndex] - milestones.front()[timeIndex]; }
65 int EvalTime(Real t,
Config& q,
int timeIndex=0)
const;
69 bool IsValidTime(
int timeIndex=0)
const;
89 std::vector<State> milestones;
90 std::vector<ControlInput> controls;
91 std::vector<InterpolatorPtr> paths;
92 std::vector<EdgePlannerPtr> edges;
Vector Config
an alias for Vector
Definition: RobotKinematics3D.h:14
void Splice(Real u1, Real u2, const KinodynamicMilestonePath &path, KinodynamicSpace *space=NULL)
Definition: KinodynamicPath.cpp:262
Motion planning configuration space base class. The configuration space implements an interpolation s...
Definition: CSpace.h:34
void Splice2(int start, int goal, const KinodynamicMilestonePath &path)
Definition: KinodynamicPath.cpp:291
void MakePaths(ControlSpace *space)
Given existing milestones and controls, creates the paths.
Definition: KinodynamicPath.cpp:43
Stores a kinodynamic path with piecewise constant controls.
Definition: KinodynamicPath.h:23
int Reduce(KinodynamicSpace *space, SteeringFunction *fn, int numIters)
Definition: KinodynamicPath.cpp:219
void MakeEdges(KinodynamicSpace *space)
Definition: KinodynamicPath.cpp:58
A class used for kinodynamic planning. Combines a CSpace defining the state space, as well as a ControlSpace.
Definition: KinodynamicSpace.h:22
Encodes the dynamics of a system, including the dynamics function f(x,u), control bounds...
Definition: ControlSpace.h:27
A base class for all 1D interpolators.
Definition: Interpolator.h:10
Real Duration(int timeIndex=0) const
For timed path, returns the duration of the known path.
Definition: KinodynamicPath.h:63
Real StartTime(int timeindex=0) const
For timed path, returns the start time.
Definition: KinodynamicPath.h:59
void SimulateFromControls(KinodynamicSpace *space)
Given milestones and controls, creates the paths and path checkers.
Definition: KinodynamicPath.cpp:34
int Shortcut(KinodynamicSpace *space, SteeringFunction *fn)
Definition: KinodynamicPath.cpp:198
A function in a ControlSpace that attempts to connect two states with a sequence of one or more contr...
Definition: ControlSpace.h:98
Real EndTime(int timeindex=0) const
For timed path, returns the end time.
Definition: KinodynamicPath.h:61