KrisLibrary  1.0.0
TimeCSpace.h
1 #ifndef ROBOTICS_TIME_CSPACE_H
2 #define ROBOTICS_TIME_CSPACE_H
3 
4 #include "CSpaceHelpers.h"
5 #include "KinodynamicSpace.h"
6 
10 class TimeCSpace : public BoxCSpace
11 {
12 public:
13  TimeCSpace(Real timeStepMax);
14  virtual void Sample(Config& x);
15 
16  Real timeStepMax;
17 };
18 
21 {
22  public:
23  TimeControlSpace(Real dtmax=1.0);
24  void SetMaxTimeStep(Real dtmax);
25  virtual InterpolatorPtr Simulate(const State& x0, const ControlInput& u);
26  virtual void SimulateEndpoint(const State& x0, const ControlInput& u,State& x1) { x1 = x0+u; }
27 };
28 
35 {
36 public:
37  SpaceTimeCSpace(const std::shared_ptr<CSpace>& stateSpace,Real tmax=Inf);
38  void SetTimeMetricWeight(Real weight);
39  virtual void Sample(Config& x);
40  virtual void SampleNeighborhood(const Config& c,Real r,Config& x);
41  virtual EdgePlannerPtr LocalPlanner(const Config& a,const Config& b);
42  virtual EdgePlannerPtr PathChecker(const Config& a,const Config& b);
43 };
44 
49 {
50 public:
51  SpaceTimeIntegratedControlSpace(const std::shared_ptr<IntegratedControlSpace>& base);
52  virtual std::string VariableName(int i);
53  virtual void Derivative(const State& x, const ControlInput& u,State& dx);
54  virtual void UpdateIntegrationParameters(const State& x);
55  std::shared_ptr<IntegratedControlSpace> base;
56 };
57 
63 {
64 public:
65  SpaceTimeIntegratedKinodynamicSpace(const std::shared_ptr<CSpace>& space,const std::shared_ptr<IntegratedControlSpace>& controlSpace);
66  void SetTimeMetricWeight(Real weight);
67 };
68 
69 
70 #endif // ROBOTICS_TIME_CSPACE_H
Definition: CSpaceHelpers.h:110
Vector Config
an alias for Vector
Definition: RobotKinematics3D.h:14
A class that produces a KinodynamicCSpace from a dynamics function subclassed from IntegratedControlS...
Definition: KinodynamicSpace.h:92
Encodes the dynamics of a system, including the dynamics function f(x,u), control bounds...
Definition: ControlSpace.h:27
This KinodynamicCSpace prefixes time onto the state of the given CSpace instance and automatically in...
Definition: TimeCSpace.h:62
A cspace that prepends a time variable to the given CSpace. This is best used with perturbation-sampl...
Definition: TimeCSpace.h:34
A 1D ControlSpace that simulates time.
Definition: TimeCSpace.h:20
Definition: CSpaceHelpers.h:63
Given an IntegratedControlSpace on a certain state space, this will produce a control space for the t...
Definition: TimeCSpace.h:48
a 1D cspace in the range [0,inf) but where Sample samples from the range [0,timeStepMax] ...
Definition: TimeCSpace.h:10
Base class for adapting a simulation function by integrating forward dynamics into a ControlSpace...
Definition: ControlSpace.h:166