EEROS  1.0.0.0
API for the EEROS Real-Time Robotics Framework
PathPlannerCubic.hpp
Go to the documentation of this file.
1 #ifndef ORG_EEROS_CONTROL_PATHPLANNER_CUBIC_HPP_
2 #define ORG_EEROS_CONTROL_PATHPLANNER_CUBIC_HPP_
3 
6 #include <eeros/math/Matrix.hpp>
8 #include <mutex>
9 #include <atomic>
10 
11 namespace eeros {
12  namespace control {
13 
15  public:
16  PathPlannerCubic(double dt);
17 
22 
23  virtual void init(std::string filename);
24  virtual void setInitPos(double initPos);
25  virtual bool move(double init_pos);
26  virtual bool move(double time, double init_pos, double end_pos);
27  virtual bool endReached();
28  virtual void reset();
29  virtual void run();
30 
31  private:
32  void stop();
33  void scalePath(double time, double end_pos);
38 
39  bool finished = true;
40  double dt;
41  int index = 0;
42  bool first = true;
43  double timeInterval;
44  double t = 0;
45  double prevJerk, prevAcc, prevVel, prevPos;
46  std::vector<double> timeCoeffRaw, jerkCoeffRaw, accCoeffRaw, velCoeffRaw, posCoeffRaw;
47  std::vector<double> timeCoeff, jerkCoeff, accCoeff, velCoeff, posCoeff, posCoeffShifted;
48  std::mutex m;
50  };
51  };
52 };
53 
54 #endif /* ORG_EEROS_CONTROL_PATHPLANNER_CUBIC_HPP_ */
Definition: Logger.hpp:15
Definition: PathPlannerCubic.hpp:14
virtual bool move(double init_pos)
Definition: PathPlannerCubic.cpp:162
virtual eeros::control::Output< double > & getAccOut()
Definition: PathPlannerCubic.cpp:28
virtual eeros::control::Output< double > & getJerkOut()
Definition: PathPlannerCubic.cpp:32
virtual eeros::control::Output< double > & getPosOut()
Definition: PathPlannerCubic.cpp:20
virtual void reset()
Definition: PathPlannerCubic.cpp:50
virtual void setInitPos(double initPos)
Definition: PathPlannerCubic.cpp:199
virtual bool endReached()
Definition: PathPlannerCubic.cpp:195
PathPlannerCubic(double dt)
Definition: PathPlannerCubic.cpp:10
virtual void init(std::string filename)
Definition: PathPlannerCubic.cpp:55
Definition: Config.hpp:14
Definition: Block.hpp:10
virtual eeros::control::Output< double > & getVelOut()
Definition: PathPlannerCubic.cpp:24
virtual void run()
Definition: PathPlannerCubic.cpp:207