kinematic-planner.hh
Go to the documentation of this file.
1 //
2 // Copyright (C) 2016 LAAS-CNRS
3 //
4 // Author: Rohan Budhiraja
5 //
6 
7 #ifndef SOT_TOOLS_KINEMATIC_PLANNER_HH
8 #define SOT_TOOLS_KINEMATIC_PLANNER_HH
9 
10 /* STD */
11 #include <complex>
12 #include <list>
13 #include <sstream>
14 #include <string>
15 
16 /* dynamic-graph */
17 #include <dynamic-graph/entity.h>
18 #include <dynamic-graph/factory.h>
23 
24 #include <sot/core/debug.hh>
25 
26 /*Eigen*/
27 #include <Eigen/StdVector>
28 #include <unsupported/Eigen/FFT>
29 #include <unsupported/Eigen/MatrixFunctions>
30 #include <unsupported/Eigen/Splines>
31 
32 /* BOOST */
33 // #include <boost/filesystem.hpp>
34 
35 namespace dynamicgraph {
36 namespace sot {
37 namespace tools {
38 
40 
41 class KinematicPlanner : public Entity {
42  public:
44  typedef std::vector<Eigen::ArrayXd, Eigen::aligned_allocator<Eigen::ArrayXd> >
46 
47  typedef std::vector<Eigen::ArrayXXd,
48  Eigen::aligned_allocator<Eigen::ArrayXXd> >
50 
51  /*-----SIGNALS--------*/
52  typedef int Dummy;
53  /*
54  dynamicgraph::SignalPtr<double,int> distToDrawerSIN;
55  dynamicgraph::SignalPtr<double,int> objectPositionInDrawerSIN;
56 
57  dynamicgraph::SignalTimeDependent<Dummy,int> trajectoryReadySINTERN;
58 
59  dynamicgraph::SignalTimeDependent<dynamicgraph::Matrix, int>
60  upperBodyJointPositionSOUT;
61  dynamicgraph::SignalTimeDependent<dynamicgraph::Matrix, int>
62  upperBodyJointVelocitySOUT;
63  dynamicgraph::SignalTimeDependent<dynamicgraph::Matrix, int>
64  freeFlyerVelocitySOUT;
65  */
66  /* --- CONSTRUCTOR --- */
67  KinematicPlanner(const std::string& name);
68  virtual ~KinematicPlanner(void);
69  // Sources
70  Eigen::ArrayXd npSource;
71  Eigen::ArrayXXd pSource1;
72  Eigen::ArrayXXd pSource2;
73 
76  // Delays
77  Eigen::ArrayXXd pDelay1;
78  Eigen::ArrayXXd pDelay2;
79 
80  // Non Periodic Weights
81  Eigen::ArrayXXd wNonPeriodic; // Eigen::Array<double, 480,4>
82 
83  // Periodic Weights
86 
87  // Mean joint angles
88  Eigen::ArrayXXd mJointAngle;
89 
90  // Number of Trajectories Created
91  // int nTrajectories; //30
92  int nJoints; // 16
93  int nGaitCycles; // 4
94  int nTimeSteps; // 160
95  int nSources1; // 5
96  int nSources2; // 4
98  std::list<dynamicgraph::SignalBase<int>*> genericSignalRefs;
99 
100  // Load Motion Capture outputs
101  template <typename Derived>
102  void read2DArray(std::string& fileName, Eigen::DenseBase<Derived>& outArr);
103 
104  void setParams(const double& _distanceToDrawer,
105  const double& _objectPositionInDrawer, const std::string& dir);
106  void loadSourceDelays(const std::string& dir);
107  void loadTrainingParams(const std::string& dir, dynamicgraph::Matrix& q,
108  dynamicgraph::Matrix& beta3, Eigen::ArrayXd& mwwn,
109  double& sigma2, int& N, int& K);
110  dynamicgraph::Vector createSubGoals(double D, double P);
111  void delaySources();
112  void blending();
113  void smoothEnds(Eigen::Ref<Eigen::ArrayXd> tr);
114  void bSplineInterpolate(Eigen::ArrayXXd& tr, int factor);
115  int& runKinematicPlanner(int& dummy, int time);
116  void goalAdaption(dynamicgraph::Vector& goals, const std::string&);
117  void savitzkyGolayFilter(Eigen::Ref<Eigen::ArrayXXd> allJointTraj,
118  int polyOrder, int frameSize);
119 
121 }; // class KinematicPlanner
122 } // namespace tools
123 } // namespace sot
124 } // namespace dynamicgraph
125 
126 #endif // SOT_TOOLS_KINEMATIC_PLANNER_HH
void savitzkyGolayFilter(Eigen::Ref< Eigen::ArrayXXd > allJointTraj, int polyOrder, int frameSize)
Eigen::VectorXd Vector
std::vector< Eigen::ArrayXXd, Eigen::aligned_allocator< Eigen::ArrayXXd > > stdVectorofArrayXXd
dynamicgraph::Vector createSubGoals(double D, double P)
int & runKinematicPlanner(int &dummy, int time)
void bSplineInterpolate(Eigen::ArrayXXd &tr, int factor)
void loadSourceDelays(const std::string &dir)
std::vector< Eigen::ArrayXd, Eigen::aligned_allocator< Eigen::ArrayXd > > stdVectorofArrayXd
std::list< dynamicgraph::SignalBase< int > * > genericSignalRefs
void read2DArray(std::string &fileName, Eigen::DenseBase< Derived > &outArr)
void goalAdaption(dynamicgraph::Vector &goals, const std::string &)
void smoothEnds(Eigen::Ref< Eigen::ArrayXd > tr)
Eigen::MatrixXd Matrix
void setParams(const double &_distanceToDrawer, const double &_objectPositionInDrawer, const std::string &dir)
void loadTrainingParams(const std::string &dir, dynamicgraph::Matrix &q, dynamicgraph::Matrix &beta3, Eigen::ArrayXd &mwwn, double &sigma2, int &N, int &K)


sot-tools
Author(s): Mehdi Benallegue, Francois Keith, Florent Lamiraux, Thomas Moulard, Olivier Stasse, Jorrit T'Hooft
autogenerated on Sun Jun 25 2023 02:10:08