KrisLibrary  1.0.0
KinodynamicOptimizer.h
1 #ifndef PLANNING_KINODYNAMIC_OPTIMIZER_H
2 #define PLANNING_KINODYNAMIC_OPTIMIZER_H
3 
4 #include "KinodynamicMotionPlanner.h"
5 
7 {
8 public:
9  KinodynamicLocalOptimizer(KinodynamicSpace* s,std::shared_ptr<ObjectiveFunctionalBase> objective);
10  virtual ~KinodynamicLocalOptimizer();
11  void Init(const KinodynamicMilestonePath& path,CSet* goalSet);
12  virtual void Init(const State& xinit,CSet* goalSet);
13  virtual bool Plan(int maxIters);
14  virtual bool Done() const;
15  virtual bool GetPath(KinodynamicMilestonePath& path);
16  void ComputeCosts();
17  bool DoShortcut();
18  bool DoRandomDescent(Real perturbationSize);
19  bool DoGradientDescent();
20  bool DoDDP();
21 
22  enum { Shortcut, RandomDescent, GradientDescent, DDP };
23 
24  std::shared_ptr<ObjectiveFunctionalBase> objective;
25  KinodynamicMilestonePath bestPath;
26  Real bestPathCost;
27  std::vector<double> cumulativeCosts;
28 
29  //stats for adaptive method
30  std::vector<bool> methodAvailable;
31  std::vector<int> methodCounts;
32  std::vector<Real> methodRewards;
33  std::vector<Real> methodCosts;
34  //temporary
35  KinodynamicMilestonePath tempPath;
36 };
37 
38 #endif
Definition: KinodynamicMotionPlanner.h:64
Stores a kinodynamic path with piecewise constant controls.
Definition: KinodynamicPath.h:23
A class used for kinodynamic planning. Combines a CSpace defining the state space, as well as a ControlSpace.
Definition: KinodynamicSpace.h:22
Definition: KinodynamicOptimizer.h:6
A subset of a CSpace, which establishes a constraint for a configuration must meet. Mathematically, this is a set S which imposes the constraint [q in S].
Definition: CSet.h:20