Composition of a curve of any type of dimension 3 and a curve representing an rotation (in current implementation, only SO3Linear can be used for the rotation part) The output is a vector of size 7 (pos_x,pos_y,pos_z,quat_x,quat_y,quat_z,quat_w) The output of the derivative of any order is a vector of size 6 (linear_x,linear_y,linear_z,angular_x,angular_y,angular_z)
More...
|
typedef Numeric | Scalar |
|
typedef Eigen::Transform< Numeric, 3, Eigen::Affine > | transform_t |
|
typedef transform_t | point_t |
|
typedef Eigen::Matrix< Scalar, 6, 1 > | point_derivate_t |
|
typedef Eigen::Quaternion< Scalar > | Quaternion |
|
typedef Time | time_t |
|
typedef curve_abc< Time, Numeric, Safe, point_t, point_derivate_t > | curve_abc_t |
|
typedef polynomial< Time, Numeric, Safe, point_derivate_t > | curve_derivate_t |
|
typedef curve_abc< Time, Numeric, Safe, pointX_t > | curve_X_t |
|
typedef curve_abc< Time, Numeric, Safe, matrix3_t, point3_t > | curve_rotation_t |
|
typedef boost::shared_ptr< curve_X_t > | curve_ptr_t |
|
typedef boost::shared_ptr< curve_rotation_t > | curve_rotation_ptr_t |
|
typedef SO3Linear< Time, Numeric, Safe > | SO3Linear_t |
|
typedef polynomial< Time, Numeric, Safe, pointX_t > | polynomial_t |
|
typedef SE3Curve< Time, Numeric, Safe > | SE3Curve_t |
|
typedef Eigen::Transform< double, 3, Eigen::Affine > | point_t |
|
typedef Eigen::Matrix< double, 6, 1 > | point_derivate_t |
|
typedef double | time_t |
|
typedef double | num_t |
|
typedef curve_abc< double, double, Safe, point_t, point_derivate_t > | curve_t |
|
typedef curve_abc< double, double, Safe, point_derivate_t > | curve_derivate_t |
|
typedef boost::shared_ptr< curve_t > | curve_ptr_t |
|
|
| SE3Curve () |
| Empty constructor. Curve obtained this way can not perform other class functions. More...
|
|
virtual | ~SE3Curve () |
| Destructor. More...
|
|
| SE3Curve (const transform_t &init_transform, const transform_t &end_transform, const time_t &t_min, const time_t &t_max) |
| Constructor from init/end transform use polynomial of degree 1 for position and SO3Linear for rotation. More...
|
|
| SE3Curve (const pointX_t &init_pos, const pointX_t &end_pos, const Quaternion &init_rot, const Quaternion &end_rot, const time_t &t_min, const time_t &t_max) |
| Constructor from init/end pose, with quaternion. use polynomial of degree 1 for position and SO3Linear for rotation. More...
|
|
| SE3Curve (const pointX_t &init_pos, const pointX_t &end_pos, const matrix3_t &init_rot, const matrix3_t &end_rot, const time_t &t_min, const time_t &t_max) |
| Constructor from init/end pose, with rotation matrix. use polynomial of degree 1 for position and SO3Linear for rotation. More...
|
|
| SE3Curve (curve_ptr_t translation_curve, const Quaternion &init_rot, const Quaternion &end_rot) |
| Constructor from curve for the translation and init/end rotation, with quaternion. Use SO3Linear for rotation with the same time bounds as the. More...
|
|
| SE3Curve (curve_ptr_t translation_curve, const matrix3_t &init_rot, const matrix3_t &end_rot) |
| Constructor from curve for the translation and init/end rotation, with rotation matrix. Use SO3Linear for rotation with the same time bounds as the. More...
|
|
| SE3Curve (curve_ptr_t translation_curve, curve_rotation_ptr_t rotation_curve) |
| Constructor from from translation and rotation curves object. More...
|
|
virtual point_t | operator() (const time_t t) const |
| Evaluation of the SE3Curve at time t. More...
|
|
bool | isApprox (const SE3Curve_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 SE3Curve_t &other) const |
|
virtual bool | operator!= (const SE3Curve_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) 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...
|
|
const curve_ptr_t | translation_curve () const |
| const accessor to the translation curve More...
|
|
const curve_rotation_ptr_t | rotation_curve () const |
| const accessor to the rotation curve More...
|
|
template<class Archive > |
void | serialize (Archive &ar, const unsigned int version) |
|
| curve_abc () |
| Constructor. More...
|
|
virtual | ~curve_abc () |
| Destructor. More...
|
|
virtual point_t | operator() (const time_t t) const=0 |
| Evaluation of the cubic spline at time t. More...
|
|
virtual point_derivate_t | derivate (const time_t t, const std::size_t order) const=0 |
| Evaluate the derivative of order N of curve at time t. More...
|
|
bool | isEquivalent (const curve_t *other, const double prec=Eigen::NumTraits< double >::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...
|
|
virtual bool | isApprox (const curve_t *other, const double prec=Eigen::NumTraits< double >::dummy_precision()) const=0 |
| 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...
|
|
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...
|
|
template<typename Time = double, typename Numeric = Time, bool Safe = false>
class ndcurves::SE3Curve< Time, Numeric, Safe >
Composition of a curve of any type of dimension 3 and a curve representing an rotation (in current implementation, only SO3Linear can be used for the rotation part) The output is a vector of size 7 (pos_x,pos_y,pos_z,quat_x,quat_y,quat_z,quat_w) The output of the derivative of any order is a vector of size 6 (linear_x,linear_y,linear_z,angular_x,angular_y,angular_z)