9 #ifndef _parameteric_curves_linear_chirp_hpp
10 #define _parameteric_curves_linear_chirp_hpp
23 template <
typename Numeric = double, Eigen::Index Dim = 1,
24 typename Point = Eigen::Matrix<Numeric, Dim, 1> >
37 const point_t& x_init_ = Eigen::Matrix<Numeric, Dim, 1>::Zero(),
38 const point_t& x_final_ = Eigen::Matrix<Numeric, Dim, 1>::Zero())
45 const point_t& x_init_ = Eigen::Matrix<Numeric, Dim, 1>::Zero(),
46 const point_t& x_final_ = Eigen::Matrix<Numeric, Dim, 1>::Zero())
58 const point_t& m_p = 0.5 * (1.0 - phase(t).array().cos());
63 const std::size_t& order)
const {
65 const point_t& m_dp = M_PI * freq(t).array() * phase(t).array().sin();
67 }
else if (order == 2) {
68 const point_t& m_ddp = 2.0 * M_PI * M_PI * freq(t).array() *
69 freq(t).array() * phase(t).array().cos();
72 std::cerr <<
"Higher order derivatives not supported" << std::endl;
73 return point_t::Zero(Dim);
80 if (
f0.size() != f0_.size())
return false;
86 if (Dim != 1)
return false;
92 if (
f1.size() != f1_.size())
return false;
98 if (Dim != 1)
return false;
104 if (x_init_.size() !=
x_init.size())
return false;
109 if (Dim != 1)
return false;
115 if (
x_final.size() != x_final_.size())
return false;
121 if (Dim != 1)
return false;
136 if (t < 0.5 * this->
t_max)
139 return f1 + m_k * (0.5 * this->t_max - t);
144 const phase_t& m_phi_0 = M_PI * this->
t_max * (f0 -
f1);
145 if (t < 0.5 * this->
t_max)
146 return 2 * M_PI * t * (
f0 + 0.5 * m_k * t);
148 return m_phi_0 + 2 * M_PI * t * (
f1 + 0.5 * m_k * (this->t_max - t));
Definition: abstract-curve.hpp:16
Eigen::Matrix< Numeric, 3, 1 > Point
Definition: effector_spline.h:28
double Numeric
Definition: effector_spline.h:26
Represents a curve of dimension Dim is Safe is false, no verification is made on the evaluation of th...
Definition: abstract-curve.hpp:21
time_t t_max
Definition: abstract-curve.hpp:65
Creates LinearChirp curve Linear chirp trajectory generator. A linear chirp is a sinusoid whose frequ...
Definition: linear-chirp.hpp:25
freq_t f0
Definition: linear-chirp.hpp:128
virtual bool setInitialPoint(const point_t &x_init_)
Definition: linear-chirp.hpp:103
point_t x_final
Definition: linear-chirp.hpp:131
virtual bool setFinalFrequency(const double &f1_)
Definition: linear-chirp.hpp:97
virtual bool setFinalFrequency(const Eigen::VectorXd &f1_)
Definition: linear-chirp.hpp:91
freq_t f1
initial frequency
Definition: linear-chirp.hpp:129
Numeric time_t
Definition: linear-chirp.hpp:29
Point point_t
Definition: linear-chirp.hpp:26
virtual bool setFinalPoint(const double &x_final_)
Definition: linear-chirp.hpp:120
virtual const point_t derivate(const time_t &t, const std::size_t &order) const
Definition: linear-chirp.hpp:62
LinearChirp(const time_t &traj_time_, const freq_t &f0_, const freq_t &f1_, const point_t &x_init_=Eigen::Matrix< Numeric, Dim, 1 >::Zero(), const point_t &x_final_=Eigen::Matrix< Numeric, Dim, 1 >::Zero())
Definition: linear-chirp.hpp:44
virtual bool setFinalPoint(const Eigen::VectorXd &x_final_)
Definition: linear-chirp.hpp:114
AbstractCurve< Numeric, Point > curve_abc_t
Definition: linear-chirp.hpp:31
Numeric num_t
Definition: linear-chirp.hpp:30
virtual bool setInitialPoint(const double &x_init_)
Definition: linear-chirp.hpp:108
virtual bool setInitialFrequency(const Eigen::VectorXd &f0_)
Definition: linear-chirp.hpp:79
point_t x_init
final frequency
Definition: linear-chirp.hpp:130
Point phase_t
Definition: linear-chirp.hpp:28
Point freq_t
Definition: linear-chirp.hpp:27
virtual bool setInitialFrequency(const double &f0_)
Definition: linear-chirp.hpp:85
LinearChirp(const time_t &traj_time_, const point_t &x_init_=Eigen::Matrix< Numeric, Dim, 1 >::Zero(), const point_t &x_final_=Eigen::Matrix< Numeric, Dim, 1 >::Zero())
Constructor.
Definition: linear-chirp.hpp:36
virtual const point_t operator()(const time_t &t) const
Definition: linear-chirp.hpp:57
~LinearChirp()
Destructor.
Definition: linear-chirp.hpp:54