Represents a linear interpolation in SO3, using the slerp method provided by Eigen::Quaternion.
More...
|
| SO3Linear () |
| Empty constructor. More...
|
|
| SO3Linear (const quaternion_t &init_rot, const quaternion_t &end_rot, const time_t t_min, const time_t t_max) |
| constructor with initial and final rotation and time bounds More...
|
|
| SO3Linear (const matrix3_t &init_rot, const matrix3_t &end_rot, const time_t t_min, const time_t t_max) |
| constructor with initial and final rotation expressed as rotation matrix and time bounds More...
|
|
| SO3Linear (const quaternion_t &init_rot, const quaternion_t &end_rot) |
| constructor with initial and final rotation, time bounds are set to [0;1] More...
|
|
| SO3Linear (const matrix3_t &init_rot, const matrix3_t &end_rot) |
| constructor with initial and final rotation expressed as rotation matrix, time bounds are set to [0;1] More...
|
|
| ~SO3Linear () |
| Destructor. More...
|
|
| SO3Linear (const SO3Linear &other) |
|
point3_t | computeAngularVelocity (const matrix3_t &init_rot, const matrix3_t &end_rot, const double t_min, const double t_max) |
|
quaternion_t | computeAsQuaternion (const time_t t) const |
|
virtual point_t | operator() (const time_t t) const |
| Evaluation of the SO3Linear at time t using Eigen slerp. More...
|
|
bool | isApprox (const SO3Linear_t &other, const Numeric prec=Eigen::NumTraits< Numeric >::dummy_precision()) const |
| isApprox check if other and *this are approximately equals. More...
|
|
virtual bool | isApprox (const curve_abc_t *other, const Numeric prec=Eigen::NumTraits< Numeric >::dummy_precision()) const |
| isApprox check if other and *this are approximately equals given a precision treshold Only two curves of the same class can be approximately equals, for comparison between different type of curves see isEquivalent. More...
|
|
virtual bool | operator== (const SO3Linear_t &other) const |
|
virtual bool | operator!= (const SO3Linear_t &other) const |
|
virtual point_derivate_t | derivate (const time_t t, const std::size_t order) const |
| Evaluation of the derivative of order N of spline at time t. More...
|
|
SO3Linear_t | compute_derivate (const std::size_t) const |
|
SO3Linear_t * | compute_derivate_ptr (const std::size_t order) const |
| Compute the derived curve at order N. More...
|
|
virtual std::size_t | dim () const |
| Get dimension of curve. More...
|
|
time_t | min () const |
| Get the minimum time for which the curve is defined. More...
|
|
time_t | max () const |
| Get the maximum time for which the curve is defined. More...
|
|
virtual std::size_t | degree () const |
| Get the degree of the curve. More...
|
|
matrix3_t | getInitRotation () const |
|
matrix3_t | getEndRotation () const |
|
matrix3_t | getInitRotation () |
|
matrix3_t | getEndRotation () |
|
template<class Archive > |
void | load (Archive &ar, const unsigned int version) |
|
template<class Archive > |
void | save (Archive &ar, const unsigned int version) const |
|
point3_t | log3 (const matrix3_t &R) |
| Log: SO3 -> so3. More...
|
|
| curve_abc () |
| Constructor. More...
|
|
virtual | ~curve_abc () |
| Destructor. More...
|
|
bool | isEquivalent (const curve_t *other, const Numeric prec=Eigen::NumTraits< Numeric >::dummy_precision(), const size_t order=5) const |
| isEquivalent check if other and *this are approximately equal by values, given a precision treshold. More...
|
|
std::pair< time_t, time_t > | timeRange () |
|
void | serialize (Archive &, const unsigned int version) |
|
template<typename Time = double, typename Numeric = Time, bool Safe = false>
class curves::SO3Linear< Time, Numeric, Safe >
Represents a linear interpolation in SO3, using the slerp method provided by Eigen::Quaternion.
template<typename Time = double, typename Numeric = Time, bool Safe = false>
Evaluation of the derivative of order N of spline at time t.
- Parameters
-
t | : the time when to evaluate the spline. |
order | : order of derivative. |
- Returns
point corresponding on derivative spline at time t.
Implements curves::curve_abc< Time, Numeric, Safe, matrix3_t, point3_t >.
References curves::SO3Linear< Time, Numeric, Safe >::angular_vel_, curves::SO3Linear< Time, Numeric, Safe >::T_max_, and curves::SO3Linear< Time, Numeric, Safe >::T_min_.
template<typename Time = double, typename Numeric = Time, bool Safe = false>
bool curves::SO3Linear< Time, Numeric, Safe >::isApprox |
( |
const SO3Linear_t & |
other, |
|
|
const Numeric |
prec = Eigen::NumTraits<Numeric>::dummy_precision() |
|
) |
| const |
|
inline |
isApprox check if other and *this are approximately equals.
Only two curves of the same class can be approximately equals, for comparison between different type of curves see isEquivalent
- Parameters
-
other | the other curve to check |
prec | the precision treshold, default Eigen::NumTraits<Numeric>::dummy_precision() |
- Returns
- true is the two curves are approximately equals
References curves::SO3Linear< Time, Numeric, Safe >::dim(), curves::SO3Linear< Time, Numeric, Safe >::dim_, curves::SO3Linear< Time, Numeric, Safe >::end_rot_, curves::SO3Linear< Time, Numeric, Safe >::init_rot_, curves::SO3Linear< Time, Numeric, Safe >::max(), curves::SO3Linear< Time, Numeric, Safe >::min(), curves::SO3Linear< Time, Numeric, Safe >::T_max_, and curves::SO3Linear< Time, Numeric, Safe >::T_min_.
Referenced by curves::SO3Linear< Time, Numeric, Safe >::isApprox(), and curves::SO3Linear< Time, Numeric, Safe >::operator==().
template<typename Time = double, typename Numeric = Time, bool Safe = false>
virtual bool curves::SO3Linear< Time, Numeric, Safe >::isApprox |
( |
const curve_abc_t * |
other, |
|
|
const Numeric |
prec = Eigen::NumTraits<Numeric>::dummy_precision() |
|
) |
| const |
|
inlinevirtual |