momentumopt
TrajectoryGenerator.hpp
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <vector>
12 #include <Eigen/Eigen>
13 #include <yaml-cpp/yaml.h>
14 
15 namespace momentumopt
16 {
17  enum class InterpolationMethod {
18  PiecewiseLinear,
19  PiecewiseConstant,
20  };
21 
22  // Class to generate trajectories around way-points in position, velocity and acceleration
24  {
25  public:
26  typedef Eigen::Matrix<double,Eigen::Dynamic,2> InterpMat;
27 
28  public:
29  Interpolator(){}
30  ~Interpolator(){}
31  void initialize(const InterpMat& pos_des, const InterpMat& vel_des, const InterpMat& acc_des);
32  void interpolate(const double time, double& position, double& velocity, double& acceleration);
33 
34  private:
35  double cons_size_;
36  std::vector<double> time_span_;
37  Eigen::MatrixXd regression_matrix_;
38  Eigen::VectorXd regression_vector_, regression_coeffs_;
39  };
40 
41  // Class to generate 3d continuous and smooth trajectories
43  {
44  public:
47  void initialize(const double tini, const Eigen::Vector3d& ini_position,
48  const double tend, const Eigen::Vector3d& end_position,
49  const Eigen::Vector3d& via_position);
50  void update(const double time);
51 
52  const Eigen::Vector3d& desPos() const { return pos_des_; }
53  const Eigen::Vector3d& desVel() const { return vel_des_; }
54  const Eigen::Vector3d& desAcc() const { return acc_des_; }
55 
56  private:
57  Interpolator traj_interp_[3];
58  Eigen::Vector3d pos_des_, vel_des_, acc_des_;
59  };
60 }
Definition: TrajectoryGenerator.hpp:42
Definition: TrajectoryGenerator.hpp:23