pinocchio  2.1.3
pinocchio Namespace Reference

Main pinocchio namespace. More...

Namespaces

 buildModels
 Build simple models.
 
 cholesky
 Cholesky decompositions.
 
 container
 Specialized containers.
 
 forceSet
 Group force actions.
 
 lua
 Lua parsing.
 
 motionSet
 Group motion actions.
 
 quaternion
 Quaternion operations.
 
 regressor
 Regressor computation.
 
 srdf
 SRDF parsing.
 
 urdf
 URDF parsing.
 

Classes

struct  ABAChecker
 
struct  AlgorithmCheckerBase
 CRTP class describing the API of the checkers. More...
 
struct  AlgorithmCheckerList
 Checker having a list of Checker as input argument. More...
 
struct  BiasZeroTpl
 
struct  CartesianAxis
 
struct  CartesianProductOperation
 
struct  CartesianProductOperationVariant
 Dynamic Cartesian product composed of elementary Lie groups defined in LieGroupVariant. More...
 
struct  CastType
 Type of the cast of a class C templated by Scalar and Options, to a new NewScalar type. This class should be specialized for each types. More...
 
struct  CastType< NewScalar, JointModelCompositeTpl< Scalar, Options, JointCollectionTpl > >
 
struct  CastType< NewScalar, JointModelPrismaticTpl< Scalar, Options, axis > >
 
struct  CastType< NewScalar, JointModelRevoluteTpl< Scalar, Options, axis > >
 
struct  CastType< NewScalar, JointModelRevoluteUnboundedTpl< Scalar, Options, axis > >
 
struct  CastType< NewScalar, JointModelTpl< Scalar, Options, JointCollectionTpl > >
 
struct  CodeGenABA
 
struct  CodeGenABADerivatives
 
struct  CodeGenBase
 
struct  CodeGenCRBA
 
struct  CodeGenMinv
 
struct  CodeGenRNEA
 
struct  CodeGenRNEADerivatives
 
struct  CollisionPair
 
class  ConstraintBase
 
struct  ConstraintIdentityTpl
 
struct  ConstraintPlanarTpl
 
struct  ConstraintPrismatic
 
struct  ConstraintPrismaticUnaligned
 
struct  ConstraintRevoluteTpl
 
struct  ConstraintRevoluteUnalignedTpl
 
struct  ConstraintSphericalTpl
 
struct  ConstraintSphericalZYXTpl
 
class  ConstraintTpl
 
struct  ConstraintTranslationTpl
 
struct  CRBAChecker
 
struct  DataTpl
 
struct  eval_set_dim
 
struct  eval_set_dim< dim, Eigen::Dynamic >
 
struct  eval_set_dim< Eigen::Dynamic, dim >
 
class  Exception
 
class  ForceBase
 Base interface for forces representation. More...
 
class  ForceDense
 
class  ForceRef
 
class  ForceRef< const Vector6ArgType >
 
class  ForceSetTpl
 
class  ForceTpl
 
struct  FrameTpl
 A Plucker coordinate frame attached to a parent joint inside a kinematic tree. More...
 
struct  GeometryData
 
struct  GeometryModel
 
struct  GeometryObject
 
class  InertiaBase
 
class  InertiaTpl
 
struct  JointCollectionDefaultTpl
 
struct  JointCompositeTpl
 
struct  JointDataBase
 
struct  JointDataCompositeTpl
 
struct  JointDataFreeFlyerTpl
 
struct  JointDataPlanarTpl
 
struct  JointDataPrismaticTpl
 
struct  JointDataPrismaticUnalignedTpl
 
struct  JointDataRevoluteTpl
 
struct  JointDataRevoluteUnalignedTpl
 
struct  JointDataRevoluteUnboundedTpl
 
struct  JointDataSphericalTpl
 
struct  JointDataSphericalZYXTpl
 
struct  JointDataTpl
 
struct  JointDataTranslationTpl
 
struct  JointDataVoid
 
struct  JointFreeFlyerTpl
 
struct  JointModelBase
 
struct  JointModelCompositeTpl
 
struct  JointModelFreeFlyerTpl
 
struct  JointModelPlanarTpl
 
struct  JointModelPrismaticTpl
 
struct  JointModelPrismaticUnalignedTpl
 
struct  JointModelRevoluteTpl
 
struct  JointModelRevoluteUnalignedTpl
 
struct  JointModelRevoluteUnboundedTpl
 
struct  JointModelSphericalTpl
 
struct  JointModelSphericalZYXTpl
 
struct  JointModelTpl
 
struct  JointModelTranslationTpl
 
struct  JointModelVoid
 
struct  JointPlanarTpl
 
struct  JointPrismaticTpl
 
struct  JointPrismaticUnalignedTpl
 
struct  JointRevoluteTpl
 
struct  JointRevoluteUnalignedTpl
 
struct  JointRevoluteUnboundedTpl
 
struct  JointSphericalTpl
 
struct  JointSphericalZYXTpl
 
struct  JointTpl
 
struct  JointTranslationTpl
 
struct  LieGroup
 
struct  LieGroupBase
 
struct  LieGroupCollectionDefaultTpl
 
struct  LieGroupGenericTpl
 
struct  LieGroupMap
 
struct  ModelTpl
 
class  MotionBase
 
class  MotionDense
 
struct  MotionPlanarTpl
 
struct  MotionPrismaticTpl
 
struct  MotionPrismaticUnalignedTpl
 
class  MotionRef
 
class  MotionRef< const Vector6ArgType >
 
struct  MotionRevoluteTpl
 
struct  MotionRevoluteUnalignedTpl
 
struct  MotionSphericalTpl
 
class  MotionTpl
 
struct  MotionTranslationTpl
 
struct  ParentChecker
 Simple model checker, that assert that model.parents is indeed a tree. More...
 
struct  SE3Base
 
struct  SE3Tpl
 
struct  Serialize
 
struct  Serialize< JointModelCompositeTpl< Scalar, Options, JointCollectionTpl > >
 
struct  SINCOSAlgo
 Forward declaration. More...
 
struct  SINCOSAlgo< CppAD::AD< Scalar > >
 Implementation for CppAD scalar types. More...
 
struct  SINCOSAlgo< double >
 Specific evaluation of sin/cos for double type. More...
 
struct  SINCOSAlgo< float >
 Specific evaluation of sin/cos for float type. More...
 
struct  SINCOSAlgo< long double >
 Specific evaluation of sin/cos for long double. More...
 
struct  SizeDepType
 
struct  SizeDepType< Eigen::Dynamic >
 
struct  SpatialAxis
 
struct  SpecialEuclideanOperationTpl
 
struct  SpecialEuclideanOperationTpl< 2, _Scalar, _Options >
 
struct  SpecialEuclideanOperationTpl< 3, _Scalar, _Options >
 SE(3) More...
 
struct  SpecialOrthogonalOperationTpl
 
struct  SpecialOrthogonalOperationTpl< 2, _Scalar, _Options >
 
struct  SpecialOrthogonalOperationTpl< 3, _Scalar, _Options >
 
class  Symmetric3Tpl
 
struct  TaylorSeriesExpansion
 Helper struct to retrieve some useful information for a Taylor series expansion according to the a given Scalar type. More...
 
struct  TaylorSeriesExpansion< CppAD::AD< Scalar > >
 
struct  traits
 Common traits structure to fully define base classes for CRTP. More...
 
struct  traits< BiasZeroTpl< _Scalar, _Options > >
 
struct  traits< CartesianProductOperation< LieGroup1, LieGroup2 > >
 
struct  traits< CartesianProductOperationVariant >
 
struct  traits< ConstraintIdentityTpl< _Scalar, _Options > >
 
struct  traits< ConstraintPlanarTpl< _Scalar, _Options > >
 
struct  traits< ConstraintPrismatic< _Scalar, _Options, axis > >
 
struct  traits< ConstraintPrismaticUnaligned< _Scalar, _Options > >
 
struct  traits< ConstraintRevoluteTpl< _Scalar, _Options, axis > >
 
struct  traits< ConstraintRevoluteUnalignedTpl< _Scalar, _Options > >
 
struct  traits< ConstraintSphericalTpl< _Scalar, _Options > >
 
struct  traits< ConstraintSphericalZYXTpl< _Scalar, _Options > >
 
struct  traits< ConstraintTpl< _Dim, _Scalar, _Options > >
 
struct  traits< ConstraintTranslationTpl< _Scalar, _Options > >
 
struct  traits< ForceRef< Vector6ArgType > >
 
struct  traits< ForceTpl< _Scalar, _Options > >
 
struct  traits< InertiaTpl< T, U > >
 
struct  traits< JointCompositeTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< JointDataCompositeTpl< Scalar, Options, JointCollectionTpl > >
 
struct  traits< JointDataFreeFlyerTpl< Scalar, Options > >
 
struct  traits< JointDataPlanarTpl< Scalar, Options > >
 
struct  traits< JointDataPrismaticTpl< Scalar, Options, axis > >
 
struct  traits< JointDataPrismaticUnalignedTpl< Scalar, Options > >
 
struct  traits< JointDataRevoluteTpl< Scalar, Options, axis > >
 
struct  traits< JointDataRevoluteUnalignedTpl< Scalar, Options > >
 
struct  traits< JointDataRevoluteUnboundedTpl< Scalar, Options, axis > >
 
struct  traits< JointDataSphericalTpl< Scalar, Options > >
 
struct  traits< JointDataSphericalZYXTpl< Scalar, Options > >
 
struct  traits< JointDataTpl< Scalar, Options, JointCollectionTpl > >
 
struct  traits< JointDataTranslationTpl< Scalar, Options > >
 
struct  traits< JointFreeFlyerTpl< _Scalar, _Options > >
 
struct  traits< JointModelCompositeTpl< Scalar, Options, JointCollectionTpl > >
 
struct  traits< JointModelFreeFlyerTpl< Scalar, Options > >
 
struct  traits< JointModelPlanarTpl< Scalar, Options > >
 
struct  traits< JointModelPrismaticTpl< Scalar, Options, axis > >
 
struct  traits< JointModelPrismaticUnalignedTpl< Scalar, Options > >
 
struct  traits< JointModelRevoluteTpl< Scalar, Options, axis > >
 
struct  traits< JointModelRevoluteUnalignedTpl< Scalar, Options > >
 
struct  traits< JointModelRevoluteUnboundedTpl< Scalar, Options, axis > >
 
struct  traits< JointModelSphericalTpl< Scalar, Options > >
 
struct  traits< JointModelSphericalZYXTpl< Scalar, Options > >
 
struct  traits< JointModelTpl< Scalar, Options, JointCollectionTpl > >
 
struct  traits< JointModelTranslationTpl< Scalar, Options > >
 
struct  traits< JointPlanarTpl< _Scalar, _Options > >
 
struct  traits< JointPrismaticTpl< _Scalar, _Options, axis > >
 
struct  traits< JointPrismaticUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointRevoluteTpl< _Scalar, _Options, axis > >
 
struct  traits< JointRevoluteUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointRevoluteUnboundedTpl< _Scalar, _Options, axis > >
 
struct  traits< JointSphericalTpl< _Scalar, _Options > >
 
struct  traits< JointSphericalZYXTpl< _Scalar, _Options > >
 
struct  traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< JointTranslationTpl< _Scalar, _Options > >
 
struct  traits< LieGroupGenericTpl< LieGroupCollection > >
 
struct  traits< MotionPlanarTpl< _Scalar, _Options > >
 
struct  traits< MotionPrismaticTpl< _Scalar, _Options, _axis > >
 
struct  traits< MotionPrismaticUnalignedTpl< _Scalar, _Options > >
 
struct  traits< MotionRef< Vector6ArgType > >
 
struct  traits< MotionRevoluteTpl< _Scalar, _Options, axis > >
 
struct  traits< MotionRevoluteUnalignedTpl< _Scalar, _Options > >
 
struct  traits< MotionSphericalTpl< _Scalar, _Options > >
 
struct  traits< MotionTpl< _Scalar, _Options > >
 
struct  traits< MotionTranslationTpl< _Scalar, _Options > >
 
struct  traits< SE3Tpl< _Scalar, _Options > >
 
struct  traits< SpecialEuclideanOperationTpl< 2, _Scalar, _Options > >
 
struct  traits< SpecialEuclideanOperationTpl< 3, _Scalar, _Options > >
 
struct  traits< SpecialEuclideanOperationTpl< Dim, Scalar, Options > >
 
struct  traits< SpecialOrthogonalOperationTpl< 2, _Scalar, _Options > >
 
struct  traits< SpecialOrthogonalOperationTpl< 3, _Scalar, _Options > >
 
struct  traits< SpecialOrthogonalOperationTpl< Dim, Scalar, Options > >
 
struct  traits< TransformPrismaticTpl< _Scalar, _Options, _axis > >
 
struct  traits< TransformRevoluteTpl< _Scalar, _Options, _axis > >
 
struct  traits< TransformTranslationTpl< _Scalar, _Options > >
 
struct  traits< VectorSpaceOperationTpl< Dim, _Scalar, _Options > >
 
struct  TransformPrismaticTpl
 
struct  TransformRevoluteTpl
 
struct  TransformTranslationTpl
 
struct  VectorSpaceOperationTpl
 

Typedefs

typedef SpatialAxis< 0 > AxisVX
 
typedef SpatialAxis< 1 > AxisVY
 
typedef SpatialAxis< 2 > AxisVZ
 
typedef SpatialAxis< 3 > AxisWX
 
typedef SpatialAxis< 4 > AxisWY
 
typedef SpatialAxis< 5 > AxisWZ
 
typedef CartesianAxis< 0 > AxisX
 
typedef CartesianAxis< 1 > AxisY
 
typedef CartesianAxis< 2 > AxisZ
 
typedef BiasZeroTpl< double, 0 > BiasZero
 
typedef ConstraintTpl< 1, double, 0 > Constraint1d
 
typedef ConstraintTpl< 3, double, 0 > Constraint3d
 
typedef ConstraintTpl< 6, double, 0 > Constraint6d
 
typedef ConstraintTpl< Eigen::Dynamic, double, 0 > ConstraintXd
 
typedef DataTpl< double > Data
 
typedef ForceTpl< double, 0 > Force
 
typedef ForceSetTpl< double, 0 > ForceSet
 
typedef FrameTpl< double > Frame
 
typedef Index FrameIndex
 
typedef Index GeomIndex
 
typedef std::size_t Index
 
typedef InertiaTpl< double, 0 > Inertia
 
typedef JointTpl< double > Joint
 
typedef JointCollectionDefaultTpl< double > JointCollectionDefault
 
typedef JointDataTpl< double > JointData
 
typedef JointDataCompositeTpl< double > JointDataComposite
 
typedef JointDataFreeFlyerTpl< double > JointDataFreeFlyer
 
typedef JointDataPlanarTpl< double > JointDataPlanar
 
typedef JointDataPrismaticUnalignedTpl< double > JointDataPrismaticUnaligned
 
typedef JointDataPrismaticTpl< double, 0, 0 > JointDataPX
 
typedef JointDataPrismaticTpl< double, 0, 1 > JointDataPY
 
typedef JointDataPrismaticTpl< double, 0, 2 > JointDataPZ
 
typedef JointDataRevoluteUnalignedTpl< double > JointDataRevoluteUnaligned
 
typedef JointDataRevoluteUnboundedTpl< double, 0, 0 > JointDataRUBX
 
typedef JointDataRevoluteUnboundedTpl< double, 0, 1 > JointDataRUBY
 
typedef JointDataRevoluteUnboundedTpl< double, 0, 2 > JointDataRUBZ
 
typedef JointDataRevoluteTpl< double, 0, 0 > JointDataRX
 
typedef JointDataRevoluteTpl< double, 0, 1 > JointDataRY
 
typedef JointDataRevoluteTpl< double, 0, 2 > JointDataRZ
 
typedef JointDataSphericalTpl< double > JointDataSpherical
 
typedef JointDataSphericalZYXTpl< double > JointDataSphericalZYX
 
typedef JointDataTranslationTpl< double > JointDataTranslation
 
typedef JointCollectionDefault::JointDataVariant JointDataVariant
 
typedef container::aligned_vector< JointDataJointDataVector
 
typedef Index JointIndex
 
typedef JointModelTpl< double > JointModel
 
typedef JointModelCompositeTpl< double > JointModelComposite
 
typedef JointModelFreeFlyerTpl< double > JointModelFreeFlyer
 
typedef JointModelPlanarTpl< double > JointModelPlanar
 
typedef JointModelPrismaticUnalignedTpl< double > JointModelPrismaticUnaligned
 
typedef JointModelPrismaticTpl< double, 0, 0 > JointModelPX
 
typedef JointModelPrismaticTpl< double, 0, 1 > JointModelPY
 
typedef JointModelPrismaticTpl< double, 0, 2 > JointModelPZ
 
typedef JointModelRevoluteUnalignedTpl< double > JointModelRevoluteUnaligned
 
typedef JointModelRevoluteUnboundedTpl< double, 0, 0 > JointModelRUBX
 
typedef JointModelRevoluteUnboundedTpl< double, 0, 1 > JointModelRUBY
 
typedef JointModelRevoluteUnboundedTpl< double, 0, 2 > JointModelRUBZ
 
typedef JointModelRevoluteTpl< double, 0, 0 > JointModelRX
 
typedef JointModelRevoluteTpl< double, 0, 1 > JointModelRY
 
typedef JointModelRevoluteTpl< double, 0, 2 > JointModelRZ
 
typedef JointModelSphericalTpl< double > JointModelSpherical
 
typedef JointModelSphericalZYXTpl< double > JointModelSphericalZYX
 
typedef JointModelTranslationTpl< double > JointModelTranslation
 
typedef JointCollectionDefault::JointModelVariant JointModelVariant
 
typedef container::aligned_vector< JointModelJointModelVector
 
typedef JointPrismaticTpl< double, 0, 0 > JointPX
 
typedef JointPrismaticTpl< double, 0, 1 > JointPY
 
typedef JointPrismaticTpl< double, 0, 2 > JointPZ
 
typedef JointRevoluteUnboundedTpl< double, 0, 0 > JointRUBX
 
typedef JointRevoluteUnboundedTpl< double, 0, 1 > JointRUBY
 
typedef JointRevoluteUnboundedTpl< double, 0, 2 > JointRUBZ
 
typedef JointRevoluteTpl< double, 0, 0 > JointRX
 
typedef JointRevoluteTpl< double, 0, 1 > JointRY
 
typedef JointRevoluteTpl< double, 0, 2 > JointRZ
 
typedef LieGroupCollectionDefaultTpl< double > LieGroupCollectionDefault
 
typedef boost::variant< SpecialOrthogonalOperationTpl< 2, double, 0 >,SpecialOrthogonalOperationTpl< 3, double, 0 >,SpecialEuclideanOperationTpl< 2, double, 0 >,SpecialEuclideanOperationTpl< 3, double, 0 >,VectorSpaceOperationTpl< 1, double >,VectorSpaceOperationTpl< 2, double >,VectorSpaceOperationTpl< 3, double >,VectorSpaceOperationTpl< Eigen::Dynamic, double > > LieGroupVariant
 
typedef ModelTpl< double > Model
 
typedef MotionTpl< double, 0 > Motion
 
typedef MotionPlanarTpl< double > MotionPlanar
 
typedef MotionPrismaticUnalignedTpl< double > MotionPrismaticUnaligned
 
typedef MotionRevoluteUnalignedTpl< double > MotionRevoluteUnaligned
 
typedef MotionSphericalTpl< double > MotionSpherical
 
typedef MotionTranslationTpl< double > MotionTranslation
 
typedef Index PairIndex
 
typedef SE3Tpl< double, 0 > SE3
 
typedef Symmetric3Tpl< double, 0 > Symmetric3
 

Enumerations

enum  { MAX_JOINT_NV = 6 }
 
enum  ArgumentPosition {
  ARG0 = 0,
  ARG1 = 1,
  ARG2 = 2,
  ARG3 = 3,
  ARG4 = 4
}
 Argument position. Used as template parameter to refer to an argument.
 
enum  AssignmentOperatorType {
  SETTO,
  ADDTO,
  RMTO
}
 
enum  FrameType {
  OP_FRAME = 0x1 << 0,
  JOINT = 0x1 << 1,
  FIXED_JOINT = 0x1 << 2,
  BODY = 0x1 << 3,
  SENSOR = 0x1 << 4
}
 Enum on the possible types of frame.
 
enum  GeometryType {
  VISUAL,
  COLLISION
}
 
enum  ModelFileExtensionType {
  UNKNOWN = 0,
  URDF,
  LUA
}
 Supported model file extensions.
 
enum  ReferenceFrame {
  WORLD = 0,
  LOCAL = 1
}
 

Functions

template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & aba (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau)
 The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , typename ForceDerived >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & aba (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau, const container::aligned_vector< ForceDerived > &fext)
 The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model. More...
 
template<typename Vector3Like , typename Matrix3Like >
void addSkew (const Eigen::MatrixBase< Vector3Like > &v, const Eigen::MatrixBase< Matrix3Like > &M)
 Add skew matrix represented by a 3d vector to a given matrix, i.e. add the antisymmetric matrix representation of the cross product operator ( \( [v]_{\times} x = v \times x \)) More...
 
template<typename Scalar , typename Vector3 , typename Matrix3 >
void alphaSkew (const Scalar alpha, const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3 > &M)
 Computes the skew representation of a given 3d vector multiplied by a given scalar. i.e. the antisymmetric matrix representation of the cross product operator ( \( [\alpha v]_{\times} x = \alpha v \times x \)) More...
 
template<typename Scalar , typename Vector3 >
Eigen::Matrix< typename Vector3::Scalar, 3, 3, Vector3::Options > alphaSkew (const Scalar alpha, const Eigen::MatrixBase< Vector3 > &v)
 Computes the skew representation of a given 3d vector multiplied by a given scalar. i.e. the antisymmetric matrix representation of the cross product operator ( \( [\alpha v]_{\times} x = \alpha v \times x \)) More...
 
template<typename D1 , typename D2 >
D1::Scalar PINOCCHIO_DEPRECATED angleBetweenQuaternions (const Eigen::QuaternionBase< D1 > &q1, const Eigen::QuaternionBase< D2 > &q2)
 
void appendGeometryModel (GeometryModel &geomModel1, const GeometryModel &geomModel2)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void appendModel (const ModelTpl< Scalar, Options, JointCollectionTpl > &modelA, const ModelTpl< Scalar, Options, JointCollectionTpl > &modelB, FrameIndex frameInModelA, const SE3Tpl< Scalar, Options > &aMb, ModelTpl< Scalar, Options, JointCollectionTpl > &model)
 Append a child model into a parent model, after a specific frame. the model given as reference argument. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void appendModel (const ModelTpl< Scalar, Options, JointCollectionTpl > &modelA, const ModelTpl< Scalar, Options, JointCollectionTpl > &modelB, const GeometryModel &geomModelA, const GeometryModel &geomModelB, FrameIndex frameInModelA, const SE3Tpl< Scalar, Options > &aMb, ModelTpl< Scalar, Options, JointCollectionTpl > &model, GeometryModel &geomModel)
 Append a child model into a parent model, after a specific frame. the model given as reference argument. More...
 
template<int axis>
char axisLabel ()
 Generate the label (X, Y or Z) of the axis relative to its index. More...
 
template<>
char axisLabel< 0 > ()
 
template<>
char axisLabel< 1 > ()
 
template<>
char axisLabel< 2 > ()
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
MotionTpl< Scalar, Options > bias (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataTpl through JointBiasVisitor to get the joint bias as a dense motion. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename Matrix6Type >
void calc_aba (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata, const Eigen::MatrixBase< Matrix6Type > &I, const bool update_I)
 Visit a JointModelTpl and the corresponding JointDataTpl through JointCalcAbaVisitor to. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
void calc_first_order (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Visit a JointModelTpl and the corresponding JointDataTpl through JointCalcFirstOrderVisitor to compute the joint data kinematics at order one. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename ConfigVectorType >
void calc_zero_order (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata, const Eigen::MatrixBase< ConfigVectorType > &q)
 Visit a JointModelTpl and the corresponding JointDataTpl through JointCalcZeroOrderVisitor to compute the joint data kinematics at order zero. More...
 
template<typename NewScalar , typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
CastType< NewScalar, JointModelTpl< Scalar, Options, JointCollectionTpl > >::type cast_joint (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl<Scalar,...> to cast it into JointModelTpl<NewScalar,...> More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & ccrba (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Computes the Centroidal Momentum Matrix, the Composite Ridig Body Inertia as well as the centroidal momenta according to the current joint configuration and velocity. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::Vector3 & centerOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const bool computeSubtreeComs=true)
 Computes the center of mass position of a given model according to a particular joint configuration. The result is accessible through data.com[0] for the full body com and data.com[i] for the subtree supported by joint i (expressed in the joint i frame). More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::Vector3 & centerOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const bool computeSubtreeComs=true)
 Computes the center of mass position and velocity of a given model according to a particular joint configuration and velocity. The result is accessible through data.com[0], data.vcom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame). More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
const DataTpl< Scalar, Options, JointCollectionTpl >::Vector3 & centerOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a, const bool computeSubtreeComs=true)
 Computes the center of mass position, velocity and acceleration of a given model according to a particular joint configuration, velocity and acceleration. The result is accessible through data.com[0], data.vcom[0], data.acom[0] for the full body com position, velocity and acceleation. And data.com[i], data.vcom[i] and data.acom[i] for the subtree supported by joint i (expressed in the joint i frame). More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void centerOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const int LEVEL, const bool computeSubtreeComs=true)
 Computes the center of mass position, velocity and acceleration of a given model according to the current kinematic values contained in data and the requested level. The result is accessible through data.com[0], data.vcom[0] and data.acom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame). More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void centerOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const bool computeSubtreeComs=true)
 Computes the center of mass position, velocity and acceleration of a given model according to the current kinematic values contained in data. The result is accessible through data.com[0], data.vcom[0] and data.acom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame). More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
bool checkData (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data)
 
ModelFileExtensionType checkModelFileExtension (const std::string &filename)
 Extract the type of the given model file according to its extension. More...
 
bool checkVersionAtLeast (unsigned int major_version, unsigned int minor_version, unsigned int patch_version)
 Checks if the current version of Pinocchio is at least the version provided by the input arguments. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , typename MatrixType1 , typename MatrixType2 , typename MatrixType3 >
void computeABADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau, const Eigen::MatrixBase< MatrixType1 > &aba_partial_dq, const Eigen::MatrixBase< MatrixType2 > &aba_partial_dv, const Eigen::MatrixBase< MatrixType3 > &aba_partial_dtau)
 The derivatives of the Articulated-Body algorithm. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , typename MatrixType1 , typename MatrixType2 , typename MatrixType3 >
void computeABADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau, const container::aligned_vector< ForceTpl< Scalar, Options > > fext, const Eigen::MatrixBase< MatrixType1 > &aba_partial_dq, const Eigen::MatrixBase< MatrixType2 > &aba_partial_dv, const Eigen::MatrixBase< MatrixType3 > &aba_partial_dtau)
 The derivatives of the Articulated-Body algorithm with external forces. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
void computeABADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau)
 The derivatives of the Articulated-Body algorithm. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
void computeABADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau, const container::aligned_vector< ForceTpl< Scalar, Options > > fext)
 The derivatives of the Articulated-Body algorithm with external forces. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
void computeAllTerms (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Computes efficiently all the terms needed for dynamic simulation. It is equivalent to the call at the same time to: More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void computeBodyRadius (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const GeometryModel &geomModel, GeometryData &geomData)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::ForcecomputeCentroidalDynamics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Computes the Centroidal dynamics, a.k.a. the total momenta of the system expressed around the center of mass. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
const DataTpl< Scalar, Options, JointCollectionTpl >::ForcecomputeCentroidalDynamics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a)
 Computes the Centroidal dynamics and its time derivatives, a.k.a. the total momenta of the system and its time derivative expressed around the center of mass. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , typename Matrix6xLike0 , typename Matrix6xLike1 , typename Matrix6xLike2 , typename Matrix6xLike3 >
void computeCentroidalDynamicsDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a, const Eigen::MatrixBase< Matrix6xLike0 > &dh_dq, const Eigen::MatrixBase< Matrix6xLike1 > &dhdot_dq, const Eigen::MatrixBase< Matrix6xLike2 > &dhdot_dv, const Eigen::MatrixBase< Matrix6xLike3 > &dhdot_da)
 Computes the analytical derivatives of the centroidal dynamics with respect to the joint configuration vector, velocity and acceleration. More...
 
bool computeCollision (const GeometryModel &geomModel, GeometryData &geomData, const PairIndex &pairId)
 Compute the collision status between a SINGLE collision pair. The result is store in the collisionResults vector. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
bool computeCollisions (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const GeometryModel &geomModel, GeometryData &geomData, const Eigen::MatrixBase< ConfigVectorType > &q, const bool stopAtFirstCollision=false)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & computeCoriolisMatrix (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Computes the Coriolis Matrix \( C(q,\dot{q}) \) of the Lagrangian dynamics:

\( \begin{eqnarray} M \ddot{q} + C(q, \dot{q})\dot{q} + g(q) = \tau \end{eqnarray} \)


More...

 
fcl::DistanceResult & computeDistance (const GeometryModel &geomModel, GeometryData &geomData, const PairIndex &pairId)
 Compute the minimal distance between collision objects of a SINGLE collison pair. More...
 
template<bool ComputeShortest>
PINOCCHIO_DEPRECATED std::size_t computeDistances (const Model &model, Data &data, const GeometryModel &geomModel, GeometryData &geomData, const Eigen::VectorXd &q)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
std::size_t computeDistances (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const GeometryModel &geomModel, GeometryData &geomData, const Eigen::MatrixBase< ConfigVectorType > &q)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
std::size_t computeDistances (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const GeometryModel &geomModel, GeometryData &geomData)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
void computeForwardKinematicsDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a)
 Computes all the terms required to compute the derivatives of the placement, spatial velocity and acceleration for any joint of the model. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & computeGeneralizedGravity (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 Computes the generalized gravity contribution \( g(q) \) of the Lagrangian dynamics:

\( \begin{eqnarray} M \ddot{q} + c(q, \dot{q}) + g(q) = \tau \end{eqnarray} \)


More...

 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename ReturnMatrixType >
void computeGeneralizedGravityDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< ReturnMatrixType > &gravity_partial_dq)
 Computes the derivative of the generalized gravity contribution with respect to the joint configuration. More...
 
PINOCCHIO_DEPRECATED const Data::Matrix6xcomputeJacobians (const Model &model, Data &data, const Eigen::VectorXd &q)
 Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function computes also the forwardKinematics of the model. More...
 
PINOCCHIO_DEPRECATED const Data::Matrix6xcomputeJacobians (const Model &model, Data &data)
 Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function assumes that pinocchio::forwardKinematics has been called before. More...
 
PINOCCHIO_DEPRECATED const Data::Matrix6xcomputeJacobiansTimeVariation (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v)
 Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depends both on q and v. The result is accessible through data.dJ. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeJointJacobians (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function computes also the forwardKinematics of the model. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeJointJacobians (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function assumes that pinocchio::forwardKinematics has been called before. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeJointJacobiansTimeVariation (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depends both on q and v. The result is accessible through data.dJ. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::RowMatrixXs & computeMinverse (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 Computes the inverse of the joint space inertia matrix using Articulated Body formulation. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , typename MatrixType1 , typename MatrixType2 , typename MatrixType3 >
void computeRNEADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a, const Eigen::MatrixBase< MatrixType1 > &rnea_partial_dq, const Eigen::MatrixBase< MatrixType2 > &rnea_partial_dv, const Eigen::MatrixBase< MatrixType3 > &rnea_partial_da)
 Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration, the joint velocity and the joint acceleration. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , typename MatrixType1 , typename MatrixType2 , typename MatrixType3 >
void computeRNEADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a, const container::aligned_vector< ForceTpl< Scalar, Options > > fext, const Eigen::MatrixBase< MatrixType1 > &rnea_partial_dq, const Eigen::MatrixBase< MatrixType2 > &rnea_partial_dv, const Eigen::MatrixBase< MatrixType3 > &rnea_partial_da)
 Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration, the joint velocity and the joint acceleration. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
void computeRNEADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a)
 Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration, the joint velocity and the joint acceleration. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
void computeRNEADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a, const container::aligned_vector< ForceTpl< Scalar, Options > > fext)
 Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration, the joint velocity and the joint acceleration. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void computeSubtreeMasses (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Compute the mass of each kinematic subtree and store it in data.mass. The element mass[0] corresponds to the total mass of the model. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
Scalar computeTotalMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model)
 Compute the total mass of the model and return it. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
Scalar computeTotalMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Compute the total mass of the model, put it in data.mass[0] and return it. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
ConstraintTpl< Eigen::Dynamic, Scalar, Options > constraint_xd (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataVariant through JointConstraintVisitor to get the joint constraint as a dense constraint. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void copy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &origin, DataTpl< Scalar, Options, JointCollectionTpl > &dest, int LEVEL)
 Copy part of the data from <orig> to <dest>. Template parameter can be used to select at which differential level the copy should occur. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & crba (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R. Featherstone, 2008). The result is accessible through data.M. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & crbaMinimal (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R. Featherstone, 2008). The result is accessible through data.M. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
JointDataTpl< Scalar, Options, JointCollectionTpl > createData (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through CreateData visitor to create a JointDataTpl. More...
 
template<typename Vector3 , typename Matrix3xIn , typename Matrix3xOut >
void cross (const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3xIn > &Min, const Eigen::MatrixBase< Matrix3xOut > &Mout)
 Applies the cross product onto the columns of M. More...
 
template<typename Vector3 , typename Matrix3x >
Matrix3x cross (const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3x > &M)
 Applies the cross product onto the columns of M. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & dccrba (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Computes the time derivative of the Centroidal Momentum Matrix according to the current configuration and velocity vectors. More...
 
template<typename D1 , typename D2 >
bool PINOCCHIO_DEPRECATED defineSameRotation (const Eigen::QuaternionBase< D1 > &q1, const Eigen::QuaternionBase< D2 > &q2, const typename D1::RealScalar &prec=Eigen::NumTraits< typename D1::Scalar >::dummy_precision())
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > dinv_inertia (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataTpl through JointDInvInertiaVisitor to get the D^{-1} matrix of the inertia matrix decomposition. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void emptyForwardPass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Browse through the kinematic structure with a void step. More...
 
template<typename Vector3Like >
Eigen::Matrix< typename Vector3Like::Scalar, 3, 3, Vector3Like::Options > exp3 (const Eigen::MatrixBase< Vector3Like > &v)
 Exp: so3 -> SO3. More...
 
template<typename MotionDerived >
SE3Tpl< typename MotionDerived::Scalar, typename MotionDerived::Vector3::Options > exp6 (const MotionDense< MotionDerived > &nu)
 Exp: se3 -> SE3. More...
 
template<typename Vector6Like >
SE3Tpl< typename Vector6Like::Scalar, Vector6Like::Options > exp6 (const Eigen::MatrixBase< Vector6Like > &v)
 Exp: se3 -> SE3. More...
 
std::vector< std::string > extractPathFromEnvVar (const std::string &env_var_name, const std::string &delimiter=":")
 Parse an environment variable if exists and extract paths according to the delimiter. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
ModelTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType finiteDifferenceIncrement (const ModelTpl< Scalar, Options, JointCollectionTpl > &model)
 Computes the finite difference increments for each degree of freedom according to the current joint configuration. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
Scalar finiteDifferenceIncrement (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Returns the finite difference increment of the joint model. More...
 
template<typename D >
void PINOCCHIO_DEPRECATED firstOrderNormalize (const Eigen::QuaternionBase< D > &q)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , typename ConstraintMatrixType , typename DriftVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & forwardDynamics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Eigen::MatrixBase< DriftVectorType > &gamma, const Scalar inv_damping=0., const bool updateKinematics=true)
 Compute the forward dynamics with contact constraints. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void forwardKinematics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 Update the joint placements according to the current joint configuration. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
void forwardKinematics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Update the joint placements and spatial velocities according to the current joint configuration and velocity. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
void forwardKinematics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a)
 Update the joint placements, spatial velocities and spatial accelerations according to the current joint configuration, velocity and acceleration. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename Matrix6Like >
void frameJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const FrameIndex frameId, const Eigen::MatrixBase< Matrix6Like > &J)
 Computes the Jacobian of a specific Frame expressed in the LOCAL frame coordinate system. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void framesForwardKinematics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 First calls the forwardKinematics on the model, then computes the placement of each frame. /sa pinocchio::forwardKinematics. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix3xOut >
void getCenterOfMassVelocityDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Matrix3xOut > &vcom_partial_dq)
 Computes the partial derivatie of the center-of-mass velocity with respect to the joint configuration q. You must first call computForwardKinematicsDerivatives and computeCenterOfMass(q,vq) before calling this function. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xLike0 , typename Matrix6xLike1 , typename Matrix6xLike2 , typename Matrix6xLike3 >
void getCentroidalDynamicsDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Matrix6xLike1 > &dh_dq, const Eigen::MatrixBase< Matrix6xLike1 > &dhdot_dq, const Eigen::MatrixBase< Matrix6xLike2 > &dhdot_dv, const Eigen::MatrixBase< Matrix6xLike3 > &dhdot_da)
 Retrive the analytical derivatives of the centroidal dynamics from the RNEA derivatives. pinocchio::computeRNEADerivatives should have been called first. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
const DataTpl< Scalar, Options, JointCollectionTpl >::Vector3 & getComFromCrba (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Extracts the center of mass position from the joint space inertia matrix (also called the mass matrix). More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
MotionTpl< Scalar, Options > getFrameAcceleration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex frame_id)
 Returns the spatial acceleration of the frame expressed in the LOCAL frame coordinate system. You must first call pinocchio::forwardKinematics to update placement values in data structure. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename MotionLike >
PINOCCHIO_DEPRECATED void getFrameAcceleration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex frame_id, const MotionDense< MotionLike > &frame_a)
 Returns the spatial acceleration of the frame expressed in the LOCAL frame coordinate system. You must first call pinocchio::forwardKinematics to update placement values in data structure. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xLike >
void getFrameJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex frame_id, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xLike > &J)
 Returns the jacobian of the frame expressed either expressed in the LOCAL frame coordinate system or in the WORLD coordinate system, depending on the value of rf. You must first call pinocchio::computeJointJacobians followed by pinocchio::framesForwardKinematics to update placement values in data structure. More...
 
template<ReferenceFrame rf>
PINOCCHIO_DEPRECATED void getFrameJacobian (const Model &model, const Data &data, const Model::FrameIndex frame_id, Data::Matrix6x &J)
 Returns the jacobian of the frame expresssed either expressed in the LOCAL frame coordinate system or in the WORLD coordinate system, depending on the value of rf. You must first call pinocchio::computeJointJacobians followed by pinocchio::updateFramePlacements to update placement values in data structure. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xLike >
PINOCCHIO_DEPRECATED void getFrameJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex frame_id, const Eigen::MatrixBase< Matrix6xLike > &J)
 Returns the jacobian of the frame expresssed in the LOCAL coordinate system of the frame. You must first call pinocchio::computeJointJacobians followed by pinocchio::updateFramePlacements to update placement values in data structure. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xLike >
void getFrameJacobianTimeVariation (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex frame_id, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xLike > &dJ)
 Computes the Jacobian time variation of a specific frame (given by frame_id) expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL). More...
 
template<ReferenceFrame rf>
PINOCCHIO_DEPRECATED void getFrameJacobianTimeVariation (const Model &model, const Data &data, const Model::FrameIndex frameId, Data::Matrix6x &dJ)
 Computes the Jacobian time variation of a specific frame (given by frame_id) expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL). More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
MotionTpl< Scalar, Options > getFrameVelocity (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex frame_id)
 Returns the spatial velocity of the frame expressed in the LOCAL frame coordinate system. You must first call pinocchio::forwardKinematics to update placement and velocity values in data structure. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename MotionLike >
PINOCCHIO_DEPRECATED void getFrameVelocity (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex frame_id, const MotionDense< MotionLike > &frame_v)
 Returns the spatial velocity of the frame expressed in the LOCAL frame coordinate system. You must first call pinocchio::forwardKinematics to update placement and velocity values in data structure. More...
 
template<ReferenceFrame rf>
PINOCCHIO_DEPRECATED void getJacobian (const Model &model, const Data &data, const Model::JointIndex jointId, Data::Matrix6x &J)
 Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix3x & getJacobianComFromCrba (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Extracts both the jacobian of the center of mass (CoM), the total mass of the system and the CoM position from the joint space inertia matrix (also called the mass matrix). The results are accessible through data.Jcom, data.mass[0] and data.com[0] and are both expressed in the world frame. More...
 
template<ReferenceFrame rf>
PINOCCHIO_DEPRECATED void getJacobianTimeVariation (const Model &model, const Data &data, const Model::JointIndex jointId, Data::Matrix6x &dJ)
 Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xOut1 , typename Matrix6xOut2 , typename Matrix6xOut3 , typename Matrix6xOut4 >
void getJointAccelerationDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex jointId, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xOut1 > &v_partial_dq, const Eigen::MatrixBase< Matrix6xOut2 > &a_partial_dq, const Eigen::MatrixBase< Matrix6xOut3 > &a_partial_dv, const Eigen::MatrixBase< Matrix6xOut4 > &a_partial_da)
 Computes the partial derivaties of the spatial acceleration of a given with respect to the joint configuration, velocity and acceleration. You must first call computForwardKinematicsDerivatives before calling this function. It is important to notice that a direct outcome (for free) of this algo is v_partial_dq and v_partial_dv which is equal to a_partial_da. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6Like >
void getJointJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::JointIndex jointId, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6Like > &J)
 Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint. More...
 
template<ReferenceFrame rf>
PINOCCHIO_DEPRECATED void getJointJacobian (const Model &model, const Data &data, const Model::JointIndex jointId, Data::Matrix6x &J)
 Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6Like >
void getJointJacobianTimeVariation (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex jointId, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6Like > &dJ)
 Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint. More...
 
template<ReferenceFrame rf>
PINOCCHIO_DEPRECATED void getJointJacobianTimeVariation (const Model &model, const Data &data, const Model::JointIndex jointId, Data::Matrix6x &dJ)
 Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xOut1 , typename Matrix6xOut2 >
void getJointVelocityDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex jointId, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xOut1 > &v_partial_dq, const Eigen::MatrixBase< Matrix6xOut2 > &v_partial_dv)
 Computes the partial derivaties of the spatial velocity of a given with respect to the joint configuration and velocity. You must first call computForwardKinematicsDerivatives before calling this function. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConstraintMatrixType , typename KKTMatrixType >
void getKKTContactDynamicMatrixInverse (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Eigen::MatrixBase< KKTMatrixType > &MJtJ_inv)
 Computes the inverse of the KKT matrix for dynamics with contact constraints, [[M JT], [J 0]]. The matrix is defined when we call forwardDynamics/impulsedynamics. This method makes use of the matrix decompositions performed during the forwardDynamics/impulasedynamics and returns the inverse. The jacobian should be the same that was provided to forwardDynamics/impulasedynamics. Thus you should call forward Dynamics/impulsedynamics first. More...
 
template<typename Derived >
bool hasNaN (const Eigen::DenseBase< Derived > &m)
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
JointIndex id (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through JointIdVisitor to get the index of the joint in the kinematic chain. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
int idx_q (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through JointIdxQVisitor to get the index in the full model configuration space corresponding to the first degree of freedom of the Joint. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
int idx_v (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through JointIdxVVisitor to get the index in the full model tangent space corresponding to the first joint tangent space degree. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType , typename ConstraintMatrixType >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & impulseDynamics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v_before, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Scalar r_coeff=0, const bool updateKinematics=true)
 Compute the impulse dynamics with contact constraints. More...
 
template<typename LieGroupCollection , class ConfigIn_t , class Tangent_t , class ConfigOut_t >
void integrate (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigIn_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< ConfigOut_t > &qout)
 Visit a LieGroupVariant to call its integrate method. More...
 
PINOCCHIO_DEPRECATED void jacobian (const Model &model, Data &data, const Eigen::VectorXd &q, const Model::JointIndex jointId, Data::Matrix6x &J)
 Computes the Jacobian of a specific joint frame expressed in the local frame of the joint and store the result in the input argument J. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
PINOCCHIO_DEPRECATED const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix3x & jacobianCenterOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const bool computeSubtreeComs, const bool updateKinematics)
 Computes both the jacobian and the the center of mass position of a given model according to a particular joint configuration. The results are accessible through data.Jcom and data.com[0] and are both expressed in the world frame. In addition, the algorithm also computes the Jacobian of all the joints (. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix3x & jacobianCenterOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const bool computeSubtreeComs=true)
 Computes both the jacobian and the the center of mass position of a given model according to a particular joint configuration. The results are accessible through data.Jcom and data.com[0] and are both expressed in the world frame. In addition, the algorithm also computes the Jacobian of all the joints (. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix3x & jacobianCenterOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const bool computeSubtreeComs=true)
 Computes both the jacobian and the the center of mass position of a given model according to the current value stored in data. It assumes that forwardKinematics has been called first. The results are accessible through data.Jcom and data.com[0] and are both expressed in the world frame. In addition, the algorithm also computes the Jacobian of all the joints (. More...
 
template<typename Vector3Like , typename Matrix3Like >
void Jexp3 (const Eigen::MatrixBase< Vector3Like > &r, const Eigen::MatrixBase< Matrix3Like > &Jexp)
 Derivative of \( \exp{r} \)

\[ \frac{\sin{||r||}}{||r||} I_3 - \frac{1-\cos{||r||}}{||r||^2} \left[ r \right]_x + \frac{1}{||n||^2} (1-\frac{\sin{||r||}}{||r||}) r r^T \]

.

 
template<typename MotionDerived , typename Matrix6Like >
void Jexp6 (const MotionDense< MotionDerived > &nu, const Eigen::MatrixBase< Matrix6Like > &Jexp)
 Derivative of exp6 Computed as the inverse of Jlog6.
 
template<typename Scalar , typename Vector3Like , typename Matrix3Like >
void Jlog3 (const Scalar &theta, const Eigen::MatrixBase< Vector3Like > &log, const Eigen::MatrixBase< Matrix3Like > &Jlog)
 
template<typename Matrix3Like1 , typename Matrix3Like2 >
void Jlog3 (const Eigen::MatrixBase< Matrix3Like1 > &R, const Eigen::MatrixBase< Matrix3Like2 > &Jlog)
 
template<typename Scalar , int Options, typename Matrix6Like >
void Jlog6 (const SE3Tpl< Scalar, Options > &M, const Eigen::MatrixBase< Matrix6Like > &Jlog)
 Derivative of log6

\[ \left(\begin{array}{cc} \text{Jlog3}(R) & J * \text{Jlog3}(R) \\ 0 & \text{Jlog3}(R) \\ \end{array}\right) \]

where

\[ \def\rot{R} \begin{eqnarray} J &=& \left.\frac{1}{2}[\mathbf{p}]_{\times} + \dot{\beta} (||r||) \frac{\rot^T\mathbf{p}}{||r||}\rot\rot^T - (||r||\dot{\beta} (||r||) + 2 \beta(||r||)) \mathbf{p}\rot^T\right.\\ &&\left. + \rot^T\mathbf{p}\beta (||r||)I_3 + \beta (||r||)\rot\mathbf{p}^T\right. \end{eqnarray} \]

and

\[ \beta(x)=\left(\frac{1}{x^2} - \frac{\sin x}{2x(1-\cos x)}\right) \]

.

 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
SE3Tpl< Scalar, Options > joint_transform (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataTpl through JointTransformVisitor to get the joint internal transform (transform between the entry frame and the exit frame of the joint). More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename Matrix6Like >
void jointJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const JointIndex jointId, const Eigen::MatrixBase< Matrix6Like > &J)
 Computes the Jacobian of a specific joint frame expressed in the local frame of the joint and store the result in the input argument J. More...
 
PINOCCHIO_DEPRECATED const Data::Matrix6xjointJacobian (const Model &model, Data &data, const Eigen::VectorXd &q, const Model::JointIndex jointId)
 Computes the Jacobian of a specific joint frame expressed in the local frame of the joint. The result is stored in data.J. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
Scalar kineticEnergy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const bool update_kinematics=true)
 Computes the kinetic energy of the system. The result is accessible through data.kinetic_energy. More...
 
template<typename Matrix3Like >
Eigen::Matrix< typename Matrix3Like::Scalar, 3, 1, Matrix3Like::Options > log3 (const Eigen::MatrixBase< Matrix3Like > &R, typename Matrix3Like::Scalar &theta)
 Same as log3. More...
 
template<typename Matrix3Like >
Eigen::Matrix< typename Matrix3Like::Scalar, 3, 1, Matrix3Like::Options > log3 (const Eigen::MatrixBase< Matrix3Like > &R)
 Log: SO3 -> so3. More...
 
template<typename Scalar , int Options>
MotionTpl< Scalar, Options > log6 (const SE3Tpl< Scalar, Options > &M)
 Log: SE3 -> se3. More...
 
template<typename Matrix4Like >
MotionTpl< typename Matrix4Like::Scalar, Eigen::internal::traits< Matrix4Like >::Options > log6 (const Eigen::MatrixBase< Matrix4Like > &M)
 Log: SE3 -> se3. More...
 
AlgorithmCheckerList< ParentChecker, CRBAChecker, ABACheckermakeDefaultCheckerList ()
 Default checker-list, used as the default argument in Model::check().
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
MotionTpl< Scalar, Options > motion (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataTpl through JointMotionVisitor to get the joint internal motion as a dense motion. More...
 
template<typename LieGroupCollection >
std::string name (const LieGroupGenericTpl< LieGroupCollection > &lg)
 Visit a LieGroupVariant to get the name of it. More...
 
template<typename LieGroupCollection >
Eigen::Matrix< typename LieGroupCollection::Scalar, Eigen::Dynamic, 1, LieGroupCollection::Options > neutral (const LieGroupGenericTpl< LieGroupCollection > &lg)
 Visit a LieGroupVariant to get the neutral element of it. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & nonLinearEffects (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Computes the non-linear effects (Corriolis, centrifual and gravitationnal effects), also called the bias terms \( b(q,\dot{q}) \) of the Lagrangian dynamics:

\( \begin{eqnarray} M \ddot{q} + b(q, \dot{q}) = \tau \end{eqnarray} \)


More...

 
template<typename LieGroupCollection >
int nq (const LieGroupGenericTpl< LieGroupCollection > &lg)
 Visit a LieGroupVariant to get the dimension of the Lie group configuration space. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
int nq (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through JointNqVisitor to get the dimension of the joint configuration space. More...
 
template<typename LieGroupCollection >
int nv (const LieGroupGenericTpl< LieGroupCollection > &lg)
 Visit a LieGroupVariant to get the dimension of the Lie group tangent space. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
int nv (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through JointNvVisitor to get the dimension of the joint tangent space. More...
 
template<typename Scalar , int Options, typename Vector6Like >
MotionRef< const Vector6Like > operator* (const ConstraintIdentityTpl< Scalar, Options > &, const Eigen::MatrixBase< Vector6Like > &v)
 
template<typename S1 , int O1, typename S2 , int O2>
InertiaTpl< S1, O1 >::Matrix6 operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintIdentityTpl< S2, O2 > &)
 
template<typename Matrix6Like , typename S2 , int O2>
const Matrix6Like & operator* (const Eigen::MatrixBase< Matrix6Like > &Y, const ConstraintIdentityTpl< S2, O2 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S1, 6, 3, O1 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintSphericalZYXTpl< S2, O2 > &S)
 
template<typename F1 >
traits< F1 >::ForcePlain operator* (const typename traits< F1 >::Scalar alpha, const ForceDense< F1 > &f)
 Basic operations specialization.
 
template<typename Matrix6Like , typename S2 , int O2>
const Eigen::ProductReturnType< typename Eigen::internal::remove_const< typename SizeDepType< 3 >::ColsReturn< Matrix6Like >::ConstType >::type, typename ConstraintSphericalZYXTpl< S2, O2 >::Matrix3 >::Type operator* (const Eigen::MatrixBase< Matrix6Like > &Y, const ConstraintSphericalZYXTpl< S2, O2 > &S)
 
template<typename M1 >
traits< M1 >::MotionPlain operator* (const typename traits< M1 >::Scalar alpha, const MotionDense< M1 > &v)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S2, 6, 3, O2 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintSphericalTpl< S2, O2 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S1, 6, 1 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPrismaticUnaligned< S2, O2 > &cpu)
 
template<typename M6Like , typename S2 , int O2>
SizeDepType< 3 >::ColsReturn< M6Like >::ConstType operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintSphericalTpl< S2, O2 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S1, 6, 3, O1 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPlanarTpl< S2, O2 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S2, 6, 1, O2 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintRevoluteUnalignedTpl< S2, O2 > &cru)
 
template<typename M6 , typename S2 , int O2>
const Eigen::ProductReturnType< Eigen::Block< const M6, 6, 3 >, const typename ConstraintPrismaticUnaligned< S2, O2 >::Vector3 >::Type operator* (const Eigen::MatrixBase< M6 > &Y, const ConstraintPrismaticUnaligned< S2, O2 > &cpu)
 
template<typename M6Like , typename S2 , int O2>
Eigen::Matrix< S2, 6, 3, O2 > operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintPlanarTpl< S2, O2 > &)
 
template<typename M6Like , typename S2 , int O2>
const Eigen::ProductReturnType< typename Eigen::internal::remove_const< typename SizeDepType< 3 >::ColsReturn< M6Like >::ConstType >::type, typename ConstraintRevoluteUnalignedTpl< S2, O2 >::Vector3 >::Type operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintRevoluteUnalignedTpl< S2, O2 > &cru)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S1, 6, 1, O1 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPrismatic< S2, O2, 0 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S1, 6, 1, O1 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPrismatic< S2, O2, 1 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S2, 6, 3, O2 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintTranslationTpl< S2, O2 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S1, 6, 1, O1 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPrismatic< S2, O2, 2 > &)
 
template<typename M6Like , typename S2 , int O2>
const SizeDepType< 3 >::ColsReturn< M6Like >::ConstType operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintTranslationTpl< S2, O2 > &)
 
template<typename M6Like , typename S2 , int O2, int axis>
const M6Like::ConstColXpr operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintPrismatic< S2, O2, axis > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S2, 6, 1, O2 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintRevoluteTpl< S2, O2, 0 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S2, 6, 1, O2 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintRevoluteTpl< S2, O2, 1 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S2, 6, 1, O2 > operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintRevoluteTpl< S2, O2, 2 > &)
 
template<typename M6Like , typename S2 , int O2, int axis>
const M6Like::ConstColXpr operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintRevoluteTpl< S2, O2, axis > &)
 
template<typename M1 , typename Scalar , int Options>
const M1 & operator+ (const MotionBase< M1 > &v, const BiasZeroTpl< Scalar, Options > &)
 
template<typename Scalar , int Options, typename M1 >
const M1 & operator+ (const BiasZeroTpl< Scalar, Options > &, const MotionBase< M1 > &v)
 
template<typename Scalar , int Options, int axis, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionPrismaticTpl< Scalar, Options, axis > &m1, const MotionDense< MotionDerived > &m2)
 
template<typename Scalar , int Options, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionPrismaticUnalignedTpl< Scalar, Options > &m1, const MotionDense< MotionDerived > &m2)
 
template<typename S1 , int O1, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionRevoluteUnalignedTpl< S1, O1 > &m1, const MotionDense< MotionDerived > &m2)
 
template<typename S1 , int O1, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionTranslationTpl< S1, O1 > &m1, const MotionDense< MotionDerived > &m2)
 
template<typename S1 , int O1, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionSphericalTpl< S1, O1 > &m1, const MotionDense< MotionDerived > &m2)
 
template<typename Scalar , int Options, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionPlanarTpl< Scalar, Options > &m1, const MotionDense< MotionDerived > &m2)
 
template<typename S1 , int O1, int axis, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionRevoluteTpl< S1, O1, axis > &m1, const MotionDense< MotionDerived > &m2)
 
template<typename Scalar , int Options>
std::ostream & operator<< (std::ostream &os, const FrameTpl< Scalar, Options > &f)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
std::ostream & operator<< (std::ostream &os, const JointDataCompositeTpl< Scalar, Options, JointCollectionTpl > &jdata)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
std::ostream & operator<< (std::ostream &os, const JointModelCompositeTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 
template<typename MotionDerived , typename S2 , int O2, int axis>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionPrismaticTpl< S2, O2, axis > &m2)
 
template<typename M1 , typename M2 >
traits< M1 >::MotionPlain operator^ (const MotionDense< M1 > &v1, const MotionDense< M2 > &v2)
 Basic operations specialization.
 
template<typename M1 , typename F1 >
traits< F1 >::ForcePlain operator^ (const MotionDense< M1 > &v, const ForceBase< F1 > &f)
 
template<typename MotionDerived , typename S2 , int O2>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionSphericalTpl< S2, O2 > &m2)
 
template<typename MotionDerived , typename S2 , int O2, int axis>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionRevoluteTpl< S2, O2, axis > &m2)
 
template<typename MotionDerived , typename S2 , int O2>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionPrismaticUnalignedTpl< S2, O2 > &m2)
 
template<typename MotionDerived , typename S2 , int O2>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionPlanarTpl< S2, O2 > &m2)
 
template<typename MotionDerived , typename S2 , int O2>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionRevoluteUnalignedTpl< S2, O2 > &m2)
 
template<typename MotionDerived , typename S2 , int O2>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionTranslationTpl< S2, O2 > &m2)
 
template<typename Scalar >
const Scalar PI ()
 Returns the value of PI according to the template parameters Scalar. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
Scalar potentialEnergy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const bool update_kinematics=true)
 Computes the potential energy of the system, i.e. the potential energy linked to the gravity field. The result is accessible through data.potential_energy. More...
 
std::string printVersion (const std::string &delimiter=".")
 Returns the current version of Pinocchio as a string using the following standard: PINOCCHIO_MINOR_VERSION.PINOCCHIO_MINOR_VERSION.PINOCCHIO_PATCH_VERSION.
 
std::string randomStringGenerator (const int len)
 Generate a random string composed of alphanumeric symbols of a given length. More...
 
std::string retrieveResourcePath (const std::string &string, const std::vector< std::string > &package_dirs)
 Retrieve the path of the file whose path is given in an url-format. Currently convert from the folliwing patterns : package:// or file://. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & rnea (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a)
 The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques according to the current state of the system and the desired joint accelerations. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , typename ForceDerived >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & rnea (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a, const container::aligned_vector< ForceDerived > &fext)
 The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques according to the current state of the system, the desired joint accelerations and the external forces. More...
 
std::vector< std::string > rosPaths ()
 Parse the environment variable ROS_PACKAGE_PATH and extract paths. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
void setIndexes (JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointIndex id, int q, int v)
 Visit a JointModelTpl through JointSetIndexesVisitor to set the indexes of the joint in the kinematic chain. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
std::string shortname (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through JointShortnameVisitor to get the shortname of the derived joint model. More...
 
template<typename Scalar >
void SINCOS (const Scalar &a, Scalar *sa, Scalar *ca)
 Computes sin/cos values of a given input scalar. More...
 
template<typename Vector3 , typename Matrix3 >
void skew (const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3 > &M)
 Computes the skew representation of a given 3d vector, i.e. the antisymmetric matrix representation of the cross product operator ( \( [v]_{\times} x = v \times x \)) More...
 
template<typename D >
Eigen::Matrix< typename D::Scalar, 3, 3, D::Options > skew (const Eigen::MatrixBase< D > &v)
 Computes the skew representation of a given 3D vector, i.e. the antisymmetric matrix representation of the cross product operator. More...
 
template<typename V1 , typename V2 , typename Matrix3 >
void skewSquare (const Eigen::MatrixBase< V1 > &u, const Eigen::MatrixBase< V2 > &v, const Eigen::MatrixBase< Matrix3 > &C)
 Computes the square cross product linear operator C(u,v) such that for any vector w, \( u \times ( v \times w ) = C(u,v) w \). More...
 
template<typename V1 , typename V2 >
Eigen::Matrix< typename V1::Scalar, 3, 3, V1::Options > skewSquare (const Eigen::MatrixBase< V1 > &u, const Eigen::MatrixBase< V2 > &v)
 Computes the square cross product linear operator C(u,v) such that for any vector w, \( u \times ( v \times w ) = C(u,v) w \). More...
 
hpp::fcl::Transform3f toFclTransform3f (const SE3 &m)
 
SE3 toPinocchioSE3 (const hpp::fcl::Transform3f &tf)
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > u_inertia (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataTpl through JointUInertiaVisitor to get the U matrix of the inertia matrix decomposition. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > udinv_inertia (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataTpl through JointUDInvInertiaVisitor to get U*D^{-1} matrix of the inertia matrix decomposition. More...
 
template<typename D >
void PINOCCHIO_DEPRECATED uniformRandom (const Eigen::QuaternionBase< D > &q)
 
template<typename Matrix3 , typename Vector3 >
void unSkew (const Eigen::MatrixBase< Matrix3 > &M, const Eigen::MatrixBase< Vector3 > &v)
 Inverse of skew operator. From a given skew-symmetric matrix M of dimension 3x3, it extracts the supporting vector, i.e. the entries of M. Mathematically speacking, it computes \( v \) such that \( M x = v \times x \). More...
 
template<typename Matrix3 >
Eigen::Matrix< typename Matrix3::Scalar, 3, 1, Matrix3::Options > unSkew (const Eigen::MatrixBase< Matrix3 > &M)
 Inverse of skew operator. From a given skew-symmetric matrix M of dimension 3x3, it extracts the supporting vector, i.e. the entries of M. Mathematically speacking, it computes \( v \) such that \( M x = v \times x \). More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
const DataTpl< Scalar, Options, JointCollectionTpl >::SE3updateFramePlacement (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex frame_id)
 Updates the placement of the given frame. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void updateFramePlacements (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Updates the position of each frame contained in the model. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void updateGeometryPlacements (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const GeometryModel &geomModel, GeometryData &geomData, const Eigen::MatrixBase< ConfigVectorType > &q)
 Apply a forward kinematics and update the placement of the geometry objects. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void updateGeometryPlacements (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const GeometryModel &geomModel, GeometryData &geomData)
 Update the placement of the geometry objects according to the current joint placements contained in data. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void updateGlobalPlacements (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Update the global placement of the joints oMi according to the relative placements of the joints. More...
 
API with return value as argument
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType , typename ReturnType >
void integrate (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< ReturnType > &qout)
 Integrate a configuration vector for the specified model for a tangent vector during one unit time. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType , typename ReturnType >
void integrate (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< ReturnType > &qout)
 Integrate a configuration vector for the specified model for a tangent vector during one unit time. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 , typename ReturnType >
void interpolate (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1, const Scalar &u, const Eigen::MatrixBase< ReturnType > &qout)
 Interpolate two configurations for a given model. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 , typename ReturnType >
void difference (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1, const Eigen::MatrixBase< ReturnType > &dvout)
 Compute the tangent vector that must be integrated during one unit time to go from q0 to q1. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 , typename ReturnType >
void difference (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1, const Eigen::MatrixBase< ReturnType > &dvout)
 Compute the tangent vector that must be integrated during one unit time to go from q0 to q1. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 , typename ReturnType >
void squaredDistance (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1, const Eigen::MatrixBase< ReturnType > &out)
 Squared distance between two configuration vectors. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 , typename ReturnType >
void squaredDistance (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1, const Eigen::MatrixBase< ReturnType > &out)
 Squared distance between two configuration vectors. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 , typename ReturnType >
void randomConfiguration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &lowerLimits, const Eigen::MatrixBase< ConfigVectorIn2 > &upperLimits, const Eigen::MatrixBase< ReturnType > &qout)
 Generate a configuration vector uniformly sampled among provided limits. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 , typename ReturnType >
void randomConfiguration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &lowerLimits, const Eigen::MatrixBase< ConfigVectorIn2 > &upperLimits, const Eigen::MatrixBase< ReturnType > &qout)
 Generate a configuration vector uniformly sampled among provided limits. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ReturnType >
void neutral (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ReturnType > &qout)
 Return the neutral configuration element related to the model configuration space. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ReturnType >
void neutral (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ReturnType > &qout)
 Return the neutral configuration element related to the model configuration space. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType , typename JacobianMatrixType >
void dIntegrate (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< JacobianMatrixType > &J, const ArgumentPosition arg)
 Computes the Jacobian of a small variation of the configuration vector or the tangent vector into the tangent space at identity. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType , typename JacobianMatrixType >
void dIntegrate (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< JacobianMatrixType > &J, const ArgumentPosition arg)
 Computes the Jacobian of a small variation of the configuration vector or the tangent vector into the tangent space at identity. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
Scalar squaredDistanceSum (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1)
 Overall squared distance between two configuration vectors. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
Scalar squaredDistanceSum (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1)
 Overall squared distance between two configuration vectors. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
Scalar distance (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1)
 Distance between two configuration vectors. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
Scalar distance (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1)
 Distance between two configuration vectors. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void normalize (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &qout)
 Normalize a configuration vector. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void normalize (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &qout)
 Normalize a configuration vector. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
bool isSameConfiguration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q1, const Eigen::MatrixBase< ConfigVectorIn2 > &q2, const Scalar &prec)
 Return true if the given configurations are equivalents. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
bool isSameConfiguration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q1, const Eigen::MatrixBase< ConfigVectorIn2 > &q2, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision())
 Return true if the given configurations are equivalents. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVector , typename JacobianMatrix >
void integrateCoeffWiseJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVector > &q, const Eigen::MatrixBase< JacobianMatrix > &jacobian)
 Return the Jacobian of the integrate function for the components of the config vector. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVector , typename JacobianMatrix >
void integrateCoeffWiseJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVector > &q, const Eigen::MatrixBase< JacobianMatrix > &jacobian)
 Return the Jacobian of the integrate function for the components of the config vector. More...
 
API that allocates memory
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
ConfigVectorType integrate (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Integrate a configuration vector for the specified model for a tangent vector during one unit time. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
ConfigVectorType integrate (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Integrate a configuration vector for the specified model for a tangent vector during one unit time. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
ConfigVectorIn1 interpolate (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1, const Scalar &u)
 Interpolate two configurations for a given model. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
ConfigVectorIn1 difference (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1)
 Compute the tangent vector that must be integrated during one unit time to go from q0 to q1. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
ConfigVectorIn1 difference (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1)
 Compute the tangent vector that must be integrated during one unit time to go from q0 to q1. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
ConfigVectorIn1 squaredDistance (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1)
 Squared distance between two configuration vectors. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
ConfigVectorIn1 squaredDistance (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1)
 Squared distance between two configuration vectors. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType randomConfiguration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &lowerLimits, const Eigen::MatrixBase< ConfigVectorIn2 > &upperLimits)
 Generate a configuration vector uniformly sampled among provided limits. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType randomConfiguration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &lowerLimits, const Eigen::MatrixBase< ConfigVectorIn2 > &upperLimits)
 Generate a configuration vector uniformly sampled among provided limits. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType randomConfiguration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model)
 Generate a configuration vector uniformly sampled among the joint limits of the specified Model. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType randomConfiguration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model)
 Generate a configuration vector uniformly sampled among the joint limits of the specified Model. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > neutral (const ModelTpl< Scalar, Options, JointCollectionTpl > &model)
 Return the neutral configuration element related to the model configuration space. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > neutral (const ModelTpl< Scalar, Options, JointCollectionTpl > &model)
 Return the neutral configuration element related to the model configuration space. More...
 

Detailed Description

Main pinocchio namespace.

This module represents a spatial force, e.g. a spatial impulse or force associated to a body. The spatial force is the mathematical representation of \( se^{*}(3) \), the dual of \( se(3) \).

Function Documentation

const DataTpl<Scalar,Options,JointCollectionTpl>::TangentVectorType& pinocchio::aba ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  tau 
)
inline

The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]tauThe joint torque vector (dim model.nv).
Returns
The current joint acceleration stored in data.ddq.

Referenced by CodeGenABA< _Scalar >::buildMap().

const DataTpl<Scalar,Options,JointCollectionTpl>::TangentVectorType& pinocchio::aba ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  tau,
const container::aligned_vector< ForceDerived > &  fext 
)
inline

The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
ForceDerivedType of the external forces.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]tauThe joint torque vector (dim model.nv).
[in]fextVector of external forces expressed in the local frame of the joints (dim model.njoints)
Returns
The current joint acceleration stored in data.ddq.
void pinocchio::addSkew ( const Eigen::MatrixBase< Vector3Like > &  v,
const Eigen::MatrixBase< Matrix3Like > &  M 
)
inline

Add skew matrix represented by a 3d vector to a given matrix, i.e. add the antisymmetric matrix representation of the cross product operator ( \( [v]_{\times} x = v \times x \))

Parameters
[in]va vector of dimension 3.
[out]Mthe 3x3 matrix to which the skew matrix is added.

Definition at line 60 of file skew.hpp.

Referenced by Jexp3(), and Jlog6().

void pinocchio::alphaSkew ( const Scalar  alpha,
const Eigen::MatrixBase< Vector3 > &  v,
const Eigen::MatrixBase< Matrix3 > &  M 
)

Computes the skew representation of a given 3d vector multiplied by a given scalar. i.e. the antisymmetric matrix representation of the cross product operator ( \( [\alpha v]_{\times} x = \alpha v \times x \))

Parameters
[in]alphaa real scalar.
[in]va vector of dimension 3.
[out]Mthe skew matrix representation of dimension 3x3.

Definition at line 124 of file skew.hpp.

Referenced by alphaSkew(), and Jexp6().

Eigen::Matrix<typename Vector3::Scalar,3,3, Vector3 ::Options> pinocchio::alphaSkew ( const Scalar  alpha,
const Eigen::MatrixBase< Vector3 > &  v 
)
inline

Computes the skew representation of a given 3d vector multiplied by a given scalar. i.e. the antisymmetric matrix representation of the cross product operator ( \( [\alpha v]_{\times} x = \alpha v \times x \))

Parameters
[in]alphaa real scalar.
[in]va vector of dimension 3.
Returns
the skew matrix representation of \( \alpha v \).

Definition at line 150 of file skew.hpp.

References alphaSkew().

D1::Scalar PINOCCHIO_DEPRECATED pinocchio::angleBetweenQuaternions ( const Eigen::QuaternionBase< D1 > &  q1,
const Eigen::QuaternionBase< D2 > &  q2 
)
Deprecated:
This function has been replaced by quaternion::angleBetweenQuaternions.

Definition at line 125 of file quaternion.hpp.

References pinocchio::quaternion::angleBetweenQuaternions().

void pinocchio::appendGeometryModel ( GeometryModel geomModel1,
const GeometryModel geomModel2 
)
inline

Append geomModel2 to geomModel1

The steps for appending are:

  • add GeometryObject of geomModel2 to geomModel1,
  • add the collision pairs of geomModel2 into geomModel1 (indexes are updated)
  • add all the collision pairs between geometry objects of geomModel1 and geomModel2. It is possible to ommit both data (an additional function signature is available which makes them optionnal), then inner/outer objects are not updated.
Parameters
[out]geomModel1geometry model where the data is added
[in]geomModel2geometry model from which new geometries are taken
Note
Of course, the geomData corresponding to geomModel1 will not be valid anymore, and should be updated (or more simply, re-created from the new setting of geomModel1).
Todo:
This function is not asserted in unittest.
void pinocchio::appendModel ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelA,
const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelB,
FrameIndex  frameInModelA,
const SE3Tpl< Scalar, Options > &  aMb,
ModelTpl< Scalar, Options, JointCollectionTpl > &  model 
)

Append a child model into a parent model, after a specific frame. the model given as reference argument.

Parameters
[in]modelAthe parent model
[in]modelBthe child model
[in]geomModelAthe parent geometry model
[in]geomModelBthe child geometry model
[in]frameInModelAindex of the frame of modelA where to append modelB.
[in]aMbpose of modelB universe joint (index 0) in frameInModelA.
[out]modelthe resulting model
void pinocchio::appendModel ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelA,
const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelB,
const GeometryModel geomModelA,
const GeometryModel geomModelB,
FrameIndex  frameInModelA,
const SE3Tpl< Scalar, Options > &  aMb,
ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
GeometryModel geomModel 
)

Append a child model into a parent model, after a specific frame. the model given as reference argument.

Parameters
[in]modelAthe parent model
[in]modelBthe child model
[in]geomModelAthe parent geometry model
[in]geomModelBthe child geometry model
[in]frameInModelAindex of the frame of modelA where to append modelB.
[in]aMbpose of modelB universe joint (index 0) in frameInModelA.
[out]modelthe resulting model
[in]geomModelAthe parent geometry model
[in]geomModelBthe child geometry model
[out]geomModel
char pinocchio::axisLabel ( )
inline

Generate the label (X, Y or Z) of the axis relative to its index.

Template Parameters
axisIndex of the axis (either 0 for X, 1 for Y and Z for 2).
Returns
a char containing the label of the axis.
MotionTpl<Scalar,Options> pinocchio::bias ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata)
inline

Visit a JointDataTpl through JointBiasVisitor to get the joint bias as a dense motion.

Parameters
[in]jdataThe joint data to visit.
Returns
The motion dense corresponding to the joint derived bias
void pinocchio::calc_aba ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel,
JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata,
const Eigen::MatrixBase< Matrix6Type > &  I,
const bool  update_I 
)
inline

Visit a JointModelTpl and the corresponding JointDataTpl through JointCalcAbaVisitor to.

Template Parameters
JointCollectionCollection of Joint types.
Matrix6TypeA matrix 6x6 like Eigen container.
Parameters
[in]jmodelThe corresponding JointModelVariant to the JointDataVariant we want to update
[in,out]jdataThe JointDataVariant we want to update
[in,out]IInertia matrix of the subtree following the jmodel in the kinematic chain as dense matrix
[in]update_IIf I should be updated or not

Referenced by JointModelCompositeTpl< _Scalar, _Options, JointCollectionTpl >::addJoint().

void pinocchio::calc_first_order ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel,
JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Visit a JointModelTpl and the corresponding JointDataTpl through JointCalcFirstOrderVisitor to compute the joint data kinematics at order one.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]jmodelThe corresponding JointModelVariant to the JointDataVariant we want to update
jdataThe JointDataVariant we want to update
[in]qThe full model's (in which the joint belongs to) configuration vector
void pinocchio::calc_zero_order ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel,
JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Visit a JointModelTpl and the corresponding JointDataTpl through JointCalcZeroOrderVisitor to compute the joint data kinematics at order zero.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]jmodelThe corresponding JointModelVariant to the JointDataVariant we want to update
jdataThe JointDataVariant we want to update
[in]qThe full model's (in which the joint belongs to) configuration vector
CastType< NewScalar,JointModelTpl<Scalar,Options,JointCollectionTpl> >::type pinocchio::cast_joint ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel)

Visit a JointModelTpl<Scalar,...> to cast it into JointModelTpl<NewScalar,...>

Template Parameters
NewScalarnew scalar type of of the JointModelTpl
Parameters
[in]jmodelThe joint model to cast.
Returns
A new JointModelTpl<NewScalar,...> casted from JointModelTpl<Scalar,...>.
const DataTpl<Scalar,Options,JointCollectionTpl>::Matrix6x& pinocchio::ccrba ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Computes the Centroidal Momentum Matrix, the Composite Ridig Body Inertia as well as the centroidal momenta according to the current joint configuration and velocity.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
Returns
The Centroidal Momentum Matrix Ag.
const DataTpl<Scalar,Options,JointCollectionTpl>::Vector3& pinocchio::centerOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const bool  computeSubtreeComs = true 
)
inline

Computes the center of mass position of a given model according to a particular joint configuration. The result is accessible through data.com[0] for the full body com and data.com[i] for the subtree supported by joint i (expressed in the joint i frame).

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]computeSubtreeComsIf true, the algorithm computes also the center of mass of the subtrees.
Returns
The center of mass position of the full rigid body system expressed in the world frame.

Referenced by centerOfMass().

const DataTpl<Scalar,Options,JointCollectionTpl>::Vector3& pinocchio::centerOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v,
const bool  computeSubtreeComs = true 
)
inline

Computes the center of mass position and velocity of a given model according to a particular joint configuration and velocity. The result is accessible through data.com[0], data.vcom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame).

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]computeSubtreeComsIf true, the algorithm computes also the center of mass of the subtrees.
Returns
The center of mass position of the full rigid body system expressed in the world frame.
const DataTpl<Scalar,Options,JointCollectionTpl>::Vector3& pinocchio::centerOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a,
const bool  computeSubtreeComs = true 
)
inline

Computes the center of mass position, velocity and acceleration of a given model according to a particular joint configuration, velocity and acceleration. The result is accessible through data.com[0], data.vcom[0], data.acom[0] for the full body com position, velocity and acceleation. And data.com[i], data.vcom[i] and data.acom[i] for the subtree supported by joint i (expressed in the joint i frame).

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]aThe joint acceleration vector (dim model.nv).
[in]computeSubtreeComsIf true, the algorithm computes also the center of mass of the subtrees.
Returns
The center of mass position of the full rigid body system expressed in the world frame.
void pinocchio::centerOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const int  LEVEL,
const bool  computeSubtreeComs = true 
)
inline

Computes the center of mass position, velocity and acceleration of a given model according to the current kinematic values contained in data and the requested level. The result is accessible through data.com[0], data.vcom[0] and data.acom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame).

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]LEVELif = 0, computes CoM position, if = 1, also computes CoM velocity and if = 2, also computes CoM acceleration.
[in]computeSubtreeComsIf true, the algorithm computes also the center of mass of the subtrees.
void pinocchio::centerOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const bool  computeSubtreeComs = true 
)
inline

Computes the center of mass position, velocity and acceleration of a given model according to the current kinematic values contained in data. The result is accessible through data.com[0], data.vcom[0] and data.acom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame).

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]computeSubtreeComsIf true, the algorithm computes also the center of mass of the subtrees.

Definition at line 149 of file center-of-mass.hpp.

References centerOfMass(), getComFromCrba(), getJacobianComFromCrba(), and jacobianCenterOfMass().

bool pinocchio::checkData ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)
inline

Check the validity of data wrt to model, in particular if model has been modified.

Parameters
[in]modelreference model
[in]datacorresponding data
Returns
True if data is valid wrt model.
ModelFileExtensionType pinocchio::checkModelFileExtension ( const std::string &  filename)
inline

Extract the type of the given model file according to its extension.

Parameters
[in]filemaneThe complete path to the model file.
Returns
The type of the extension of the model file

Definition at line 40 of file utils.hpp.

bool pinocchio::checkVersionAtLeast ( unsigned int  major_version,
unsigned int  minor_version,
unsigned int  patch_version 
)
inline

Checks if the current version of Pinocchio is at least the version provided by the input arguments.

Parameters
[in]major_versionMajor version to check.
[in]minor_versionMinor version to check.
[in]patch_versionPatch version to check.
Returns
true if the current version of Pinocchio is greater than the version provided by the input arguments.

Definition at line 42 of file version.hpp.

void pinocchio::computeABADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  tau,
const Eigen::MatrixBase< MatrixType1 > &  aba_partial_dq,
const Eigen::MatrixBase< MatrixType2 > &  aba_partial_dv,
const Eigen::MatrixBase< MatrixType3 > &  aba_partial_dtau 
)
inline

The derivatives of the Articulated-Body algorithm.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
MatrixType1Type of the matrix containing the partial derivative with respect to the joint configuration vector.
MatrixType2Type of the matrix containing the partial derivative with respect to the joint velocity vector.
MatrixType3Type of the matrix containing the partial derivative with respect to the joint torque vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]tauThe joint torque vector (dim model.nv).
[out]aba_partial_dqPartial derivative of the generalized torque vector with respect to the joint configuration.
[out]aba_partial_dvPartial derivative of the generalized torque vector with respect to the joint velocity.
[out]aba_partial_dtauPartial derivative of the generalized torque vector with respect to the joint torque.
Note
aba_partial_dtau is in fact nothing more than the inverse of the joint space inertia matrix.
See also
pinocchio::aba

Referenced by CodeGenABADerivatives< _Scalar >::buildMap(), and computeABADerivatives().

void pinocchio::computeABADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  tau,
const container::aligned_vector< ForceTpl< Scalar, Options > >  fext,
const Eigen::MatrixBase< MatrixType1 > &  aba_partial_dq,
const Eigen::MatrixBase< MatrixType2 > &  aba_partial_dv,
const Eigen::MatrixBase< MatrixType3 > &  aba_partial_dtau 
)
inline

The derivatives of the Articulated-Body algorithm with external forces.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
MatrixType1Type of the matrix containing the partial derivative with respect to the joint configuration vector.
MatrixType2Type of the matrix containing the partial derivative with respect to the joint velocity vector.
MatrixType3Type of the matrix containing the partial derivative with respect to the joint torque vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]tauThe joint torque vector (dim model.nv).
[in]fextExternal forces expressed in the local frame of the joints (dim model.njoints).
[out]aba_partial_dqPartial derivative of the generalized torque vector with respect to the joint configuration.
[out]aba_partial_dvPartial derivative of the generalized torque vector with respect to the joint velocity.
[out]aba_partial_dtauPartial derivative of the generalized torque vector with respect to the joint torque.
Note
aba_partial_dtau is in fact nothing more than the inverse of the joint space inertia matrix.
See also
pinocchio::aba
void pinocchio::computeABADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  tau 
)
inline

The derivatives of the Articulated-Body algorithm.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]tauThe joint torque vector (dim model.nv).
Returns
The results are stored in data.ddq_dq, data.ddq_dv and data.Minv which respectively correspond to the partial derivatives of the joint acceleration vector with respect to the joint configuration, velocity and torque. And as for pinocchio::computeMinverse, only the upper triangular part of data.Minv is filled.
See also
pinocchio::aba and
pinocchio::computeABADerivatives.

Definition at line 105 of file aba-derivatives.hpp.

References computeABADerivatives(), DataTpl< _Scalar, _Options, JointCollectionTpl >::ddq_dq, DataTpl< _Scalar, _Options, JointCollectionTpl >::ddq_dv, and DataTpl< _Scalar, _Options, JointCollectionTpl >::Minv.

void pinocchio::computeABADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  tau,
const container::aligned_vector< ForceTpl< Scalar, Options > >  fext 
)
inline

The derivatives of the Articulated-Body algorithm with external forces.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]tauThe joint torque vector (dim model.nv).
[in]fextExternal forces expressed in the local frame of the joints (dim model.njoints).
Returns
The results are stored in data.ddq_dq, data.ddq_dv and data.Minv which respectively correspond to the partial derivatives of the joint acceleration vector with respect to the joint configuration, velocity and torque. And as for pinocchio::computeMinverse, only the upper triangular part of data.Minv is filled.
See also
pinocchio::aba and
pinocchio::computeABADerivatives.

Definition at line 137 of file aba-derivatives.hpp.

References computeABADerivatives(), DataTpl< _Scalar, _Options, JointCollectionTpl >::ddq_dq, DataTpl< _Scalar, _Options, JointCollectionTpl >::ddq_dv, and DataTpl< _Scalar, _Options, JointCollectionTpl >::Minv.

void pinocchio::computeAllTerms ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Computes efficiently all the terms needed for dynamic simulation. It is equivalent to the call at the same time to:

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
Returns
All the results are stored in data. Please refer to the specific algorithm for further details.
void pinocchio::computeBodyRadius ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const GeometryModel geomModel,
GeometryData geomData 
)
inline

Compute the radius of the geometry volumes attached to every joints.

See also
GeometryData::radius
const DataTpl<Scalar,Options,JointCollectionTpl>::Force& pinocchio::computeCentroidalDynamics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Computes the Centroidal dynamics, a.k.a. the total momenta of the system expressed around the center of mass.

Template Parameters
ScalarThe scalar type.
OptionsEigen Alignment options.
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
Returns
The centroidal momenta (stored in data.hg).
const DataTpl<Scalar,Options,JointCollectionTpl>::Force& pinocchio::computeCentroidalDynamics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a 
)
inline

Computes the Centroidal dynamics and its time derivatives, a.k.a. the total momenta of the system and its time derivative expressed around the center of mass.

Template Parameters
ScalarThe scalar type.
OptionsEigen Alignment options.
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]aThe joint acceleration vector (dim model.nv).
Returns
The centroidal momenta time derivative (stored in data.dhg).
void pinocchio::computeCentroidalDynamicsDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a,
const Eigen::MatrixBase< Matrix6xLike0 > &  dh_dq,
const Eigen::MatrixBase< Matrix6xLike1 > &  dhdot_dq,
const Eigen::MatrixBase< Matrix6xLike2 > &  dhdot_dv,
const Eigen::MatrixBase< Matrix6xLike3 > &  dhdot_da 
)
inline

Computes the analytical derivatives of the centroidal dynamics with respect to the joint configuration vector, velocity and acceleration.

Computes the first order approximation of the centroidal dynamics time derivative and corresponds to the following equation \( d\dot{h_{g}} = \frac{\partial \dot{h_{g}}}{\partial \mathbf{q}} d\mathbf{q} + \frac{\partial \dot{h_{g}}}{\partial \mathbf{v}} d\mathbf{v} + \frac{\partial \dot{h_{g}}}{\partial \mathbf{a}} d\mathbf{a} \)

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]aThe joint acceleration vector (dim model.nv).
[out]dh_dqThe partial derivative of the centroidal momentum with respect to the configuration vector (dim 6 x model.nv).
[out]dhdot_dqThe partial derivative of the centroidal dynamics with respect to the configuration vector (dim 6 x model.nv).
[out]dhdot_dvThe partial derivative of the centroidal dynamics with respect to the velocity vector (dim 6 x model.nv).
[out]dhdot_daThe partial derivative of the centroidal dynamics with respect to the acceleration vector (dim 6 x model.nv).
Returns
It also computes the current centroidal dynamics and its time derivative. For information, the centroidal momentum matrix is equivalent to dhdot_da.
bool pinocchio::computeCollision ( const GeometryModel geomModel,
GeometryData geomData,
const PairIndex &  pairId 
)

Compute the collision status between a SINGLE collision pair. The result is store in the collisionResults vector.

Parameters
[in]GeomModelthe geometry model (const)
[out]GeomDatathe corresponding geometry data, where computations are done.
[in]pairIdThe collsion pair index in the GeometryModel.
Returns
Return true is the collision objects are colliding.
Note
The complete collision result is also available in geomData.collisionResults[pairId]
bool pinocchio::computeCollisions ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geomModel,
GeometryData geomData,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const bool  stopAtFirstCollision = false 
)
inline

Compute the forward kinematics, update the geometry placements and calls computeCollision for every active pairs of GeometryData.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelrobot model (const)
[out]datacorresponding data (nonconst) where FK results are stored
[in]geomModelgeometry model (const)
[out]geomDatacorresponding geometry data (nonconst) where distances are computed
[in]qrobot configuration.
[in]stopAtFirstCollisionif true, stop the loop on pairs after the first collision.
Returns
When ComputeShortest is true, the index of the collision pair which has the shortest distance. When ComputeShortest is false, the number of collision pairs.
Warning
if stopAtFirstcollision = true, then the collisions vector will not be entirely fulfilled (of course).
Note
A similar function is available without model, data and q, not recomputing the FK.
const DataTpl<Scalar,Options,JointCollectionTpl>::MatrixXs& pinocchio::computeCoriolisMatrix ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Computes the Coriolis Matrix \( C(q,\dot{q}) \) of the Lagrangian dynamics:

\( \begin{eqnarray} M \ddot{q} + C(q, \dot{q})\dot{q} + g(q) = \tau \end{eqnarray} \)


Note
In the previous equation, \( c(q, \dot{q}) = C(q, \dot{q})\dot{q} \).
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
Returns
The Coriolis matrix stored in data.C.
fcl::DistanceResult& pinocchio::computeDistance ( const GeometryModel geomModel,
GeometryData geomData,
const PairIndex &  pairId 
)

Compute the minimal distance between collision objects of a SINGLE collison pair.

Parameters
[in]GeomModelthe geometry model (const)
[out]GeomDatathe corresponding geometry data, where computations are done.
[in]pairIdThe index of the collision pair in geom model.
Returns
A reference on fcl struct containing the distance result, referring an element of vector geomData::distanceResults.
Note
The complete distance result is also available in geomData.distanceResults[pairId]
PINOCCHIO_DEPRECATED std::size_t pinocchio::computeDistances ( const Model model,
Data data,
const GeometryModel geomModel,
GeometryData geomData,
const Eigen::VectorXd &  q 
)
inline

Compute the forward kinematics, update the geometry placements and calls computeDistance for every active pairs of GeometryData.

Parameters
[in]ComputeShortestdefault to true.
[in]modelrobot model (const)
[out]datacorresponding data (nonconst) where FK results are stored
[in]geomModelgeometry model (const)
[out]geomDatacorresponding geometry data (nonconst) where distances are computed
[in]qrobot configuration.
Returns
When ComputeShortest is true, the index of the collision pair which has the shortest distance. When ComputeShortest is false, the number of collision pairs.
Note
A similar function is available without model, data and q, not recomputing the FK.
std::size_t pinocchio::computeDistances ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geomModel,
GeometryData geomData,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Compute the forward kinematics, update the geometry placements and calls computeDistance for every active pairs of GeometryData.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelrobot model (const)
[in]datacorresponding data (nonconst) where FK results are stored
[in]geomModelgeometry model (const)
[out]geomDatacorresponding geometry data (nonconst) where distances are computed
[in]qrobot configuration.
Note
A similar function is available without model, data and q, not recomputing the FK.
std::size_t pinocchio::computeDistances ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geomModel,
GeometryData geomData 
)
inline

Compute the forward kinematics, update the geometry placements and calls computeDistance for every active pairs of GeometryData.

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelrobot model (const)
[out]datacorresponding data (const)
[in]geomModelgeometry model (const)
[out]geomDatacorresponding geometry data (nonconst) where distances are computed
Note
A similar function is available without model, data and q, not recomputing the FK.
void pinocchio::computeForwardKinematicsDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a 
)
inline

Computes all the terms required to compute the derivatives of the placement, spatial velocity and acceleration for any joint of the model.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (vector dim model.nq).
[in]vThe joint velocity (vector dim model.nv).
Remarks
This function is similar to do a forwardKinematics(model,data,q,v) followed by a computeJointJacobians(model,data,q). In addition, it computes the spatial velocity of the joint expressed in the world frame (see data.ov).
const DataTpl<Scalar,Options,JointCollectionTpl>::TangentVectorType& pinocchio::computeGeneralizedGravity ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Computes the generalized gravity contribution \( g(q) \) of the Lagrangian dynamics:

\( \begin{eqnarray} M \ddot{q} + c(q, \dot{q}) + g(q) = \tau \end{eqnarray} \)


Note
This function is equivalent to pinocchio::rnea(model, data, q, 0, 0).
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
Returns
The bias terms stored in data.g.
void pinocchio::computeGeneralizedGravityDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< ReturnMatrixType > &  gravity_partial_dq 
)
inline

Computes the derivative of the generalized gravity contribution with respect to the joint configuration.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
ReturnMatrixTypeType of the matrix containing the partial derivative of the gravity vector with respect to the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[out]gravity_partial_dqPartial derivative of the generalized gravity vector with respect to the joint configuration.
Remarks
gravity_partial_dq must be first initialized with zeros (gravity_partial_dq.setZero).
See also
pinocchio::computeGeneralizedGravity
PINOCCHIO_DEPRECATED const Data::Matrix6x& pinocchio::computeJacobians ( const Model model,
Data data,
const Eigen::VectorXd &  q 
)
inline

Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function computes also the forwardKinematics of the model.

Deprecated:
This function is now deprecated. Please refer now to pinocchio::computeJointJacobians for similar function with updated name.
Note
This Jacobian does not correspond to any specific joint frame Jacobian. From this Jacobian, it is then possible to easily extract the Jacobian of a specific joint frame.
See also
pinocchio::getJointJacobian for doing this specific extraction.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
Returns
The full model Jacobian (matrix 6 x model.nv).

Definition at line 51 of file jacobian.hpp.

References computeJointJacobians().

PINOCCHIO_DEPRECATED const Data::Matrix6x& pinocchio::computeJacobians ( const Model model,
Data data 
)
inline

Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function assumes that pinocchio::forwardKinematics has been called before.

Deprecated:
This function is now deprecated. Please refer now to pinocchio::computeJointJacobians for similar function with updated name.
Note
This Jacobian does not correspond to any specific joint frame Jacobian. From this Jacobian, it is then possible to easily extract the Jacobian of a specific joint frame.
See also
pinocchio::getJointJacobian for doing this specific extraction.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Returns
The full model Jacobian (matrix 6 x model.nv).

Definition at line 89 of file jacobian.hpp.

References computeJointJacobians(), and getJointJacobian().

PINOCCHIO_DEPRECATED const Data::Matrix6x& pinocchio::computeJacobiansTimeVariation ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  v 
)
inline

Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depends both on q and v. The result is accessible through data.dJ.

Deprecated:
This function is now deprecated. Please refer now to pinocchio::computeJointJacobiansTimeVariation for similar function with updated name.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
Returns
The full model Jacobian (matrix 6 x model.nv).

Definition at line 268 of file jacobian.hpp.

References computeJointJacobiansTimeVariation(), and getJointJacobianTimeVariation().

const DataTpl<Scalar,Options,JointCollectionTpl>::Matrix6x& pinocchio::computeJointJacobians ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function computes also the forwardKinematics of the model.

Note
This Jacobian does not correspond to any specific joint frame Jacobian. From this Jacobian, it is then possible to easily extract the Jacobian of a specific joint frame.
See also
pinocchio::getJointJacobian for doing this specific extraction.
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
Returns
The full model Jacobian (matrix 6 x model.nv).

Referenced by computeJacobians().

const DataTpl<Scalar,Options,JointCollectionTpl>::Matrix6x& pinocchio::computeJointJacobians ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)
inline

Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function assumes that pinocchio::forwardKinematics has been called before.

Note
This Jacobian does not correspond to any specific joint frame Jacobian. From this Jacobian, it is then possible to easily extract the Jacobian of a specific joint frame.
See also
pinocchio::getJointJacobian for doing this specific extraction.
Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Returns
The full model Jacobian (matrix 6 x model.nv).
const DataTpl<Scalar,Options,JointCollectionTpl>::Matrix6x& pinocchio::computeJointJacobiansTimeVariation ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depends both on q and v. The result is accessible through data.dJ.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
Returns
The full model Jacobian (matrix 6 x model.nv).

Referenced by computeJacobiansTimeVariation(), and jointJacobian().

const DataTpl<Scalar,Options,JointCollectionTpl>::RowMatrixXs& pinocchio::computeMinverse ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Computes the inverse of the joint space inertia matrix using Articulated Body formulation.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
Returns
The inverse of the joint space inertia matrix stored in data.ddq.

Referenced by CodeGenMinv< _Scalar >::buildMap().

void pinocchio::computeRNEADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a,
const Eigen::MatrixBase< MatrixType1 > &  rnea_partial_dq,
const Eigen::MatrixBase< MatrixType2 > &  rnea_partial_dv,
const Eigen::MatrixBase< MatrixType3 > &  rnea_partial_da 
)
inline

Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration, the joint velocity and the joint acceleration.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
MatrixType1Type of the matrix containing the partial derivative with respect to the joint configuration vector.
MatrixType2Type of the matrix containing the partial derivative with respect to the joint velocity vector.
MatrixType3Type of the matrix containing the partial derivative with respect to the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]aThe joint acceleration vector (dim model.nv).
[out]rnea_partial_dqPartial derivative of the generalized torque vector with respect to the joint configuration.
[out]rnea_partial_dvPartial derivative of the generalized torque vector with respect to the joint velocity.
[out]rnea_partial_daPartial derivative of the generalized torque vector with respect to the joint acceleration.
Remarks
rnea_partial_dq, rnea_partial_dv and rnea_partial_da must be first initialized with zeros (rnea_partial_dq.setZero(),etc). As for pinocchio::crba, only the upper triangular part of rnea_partial_da is filled.
See also
pinocchio::rnea

Referenced by CodeGenRNEADerivatives< _Scalar >::buildMap(), and computeRNEADerivatives().

void pinocchio::computeRNEADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a,
const container::aligned_vector< ForceTpl< Scalar, Options > >  fext,
const Eigen::MatrixBase< MatrixType1 > &  rnea_partial_dq,
const Eigen::MatrixBase< MatrixType2 > &  rnea_partial_dv,
const Eigen::MatrixBase< MatrixType3 > &  rnea_partial_da 
)
inline

Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration, the joint velocity and the joint acceleration.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
MatrixType1Type of the matrix containing the partial derivative with respect to the joint configuration vector.
MatrixType2Type of the matrix containing the partial derivative with respect to the joint velocity vector.
MatrixType3Type of the matrix containing the partial derivative with respect to the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]aThe joint acceleration vector (dim model.nv).
[in]fextExternal forces expressed in the local frame of the joints (dim model.njoints).
[out]rnea_partial_dqPartial derivative of the generalized torque vector with respect to the joint configuration.
[out]rnea_partial_dvPartial derivative of the generalized torque vector with respect to the joint velocity.
[out]rnea_partial_daPartial derivative of the generalized torque vector with respect to the joint acceleration.
Remarks
rnea_partial_dq, rnea_partial_dv and rnea_partial_da must be first initialized with zeros (rnea_partial_dq.setZero(),etc). As for pinocchio::crba, only the upper triangular part of rnea_partial_da is filled.
See also
pinocchio::rnea
void pinocchio::computeRNEADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a 
)
inline

Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration, the joint velocity and the joint acceleration.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]aThe joint acceleration vector (dim model.nv).
Returns
The results are stored in data.dtau_dq, data.dtau_dv and data.M which respectively correspond to the partial derivatives of the joint torque vector with respect to the joint configuration, velocity and acceleration. As for pinocchio::crba, only the upper triangular part of data.M is filled.
See also
pinocchio::rnea, pinocchio::crba, pinocchio::cholesky::decompose

Definition at line 141 of file rnea-derivatives.hpp.

References computeRNEADerivatives(), DataTpl< _Scalar, _Options, JointCollectionTpl >::dtau_dq, DataTpl< _Scalar, _Options, JointCollectionTpl >::dtau_dv, and DataTpl< _Scalar, _Options, JointCollectionTpl >::M.

void pinocchio::computeRNEADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a,
const container::aligned_vector< ForceTpl< Scalar, Options > >  fext 
)
inline

Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration, the joint velocity and the joint acceleration.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]aThe joint acceleration vector (dim model.nv).
[in]fextExternal forces expressed in the local frame of the joints (dim model.njoints).
Returns
The results are stored in data.dtau_dq, data.dtau_dv and data.M which respectively correspond to the partial derivatives of the joint torque vector with respect to the joint configuration, velocity and acceleration. As for pinocchio::crba, only the upper triangular part of data.M is filled.
See also
pinocchio::rnea, pinocchio::crba, pinocchio::cholesky::decompose

Definition at line 175 of file rnea-derivatives.hpp.

References computeRNEADerivatives(), DataTpl< _Scalar, _Options, JointCollectionTpl >::dtau_dq, DataTpl< _Scalar, _Options, JointCollectionTpl >::dtau_dv, and DataTpl< _Scalar, _Options, JointCollectionTpl >::M.

void pinocchio::computeSubtreeMasses ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)
inline

Compute the mass of each kinematic subtree and store it in data.mass. The element mass[0] corresponds to the total mass of the model.

Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Note
If you are only interested in knowing the total mass of the model, computeTotalMass will probably be slightly faster.
Scalar pinocchio::computeTotalMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model)
inline

Compute the total mass of the model and return it.

Parameters
[in]modelThe model structure of the rigid body system.
Returns
Total mass of the model.
Scalar pinocchio::computeTotalMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)
inline

Compute the total mass of the model, put it in data.mass[0] and return it.

Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Warning
This method does not fill the whole data.mass vector. Only data.mass[0] is updated. If you need the whole data.mass vector to be computed, use computeSubtreeMasses
Returns
Total mass of the model.
ConstraintTpl<Eigen::Dynamic,Scalar,Options> pinocchio::constraint_xd ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata)
inline

Visit a JointDataVariant through JointConstraintVisitor to get the joint constraint as a dense constraint.

Parameters
[in]jdataThe joint data to visit.
Returns
The constraint dense corresponding to the joint derived constraint
void copy ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  origin,
DataTpl< Scalar, Options, JointCollectionTpl > &  dest,
int  LEVEL 
)
inline

Copy part of the data from <orig> to <dest>. Template parameter can be used to select at which differential level the copy should occur.

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe model structure of the rigid body system.
[in]origData from which the values are copied.
[out]destData to which the values are copied
[in]LEVELif =0, copy oMi. If =1, also copy v. If =2, also copy a, a_gf and f.

Definition at line 42 of file copy.hpp.

References DataTpl< _Scalar, _Options, JointCollectionTpl >::a, DataTpl< _Scalar, _Options, JointCollectionTpl >::a_gf, DataTpl< _Scalar, _Options, JointCollectionTpl >::f, ModelTpl< _Scalar, _Options, JointCollectionTpl >::njoints, DataTpl< _Scalar, _Options, JointCollectionTpl >::oMi, and DataTpl< _Scalar, _Options, JointCollectionTpl >::v.

const DataTpl<Scalar,Options,JointCollectionTpl>::MatrixXs& pinocchio::crba ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R. Featherstone, 2008). The result is accessible through data.M.

Note
You can easly get data.M symetric by copying the stricly upper trinangular part in the stricly lower tringular part with data.M.triangularView<Eigen::StrictlyLower>() = data.M.transpose().triangularView<Eigen::StrictlyLower>();
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
Returns
The joint space inertia matrix with only the upper triangular part computed.

Referenced by CodeGenCRBA< _Scalar >::buildMap().

const DataTpl<Scalar,Options,JointCollectionTpl>::MatrixXs& pinocchio::crbaMinimal ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R. Featherstone, 2008). The result is accessible through data.M.

Note
You can easly get data.M symetric by copying the stricly upper trinangular part in the stricly lower tringular part with data.M.triangularView<Eigen::StrictlyLower>() = data.M.transpose().triangularView<Eigen::StrictlyLower>();
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Note
A direct outcome of this algorithm is the computation of the centroidal momemntum matrix (data.Ag) and the joint jacobian matrix (data.J).
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
Returns
The joint space inertia matrix with only the upper triangular part computed.
JointDataTpl<Scalar,Options,JointCollectionTpl> pinocchio::createData ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel)
inline

Visit a JointModelTpl through CreateData visitor to create a JointDataTpl.

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]jmodelThe JointModelTpl we want to create a data for.
Returns
The created JointDataTpl

Referenced by JointModelCompositeTpl< _Scalar, _Options, JointCollectionTpl >::addJoint().

void pinocchio::cross ( const Eigen::MatrixBase< Vector3 > &  v,
const Eigen::MatrixBase< Matrix3xIn > &  Min,
const Eigen::MatrixBase< Matrix3xOut > &  Mout 
)
inline

Applies the cross product onto the columns of M.

Parameters
[in]va vector of dimension 3.
[in]Mina 3 rows matrix.
[out]Mouta 3 rows matrix.
Returns
the results of \( Mout = [v]_{\times} Min \).

Definition at line 211 of file skew.hpp.

Referenced by cross(), and InertiaTpl< Scalar, Options >::se3ActionInverse_impl().

Matrix3x pinocchio::cross ( const Eigen::MatrixBase< Vector3 > &  v,
const Eigen::MatrixBase< Matrix3x > &  M 
)
inline

Applies the cross product onto the columns of M.

Parameters
[in]va vector of dimension 3.
[in]Ma 3 rows matrix.
Returns
the results of \( [v]_{\times} M \).

Definition at line 236 of file skew.hpp.

References cross().

const DataTpl<Scalar,Options,JointCollectionTpl>::Matrix6x& pinocchio::dccrba ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Computes the time derivative of the Centroidal Momentum Matrix according to the current configuration and velocity vectors.

Note
The computed terms allow to decomposed the spatial momentum variation as following: \( \dot{h} = A_g \ddot{q} + \dot{A_g}(q,\dot{q})\dot{q}\).
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint configuration vector (dim model.nv).
Returns
The Centroidal Momentum Matrix time derivative dAg
bool PINOCCHIO_DEPRECATED pinocchio::defineSameRotation ( const Eigen::QuaternionBase< D1 > &  q1,
const Eigen::QuaternionBase< D2 > &  q2,
const typename D1::RealScalar &  prec = Eigen::NumTraits<typename D1::Scalar>::dummy_precision() 
)
Deprecated:
This function has been replaced by quaternion::defineSameRotation.

Definition at line 134 of file quaternion.hpp.

References pinocchio::quaternion::defineSameRotation().

void pinocchio::difference ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1,
const Eigen::MatrixBase< ReturnType > &  dvout 
)

Compute the tangent vector that must be integrated during one unit time to go from q0 to q1.

This function corresponds to the log map of the joint configuration Lie Group. Its output can be interpreted as a difference from the joint configuration space to the Lie algebra \( q_1 \ominus q_0 \).

Parameters
[in]modelModel of the system
[in]q0Initial configuration (size model.nq)
[in]q1Wished configuration (size model.nq)
[out]dvoutThe corresponding velocity (size model.nv)

Definition at line 124 of file joint-configuration.hpp.

References squaredDistance().

Referenced by interpolate().

void pinocchio::difference ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1,
const Eigen::MatrixBase< ReturnType > &  dvout 
)

Compute the tangent vector that must be integrated during one unit time to go from q0 to q1.

This function corresponds to the log map of the joint configuration Lie Group. Its output can be interpreted as a difference from the joint configuration space to the Lie algebra \( q_1 \ominus q_0 \).

Parameters
[in]modelModel of the system
[in]q0Initial configuration (size model.nq)
[in]q1Wished configuration (size model.nq)
[out]dvoutThe corresponding velocity (size model.nv)

Definition at line 124 of file joint-configuration.hpp.

References squaredDistance().

Referenced by interpolate().

ConfigVectorIn1 pinocchio::difference ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1 
)
inline

Compute the tangent vector that must be integrated during one unit time to go from q0 to q1.

Parameters
[in]modelModel of the system
[in]q0Initial configuration (size model.nq)
[in]q1Wished configuration (size model.nq)
Returns
The corresponding velocity (size model.nv)

Definition at line 544 of file joint-configuration.hpp.

References squaredDistance().

ConfigVectorIn1 pinocchio::difference ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1 
)
inline

Compute the tangent vector that must be integrated during one unit time to go from q0 to q1.

Parameters
[in]modelModel of the system
[in]q0Initial configuration (size model.nq)
[in]q1Wished configuration (size model.nq)
Returns
The corresponding velocity (size model.nv)

Definition at line 544 of file joint-configuration.hpp.

References squaredDistance().

void pinocchio::dIntegrate ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v,
const Eigen::MatrixBase< JacobianMatrixType > &  J,
const ArgumentPosition  arg 
)

Computes the Jacobian of a small variation of the configuration vector or the tangent vector into the tangent space at identity.

This jacobian has to be interpreted in terms of Lie group, not vector space: as such, it is expressed in the tangent space only, not the configuration space. Calling \( f(q, v) \) the integrate function, these jacobians satisfy the following relationships in the tangent space:

  • Jacobian relative to q: \( f(q \oplus \delta q, v) \ominus f(q, v) = J_q \delta q + o(\delta q)\).
  • Jacobian relative to v: \( f(q, v + \delta v) \ominus f(q, v) = J_v \delta v + o(\delta v)\).
Parameters
[in]modelModel that must be integrated
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[out]JJacobian of the Integrate operation, either with respect to q or v (size model.nv x model.nv).
[in]argArgument (either q or v) with respect to which the

This jacobian has to be interpreted in terms of Lie group, not vector space: as such, it is expressed in the tangent space only, not the configuration space. Calling \( f(q, v) \) the integrate function, these jacobians satisfy the following relationships in the tangent space:

  • Jacobian relative to q: \( f(q \oplus \delta q, v) \ominus f(q, v) = J_q(q, v) \delta q + o(\delta q)\).
  • Jacobian relative to v: \( f(q, v + \delta v) \ominus f(q, v) = J_v(q, v) \delta v + o(\delta v)\).
Parameters
[in]modelModel that must be integrated
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[out]JJacobian of the Integrate operation, either with respect to q or v (size model.nv x model.nv).
[in]argArgument (either q or v) with respect to which the

Definition at line 271 of file joint-configuration.hpp.

References squaredDistanceSum().

Referenced by neutral().

void pinocchio::dIntegrate ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v,
const Eigen::MatrixBase< JacobianMatrixType > &  J,
const ArgumentPosition  arg 
)

Computes the Jacobian of a small variation of the configuration vector or the tangent vector into the tangent space at identity.

This jacobian has to be interpreted in terms of Lie group, not vector space: as such, it is expressed in the tangent space only, not the configuration space. Calling \( f(q, v) \) the integrate function, these jacobians satisfy the following relationships in the tangent space:

  • Jacobian relative to q: \( f(q \oplus \delta q, v) \ominus f(q, v) = J_q(q, v) \delta q + o(\delta q)\).
  • Jacobian relative to v: \( f(q, v + \delta v) \ominus f(q, v) = J_v(q, v) \delta v + o(\delta v)\).
Parameters
[in]modelModel that must be integrated
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[out]JJacobian of the Integrate operation, either with respect to q or v (size model.nv x model.nv).
[in]argArgument (either q or v) with respect to which the

Definition at line 271 of file joint-configuration.hpp.

References squaredDistanceSum().

Referenced by neutral().

Eigen::Matrix<Scalar,Eigen::Dynamic,Eigen::Dynamic,Options> pinocchio::dinv_inertia ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata)
inline

Visit a JointDataTpl through JointDInvInertiaVisitor to get the D^{-1} matrix of the inertia matrix decomposition.

Parameters
[in]jdataThe jdata
Returns
The D^{-1} matrix of the inertia matrix decomposition
Scalar pinocchio::distance ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1 
)
inline

Distance between two configuration vectors.

Parameters
[in]modelModel we want to compute the distance
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
Returns
The distance between the two configurations

Definition at line 337 of file joint-configuration.hpp.

References normalize().

Referenced by squaredDistanceSum().

Scalar pinocchio::distance ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1 
)
inline

Distance between two configuration vectors.

Parameters
[in]modelModel we want to compute the distance
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
Returns
The distance between the two configurations

Definition at line 337 of file joint-configuration.hpp.

References normalize().

Referenced by squaredDistanceSum().

void pinocchio::emptyForwardPass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)
inline

Browse through the kinematic structure with a void step.

Note
This void step allows to quantify the time spent in the rollout.
Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Eigen::Matrix<typename Vector3Like::Scalar,3,3, Vector3Like ::Options> pinocchio::exp3 ( const Eigen::MatrixBase< Vector3Like > &  v)

Exp: so3 -> SO3.

Return the integral of the input angular velocity during time 1.

Parameters
[in]vThe angular velocity vector.
Returns
The rotational matrix associated to the integration of the angular velocity during time 1.

Definition at line 31 of file explog.hpp.

References SINCOS().

Referenced by SpecialOrthogonalOperationTpl< 3, _Scalar, _Options >::nv().

SE3Tpl<typename MotionDerived::Scalar, typename MotionDerived::Vector3 ::Options> pinocchio::exp6 ( const MotionDense< MotionDerived > &  nu)

Exp: se3 -> SE3.

Return the integral of the input twist during time 1.

Parameters
[in]nuThe input twist.
Returns
The rigid transformation associated to the integration of the twist during time 1.

Definition at line 248 of file explog.hpp.

References SINCOS().

Referenced by exp6(), and SpecialEuclideanOperationTpl< 3, _Scalar, _Options >::nv().

SE3Tpl<typename Vector6Like::Scalar, Vector6Like ::Options> pinocchio::exp6 ( const Eigen::MatrixBase< Vector6Like > &  v)

Exp: se3 -> SE3.

Return the integral of the input spatial velocity during time 1.

Parameters
[in]vThe twist represented by a vector.
Returns
The rigid transformation associated to the integration of the twist vector during time 1..

Definition at line 315 of file explog.hpp.

References exp6().

std::vector<std::string> pinocchio::extractPathFromEnvVar ( const std::string &  env_var_name,
const std::string &  delimiter = ":" 
)
inline

Parse an environment variable if exists and extract paths according to the delimiter.

Parameters
[in]env_var_nameThe name of the environment variable.
[in]delimiterThe delimiter between two consecutive paths.
Returns
The vector of paths extracted from the environment variable value.

Definition at line 23 of file file-explorer.hpp.

Referenced by rosPaths().

ModelTpl<Scalar,Options,JointCollectionTpl>::TangentVectorType pinocchio::finiteDifferenceIncrement ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model)
inline

Computes the finite difference increments for each degree of freedom according to the current joint configuration.

Template Parameters
JointCollectionCollection of Joint types.

[in] model The model of the kinematic tree.

Returns
The finite difference increments for each degree of freedom.

Referenced by JointModelCompositeTpl< _Scalar, _Options, JointCollectionTpl >::addJoint().

Scalar pinocchio::finiteDifferenceIncrement ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel)
inline

Returns the finite difference increment of the joint model.

Parameters
[in]jmodelThe model of the joint.
Returns
The finite diffrence increment.
void PINOCCHIO_DEPRECATED pinocchio::firstOrderNormalize ( const Eigen::QuaternionBase< D > &  q)
Deprecated:
This function has been replaced by quaternion::firstOrderNormalize.

Definition at line 145 of file quaternion.hpp.

References pinocchio::quaternion::firstOrderNormalize().

const DataTpl<Scalar,Options,JointCollectionTpl>::TangentVectorType& pinocchio::forwardDynamics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  tau,
const Eigen::MatrixBase< ConstraintMatrixType > &  J,
const Eigen::MatrixBase< DriftVectorType > &  gamma,
const Scalar  inv_damping = 0.,
const bool  updateKinematics = true 
)
inline

Compute the forward dynamics with contact constraints.

Note
It computes the following problem:
\( \begin{eqnarray} \underset{\ddot{q}}{\min} & & \| \ddot{q} - \ddot{q}_{\text{free}} \|_{M(q)} \\ \text{s.t.} & & J (q) \ddot{q} + \gamma (q, \dot{q}) = 0 \end{eqnarray} \)

where \( \ddot{q}_{\text{free}} \) is the free acceleration (i.e. without constraints), \( M \) is the mass matrix, \( J \) the constraint Jacobian and \( \gamma \) is the constraint drift. By default, the constraint Jacobian is assumed to be full rank, and undamped Cholesky inverse is performed.
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
ConstraintMatrixTypeType of the constraint matrix.
DriftVectorTypeType of the drift vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (vector dim model.nq).
[in]vThe joint velocity (vector dim model.nv).
[in]tauThe joint torque vector (dim model.nv).
[in]JThe Jacobian of the constraints (dim nb_constraints*model.nv).
[in]gammaThe drift of the constraints (dim nb_constraints).
[in]inv_dampingDamping factor for cholesky decomposition of JMinvJt. Set to zero if constraints are full rank.
[in]updateKinematicsIf true, the algorithm calls first pinocchio::computeAllTerms. Otherwise, it uses the current dynamic values stored in data. \
Note
A hint: 1e-12 as the damping factor gave good result in the particular case of redundancy in contact constraints on the two feet.
Returns
A reference to the joint acceleration stored in data.ddq. The Lagrange Multipliers linked to the contact forces are available throw data.lambda_c vector.
void pinocchio::forwardKinematics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Update the joint placements according to the current joint configuration.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (vector dim model.nq).

Referenced by kineticEnergy(), SpecialEuclideanOperationTpl< 2, _Scalar, _Options >::nv(), and potentialEnergy().

void pinocchio::forwardKinematics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Update the joint placements and spatial velocities according to the current joint configuration and velocity.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (vector dim model.nq).
[in]vThe joint velocity (vector dim model.nv).
void pinocchio::forwardKinematics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a 
)
inline

Update the joint placements, spatial velocities and spatial accelerations according to the current joint configuration, velocity and acceleration.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (vector dim model.nq).
[in]vThe joint velocity (vector dim model.nv).
[in]aThe joint acceleration (vector dim model.nv).
void pinocchio::frameJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const FrameIndex  frameId,
const Eigen::MatrixBase< Matrix6Like > &  J 
)
inline

Computes the Jacobian of a specific Frame expressed in the LOCAL frame coordinate system.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Matrix6xLikeType of the matrix containing the joint Jacobian.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]frameIdThe id of the Frame refering to model.frames[frameId].
[out]JA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.setZero().
Returns
The Jacobian of the specific Frame expressed in the LOCAL frame coordinate system (matrix 6 x model.nv).
Remarks
The result of this function is equivalent to call first computeJointJacobians(model,data,q), then updateFramePlacements(model,data) and then call getJointJacobian(model,data,jointId,LOCAL,J), but forwardKinematics and updateFramePlacements are not fully computed. It is worth to call jacobian if you only need a single Jacobian for a specific joint. Otherwise, for several Jacobians, it is better to call computeJacobians(model,data,q) followed by getJointJacobian(model,data,jointId,LOCAL,J) for each Jacobian.

Referenced by getFrameAcceleration().

void pinocchio::framesForwardKinematics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

First calls the forwardKinematics on the model, then computes the placement of each frame. /sa pinocchio::forwardKinematics.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe kinematic model.
dataData associated to model.
[in]qConfiguration vector.
void pinocchio::getCenterOfMassVelocityDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< Matrix3xOut > &  vcom_partial_dq 
)
inline

Computes the partial derivatie of the center-of-mass velocity with respect to the joint configuration q. You must first call computForwardKinematicsDerivatives and computeCenterOfMass(q,vq) before calling this function.

Template Parameters
JointCollectionCollection of Joint types.
Matrix3xOutMatrix3x containing the partial derivatives of the CoM velocity with respect to the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[out]v_partial_dqPartial derivative of the CoM velocity w.r.t. \( q \).
void pinocchio::getCentroidalDynamicsDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< Matrix6xLike1 > &  dh_dq,
const Eigen::MatrixBase< Matrix6xLike1 > &  dhdot_dq,
const Eigen::MatrixBase< Matrix6xLike2 > &  dhdot_dv,
const Eigen::MatrixBase< Matrix6xLike3 > &  dhdot_da 
)
inline

Retrive the analytical derivatives of the centroidal dynamics from the RNEA derivatives. pinocchio::computeRNEADerivatives should have been called first.

Computes the first order approximation of the centroidal dynamics time derivative and corresponds to the following equation \( d\dot{h_{g}} = \frac{\partial \dot{h_{g}}}{\partial \mathbf{q}} d\mathbf{q} + \frac{\partial \dot{h_{g}}}{\partial \mathbf{v}} d\mathbf{v} + \frac{\partial \dot{h_{g}}}{\partial \mathbf{a}} d\mathbf{a} \)

Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[out]dhdot_dqThe partial derivative of the centroidal dynamics with respect to the configuration vector (dim 6 x model.nv).
[out]dhdot_dvThe partial derivative of the centroidal dynamics with respect to the velocity vector (dim 6 x model.nv).
[out]dhdot_daThe partial derivative of the centroidal dynamics with respect to the acceleration vector (dim 6 x model.nv).
Returns
It also computes the current centroidal dynamics and its time derivative. For information, the centroidal momentum matrix is equivalent to dhdot_da.
const DataTpl<Scalar,Options,JointCollectionTpl>::Vector3& pinocchio::getComFromCrba ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)
inline

Extracts the center of mass position from the joint space inertia matrix (also called the mass matrix).

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Returns
The center of mass position of the rigid body system expressed in the world frame (vector 3).

Referenced by centerOfMass().

MotionTpl<Scalar, Options> pinocchio::getFrameAcceleration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex  frame_id 
)
inline

Returns the spatial acceleration of the frame expressed in the LOCAL frame coordinate system. You must first call pinocchio::forwardKinematics to update placement values in data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
Returns
The spatial acceleration of the Frame expressed in the coordinates Frame.
Warning
Second order forwardKinematics should have been called first

Referenced by getFrameAcceleration(), and getFrameVelocity().

PINOCCHIO_DEPRECATED void pinocchio::getFrameAcceleration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex  frame_id,
const MotionDense< MotionLike > &  frame_a 
)
inline

Returns the spatial acceleration of the frame expressed in the LOCAL frame coordinate system. You must first call pinocchio::forwardKinematics to update placement values in data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[out]frame_aThe spatial acceleration of the Frame expressed in the coordinates Frame.
Deprecated:
This function is now deprecated. Use the return-value version instead (since: 19 feb 2019)
Warning
Second order forwardKinematics should have been called first

Definition at line 137 of file frames.hpp.

References frameJacobian(), getFrameAcceleration(), and getFrameJacobian().

void pinocchio::getFrameJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex  frame_id,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xLike > &  J 
)
inline

Returns the jacobian of the frame expressed either expressed in the LOCAL frame coordinate system or in the WORLD coordinate system, depending on the value of rf. You must first call pinocchio::computeJointJacobians followed by pinocchio::framesForwardKinematics to update placement values in data structure.

Remarks
Similarly to pinocchio::getJointJacobian with LOCAL or WORLD parameters, if rf == LOCAL, this function returns the Jacobian of the frame expressed in the local coordinates of the frame, or if rl == WORDL, it returns the Jacobian expressed of the point coincident with the origin and expressed in a coordinate system aligned with the WORLD.
Template Parameters
JointCollectionCollection of Joint types.
Matrix6xLikeType of the matrix containing the joint Jacobian.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[in]rfReference frame in which the Jacobian is expressed.
[out]JThe Jacobian of the Frame expressed in the coordinates Frame.
Warning
The function pinocchio::computeJointJacobians and pinocchio::framesForwardKinematics should have been called first.

Referenced by getFrameAcceleration(), and getFrameJacobian().

PINOCCHIO_DEPRECATED void pinocchio::getFrameJacobian ( const Model model,
const Data data,
const Model::FrameIndex  frame_id,
Data::Matrix6x J 
)

Returns the jacobian of the frame expresssed either expressed in the LOCAL frame coordinate system or in the WORLD coordinate system, depending on the value of rf. You must first call pinocchio::computeJointJacobians followed by pinocchio::updateFramePlacements to update placement values in data structure.

Template Parameters
rfReference frame in which the columns of the Jacobian are expressed.
Deprecated:
This function is now deprecated. Please call pinocchio::getFrameJacobian for same functionality.
Remarks
Similarly to pinocchio::getJointJacobian with LOCAL or WORLD parameters, if rf == LOCAL, this function returns the Jacobian of the frame expressed in the local coordinates of the frame, or if rl == WORDL, it returns the Jacobian expressed of the point coincident with the origin and expressed in a coordinate system aligned with the WORLD.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[in]rfReference frame in which the Jacobian is expressed.
[out]JThe Jacobian of the Frame expressed in the coordinates Frame.
Warning
The functions pinocchio::computeJointJacobians and pinocchio::updateFramePlacements should have been called first.

Definition at line 219 of file frames.hpp.

References getFrameJacobian(), and getFrameJacobianTimeVariation().

PINOCCHIO_DEPRECATED void pinocchio::getFrameJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex  frame_id,
const Eigen::MatrixBase< Matrix6xLike > &  J 
)
inline

Returns the jacobian of the frame expresssed in the LOCAL coordinate system of the frame. You must first call pinocchio::computeJointJacobians followed by pinocchio::updateFramePlacements to update placement values in data structure.

Deprecated:
This function is now deprecated. Please call pinocchio::getFrameJacobian for same functionality
Template Parameters
JointCollectionCollection of Joint types.
Matrix6xLikeType of the matrix containing the joint Jacobian.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[out]JThe Jacobian of the Frame expressed in the coordinates Frame.
Warning
The function pinocchio::computeJointJacobians and pinocchio::updateFramePlacements should have been called first.
void pinocchio::getFrameJacobianTimeVariation ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex  frame_id,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xLike > &  dJ 
)

Computes the Jacobian time variation of a specific frame (given by frame_id) expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL).

Note
This jacobian is extracted from data.dJ. You have to run pinocchio::computeJacobiansTimeVariation before calling it.
Template Parameters
JointCollectionCollection of Joint types.
Matrix6xLikeType of the matrix containing the joint Jacobian.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]frameIdThe index of the frame.
[in]rfReference frame in which the Jacobian is expressed.
[out]dJA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill dJ with zero elements, e.g. dJ.fill(0.).

Referenced by getFrameJacobian(), and getFrameJacobianTimeVariation().

PINOCCHIO_DEPRECATED void pinocchio::getFrameJacobianTimeVariation ( const Model model,
const Data data,
const Model::FrameIndex  frameId,
Data::Matrix6x dJ 
)

Computes the Jacobian time variation of a specific frame (given by frame_id) expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL).

Note
This jacobian is extracted from data.dJ. You have to run pinocchio::computeJacobiansTimeVariation before calling it.
Deprecated:
This function is now deprecated. Please call pinocchio::getFrameJacobianTimeVariation for same functionality
Template Parameters
rfReference frame in which the Jacobian is expressed.
Parameters
[in]localFrameExpressed the Jacobian in the local frame or world frame coordinates system.
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]frameIdThe index of the frame.
[out]dJA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill dJ with zero elements, e.g. dJ.fill(0.).

Definition at line 282 of file frames.hpp.

References getFrameJacobianTimeVariation().

MotionTpl<Scalar, Options> pinocchio::getFrameVelocity ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex  frame_id 
)
inline

Returns the spatial velocity of the frame expressed in the LOCAL frame coordinate system. You must first call pinocchio::forwardKinematics to update placement and velocity values in data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
Returns
The spatial velocity of the Frame expressed in the coordinates Frame.
Warning
Fist or second order forwardKinematics should have been called first

Referenced by getFrameVelocity().

PINOCCHIO_DEPRECATED void pinocchio::getFrameVelocity ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex  frame_id,
const MotionDense< MotionLike > &  frame_v 
)
inline

Returns the spatial velocity of the frame expressed in the LOCAL frame coordinate system. You must first call pinocchio::forwardKinematics to update placement and velocity values in data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[out]frame_vThe spatial velocity of the Frame expressed in the coordinates Frame.
Deprecated:
This function is now deprecated. Use the return-value version instead (since: 19 feb 2019)
Warning
Fist or second order forwardKinematics should have been called first

Definition at line 96 of file frames.hpp.

References getFrameAcceleration(), and getFrameVelocity().

PINOCCHIO_DEPRECATED void pinocchio::getJacobian ( const Model model,
const Data data,
const Model::JointIndex  jointId,
Data::Matrix6x J 
)

Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint.

Note
This jacobian is extracted from data.J. You have to run pinocchio::computeJointJacobians before calling it.
Deprecated:
This function is now deprecated. Please refer now to pinocchio::getJointJacobian for similar function with updated name.
Template Parameters
rfReference frame in which the Jacobian is expressed.
Parameters
[in]localFrameExpressed the Jacobian in the local frame or world frame coordinates system.
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]jointIdThe id of the joint.
[out]JA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.fill(0.).

Definition at line 149 of file jacobian.hpp.

References jointJacobian().

const DataTpl<Scalar,Options,JointCollectionTpl>::Matrix3x& pinocchio::getJacobianComFromCrba ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)
inline

Extracts both the jacobian of the center of mass (CoM), the total mass of the system and the CoM position from the joint space inertia matrix (also called the mass matrix). The results are accessible through data.Jcom, data.mass[0] and data.com[0] and are both expressed in the world frame.

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Returns
The jacobian of the CoM expressed in the world frame (matrix 3 x model.nv).
Remarks
This extraction of inertial quantities is only valid for free-floating base systems.

Referenced by centerOfMass().

PINOCCHIO_DEPRECATED void pinocchio::getJacobianTimeVariation ( const Model model,
const Data data,
const Model::JointIndex  jointId,
Data::Matrix6x dJ 
)
inline

Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint.

Note
This jacobian is extracted from data.dJ. You have to run pinocchio::computeJointJacobiansTimeVariation before calling it.
Deprecated:
This function is now deprecated. Please refer now to pinocchio::getJointJacobianTimeVariation for similar function with updated name.
Deprecated:
This function is now deprecated. Please refer now to pinocchio::getJacobianTimeVariation for similar function without ReferenceFrame template parameters.
Template Parameters
rfReference frame in which the Jacobian is expressed.
Parameters
[in]localFrameExpressed the Jacobian in the local frame or world frame coordinates system.
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]jointIdThe id of the joint.
[out]dJA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill dJ with zero elements, e.g. dJ.fill(0.).

Definition at line 333 of file jacobian.hpp.

void pinocchio::getJointAccelerationDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Model::JointIndex  jointId,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xOut1 > &  v_partial_dq,
const Eigen::MatrixBase< Matrix6xOut2 > &  a_partial_dq,
const Eigen::MatrixBase< Matrix6xOut3 > &  a_partial_dv,
const Eigen::MatrixBase< Matrix6xOut4 > &  a_partial_da 
)
inline

Computes the partial derivaties of the spatial acceleration of a given with respect to the joint configuration, velocity and acceleration. You must first call computForwardKinematicsDerivatives before calling this function. It is important to notice that a direct outcome (for free) of this algo is v_partial_dq and v_partial_dv which is equal to a_partial_da.

Template Parameters
JointCollectionCollection of Joint types.
Matrix6xOut1Matrix6x containing the partial derivatives of the spatial velocity with respect to the joint configuration vector.
Matrix6xOut2Matrix6x containing the partial derivatives of the spatial acceleration with respect to the joint configuration vector.
Matrix6xOut3Matrix6x containing the partial derivatives of the spatial acceleration with respect to the joint velocity vector.
Matrix6xOut4Matrix6x containing the partial derivatives of the spatial acceleration with respect to the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]jointIdIndex of the joint in model.
[in]rfReference frame in which the Jacobian is expressed.
[out]v_partial_dqPartial derivative of the joint spatial velocity w.r.t. \( q \).
[out]a_partial_dqPartial derivative of the joint spatial acceleration w.r.t. \( q \).
[out]a_partial_dqPartial derivative of the joint spatial acceleration w.r.t. \( \dot{q} \).
[out]a_partial_dqPartial derivative of the joint spatial acceleration w.r.t. \( \ddot{q} \).
void pinocchio::getJointJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const typename ModelTpl< Scalar, Options, JointCollectionTpl >::JointIndex  jointId,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6Like > &  J 
)
inline

Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint.

Note
This jacobian is extracted from data.J. You have to run pinocchio::computeJointJacobians before calling it.
Template Parameters
JointCollectionCollection of Joint types.
Matrix6xLikeType of the matrix containing the joint Jacobian.
Parameters
[in]localFrameExpressed the Jacobian in the local frame or world frame coordinates system.
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]jointIdThe id of the joint.
[out]JA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.fill(0.).

Referenced by computeJacobians(), and getJointJacobian().

PINOCCHIO_DEPRECATED void pinocchio::getJointJacobian ( const Model model,
const Data data,
const Model::JointIndex  jointId,
Data::Matrix6x J 
)

Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint.

Note
This jacobian is extracted from data.J. You have to run pinocchio::computeJointJacobians before calling it.
Template Parameters
rfReference frame in which the Jacobian is expressed.
Parameters
[in]localFrameExpressed the Jacobian in the local frame or world frame coordinates system.
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]jointIdThe id of the joint.
[out]JA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.fill(0.).

Definition at line 127 of file jacobian.hpp.

References getJointJacobian().

void pinocchio::getJointJacobianTimeVariation ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  jointId,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6Like > &  dJ 
)
inline

Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint.

Note
This jacobian is extracted from data.dJ. You have to run pinocchio::computeJointJacobiansTimeVariation before calling it.
Template Parameters
JointCollectionCollection of Joint types.
Matrix6xLikeType of the matrix containing the joint Jacobian.
Parameters
[in]localFrameExpressed the Jacobian in the local frame or world frame coordinates system.
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]jointIdThe id of the joint.
[out]dJA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill dJ with zero elements, e.g. dJ.fill(0.).

Referenced by computeJacobiansTimeVariation(), and getJointJacobianTimeVariation().

PINOCCHIO_DEPRECATED void pinocchio::getJointJacobianTimeVariation ( const Model model,
const Data data,
const Model::JointIndex  jointId,
Data::Matrix6x dJ 
)
inline

Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint.

Note
This jacobian is extracted from data.dJ. You have to run pinocchio::computeJointJacobiansTimeVariation before calling it.
Deprecated:
This function is now deprecated. Please refer now to pinocchio::getJointJacobianTimeVariation for similar function with updated name.
Template Parameters
rfReference frame in which the Jacobian is expressed.
Parameters
[in]localFrameExpressed the Jacobian in the local frame or world frame coordinates system.
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]jointIdThe id of the joint.
[out]dJA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill dJ with zero elements, e.g. dJ.fill(0.).

Definition at line 310 of file jacobian.hpp.

References getJointJacobianTimeVariation().

void pinocchio::getJointVelocityDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Model::JointIndex  jointId,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xOut1 > &  v_partial_dq,
const Eigen::MatrixBase< Matrix6xOut2 > &  v_partial_dv 
)
inline

Computes the partial derivaties of the spatial velocity of a given with respect to the joint configuration and velocity. You must first call computForwardKinematicsDerivatives before calling this function.

Template Parameters
JointCollectionCollection of Joint types.
Matrix6xOut1Matrix6x containing the partial derivatives with respect to the joint configuration vector.
Matrix6xOut2Matrix6x containing the partial derivatives with respect to the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]rfReference frame in which the Jacobian is expressed.
[out]partial_dqPartial derivative of the joint velociy w.r.t. \( q \).
[out]partial_dqPartial derivative of the joint velociy w.r.t. \( \dot{q} \).
void pinocchio::getKKTContactDynamicMatrixInverse ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConstraintMatrixType > &  J,
const Eigen::MatrixBase< KKTMatrixType > &  MJtJ_inv 
)
inline

Computes the inverse of the KKT matrix for dynamics with contact constraints, [[M JT], [J 0]]. The matrix is defined when we call forwardDynamics/impulsedynamics. This method makes use of the matrix decompositions performed during the forwardDynamics/impulasedynamics and returns the inverse. The jacobian should be the same that was provided to forwardDynamics/impulasedynamics. Thus you should call forward Dynamics/impulsedynamics first.

Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[out]MJtJ_invinverse of the MJtJ matrix.
JointIndex pinocchio::id ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel)
inline

Visit a JointModelTpl through JointIdVisitor to get the index of the joint in the kinematic chain.

Parameters
[in]jmodelThe JointModelVariant
Returns
The index of the joint in the kinematic chain

Referenced by JointModelBase< JointModelCompositeTpl< _Scalar, _Options, JointCollectionTpl > >::finiteDifferenceIncrement().

const DataTpl<Scalar,Options,JointCollectionTpl>::TangentVectorType& pinocchio::impulseDynamics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v_before,
const Eigen::MatrixBase< ConstraintMatrixType > &  J,
const Scalar  r_coeff = 0,
const bool  updateKinematics = true 
)
inline

Compute the impulse dynamics with contact constraints.

Note
It computes the following problem:
\( \begin{eqnarray} \underset{\dot{q}^{+}}{\min} & & \| \dot{q}^{+} - \dot{q}^{-} \|_{M(q)} \\ \text{s.t.} & & J (q) \dot{q}^{+} = - \epsilon J (q) \dot{q}^{-} \end{eqnarray} \)

where \( \dot{q}^{-} \) is the generalized velocity before impact, \( M \) is the joint space mass matrix, \( J \) the constraint Jacobian and \( \epsilon \) is the coefficient of restitution (1 for a fully elastic impact or 0 for a rigid impact).
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
ConstraintMatrixTypeType of the constraint matrix.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (vector dim model.nq).
[in]v_beforeThe joint velocity before impact (vector dim model.nv).
[in]JThe Jacobian of the constraints (dim nb_constraints*model.nv).
[in]r_coeffThe coefficient of restitution. Must be in [0;1].
[in]updateKinematicsIf true, the algorithm calls first pinocchio::crba. Otherwise, it uses the current mass matrix value stored in data.
Returns
A reference to the generalized velocity after impact stored in data.dq_after. The Lagrange Multipliers linked to the contact impulsed are available throw data.impulse_c vector.
void pinocchio::integrate ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v,
const Eigen::MatrixBase< ReturnType > &  qout 
)

Integrate a configuration vector for the specified model for a tangent vector during one unit time.

This function corresponds to the exponential map of the joint configuration Lie Group. Its output can be interpreted as the "sum" from the Lie algebra to the joint configuration space \( q \oplus v \).

Parameters
[in]modelModel that must be integrated
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[out]qoutThe integrated configuration (size model.nq)

Definition at line 48 of file joint-configuration.hpp.

References interpolate().

Referenced by integrateCoeffWiseJacobian().

void pinocchio::integrate ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v,
const Eigen::MatrixBase< ReturnType > &  qout 
)

Integrate a configuration vector for the specified model for a tangent vector during one unit time.

This function corresponds to the exponential map of the joint configuration Lie Group. Its output can be interpreted as the "sum" from the Lie algebra to the joint configuration space \( q \oplus v \).

Parameters
[in]modelModel that must be integrated
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[out]qoutThe integrated configuration (size model.nq)

Definition at line 48 of file joint-configuration.hpp.

References interpolate().

Referenced by integrateCoeffWiseJacobian().

void pinocchio::integrate ( const LieGroupGenericTpl< LieGroupCollection > &  lg,
const Eigen::MatrixBase< ConfigIn_t > &  q,
const Eigen::MatrixBase< Tangent_t > &  v,
const Eigen::MatrixBase< ConfigOut_t > &  qout 
)
inline

Visit a LieGroupVariant to call its integrate method.

Parameters
[in]lgthe LieGroupVariant.
[in]qthe starting configuration.
[in]vthe tangent velocity.
ConfigVectorType pinocchio::integrate ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Integrate a configuration vector for the specified model for a tangent vector during one unit time.

Parameters
[in]modelModel that must be integrated
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
Returns
The integrated configuration (size model.nq)

Definition at line 474 of file joint-configuration.hpp.

References interpolate().

ConfigVectorType pinocchio::integrate ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Integrate a configuration vector for the specified model for a tangent vector during one unit time.

Parameters
[in]modelModel that must be integrated
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
Returns
The integrated configuration (size model.nq)

Definition at line 474 of file joint-configuration.hpp.

References interpolate().

void pinocchio::integrateCoeffWiseJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVector > &  q,
const Eigen::MatrixBase< JacobianMatrix > &  jacobian 
)
inline

Return the Jacobian of the integrate function for the components of the config vector.

Parameters
[in]modelModel of rigid body system.
[out]jacobianThe Jacobian of the integrate operation.

This function is often required for the numerical solvers that are working on the tangent of the configuration space, instead of the configuration space itself.

Definition at line 436 of file joint-configuration.hpp.

References integrate(), and jacobian().

Referenced by isSameConfiguration().

void pinocchio::integrateCoeffWiseJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVector > &  q,
const Eigen::MatrixBase< JacobianMatrix > &  jacobian 
)
inline

Return the Jacobian of the integrate function for the components of the config vector.

Parameters
[in]modelModel of rigid body system.
[out]jacobianThe Jacobian of the integrate operation.

This function is often required for the numerical solvers that are working on the tangent of the configuration space, instead of the configuration space itself.

Definition at line 436 of file joint-configuration.hpp.

References integrate(), and jacobian().

Referenced by isSameConfiguration().

void interpolate ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1,
const Scalar &  u,
const Eigen::MatrixBase< ReturnType > &  qout 
)

Interpolate two configurations for a given model.

Parameters
[in]modelModel to be interpolated
[in]q0Initial configuration vector (size model.nq)
[in]q1Final configuration vector (size model.nq)
[in]uu in [0;1] position along the interpolation.
[out]qoutThe interpolated configuration (q0 if u = 0, q1 if u = 1)

Definition at line 84 of file joint-configuration.hpp.

References difference().

Referenced by integrate().

ConfigVectorIn1 interpolate ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1,
const Scalar &  u 
)
inline

Interpolate two configurations for a given model.

Parameters
[in]modelModel to be interpolated
[in]q0Initial configuration vector (size model.nq)
[in]q1Final configuration vector (size model.nq)
[in]uu in [0;1] position along the interpolation.
Returns
The interpolated configuration (q0 if u = 0, q1 if u = 1)

Definition at line 510 of file joint-configuration.hpp.

References difference().

bool pinocchio::isSameConfiguration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q1,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q2,
const Scalar &  prec = Eigen::NumTraits< Scalar >::dummy_precision() 
)
inline

Return true if the given configurations are equivalents.

Warning
Two configurations can be equivalent but not equally coefficient wise (e.g for quaternions)
Parameters
[in]modelModel
[in]q1The first configuraiton to compare
[in]q2The second configuration to compare
[in]precprecision of the comparison
Returns
Whether the configurations are equivalent or not

Definition at line 400 of file joint-configuration.hpp.

References integrateCoeffWiseJacobian(), and jacobian().

Referenced by normalize().

bool pinocchio::isSameConfiguration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q1,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q2,
const Scalar &  prec = Eigen::NumTraits<Scalar>::dummy_precision() 
)
inline

Return true if the given configurations are equivalents.

Warning
Two configurations can be equivalent but not equally coefficient wise (e.g for quaternions)
Parameters
[in]modelModel
[in]q1The first configuraiton to compare
[in]q2The second configuration to compare
[in]precprecision of the comparison
Returns
Whether the configurations are equivalent or not

Definition at line 400 of file joint-configuration.hpp.

References integrateCoeffWiseJacobian(), and jacobian().

Referenced by normalize().

PINOCCHIO_DEPRECATED void pinocchio::jacobian ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const Model::JointIndex  jointId,
Data::Matrix6x J 
)
inline

Computes the Jacobian of a specific joint frame expressed in the local frame of the joint and store the result in the input argument J.

Deprecated:
This function is now deprecated. Please refer now to pinocchio::jointJacobian for similar function with updated name.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]jointIdThe id of the joint refering to model.joints[jointId].
[out]JA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.setZero().
Returns
The Jacobian of the specific joint frame expressed in the local frame of the joint (matrix 6 x model.nv).
Remarks
The result of this function is equivalent to call first computeJointJacobians(model,data,q) and then call getJointJacobian<LOCAL>(model,data,jointId,J), but forwardKinematics is not fully computed. It is worth to call jacobian if you only need a single Jacobian for a specific joint. Otherwise, for several Jacobians, it is better to call computeJointJacobians(model,data,q) followed by getJointJacobian<LOCAL>(model,data,jointId,J) for each Jacobian.

Definition at line 201 of file jacobian.hpp.

References jointJacobian().

Referenced by integrateCoeffWiseJacobian(), and isSameConfiguration().

PINOCCHIO_DEPRECATED const DataTpl<Scalar,Options,JointCollectionTpl>::Matrix3x& pinocchio::jacobianCenterOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const bool  computeSubtreeComs,
const bool  updateKinematics 
)
inline

Computes both the jacobian and the the center of mass position of a given model according to a particular joint configuration. The results are accessible through data.Jcom and data.com[0] and are both expressed in the world frame. In addition, the algorithm also computes the Jacobian of all the joints (.

See also
pinocchio::computeJointJacobians). And data.com[i] gives the center of mass of the subtree supported by Joint i (expressed in the world frame).
Deprecated:
This function signature is now deprecated. The argument updateKinematics was redundant with the input argument q.
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]computeSubtreeComsIf true, the algorithm also computes the center of mass of the subtrees.
[in]updateKinematicsIf true, the algorithm updates first the geometry of the tree. Otherwise, it uses the current kinematics stored in data.
Returns
The jacobian of center of mass position of the rigid body system expressed in the world frame (matrix 3 x model.nv).

Referenced by centerOfMass().

const DataTpl<Scalar,Options,JointCollectionTpl>::Matrix3x& pinocchio::jacobianCenterOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const bool  computeSubtreeComs = true 
)
inline

Computes both the jacobian and the the center of mass position of a given model according to a particular joint configuration. The results are accessible through data.Jcom and data.com[0] and are both expressed in the world frame. In addition, the algorithm also computes the Jacobian of all the joints (.

See also
pinocchio::computeJointJacobians). And data.com[i] gives the center of mass of the subtree supported by Joint i (expressed in the world frame).
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]computeSubtreeComsIf true, the algorithm also computes the center of mass of the subtrees.
Returns
The jacobian of center of mass position of the rigid body system expressed in the world frame (matrix 3 x model.nv).
const DataTpl<Scalar,Options,JointCollectionTpl>::Matrix3x& pinocchio::jacobianCenterOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const bool  computeSubtreeComs = true 
)
inline

Computes both the jacobian and the the center of mass position of a given model according to the current value stored in data. It assumes that forwardKinematics has been called first. The results are accessible through data.Jcom and data.com[0] and are both expressed in the world frame. In addition, the algorithm also computes the Jacobian of all the joints (.

See also
pinocchio::computeJointJacobians). And data.com[i] gives the center of mass of the subtree supported by Joint i (expressed in the world frame).
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]computeSubtreeComsIf true, the algorithm also computes the center of mass of the subtrees.
Returns
The jacobian of center of mass position of the rigid body system expressed in the world frame (matrix 3 x model.nv).
SE3Tpl<Scalar,Options> pinocchio::joint_transform ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata)
inline

Visit a JointDataTpl through JointTransformVisitor to get the joint internal transform (transform between the entry frame and the exit frame of the joint).

Parameters
[in]jdataThe joint data to visit.
Returns
The joint transform corresponding to the joint derived transform (sXp)
void pinocchio::jointJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const JointIndex  jointId,
const Eigen::MatrixBase< Matrix6Like > &  J 
)
inline

Computes the Jacobian of a specific joint frame expressed in the local frame of the joint and store the result in the input argument J.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Matrix6xLikeType of the matrix containing the joint Jacobian.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]jointIdThe id of the joint refering to model.joints[jointId].
[out]JA reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.setZero().
Returns
The Jacobian of the specific joint frame expressed in the local frame of the joint (matrix 6 x model.nv).
Remarks
The result of this function is equivalent to call first computeJointJacobians(model,data,q) and then call getJointJacobian(model,data,jointId,LOCAL,J), but forwardKinematics is not fully computed. It is worth to call jacobian if you only need a single Jacobian for a specific joint. Otherwise, for several Jacobians, it is better to call computeJointJacobians(model,data,q) followed by getJointJacobian(model,data,jointId,LOCAL,J) for each Jacobian.

Referenced by getJacobian(), jacobian(), and jointJacobian().

PINOCCHIO_DEPRECATED const Data::Matrix6x& pinocchio::jointJacobian ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const Model::JointIndex  jointId 
)
inline

Computes the Jacobian of a specific joint frame expressed in the local frame of the joint. The result is stored in data.J.

Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]jointIdThe id of the joint refering to model.joints[jointId].
Returns
The Jacobian of the specific joint frame expressed in the local frame of the joint (matrix 6 x model.nv).

Definition at line 220 of file jacobian.hpp.

References computeJointJacobiansTimeVariation(), DataTpl< _Scalar, _Options, JointCollectionTpl >::J, and jointJacobian().

Scalar kineticEnergy ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v,
const bool  update_kinematics = true 
)
inline

Computes the kinetic energy of the system. The result is accessible through data.kinetic_energy.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
Returns
The kinetic energy of the system in [J].

Definition at line 67 of file energy.hpp.

References ModelTpl< _Scalar, _Options, JointCollectionTpl >::check(), forwardKinematics(), ModelTpl< _Scalar, _Options, JointCollectionTpl >::inertias, DataTpl< _Scalar, _Options, JointCollectionTpl >::kinetic_energy, ModelTpl< _Scalar, _Options, JointCollectionTpl >::njoints, ModelTpl< _Scalar, _Options, JointCollectionTpl >::nq, ModelTpl< _Scalar, _Options, JointCollectionTpl >::nv, and DataTpl< _Scalar, _Options, JointCollectionTpl >::v.

Eigen::Matrix<typename Matrix3Like::Scalar,3,1, Matrix3Like ::Options> pinocchio::log3 ( const Eigen::MatrixBase< Matrix3Like > &  R,
typename Matrix3Like::Scalar &  theta 
)

Same as log3.

Parameters
[in]Rthe rotation matrix.
[out]thetathe angle value.
Returns
The angular velocity vector associated to the rotation matrix.

Definition at line 78 of file explog.hpp.

Referenced by Jexp3(), Jlog6(), log3(), log6(), and SpecialOrthogonalOperationTpl< 3, _Scalar, _Options >::nv().

Eigen::Matrix<typename Matrix3Like::Scalar,3,1, Matrix3Like ::Options> pinocchio::log3 ( const Eigen::MatrixBase< Matrix3Like > &  R)

Log: SO3 -> so3.

Pseudo-inverse of log from \( SO3 -> { v \in so3, ||v|| \le pi } \).

Parameters
[in]RThe rotation matrix.
Returns
The angular velocity vector associated to the rotation matrix.

Definition at line 132 of file explog.hpp.

References log3().

MotionTpl<Scalar,Options> pinocchio::log6 ( const SE3Tpl< Scalar, Options > &  M)

Log: SE3 -> se3.

Pseudo-inverse of exp from SE3 -> { v,w se3, ||w|| < 2pi }.

Parameters
[in]MThe rigid transformation.
Returns
The twist associated to the rigid transformation during time 1.

Definition at line 333 of file explog.hpp.

References log3(), and SINCOS().

Referenced by log6(), and SpecialEuclideanOperationTpl< 3, _Scalar, _Options >::nv().

MotionTpl<typename Matrix4Like::Scalar,Eigen::internal::traits<Matrix4Like>::Options> pinocchio::log6 ( const Eigen::MatrixBase< Matrix4Like > &  M)

Log: SE3 -> se3.

Pseudo-inverse of exp from SE3 -> { v,w se3, ||w|| < 2pi }.

Parameters
[in]RThe rigid transformation represented as an homogenous matrix.
Returns
The twist associated to the rigid transformation during time 1.

Definition at line 372 of file explog.hpp.

References log6().

MotionTpl<Scalar,Options> pinocchio::motion ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata)
inline

Visit a JointDataTpl through JointMotionVisitor to get the joint internal motion as a dense motion.

Parameters
[in]jdataThe joint data to visit.
Returns
The motion dense corresponding to the joint derived motion
Eigen::Matrix<typename LieGroupCollection::Scalar,Eigen::Dynamic,1,LieGroupCollection::Options> pinocchio::neutral ( const LieGroupGenericTpl< LieGroupCollection > &  lg)
inline

Visit a LieGroupVariant to get the neutral element of it.

Parameters
[in]lgthe LieGroupVariant.
Returns
The Lie group neutral element
void pinocchio::neutral ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ReturnType > &  qout 
)
void pinocchio::neutral ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ReturnType > &  qout 
)
Eigen::Matrix<Scalar,Eigen::Dynamic,1,Options> pinocchio::neutral ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model)
inline

Return the neutral configuration element related to the model configuration space.

Parameters
[in]modelModel
Returns
The neutral configuration element.

Definition at line 680 of file joint-configuration.hpp.

Eigen::Matrix<Scalar,Eigen::Dynamic,1,Options> pinocchio::neutral ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model)
inline

Return the neutral configuration element related to the model configuration space.

Parameters
[in]modelModel
Returns
The neutral configuration element.

Definition at line 680 of file joint-configuration.hpp.

const DataTpl<Scalar,Options,JointCollectionTpl>::TangentVectorType& pinocchio::nonLinearEffects ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v 
)
inline

Computes the non-linear effects (Corriolis, centrifual and gravitationnal effects), also called the bias terms \( b(q,\dot{q}) \) of the Lagrangian dynamics:

\( \begin{eqnarray} M \ddot{q} + b(q, \dot{q}) = \tau \end{eqnarray} \)


Note
This function is equivalent to pinocchio::rnea(model, data, q, v, 0).
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorTypeType of the joint velocity vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
Returns
The bias terms stored in data.nle.
void pinocchio::normalize ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  qout 
)
inline

Normalize a configuration vector.

Parameters
[in]modelModel
[in,out]qConfiguration to normalize

Definition at line 363 of file joint-configuration.hpp.

References isSameConfiguration().

Referenced by distance(), SpecialEuclideanOperationTpl< 2, _Scalar, _Options >::nv(), and SpecialEuclideanOperationTpl< 3, _Scalar, _Options >::nv().

void pinocchio::normalize ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  qout 
)
inline

Normalize a configuration vector.

Parameters
[in]modelModel
[in,out]qConfiguration to normalize

Definition at line 363 of file joint-configuration.hpp.

References isSameConfiguration().

Referenced by distance(), SpecialEuclideanOperationTpl< 2, _Scalar, _Options >::nv(), and SpecialEuclideanOperationTpl< 3, _Scalar, _Options >::nv().

int pinocchio::nq ( const LieGroupGenericTpl< LieGroupCollection > &  lg)
inline

Visit a LieGroupVariant to get the dimension of the Lie group configuration space.

Parameters
[in]lgthe LieGroupVariant.
Returns
The dimension of the Lie group configuration space
int pinocchio::nv ( const LieGroupGenericTpl< LieGroupCollection > &  lg)
inline

Visit a LieGroupVariant to get the dimension of the Lie group tangent space.

Parameters
[in]lgthe LieGroupVariant.
Returns
The dimension of the Lie group tangent space
const Scalar pinocchio::PI ( )

Returns the value of PI according to the template parameters Scalar.

Template Parameters
ScalarThe scalar type of the return pi value

Definition at line 43 of file math/fwd.hpp.

References PI().

Referenced by PI().

Scalar potentialEnergy ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const bool  update_kinematics = true 
)
inline

Computes the potential energy of the system, i.e. the potential energy linked to the gravity field. The result is accessible through data.potential_energy.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
Returns
The potential energy of the system expressed in [J].

Definition at line 95 of file energy.hpp.

References ModelTpl< _Scalar, _Options, JointCollectionTpl >::check(), forwardKinematics(), ModelTpl< _Scalar, _Options, JointCollectionTpl >::gravity, ModelTpl< _Scalar, _Options, JointCollectionTpl >::inertias, ModelTpl< _Scalar, _Options, JointCollectionTpl >::njoints, ModelTpl< _Scalar, _Options, JointCollectionTpl >::nq, DataTpl< _Scalar, _Options, JointCollectionTpl >::oMi, and DataTpl< _Scalar, _Options, JointCollectionTpl >::potential_energy.

void pinocchio::randomConfiguration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  lowerLimits,
const Eigen::MatrixBase< ConfigVectorIn2 > &  upperLimits,
const Eigen::MatrixBase< ReturnType > &  qout 
)

Generate a configuration vector uniformly sampled among provided limits.

Remarks
Limits are not taken into account for rotational transformations (typically SO(2),SO(3)), because they are by definition unbounded.
Warning
If limits are infinite, exceptions may be thrown in the joint implementation of uniformlySample
Parameters
[in]modelModel for which we want to generate a configuration vector.
[in]lowerLimitsJoints lower limits
[in]upperLimitsJoints upper limits
[out]qoutThe resulted configuration vector (size model.nq)

Definition at line 198 of file joint-configuration.hpp.

References neutral().

Referenced by randomConfiguration(), and squaredDistance().

void pinocchio::randomConfiguration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  lowerLimits,
const Eigen::MatrixBase< ConfigVectorIn2 > &  upperLimits,
const Eigen::MatrixBase< ReturnType > &  qout 
)

Generate a configuration vector uniformly sampled among provided limits.

Remarks
Limits are not taken into account for rotational transformations (typically SO(2),SO(3)), because they are by definition unbounded.
Warning
If limits are infinite, exceptions may be thrown in the joint implementation of uniformlySample
Parameters
[in]modelModel for which we want to generate a configuration vector.
[in]lowerLimitsJoints lower limits
[in]upperLimitsJoints upper limits
[out]qoutThe resulted configuration vector (size model.nq)

Definition at line 198 of file joint-configuration.hpp.

References neutral().

Referenced by randomConfiguration(), and squaredDistance().

ModelTpl<Scalar,Options,JointCollectionTpl>::ConfigVectorType pinocchio::randomConfiguration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  lowerLimits,
const Eigen::MatrixBase< ConfigVectorIn2 > &  upperLimits 
)

Generate a configuration vector uniformly sampled among provided limits.

Remarks
Limits are not taken into account for rotational transformations (typically SO(2),SO(3)), because they are by definition unbounded.
Warning
If limits are infinite, exceptions may be thrown in the joint implementation of uniformlySample
Parameters
[in]modelModel for which we want to generate a configuration vector.
[in]lowerLimitsJoints lower limits
[in]upperLimitsJoints upper limits
Returns
The resulted configuration vector (size model.nq)

Definition at line 618 of file joint-configuration.hpp.

References randomConfiguration().

ModelTpl<Scalar,Options,JointCollectionTpl>::ConfigVectorType pinocchio::randomConfiguration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  lowerLimits,
const Eigen::MatrixBase< ConfigVectorIn2 > &  upperLimits 
)

Generate a configuration vector uniformly sampled among provided limits.

Remarks
Limits are not taken into account for rotational transformations (typically SO(2),SO(3)), because they are by definition unbounded.
Warning
If limits are infinite, exceptions may be thrown in the joint implementation of uniformlySample
Parameters
[in]modelModel for which we want to generate a configuration vector.
[in]lowerLimitsJoints lower limits
[in]upperLimitsJoints upper limits
Returns
The resulted configuration vector (size model.nq)

Definition at line 618 of file joint-configuration.hpp.

References randomConfiguration().

ModelTpl<Scalar,Options,JointCollectionTpl>::ConfigVectorType pinocchio::randomConfiguration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model)

Generate a configuration vector uniformly sampled among the joint limits of the specified Model.

Remarks
Limits are not taken into account for rotational transformations (typically SO(2),SO(3)), because they are by definition unbounded.
Warning
If limits are infinite (no one specified when adding a body or no modification directly in my_model.{lowerPositionLimit,upperPositionLimit}, exceptions may be thrown in the joint implementation of uniformlySample
Parameters
[in]modelModel for which we want to generate a configuration vector.
Returns
The resulted configuration vector (size model.nq)

Definition at line 655 of file joint-configuration.hpp.

References neutral().

ModelTpl<Scalar,Options,JointCollectionTpl>::ConfigVectorType pinocchio::randomConfiguration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model)

Generate a configuration vector uniformly sampled among the joint limits of the specified Model.

Remarks
Limits are not taken into account for rotational transformations (typically SO(2),SO(3)), because they are by definition unbounded.
Warning
If limits are infinite (no one specified when adding a body or no modification directly in my_model.{lowerPositionLimit,upperPositionLimit}, exceptions may be thrown in the joint implementation of uniformlySample
Parameters
[in]modelModel for which we want to generate a configuration vector.
Returns
The resulted configuration vector (size model.nq)

Definition at line 655 of file joint-configuration.hpp.

References neutral().

std::string pinocchio::randomStringGenerator ( const int  len)
inline

Generate a random string composed of alphanumeric symbols of a given length.

len The length of the output string.

Returns
a random string composed of alphanumeric symbols.

Definition at line 21 of file string-generator.hpp.

std::string pinocchio::retrieveResourcePath ( const std::string &  string,
const std::vector< std::string > &  package_dirs 
)
inline

Retrieve the path of the file whose path is given in an url-format. Currently convert from the folliwing patterns : package:// or file://.

Parameters
[in]stringThe path given in the url-format
[in]package_dirsA list of packages directories where to search for files if its pattern starts with package://
Returns
The path to the file (can be a relative or absolute path)

Definition at line 64 of file utils.hpp.

const DataTpl<Scalar,Options,JointCollectionTpl>::TangentVectorType& pinocchio::rnea ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a 
)
inline

The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques according to the current state of the system and the desired joint accelerations.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]aThe joint acceleration vector (dim model.nv).
Returns
The desired joint torques stored in data.tau.

Referenced by CodeGenRNEA< _Scalar >::buildMap().

const DataTpl<Scalar,Options,JointCollectionTpl>::TangentVectorType& pinocchio::rnea ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType1 > &  v,
const Eigen::MatrixBase< TangentVectorType2 > &  a,
const container::aligned_vector< ForceDerived > &  fext 
)
inline

The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques according to the current state of the system, the desired joint accelerations and the external forces.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint acceleration vector.
ForceDerivedType of the external forces.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration vector (dim model.nq).
[in]vThe joint velocity vector (dim model.nv).
[in]aThe joint acceleration vector (dim model.nv).
[in]fextVector of external forces expressed in the local frame of the joints (dim model.njoints)
Returns
The desired joint torques stored in data.tau.
std::vector<std::string> pinocchio::rosPaths ( )
inline

Parse the environment variable ROS_PACKAGE_PATH and extract paths.

Returns
The vector of paths extracted from the environment variable ROS_PACKAGE_PATH

Definition at line 56 of file file-explorer.hpp.

References extractPathFromEnvVar().

void pinocchio::setIndexes ( JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel,
JointIndex  id,
int  q,
int  v 
)
inline

Visit a JointModelTpl through JointSetIndexesVisitor to set the indexes of the joint in the kinematic chain.

Parameters
[in]jmodelThe JointModelVariant
[in]idThe index of joint in the kinematic chain
[in]qThe index in the full model configuration space corresponding to the first degree of freedom
[in]vThe index in the full model tangent space corresponding to the first joint tangent space degree
Returns
The index of the joint in the kinematic chain

Referenced by JointModelBase< JointModelCompositeTpl< _Scalar, _Options, JointCollectionTpl > >::finiteDifferenceIncrement().

std::string pinocchio::shortname ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel)
inline

Visit a JointModelTpl through JointShortnameVisitor to get the shortname of the derived joint model.

Parameters
jmodelThe JointModelVariant we want the shortname of the type held in

Referenced by JointModelBase< JointModelCompositeTpl< _Scalar, _Options, JointCollectionTpl > >::finiteDifferenceIncrement(), JointDataTpl< _Scalar, _Options, JointCollectionTpl >::S_accessor(), and JointModelCompositeTpl< _Scalar, _Options, JointCollectionTpl >::setIndexes_impl().

void pinocchio::SINCOS ( const Scalar &  a,
Scalar *  sa,
Scalar *  ca 
)

Computes sin/cos values of a given input scalar.

Template Parameters
ScalarType of the input/output variables
Parameters
[in]aThe input scalar from which we evalute the sin and cos.
[in,out]saVariable containing the sin of a.
[in,out]caVariable containing the cos of a.

Definition at line 28 of file sincos.hpp.

Referenced by exp3(), exp6(), Jexp3(), pinocchio::quaternion::Jexp3CoeffWise(), Jexp6(), Jlog6(), log6(), SpecialOrthogonalOperationTpl< 2, _Scalar, _Options >::nv(), and pinocchio::quaternion::uniformRandom().

void pinocchio::skew ( const Eigen::MatrixBase< Vector3 > &  v,
const Eigen::MatrixBase< Matrix3 > &  M 
)
inline

Computes the skew representation of a given 3d vector, i.e. the antisymmetric matrix representation of the cross product operator ( \( [v]_{\times} x = v \times x \))

Parameters
[in]va vector of dimension 3.
[out]Mthe skew matrix representation of dimension 3x3.

Definition at line 21 of file skew.hpp.

Referenced by SpecialEuclideanOperationTpl< 3, _Scalar, _Options >::nv(), ForceSetTpl< _Scalar, _Options >::se3Action(), ForceSetTpl< _Scalar, _Options >::Block::se3Action(), ForceSetTpl< _Scalar, _Options >::se3ActionInverse(), ForceSetTpl< _Scalar, _Options >::Block::se3ActionInverse(), and skew().

Eigen::Matrix<typename D::Scalar,3,3, D ::Options> pinocchio::skew ( const Eigen::MatrixBase< D > &  v)
inline

Computes the skew representation of a given 3D vector, i.e. the antisymmetric matrix representation of the cross product operator.

Parameters
[in]va vector of dimension 3.
Returns
The skew matrix representation of v.

Definition at line 45 of file skew.hpp.

References skew().

void pinocchio::skewSquare ( const Eigen::MatrixBase< V1 > &  u,
const Eigen::MatrixBase< V2 > &  v,
const Eigen::MatrixBase< Matrix3 > &  C 
)
inline

Computes the square cross product linear operator C(u,v) such that for any vector w, \( u \times ( v \times w ) = C(u,v) w \).

Parameters
[in]ua 3 dimensional vector.
[in]va 3 dimensional vector.
[out]Cthe skew square matrix representation of dimension 3x3.

Definition at line 166 of file skew.hpp.

Referenced by skewSquare().

Eigen::Matrix<typename V1::Scalar,3,3, V1 ::Options> pinocchio::skewSquare ( const Eigen::MatrixBase< V1 > &  u,
const Eigen::MatrixBase< V2 > &  v 
)
inline

Computes the square cross product linear operator C(u,v) such that for any vector w, \( u \times ( v \times w ) = C(u,v) w \).

Parameters
[in]uA 3 dimensional vector.
[in]vA 3 dimensional vector.
Returns
The square cross product matrix C.

Definition at line 192 of file skew.hpp.

References skewSquare().

void pinocchio::squaredDistance ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1,
const Eigen::MatrixBase< ReturnType > &  out 
)

Squared distance between two configuration vectors.

Parameters
[in]modelModel we want to compute the distance
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
[out]outThe corresponding squared distances for each joint (size model.njoints-1 = number of joints)

Definition at line 157 of file joint-configuration.hpp.

References randomConfiguration().

Referenced by difference().

void pinocchio::squaredDistance ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1,
const Eigen::MatrixBase< ReturnType > &  out 
)

Squared distance between two configuration vectors.

Parameters
[in]modelModel we want to compute the distance
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
[out]outThe corresponding squared distances for each joint (size model.njoints-1 = number of joints)

Definition at line 157 of file joint-configuration.hpp.

References randomConfiguration().

Referenced by difference().

ConfigVectorIn1 pinocchio::squaredDistance ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1 
)
inline

Squared distance between two configuration vectors.

Parameters
[in]modelModel we want to compute the distance
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
Returns
The corresponding squared distances for each joint (size model.njoints-1 = number of joints)

Definition at line 577 of file joint-configuration.hpp.

References randomConfiguration().

ConfigVectorIn1 pinocchio::squaredDistance ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1 
)
inline

Squared distance between two configuration vectors.

Parameters
[in]modelModel we want to compute the distance
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
Returns
The corresponding squared distances for each joint (size model.njoints-1 = number of joints)

Definition at line 577 of file joint-configuration.hpp.

References randomConfiguration().

Scalar pinocchio::squaredDistanceSum ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1 
)
inline

Overall squared distance between two configuration vectors.

Parameters
[in]modelModel we want to compute the distance
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
Returns
The squared distance between the two configurations

Definition at line 305 of file joint-configuration.hpp.

References distance().

Referenced by dIntegrate().

Scalar pinocchio::squaredDistanceSum ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorIn1 > &  q0,
const Eigen::MatrixBase< ConfigVectorIn2 > &  q1 
)
inline

Overall squared distance between two configuration vectors.

Parameters
[in]modelModel we want to compute the distance
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
Returns
The squared distance between the two configurations

Definition at line 305 of file joint-configuration.hpp.

References distance().

Referenced by dIntegrate().

Eigen::Matrix<Scalar,6,Eigen::Dynamic,Options> pinocchio::u_inertia ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata)
inline

Visit a JointDataTpl through JointUInertiaVisitor to get the U matrix of the inertia matrix decomposition.

Parameters
[in]jdataThe joint data to visit.
Returns
The U matrix of the inertia matrix decomposition
Eigen::Matrix<Scalar,6,Eigen::Dynamic,Options> pinocchio::udinv_inertia ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata)
inline

Visit a JointDataTpl through JointUDInvInertiaVisitor to get U*D^{-1} matrix of the inertia matrix decomposition.

Parameters
[in]jdataThe joint data to visit.
Returns
The U*D^{-1} matrix of the inertia matrix decomposition
void PINOCCHIO_DEPRECATED pinocchio::uniformRandom ( const Eigen::QuaternionBase< D > &  q)
Deprecated:
This function has been replaced by quaternion::uniformRandom.

Definition at line 153 of file quaternion.hpp.

References pinocchio::quaternion::uniformRandom().

void pinocchio::unSkew ( const Eigen::MatrixBase< Matrix3 > &  M,
const Eigen::MatrixBase< Vector3 > &  v 
)
inline

Inverse of skew operator. From a given skew-symmetric matrix M of dimension 3x3, it extracts the supporting vector, i.e. the entries of M. Mathematically speacking, it computes \( v \) such that \( M x = v \times x \).

Parameters
[in]Ma 3x3 skew symmetric matrix.
[out]vthe 3d vector representation of M.

Definition at line 82 of file skew.hpp.

Referenced by unSkew().

Eigen::Matrix<typename Matrix3 ::Scalar,3,1, Matrix3 ::Options> pinocchio::unSkew ( const Eigen::MatrixBase< Matrix3 > &  M)
inline

Inverse of skew operator. From a given skew-symmetric matrix M of dimension 3x3, it extracts the supporting vector, i.e. the entries of M. Mathematically speacking, it computes \( v \) such that \( M x = v \times x \).

Parameters
[in]Ma 3x3 matrix.
Returns
The vector entries of the skew-symmetric matrix.

Definition at line 108 of file skew.hpp.

References unSkew().

const DataTpl<Scalar,Options,JointCollectionTpl>::SE3& pinocchio::updateFramePlacement ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const typename ModelTpl< Scalar, Options, JointCollectionTpl >::FrameIndex  frame_id 
)
inline

Updates the placement of the given frame.

Parameters
[in]modelThe kinematic model.
dataData associated to model.
[in]frame_idId of the operational Frame.
Returns
A reference to the frame placement stored in data.oMf[frame_id]
Warning
One of the algorithms forwardKinematics should have been called first
void pinocchio::updateFramePlacements ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)
inline

Updates the position of each frame contained in the model.

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe kinematic model.
dataData associated to model.
Warning
One of the algorithms forwardKinematics should have been called first
void pinocchio::updateGeometryPlacements ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geomModel,
GeometryData geomData,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Apply a forward kinematics and update the placement of the geometry objects.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]geomModelThe geometry model containing the collision objects.
[out]geomDataThe geometry data containing the placements of the collision objects. See oMg field in GeometryData.
[in]qThe joint configuration vector (dim model.nq).
void pinocchio::updateGeometryPlacements ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geomModel,
GeometryData geomData 
)
inline

Update the placement of the geometry objects according to the current joint placements contained in data.

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]geomModelThe geometry model containing the collision objects.
[out]geomDataThe geometry data containing the placements of the collision objects. See oMg field in GeometryData.
void pinocchio::updateGlobalPlacements ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)
inline

Update the global placement of the joints oMi according to the relative placements of the joints.

Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Remarks
This algorithm may be useful to call to update global joint placement after calling pinocchio::rnea, pinocchio::aba, etc for example.