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, point3_t, point3_t > | curve_translation_t |
| |
| typedef curve_abc< Time, Numeric, Safe, matrix3_t, point3_t > | curve_rotation_t |
| |
| typedef std::shared_ptr< curve_X_t > | curve_ptr_t |
| |
| typedef std::shared_ptr< curve_rotation_t > | curve_rotation_ptr_t |
| |
| typedef std::shared_ptr< curve_translation_t > | curve_translation_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 Point | point_t |
| |
| typedef Point_derivate | 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 std::shared_ptr< curve_t > | curve_ptr_t |
| |
|
| | SE3Curve () |
| | Empty constructor. Curve obtained this way can not perform other class functions.
|
| |
| virtual | ~SE3Curve () |
| | Destructor.
|
| |
| | 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.
|
| |
| | SE3Curve (const point3_t &init_pos, const point3_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.
|
| |
| | SE3Curve (const point3_t &init_pos, const point3_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.
|
| |
| | SE3Curve (curve_translation_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.
|
| |
| | SE3Curve (curve_translation_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.
|
| |
| | SE3Curve (curve_translation_ptr_t translation_curve, curve_rotation_ptr_t rotation_curve) |
| | Constructor from from translation and rotation curves object.
|
| |
| virtual point_t | operator() (const time_t t) const |
| | Evaluation of the SE3Curve at time t.
|
| |
| 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
|
| |
| 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 threshold Only two curves of the same class can be approximately equal, for comparison between different type of curves see isEquivalent.
|
| |
| 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.
|
| |
| 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.
|
| |
| virtual std::size_t | dim () const |
| | Get dimension of curve.
|
| |
| time_t | min () const |
| | Get the minimum time for which the curve is defined.
|
| |
| time_t | max () const |
| | Get the maximum time for which the curve is defined.
|
| |
| virtual std::size_t | degree () const |
| | Get the degree of the curve.
|
| |
| const curve_translation_ptr_t | translation_curve () const |
| | const accessor to the translation curve
|
| |
| const curve_rotation_ptr_t | rotation_curve () const |
| | const accessor to the rotation curve
|
| |
| template<class Archive > |
| void | serialize (Archive &ar, const unsigned int version) |
| |
| | curve_abc () |
| | Constructor.
|
| |
| virtual | ~curve_abc () |
| | Destructor.
|
| |
| 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 threshold. This test is done by discretizing both curves and evaluating them and their derivatives.
|
| |
| std::pair< time_t, time_t > | timeRange () |
| |
| template<class Archive > |
| 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.
|
| |
| template<class Derived > |
| void | saveAsText (const std::string &filename) const |
| | Saved a Derived object as a text file.
|
| |
| template<class Derived > |
| void | loadFromXML (const std::string &filename, const std::string &tag_name) |
| | Loads a Derived object from an XML file.
|
| |
| template<class Derived > |
| void | saveAsXML (const std::string &filename, const std::string &tag_name) const |
| | Saved a Derived object as an XML file.
|
| |
| template<class Derived > |
| void | loadFromBinary (const std::string &filename) |
| | Loads a Derived object from an binary file.
|
| |
| template<class Derived > |
| void | saveAsBinary (const std::string &filename) const |
| | Saved a Derived object as an binary file.
|
| |
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)
template<typename Time = double, typename Numeric = Time, bool Safe = false>
| virtual bool ndcurves::SE3Curve< Time, Numeric, Safe >::isApprox |
( |
const curve_abc_t * |
other, |
|
|
const Numeric |
prec = Eigen::NumTraits< Numeric >::dummy_precision() |
|
) |
| const |
|
inlinevirtual |
isApprox check if other and *this are approximately equal given a precision threshold Only two curves of the same class can be approximately equal, for comparison between different type of curves see isEquivalent.
- Parameters
-
| other | the other curve to check |
| prec | the precision threshold, default Eigen::NumTraits<Numeric>::dummy_precision() |
- Returns
- true if the two curves are approximately equal
Implements ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >.