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 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< Numeric, 3, Eigen::Affine > | point_t |
|
typedef Eigen::Matrix< Numeric, 6, 1 > | 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 boost::shared_ptr< curve_t > | curve_ptr_t |
|
|
| SE3Curve () |
| Empty constructor. More...
|
|
| ~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. 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. 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. 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. 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. 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 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...
|
|
SE3Curve_t | compute_derivate (const std::size_t) const |
|
SE3Curve_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...
|
|
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::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>
Compute the derived curve at order N.
- Parameters
-
order | : order of derivative. |
- Returns
- A pointer to
derivative order N of the curve.
Implements curves::curve_abc< Time, Numeric, Safe, Eigen::Transform< Numeric, 3, Eigen::Affine >, Eigen::Matrix< Numeric, 6, 1 > >.
References curves::SE3Curve< Time, Numeric, Safe >::compute_derivate().
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, Eigen::Transform< Numeric, 3, Eigen::Affine >, Eigen::Matrix< Numeric, 6, 1 > >.
References curves::SE3Curve< Time, Numeric, Safe >::rotation_curve_, and curves::SE3Curve< Time, Numeric, Safe >::translation_curve_.
template<typename Time = double, typename Numeric = Time, bool Safe = false>
bool curves::SE3Curve< Time, Numeric, Safe >::isApprox |
( |
const SE3Curve_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::SE3Curve< Time, Numeric, Safe >::max(), curves::SE3Curve< Time, Numeric, Safe >::min(), curves::SE3Curve< Time, Numeric, Safe >::rotation_curve_, curves::SE3Curve< Time, Numeric, Safe >::T_max_, curves::SE3Curve< Time, Numeric, Safe >::T_min_, and curves::SE3Curve< Time, Numeric, Safe >::translation_curve_.
Referenced by curves::SE3Curve< Time, Numeric, Safe >::isApprox(), and curves::SE3Curve< Time, Numeric, Safe >::operator==().
template<typename Time = double, typename Numeric = Time, bool Safe = false>
virtual bool curves::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 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.
- 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
Implements curves::curve_abc< Time, Numeric, Safe, Eigen::Transform< Numeric, 3, Eigen::Affine >, Eigen::Matrix< Numeric, 6, 1 > >.
References curves::SE3Curve< Time, Numeric, Safe >::isApprox().
template<typename Time = double, typename Numeric = Time, bool Safe = false>
Evaluation of the SE3Curve at time t.
- Parameters
-
t | : time when to evaluate the spline. |
- Returns
point corresponding on spline at time t. (pos_x,pos_y,pos_z,quat_x,quat_y,quat_z,quat_w)
Implements curves::curve_abc< Time, Numeric, Safe, Eigen::Transform< Numeric, 3, Eigen::Affine >, Eigen::Matrix< Numeric, 6, 1 > >.
References curves::SE3Curve< Time, Numeric, Safe >::rotation_curve_, and curves::SE3Curve< Time, Numeric, Safe >::translation_curve_.