Dynamic Cartesian product composed of elementary Lie groups defined in LieGroupVariant.
More...
|
| CartesianProductOperationVariantTpl () |
| Default constructor.
|
|
| CartesianProductOperationVariantTpl (const LieGroupGeneric &lg) |
| Constructor with one single Lie group. More...
|
|
| CartesianProductOperationVariantTpl (const LieGroupGeneric &lg1, const LieGroupGeneric &lg2) |
| Constructor with two Lie groups. More...
|
|
template<typename LieGroupDerived > |
void | append (const LieGroupBase< LieGroupDerived > &lg) |
| Append a Lie group to the Cartesian product. More...
|
|
void | append (const LieGroupGeneric &lg) |
| Append a Lie group to the Cartesian product. More...
|
|
template<ArgumentPosition arg, class ConfigL_t , class ConfigR_t , class JacobianOut_t > |
void | dDifference_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianOut_t > &J) const |
|
template<ArgumentPosition arg, class ConfigL_t , class ConfigR_t , class JacobianIn_t , class JacobianOut_t > |
void | dDifference_product_impl (const ConfigL_t &q0, const ConfigR_t &q1, const JacobianIn_t &Jin, JacobianOut_t &Jout, bool dDifferenceOnTheLeft, const AssignmentOperatorType op) const |
|
template<class ConfigL_t , class ConfigR_t , class Tangent_t > |
void | difference_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< Tangent_t > &d) const |
|
template<class Config_t , class Tangent_t , class JacobianOut_t > |
void | dIntegrate_dq_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const AssignmentOperatorType op=SETTO) const |
|
template<class Config_t , class Tangent_t , class JacobianOut_t > |
void | dIntegrate_dv_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const AssignmentOperatorType op=SETTO) const |
|
template<class Config_t , class Tangent_t , class JacobianIn_t , class JacobianOut_t > |
void | dIntegrate_product_impl (const Config_t &q, const Tangent_t &v, const JacobianIn_t &Jin, JacobianOut_t &Jout, bool dIntegrateOnTheLeft, const ArgumentPosition arg, const AssignmentOperatorType op) const |
|
template<class Config_t , class Tangent_t , class JacobianIn_t , class JacobianOut_t > |
void | dIntegrateTransport_dq_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &J_in, const Eigen::MatrixBase< JacobianOut_t > &J_out) const |
|
template<class Config_t , class Tangent_t , class JacobianOut_t > |
void | dIntegrateTransport_dq_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J) const |
|
template<class Config_t , class Tangent_t , class JacobianIn_t , class JacobianOut_t > |
void | dIntegrateTransport_dv_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &J_in, const Eigen::MatrixBase< JacobianOut_t > &J_out) const |
|
template<class Config_t , class Tangent_t , class JacobianOut_t > |
void | dIntegrateTransport_dv_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J) const |
|
template<class ConfigIn_t , class Velocity_t , class ConfigOut_t > |
void | integrate_impl (const Eigen::MatrixBase< ConfigIn_t > &q, const Eigen::MatrixBase< Velocity_t > &v, const Eigen::MatrixBase< ConfigOut_t > &qout) const |
|
template<class Config_t , class Jacobian_t > |
void | integrateCoeffWiseJacobian_impl (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Jacobian_t > &J) const |
|
template<typename LieGroup1 , typename LieGroup2 > |
bool | isEqual (const CartesianProductOperation< LieGroup1, LieGroup2 > &other) const |
|
bool | isEqual_impl (const CartesianProductOperationVariantTpl &other) const |
|
template<class Config_t > |
bool | isNormalized_impl (const Eigen::MatrixBase< Config_t > &qout, const Scalar &prec) 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 |
|
std::string | name () const |
|
ConfigVector_t | neutral () const |
|
template<class Config_t > |
void | normalize_impl (const Eigen::MatrixBase< Config_t > &qout) const |
|
int | nq () const |
|
int | nv () const |
|
CartesianProductOperationVariantTpl | operator* (const CartesianProductOperationVariantTpl &other) const |
| Cartesian product between *this and other. More...
|
|
CartesianProductOperationVariantTpl & | operator*= (const CartesianProductOperationVariantTpl &other) |
| Append other to *this. More...
|
|
template<typename LieGroupDerived > |
CartesianProductOperationVariantTpl & | operator*= (const LieGroupBase< LieGroupDerived > &lg) |
| Append a Lie group to *this. More...
|
|
CartesianProductOperationVariantTpl & | operator*= (const LieGroupGeneric &lg) |
| Append a Lie group to *this. More...
|
|
| PINOCCHIO_LIE_GROUP_TPL_PUBLIC_INTERFACE (CartesianProductOperationVariantTpl) |
|
template<class Config_t > |
void | random_impl (const Eigen::MatrixBase< Config_t > &qout) const |
|
template<class ConfigL_t , class ConfigR_t , class ConfigOut_t > |
void | randomConfiguration_impl (const Eigen::MatrixBase< ConfigL_t > &lower, const Eigen::MatrixBase< ConfigR_t > &upper, const Eigen::MatrixBase< ConfigOut_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 |
|
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...
|
|
void | integrateCoeffWiseJacobian (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Jacobian_t > &J) const |
| Computes the Jacobian of the integrate operator around zero. More...
|
|
void | dIntegrate (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, AssignmentOperatorType op=SETTO) const |
| Computes the Jacobian of a small variation of the configuration vector or the tangent vector into tangent space at identity. More...
|
|
void | dIntegrate (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const ArgumentPosition arg, const AssignmentOperatorType op=SETTO) const |
| Computes the Jacobian of a small variation of the configuration vector or the tangent vector into tangent space at identity. More...
|
|
void | dIntegrate_dq (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const AssignmentOperatorType op=SETTO) const |
| Computes the Jacobian of a small variation of the configuration vector into tangent space at identity. More...
|
|
void | dIntegrate_dq (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &Jin, int self, const Eigen::MatrixBase< JacobianOut_t > &Jout, const AssignmentOperatorType op=SETTO) const |
|
void | dIntegrate_dq (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, int self, const Eigen::MatrixBase< JacobianIn_t > &Jin, const Eigen::MatrixBase< JacobianOut_t > &Jout, const AssignmentOperatorType op=SETTO) const |
|
void | dIntegrate_dv (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const AssignmentOperatorType op=SETTO) const |
| Computes the Jacobian of a small variation of the tangent vector into tangent space at identity. More...
|
|
void | dIntegrate_dv (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, int self, const Eigen::MatrixBase< JacobianIn_t > &Jin, const Eigen::MatrixBase< JacobianOut_t > &Jout, const AssignmentOperatorType op=SETTO) const |
|
void | dIntegrate_dv (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &Jin, int self, const Eigen::MatrixBase< JacobianOut_t > &Jout, const AssignmentOperatorType op=SETTO) const |
|
void | dIntegrateTransport (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &Jin, const Eigen::MatrixBase< JacobianOut_t > &Jout, const ArgumentPosition arg) const |
| Transport a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments. More...
|
|
void | dIntegrateTransport (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< Jacobian_t > &J, const ArgumentPosition arg) const |
| Transport in place a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments. More...
|
|
void | dIntegrateTransport_dq (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &Jin, const Eigen::MatrixBase< JacobianOut_t > &Jout) const |
| Transport a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration argument. More...
|
|
void | dIntegrateTransport_dq (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< Jacobian_t > &J) const |
| Transport in place a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration argument. More...
|
|
void | dIntegrateTransport_dv (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &Jin, const Eigen::MatrixBase< JacobianOut_t > &Jout) const |
| Transport a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the velocity argument. More...
|
|
void | dIntegrateTransport_dv (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< Jacobian_t > &J) const |
| Transport in place a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the velocity argument. More...
|
|
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...
|
|
void | normalize (const Eigen::MatrixBase< Config_t > &qout) const |
| Normalize the joint configuration given as input. For instance, the quaternion must be unitary. More...
|
|
bool | isNormalized (const Eigen::MatrixBase< Config_t > &qin, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const |
| Check whether the input joint configuration is normalized. For instance, the quaternion must be unitary. More...
|
|
void | random (const Eigen::MatrixBase< Config_t > &qout) const |
| Generate a random joint configuration, normalizing quaternions when necessary. More...
|
|
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...
|
|
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...
|
|
void | dDifference (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianOut_t > &J) const |
| Computes the Jacobian of the difference operation with respect to q0 or q1. More...
|
|
void | dDifference (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianOut_t > &J, const ArgumentPosition arg) const |
| Computes the Jacobian of the difference operation with respect to q0 or q1. More...
|
|
void | dDifference (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianIn_t > &Jin, int self, const Eigen::MatrixBase< JacobianOut_t > &Jout, const AssignmentOperatorType op=SETTO) const |
|
void | dDifference (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, int self, const Eigen::MatrixBase< JacobianIn_t > &Jin, const Eigen::MatrixBase< JacobianOut_t > &Jout, const AssignmentOperatorType op=SETTO) const |
|
Scalar | squaredDistance (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const |
| Squared distance between two joint configurations. More...
|
|
Scalar | distance (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const |
| Distance between two configurations of the joint. More...
|
|
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...
|
|
bool | operator== (const LieGroupBase &other) const |
|
bool | operator!= (const LieGroupBase &other) const |
|
ConfigVector_t | integrate (const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v) const |
|
ConfigVector_t | interpolate (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Scalar &u) const |
|
ConfigVector_t | random () const |
|
ConfigVector_t | randomConfiguration (const Eigen::MatrixBase< ConfigL_t > &lower_pos_limit, const Eigen::MatrixBase< ConfigR_t > &upper_pos_limit) const |
|
TangentVector_t | difference (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const |
|
void | dIntegrate_product_impl (const Config_t &q, const Tangent_t &v, const JacobianIn_t &Jin, JacobianOut_t &Jout, bool dIntegrateOnTheLeft, const ArgumentPosition arg, const AssignmentOperatorType op) const |
|
void | dDifference_product_impl (const ConfigL_t &q0, const ConfigR_t &q1, const JacobianIn_t &Jin, JacobianOut_t &Jout, bool dDifferenceOnTheLeft, const AssignmentOperatorType op) const |
|
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 |
|
void | normalize_impl (const Eigen::MatrixBase< Config_t > &qout) const |
|
bool | isNormalized_impl (const Eigen::MatrixBase< Config_t > &qin, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const |
|
Scalar | squaredDistance_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const |
|
bool | isSameConfiguration_impl (const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Scalar &prec) const |
|
bool | isEqual_impl (const LieGroupBase &) const |
| Default equality check. By default, two LieGroupBase of same type are considered equal.
|
|
bool | isDifferent_impl (const LieGroupBase &other) 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.
|
|
CartesianProductOperationVariantTpl< _Scalar, _Options, LieGroupCollectionTpl > & | derived () |
|
const CartesianProductOperationVariantTpl< _Scalar, _Options, LieGroupCollectionTpl > & | derived () const |
|