Public Types | |
enum | { NQ = traits<LieGroupDerived>::NQ, NV = traits<LieGroupDerived>::NV } |
typedef Derived | LieGroupDerived |
typedef int | Index |
typedef traits< LieGroupDerived >::Scalar | Scalar |
typedef Eigen::Matrix< Scalar, NQ, 1 > | ConfigVector_t |
typedef Eigen::Matrix< Scalar, NV, 1 > | TangentVector_t |
typedef Eigen::Matrix< Scalar, NV, NV > | JacobianMatrix_t |
Public Member Functions | |
API with return value as argument | |
template<class ConfigIn_t , class Tangent_t , class ConfigOut_t > | |
void | integrate (const Eigen::MatrixBase< ConfigIn_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< ConfigOut_t > &qout) const |
Integrate a joint's configuration with a tangent vector during one unit time duration. More... | |
template<class Config_t , class Tangent_t , class JacobianOut_t > | |
void | dIntegrate_dq (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J) const |
Computes the Jacobian of the Integrate operation. More... | |
template<class Config_t , class Tangent_t , class JacobianOut_t > | |
void | dIntegrate_dv (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J) const |
Computes the Jacobian of the Integrate operation. More... | |
template<class ConfigL_t , class ConfigR_t , class ConfigOut_t > | |
void | interpolate (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Scalar &u, const Eigen::MatrixBase< ConfigOut_t > &qout) const |
Interpolation between two joint's configurations. More... | |
template<class Config_t > | |
void | normalize (const Eigen::MatrixBase< Config_t > &qout) const |
Normalize the joint configuration given as input. For instance, the quaternion must be unitary. More... | |
template<class Config_t > | |
void | random (const Eigen::MatrixBase< Config_t > &qout) const |
Generate a random joint configuration, normalizing quaternions when necessary. More... | |
template<class ConfigL_t , class ConfigR_t , class ConfigOut_t > | |
void | randomConfiguration (const Eigen::MatrixBase< ConfigL_t > &lower_pos_limit, const Eigen::MatrixBase< ConfigR_t > &upper_pos_limit, const Eigen::MatrixBase< ConfigOut_t > &qout) const |
Generate a configuration vector uniformly sampled among provided limits. More... | |
template<class ConfigL_t , class ConfigR_t , class Tangent_t > | |
void | difference (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< Tangent_t > &v) const |
Computes the tangent vector that must be integrated during one unit time to go from q0 to q1. More... | |
template<class ConfigL_t , class ConfigR_t , class JacobianLOut_t , class JacobianROut_t > | |
void | Jdifference (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianLOut_t > &J0, const Eigen::MatrixBase< JacobianROut_t > &J1) const |
Computes the Jacobian of the difference operation. More... | |
template<class ConfigL_t , class ConfigR_t > | |
Scalar | squaredDistance (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const |
Squared distance between two joint configurations. More... | |
template<class ConfigL_t , class ConfigR_t > | |
Scalar | distance (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const |
Distance between two configurations of the joint. More... | |
template<class ConfigL_t , class ConfigR_t > | |
bool | isSameConfiguration (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const |
Check if two configurations are equivalent within the given precision. More... | |
API that allocates memory | |
template<class Config_t , class Tangent_t > | |
ConfigVector_t | integrate (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v) const |
template<class ConfigL_t , class ConfigR_t > | |
ConfigVector_t | interpolate (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Scalar &u) const |
ConfigVector_t | random () const |
template<class ConfigL_t , class ConfigR_t > | |
ConfigVector_t | randomConfiguration (const Eigen::MatrixBase< ConfigL_t > &lower_pos_limit, const Eigen::MatrixBase< ConfigR_t > &upper_pos_limit) const |
template<class ConfigL_t , class ConfigR_t > | |
TangentVector_t | difference (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const |
Default implementations | |
template<class ConfigL_t , class ConfigR_t , class ConfigOut_t > | |
void | interpolate_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Scalar &u, const Eigen::MatrixBase< ConfigOut_t > &qout) const |
template<class Config_t > | |
void | normalize_impl (const Eigen::MatrixBase< Config_t > &qout) const |
template<class ConfigL_t , class ConfigR_t > | |
Scalar | squaredDistance_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const |
template<class ConfigL_t , class ConfigR_t > | |
bool | isSameConfiguration_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Scalar &prec) const |
Index | nq () const |
Index | nv () const |
Get dimension of Lie Group tangent space. | |
ConfigVector_t | neutral () const |
Get neutral element as a vector. | |
std::string | name () const |
Get name of instance. | |
Derived & | derived () |
const Derived & | derived () const |
Protected Member Functions | |
LieGroupBase () | |
LieGroupBase (const LieGroupBase &) | |
Definition at line 49 of file operation-base.hpp.
|
inlineprotected |
Default constructor.
Prevent the construction of derived class.
Definition at line 292 of file operation-base.hpp.
|
inlineprotected |
Copy constructor
Prevent the copy of derived class.
Definition at line 297 of file operation-base.hpp.
void difference | ( | const Eigen::MatrixBase< ConfigL_t > & | q0, |
const Eigen::MatrixBase< ConfigR_t > & | q1, | ||
const Eigen::MatrixBase< Tangent_t > & | v | ||
) | const |
Computes the tangent vector that must be integrated during one unit time to go from q0 to q1.
[in] | q0 | the initial configuration vector. |
[in] | q1 | the terminal configuration vector. |
[out] | v | the corresponding velocity. |
Definition at line 130 of file operation-base.hxx.
Referenced by LieGroupBase< Derived >::isSameConfiguration().
void dIntegrate_dq | ( | const Eigen::MatrixBase< Config_t > & | q, |
const Eigen::MatrixBase< Tangent_t > & | v, | ||
const Eigen::MatrixBase< JacobianOut_t > & | J | ||
) | const |
Computes the Jacobian of the Integrate operation.
[in] | q | configuration |
[in] | v | tangent velocity. |
[out] | J | the Jacobian of the Integrate operation wrt q. |
Definition at line 42 of file operation-base.hxx.
void dIntegrate_dv | ( | const Eigen::MatrixBase< Config_t > & | q, |
const Eigen::MatrixBase< Tangent_t > & | v, | ||
const Eigen::MatrixBase< JacobianOut_t > & | J | ||
) | const |
Computes the Jacobian of the Integrate operation.
[in] | q | configuration |
[in] | v | tangent velocity. |
[out] | J | the Jacobian of the Integrate operation wrt v. |
Definition at line 55 of file operation-base.hxx.
LieGroupBase< Derived >::Scalar distance | ( | const Eigen::MatrixBase< ConfigL_t > & | q0, |
const Eigen::MatrixBase< ConfigR_t > & | q1 | ||
) | const |
Distance between two configurations of the joint.
[in] | q0 | the initial configuration vector. |
[in] | q1 | the terminal configuration vector. |
Definition at line 171 of file operation-base.hxx.
References se3::squaredDistance().
void integrate | ( | const Eigen::MatrixBase< ConfigIn_t > & | q, |
const Eigen::MatrixBase< Tangent_t > & | v, | ||
const Eigen::MatrixBase< ConfigOut_t > & | qout | ||
) | const |
Integrate a joint's configuration with a tangent vector during one unit time duration.
[in] | q | the initial configuration. |
[in] | v | the tangent velocity. |
[out] | qout | the configuration integrated. |
Definition at line 29 of file operation-base.hxx.
Referenced by LieGroupBase< Derived >::isSameConfiguration().
void interpolate | ( | const Eigen::MatrixBase< ConfigL_t > & | q0, |
const Eigen::MatrixBase< ConfigR_t > & | q1, | ||
const Scalar & | u, | ||
const Eigen::MatrixBase< ConfigOut_t > & | qout | ||
) | const |
Interpolation between two joint's configurations.
[in] | q0 | the initial configuration to interpolate. |
[in] | q1 | the final configuration to interpolate. |
[in] | u | in [0;1] the absicca along the interpolation. |
[out] | qout | the interpolated configuration (q0 if u = 0, q1 if u = 1) |
[in] | q0 | Initial configuration to interpolate |
[in] | q1 | Final configuration to interpolate |
[in] | u | u in [0;1] position along the interpolation. |
Definition at line 77 of file operation-base.hxx.
References LieGroupBase< Derived >::normalize().
Referenced by LieGroupBase< Derived >::isSameConfiguration().
bool isSameConfiguration | ( | const Eigen::MatrixBase< ConfigL_t > & | q0, |
const Eigen::MatrixBase< ConfigR_t > & | q1, | ||
const Scalar & | prec = Eigen::NumTraits<Scalar>::dummy_precision() |
||
) | const |
Check if two configurations are equivalent within the given precision.
[in] | q0 | Configuration 0 |
[in] | q1 | Configuration 1 |
Definition at line 180 of file operation-base.hxx.
References se3::difference(), LieGroupBase< Derived >::difference(), se3::integrate(), LieGroupBase< Derived >::integrate(), se3::interpolate(), LieGroupBase< Derived >::interpolate(), se3::randomConfiguration(), and LieGroupBase< Derived >::randomConfiguration().
void Jdifference | ( | const Eigen::MatrixBase< ConfigL_t > & | q0, |
const Eigen::MatrixBase< ConfigR_t > & | q1, | ||
const Eigen::MatrixBase< JacobianLOut_t > & | J0, | ||
const Eigen::MatrixBase< JacobianROut_t > & | J1 | ||
) | const |
Computes the Jacobian of the difference operation.
[in] | q0 | the initial configuration vector. |
[in] | q1 | the terminal configuration vector. |
[out] | J0 | the Jacobian of the difference operation with respect to q0. |
[out] | J1 | the Jacobian of the difference operation with respect to q1. |
Definition at line 143 of file operation-base.hxx.
void normalize | ( | const Eigen::MatrixBase< Config_t > & | qout | ) | const |
Normalize the joint configuration given as input. For instance, the quaternion must be unitary.
[out] | qout | the normalized joint configuration. |
Definition at line 92 of file operation-base.hxx.
Referenced by LieGroupBase< Derived >::interpolate().
LieGroupBase< Derived >::Index nq | ( | ) | const |
Get dimension of Lie Group vector representation
For instance, for SO(3), the dimension of the vector representation is 4 (quaternion) while the dimension of the tangent space is 3.
Definition at line 290 of file operation-base.hxx.
References LieGroupBase< Derived >::nq().
Referenced by LieGroupBase< Derived >::nq().
void random | ( | const Eigen::MatrixBase< Config_t > & | qout | ) | const |
Generate a random joint configuration, normalizing quaternions when necessary.
[out] | qout | the random joint configuration. |
Definition at line 109 of file operation-base.hxx.
void randomConfiguration | ( | const Eigen::MatrixBase< ConfigL_t > & | lower_pos_limit, |
const Eigen::MatrixBase< ConfigR_t > & | upper_pos_limit, | ||
const Eigen::MatrixBase< ConfigOut_t > & | qout | ||
) | const |
Generate a configuration vector uniformly sampled among provided limits.
[in] | lower_pos_limit | the lower joint limit vector. |
[in] | upper_pos_limit | the upper joint limit vector. |
[out] | qout | the random joint configuration in the two bounds. |
Definition at line 117 of file operation-base.hxx.
Referenced by LieGroupBase< Derived >::isSameConfiguration().
LieGroupBase< Derived >::Scalar squaredDistance | ( | const Eigen::MatrixBase< ConfigL_t > & | q0, |
const Eigen::MatrixBase< ConfigR_t > & | q1 | ||
) | const |
Squared distance between two joint configurations.
[in] | q0 | the initial configuration vector. |
[in] | q1 | the terminal configuration vector. |
[out] | d | the corresponding distance betwenn q0 and q1. |
Definition at line 159 of file operation-base.hxx.