hpp-pinocchio
5.1.0
Wrapping of the kinematic/dynamic chain Pinocchio for HPP.
|
Go to the documentation of this file.
29 #ifndef HPP_PINOCCHIO_LIEGROUP_SPACE_HH
30 #define HPP_PINOCCHIO_LIEGROUP_SPACE_HH
32 #include <boost/variant.hpp>
35 #include <hpp/util/serialization-fwd.hh>
36 #include <pinocchio/fwd.hpp>
37 #include <pinocchio/multibody/liegroup/special-euclidean.hpp>
38 #include <pinocchio/multibody/liegroup/special-orthogonal.hpp>
39 #include <pinocchio/multibody/liegroup/vector-space.hpp>
48 #ifdef HPP_PINOCCHIO_PARSED_BY_DOXYGEN
61 typedef boost::variant<liegroup::VectorSpaceOperation<Eigen::Dynamic, false>,
62 liegroup::VectorSpaceOperation<1, true>,
63 liegroup::VectorSpaceOperation<1, false>,
64 liegroup::VectorSpaceOperation<2, false>,
65 liegroup::VectorSpaceOperation<3, false>,
66 liegroup::VectorSpaceOperation<3, true>,
67 liegroup::CartesianProductOperation<
68 liegroup::VectorSpaceOperation<3, false>,
69 liegroup::SpecialOrthogonalOperation<3> >,
70 liegroup::CartesianProductOperation<
71 liegroup::VectorSpaceOperation<2, false>,
72 liegroup::SpecialOrthogonalOperation<2> >,
73 liegroup::SpecialOrthogonalOperation<2>,
74 liegroup::SpecialOrthogonalOperation<3>,
75 liegroup::SpecialEuclideanOperation<2>,
76 liegroup::SpecialEuclideanOperation<3> >
103 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
169 return liegroupTypes_;
209 template <DerivativeProduct s
ide>
235 template <DerivativeProduct s
ide>
240 template <
bool ApplyOnTheLeft>
253 template <DerivativeProduct s
ide>
265 template <DerivativeProduct s
ide>
280 std::string
name()
const;
303 void init(
const LiegroupSpaceWkPtr_t weak);
307 void computeNeutral();
308 typedef std::vector<LiegroupType> LiegroupTypes;
309 LiegroupTypes liegroupTypes_;
315 LiegroupSpaceWkPtr_t weak_;
344 #endif // HPP_PINOCCHIO_LIEGROUP_SPACE_HH
shared_ptr< const LiegroupSpace > LiegroupSpaceConstPtr_t
Definition: fwd.hh:151
LiegroupElementConstRef elementConstRef(vectorIn_t q) const
Create a LiegroupElementRef from a configuration.
static LiegroupSpacePtr_t R2xSO2()
Return .
static LiegroupSpacePtr_t R3()
Return as a Lie group.
static LiegroupSpacePtr_t empty()
Return empty Lie group.
double value_type
Definition: fwd.hh:51
void dIntegrate_dq(LiegroupElementConstRef q, vectorIn_t v, matrixOut_t J) const
LiegroupElement exp(vectorIn_t v) const
Return exponential of a tangent vector.
void interpolate(vectorIn_t q0, vectorIn_t q1, value_type u, vectorOut_t result) const
std::string name() const
Return name of Lie group.
Definition: liegroup-space.hh:101
ABoostVariant LiegroupType
Definition: liegroup-space.hh:59
hpp::pinocchio::LiegroupSpacePtr_t operator^(const hpp::pinocchio::LiegroupSpaceConstPtr_t &sp, hpp::pinocchio::size_type n)
Cartesian power by an integer.
shared_ptr< LiegroupSpace > LiegroupSpacePtr_t
Definition: fwd.hh:150
const std::vector< LiegroupType > & liegroupTypes() const
Get reference to vector of elementary types.
Definition: liegroup-space.hh:168
void Jdifference(vectorIn_t q0, vectorIn_t q1, matrixOut_t J0, matrixOut_t J1) const
DerivativeProduct
Definition: liegroup-space.hh:80
void dDifference_dq0(vectorIn_t q0, vectorIn_t q1, matrixOut_t J0) const
matrix_t::Index size_type
Definition: fwd.hh:97
static LiegroupSpacePtr_t create(const LiegroupType &type)
Create instance with one Elementary Lie group.
Definition: liegroup-space.hh:151
Utility functions.
Definition: body.hh:39
LiegroupElement element(vectorIn_t q) const
Create a LiegroupElement from a configuration.
size_type nq() const
Dimension of the vector representation.
Definition: liegroup-space.hh:159
Eigen::Ref< vector_t > vectorOut_t
Definition: fwd.hh:94
LiegroupElement neutral() const
Return the neutral element as a vector.
Eigen::Ref< const vector_t > vectorIn_t
Definition: fwd.hh:93
bool isVectorSpace() const
@ DerivativeTimesInput
Definition: liegroup-space.hh:80
static LiegroupSpacePtr_t SE2()
Return .
LiegroupSpacePtr_t operator*=(const LiegroupSpaceConstPtr_t &other)
static LiegroupSpacePtr_t Rn(const size_type &n)
bool operator!=(const LiegroupSpace &other) const
static LiegroupSpacePtr_t R3xSO3()
Return .
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > vector_t
Definition: fwd.hh:88
Definition: liegroup-space.hh:329
Eigen::Ref< matrix_t > matrixOut_t
Definition: fwd.hh:96
bool operator==(const LiegroupSpace &other) const
static LiegroupSpacePtr_t SO3()
Return .
void dIntegrate_dv(LiegroupElementConstRef q, vectorIn_t v, matrixOut_t Jv) const
std::ostream & operator<<(std::ostream &os, const hpp::pinocchio::Device &device)
Definition: device.hh:366
@ InputTimesDerivative
Definition: liegroup-space.hh:80
static LiegroupSpacePtr_t createCopy(const LiegroupSpaceConstPtr_t &other)
Create copy.
Definition: liegroup-space.hh:143
hpp::pinocchio::LiegroupSpacePtr_t operator*(const hpp::pinocchio::LiegroupSpaceConstPtr_t &sp1, const hpp::pinocchio::LiegroupSpaceConstPtr_t &sp2)
Cartesian product between Lie groups.
LiegroupElementRef elementRef(vectorOut_t q) const
Create a LiegroupElementRef from a configuration.
static LiegroupSpacePtr_t R1(bool rotation=false)
void dDifference_dq1(vectorIn_t q0, vectorIn_t q1, matrixOut_t J1) const
LiegroupSpacePtr_t vectorSpacesMerged() const
size_type nv() const
Dimension of the Lie group tangent space.
Definition: liegroup-space.hh:161
static LiegroupSpacePtr_t create(const size_type &size)
Create instance of vector space of given size.
Definition: liegroup-space.hh:135
static LiegroupSpacePtr_t R2()
Return as a Lie group.
static LiegroupSpacePtr_t SE3()
Return .
static LiegroupSpacePtr_t SO2()
Return .
Definition: collision-object.hh:40