Represents a linear interpolation in SO3, using the slerp method provided by Eigen::Quaternion. More...
#include <curves/fwd.h>
Public Types | |
typedef Numeric | Scalar |
typedef matrix3_t | point_t |
typedef point3_t | point_derivate_t |
typedef Eigen::Quaternion< Scalar > | quaternion_t |
typedef Time | time_t |
typedef curve_abc< Time, Numeric, Safe, point_t, point_derivate_t > | curve_abc_t |
typedef constant_curve< Time, Numeric, Safe, point_derivate_t > | curve_derivate_t |
typedef SO3Linear< Time, Numeric, Safe > | SO3Linear_t |
Public Member Functions | |
SO3Linear () | |
Empty constructor. Curve obtained this way can not perform other class functions. 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. Only two curves of the same class can be approximately equals, for comparison between different type of curves see isEquivalent More... | |
virtual bool | isApprox (const curve_abc_t *other, const Numeric prec=Eigen::NumTraits< Numeric >::dummy_precision()) const |
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... | |
curve_derivate_t | compute_derivate (const std::size_t order) const |
curve_derivate_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... | |
Public Attributes | |
std::size_t | dim_ |
quaternion_t | init_rot_ |
quaternion_t | end_rot_ |
point3_t | angular_vel_ |
time_t | T_min_ |
time_t | T_max_ |
Friends | |
class | boost::serialization::access |
Represents a linear interpolation in SO3, using the slerp method provided by Eigen::Quaternion.
typedef curve_abc<Time, Numeric, Safe, point_t, point_derivate_t> curves::SO3Linear::curve_abc_t |
typedef constant_curve<Time, Numeric, Safe, point_derivate_t> curves::SO3Linear::curve_derivate_t |
typedef matrix3_t curves::SO3Linear::point_t |
typedef Eigen::Quaternion<Scalar> curves::SO3Linear::quaternion_t |
typedef Numeric curves::SO3Linear::Scalar |
typedef SO3Linear<Time, Numeric, Safe> curves::SO3Linear::SO3Linear_t |
typedef Time curves::SO3Linear::time_t |
|
inline |
Empty constructor. Curve obtained this way can not perform other class functions.
|
inline |
constructor with initial and final rotation and time bounds
|
inline |
constructor with initial and final rotation expressed as rotation matrix and time bounds
|
inline |
constructor with initial and final rotation, time bounds are set to [0;1]
constructor with initial and final rotation expressed as rotation matrix, time bounds are set to [0;1]
|
inline |
Destructor.
|
inline |
|
inline |
|
inline |
Compute the derived curve at order N.
order | : order of derivative. |
|
inline |
|
inline |
|
inlinevirtual |
Get the degree of the curve.
|
inlinevirtual |
Evaluation of the derivative of order N of spline at time t.
t | : the time when to evaluate the spline. |
order | : order of derivative. |
|
inlinevirtual |
Get dimension of curve.
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
|
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
other | the other curve to check |
prec | the precision treshold, default Eigen::NumTraits<Numeric>::dummy_precision() |
|
inline |
Log: SO3 -> so3.
Pseudo-inverse of log from .
Code from pinocchio.
[in] | R | the rotation matrix. /// |
|
inline |
Get the maximum time for which the curve is defined.
|
inline |
Get the minimum time for which the curve is defined.
|
inlinevirtual |
Evaluation of the SO3Linear at time t using Eigen slerp.
t | : time when to evaluate the spline. |
|
inlinevirtual |
|
inline |
|
friend |
point3_t curves::SO3Linear::angular_vel_ |
std::size_t curves::SO3Linear::dim_ |
quaternion_t curves::SO3Linear::end_rot_ |
quaternion_t curves::SO3Linear::init_rot_ |
time_t curves::SO3Linear::T_max_ |
time_t curves::SO3Linear::T_min_ |