Represents a linear interpolation in SO3, using the slerp method provided by Eigen::Quaternion. More...
#include <ndcurves/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 |
![]() | |
typedef matrix3_t | point_t |
typedef point3_t | point_derivate_t |
typedef Time | time_t |
typedef Numeric | num_t |
typedef curve_abc< Time, Numeric, Safe, point_t, point_derivate_t > | curve_t |
typedef curve_abc< Time, Numeric, Safe, point_derivate_t > | curve_derivate_t |
typedef boost::shared_ptr< curve_t > | curve_ptr_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... | |
virtual | ~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 |
isApprox check if other and *this are approximately equal given a precision treshold Only two curves of the same class can be approximately equal, 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... | |
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... | |
![]() | |
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. This test is done by discretizing both curves and evaluating them and their derivatives. More... | |
std::pair< time_t, time_t > | timeRange () |
void | serialize (Archive &ar, const unsigned int version) |
![]() | |
template<class Derived > | |
void | loadFromText (const std::string &filename) |
Loads a Derived object from a text file. More... | |
template<class Derived > | |
void | saveAsText (const std::string &filename) const |
Saved a Derived object as a text file. More... | |
template<class Derived > | |
void | loadFromXML (const std::string &filename, const std::string &tag_name) |
Loads a Derived object from an XML file. More... | |
template<class Derived > | |
void | saveAsXML (const std::string &filename, const std::string &tag_name) const |
Saved a Derived object as an XML file. More... | |
template<class Derived > | |
void | loadFromBinary (const std::string &filename) |
Loads a Derived object from an binary file. More... | |
template<class Derived > | |
void | saveAsBinary (const std::string &filename) const |
Saved a Derived object as an binary file. 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> ndcurves::SO3Linear< Time, Numeric, Safe >::curve_abc_t |
typedef constant_curve<Time, Numeric, Safe, point_derivate_t> ndcurves::SO3Linear< Time, Numeric, Safe >::curve_derivate_t |
typedef point3_t ndcurves::SO3Linear< Time, Numeric, Safe >::point_derivate_t |
typedef matrix3_t ndcurves::SO3Linear< Time, Numeric, Safe >::point_t |
typedef Eigen::Quaternion<Scalar> ndcurves::SO3Linear< Time, Numeric, Safe >::quaternion_t |
typedef Numeric ndcurves::SO3Linear< Time, Numeric, Safe >::Scalar |
typedef SO3Linear<Time, Numeric, Safe> ndcurves::SO3Linear< Time, Numeric, Safe >::SO3Linear_t |
typedef Time ndcurves::SO3Linear< Time, Numeric, Safe >::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]
|
inline |
constructor with initial and final rotation expressed as rotation matrix, time bounds are set to [0;1]
|
inlinevirtual |
Destructor.
|
inline |
|
inline |
|
inlinevirtual |
Compute the derived curve at order N.
order | : order of derivative. |
Implements ndcurves::curve_abc< Time, Numeric, Safe, matrix3_t, point3_t >.
|
inline |
|
inline |
|
inlinevirtual |
Get the degree of the curve.
Implements ndcurves::curve_abc< Time, Numeric, Safe, matrix3_t, point3_t >.
|
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. |
Implements ndcurves::curve_abc< Time, Numeric, Safe, matrix3_t, point3_t >.
|
inlinevirtual |
Get dimension of curve.
Implements ndcurves::curve_abc< Time, Numeric, Safe, matrix3_t, point3_t >.
|
inline |
|
inline |
|
inline |
|
inline |
|
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() |
|
inlinevirtual |
isApprox check if other and *this are approximately equal given a precision treshold Only two curves of the same class can be approximately equal, 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() |
Implements ndcurves::curve_abc< Time, Numeric, Safe, matrix3_t, point3_t >.
|
inline |
|
inline |
Log: SO3 -> so3.
Pseudo-inverse of log from .
Code from pinocchio.
[in] | R | the rotation matrix. /// |
|
inlinevirtual |
Get the maximum time for which the curve is defined.
Implements ndcurves::curve_abc< Time, Numeric, Safe, matrix3_t, point3_t >.
|
inlinevirtual |
Get the minimum time for which the curve is defined.
Implements ndcurves::curve_abc< Time, Numeric, Safe, matrix3_t, point3_t >.
|
inlinevirtual |
|
inlinevirtual |
Evaluation of the SO3Linear at time t using Eigen slerp.
t | : time when to evaluate the spline. |
Implements ndcurves::curve_abc< Time, Numeric, Safe, matrix3_t, point3_t >.
|
inlinevirtual |
|
inline |
|
friend |
point3_t ndcurves::SO3Linear< Time, Numeric, Safe >::angular_vel_ |
std::size_t ndcurves::SO3Linear< Time, Numeric, Safe >::dim_ |
quaternion_t ndcurves::SO3Linear< Time, Numeric, Safe >::end_rot_ |
quaternion_t ndcurves::SO3Linear< Time, Numeric, Safe >::init_rot_ |
time_t ndcurves::SO3Linear< Time, Numeric, Safe >::T_max_ |
time_t ndcurves::SO3Linear< Time, Numeric, Safe >::T_min_ |