pinocchio  3.2.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
pinocchio Namespace Reference

Main pinocchio namespace. More...

Namespaces

 buildModels
 Build simple models.
 
 cholesky
 Cholesky decompositions.
 
 container
 Specialized containers.
 
 forceSet
 Group force actions.
 
 internal
 
 lua
 Lua parsing.
 
 motionSet
 Group motion actions.
 
 quaternion
 Quaternion operations.
 
 rpy
 Roll-pitch-yaw operations.
 
 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  apply_op_if
 
struct  apply_op_if< OP, true, default_return_value >
 
struct  BaumgarteCorrectorParametersTpl
 
struct  Blank
 Blank type. More...
 
struct  BroadPhaseManagerBase
 
class  BroadPhaseManagerPoolBase
 
struct  BroadPhaseManagerTpl
 
struct  CartesianAxis
 
struct  CartesianProductOperation
 
struct  CartesianProductOperationVariantTpl
 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, JointModelHelicalTpl< Scalar, Options, axis > >
 
struct  CastType< NewScalar, JointModelMimic< JointModel > >
 
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  CastType< NewScalar, ModelTpl< Scalar, Options, JointCollectionTpl > >
 
struct  CastType< NewScalar, RigidConstraintModelTpl< Scalar, Options > >
 
struct  check_expression_if_real_valued
 
struct  check_expression_if_real_valued< Scalar, default_value, true >
 
struct  CodeGenABA
 
struct  CodeGenABADerivatives
 
struct  CodeGenBase
 
struct  CodeGenConstraintDynamics
 
struct  CodeGenConstraintDynamicsDerivatives
 
struct  CodeGenCRBA
 
struct  CodeGenDDifference
 
struct  CodeGenDifference
 
struct  CodeGenIntegrate
 
struct  CodeGenMinv
 
struct  CodeGenRNEA
 
struct  CodeGenRNEADerivatives
 
struct  CollisionCallBackBase
 Interface for Pinocchio collision callback functors. More...
 
struct  CollisionCallBackDefault
 
struct  CollisionObject
 
struct  CollisionPair
 
struct  ComputeCollision
 
struct  ComputeDistance
 
struct  ConfigVectorAffineTransform
 Assign the correct configuration vector space affine transformation according to the joint type. More...
 
struct  ConfigVectorAffineTransform< JointRevoluteUnboundedTpl< Scalar, Options, axis > >
 
struct  ConstraintCollectionTpl
 
struct  ConstraintDataBase
 
struct  ConstraintDataComparisonOperatorVisitor
 
struct  ConstraintDataTpl
 
struct  ConstraintForceOp
 Return type of the Constraint::Transpose * Force operation. More...
 
struct  ConstraintForceOp< JointMotionSubspaceHelicalTpl< Scalar, Options, axis >, ForceDerived >
 
struct  ConstraintForceOp< JointMotionSubspaceHelicalUnalignedTpl< Scalar, Options >, ForceDerived >
 
struct  ConstraintForceOp< JointMotionSubspacePrismaticTpl< Scalar, Options, axis >, ForceDerived >
 
struct  ConstraintForceOp< JointMotionSubspacePrismaticUnalignedTpl< Scalar, Options >, ForceDerived >
 
struct  ConstraintForceOp< JointMotionSubspaceRevoluteTpl< Scalar, Options, axis >, ForceDerived >
 
struct  ConstraintForceOp< JointMotionSubspaceRevoluteUnalignedTpl< Scalar, Options >, ForceDerived >
 
struct  ConstraintForceOp< JointMotionSubspaceUniversalTpl< Scalar, Options >, ForceDerived >
 
struct  ConstraintForceOp< ScaledJointMotionSubspace< Constraint >, ForceDerived >
 
struct  ConstraintForceSetOp
 Return type of the Constraint::Transpose * ForceSet operation. More...
 
struct  ConstraintForceSetOp< JointMotionSubspaceHelicalTpl< Scalar, Options, axis >, ForceSet >
 
struct  ConstraintForceSetOp< JointMotionSubspaceHelicalUnalignedTpl< Scalar, Options >, ForceSet >
 
struct  ConstraintForceSetOp< JointMotionSubspacePrismaticTpl< Scalar, Options, axis >, ForceSet >
 
struct  ConstraintForceSetOp< JointMotionSubspacePrismaticUnalignedTpl< Scalar, Options >, ForceSet >
 
struct  ConstraintForceSetOp< JointMotionSubspaceRevoluteTpl< Scalar, Options, axis >, ForceSet >
 
struct  ConstraintForceSetOp< JointMotionSubspaceRevoluteUnalignedTpl< Scalar, Options >, ForceSet >
 
struct  ConstraintForceSetOp< JointMotionSubspaceUniversalTpl< Scalar, Options >, ForceSet >
 
struct  ConstraintForceSetOp< ScaledJointMotionSubspace< Constraint >, ForceSet >
 
struct  ConstraintModelBase
 
struct  ConstraintModelCalcVisitor
 ConstraintModelCalcVisitor fusion visitor.
 
struct  ConstraintModelCreateDataVisitor
 ConstraintModelCreateDataVisitor fusion visitor.
 
struct  ConstraintModelJacobianVisitor
 ConstraintModelJacobianVisitor fusion visitor.
 
struct  ConstraintModelTpl
 
struct  contact_dim
 
struct  contact_dim< CONTACT_3D >
 
struct  contact_dim< CONTACT_6D >
 
struct  ContactCholeskyDecompositionTpl
 
struct  ContactSolverBaseTpl
 
struct  CoulombFrictionConeTpl
   More...
 
struct  CRBAChecker
 
class  CsvStream
 
struct  DataTpl
 
struct  DelassusCholeskyExpressionTpl
 
struct  DelassusOperatorBase
 
struct  DelassusOperatorDenseTpl
 
struct  DelassusOperatorSparseTpl
 
struct  DualCoulombFrictionConeTpl
   More...
 
struct  eval_set_dim
 
struct  eval_set_dim< dim, Eigen::Dynamic >
 
struct  eval_set_dim< Eigen::Dynamic, dim >
 
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  GeometryNoMaterial
 No material associated to a geometry. More...
 
struct  GeometryObject
 
struct  GeometryObjectFilterBase
 
struct  GeometryObjectFilterNothing
 
struct  GeometryObjectFilterSelectByJoint
 
struct  GeometryPhongMaterial
 
class  GeometryPoolTpl
 
struct  InertiaBase
 
struct  InertiaTpl
 
struct  InstanceFilterBase
 Instance filter base class. More...
 
struct  is_floating_point
 
struct  is_floating_point< boost::multiprecision::number< Backend, ET > >
 
struct  Jlog3_impl
 
struct  Jlog6_impl
 
struct  JointCollectionDefaultTpl
 
struct  JointCompositeTpl
 
struct  JointDataBase
 
struct  JointDataCompositeTpl
 
struct  JointDataFreeFlyerTpl
 
struct  JointDataHelicalTpl
 
struct  JointDataHelicalUnalignedTpl
 
struct  JointDataMimic
 
struct  JointDataPlanarTpl
 
struct  JointDataPrismaticTpl
 
struct  JointDataPrismaticUnalignedTpl
 
struct  JointDataRevoluteTpl
 
struct  JointDataRevoluteUnalignedTpl
 
struct  JointDataRevoluteUnboundedTpl
 
struct  JointDataRevoluteUnboundedUnalignedTpl
 
struct  JointDataSphericalTpl
 
struct  JointDataSphericalZYXTpl
 
struct  JointDataTpl
 
struct  JointDataTranslationTpl
 
struct  JointDataUniversalTpl
 
struct  JointDataVoid
 
struct  JointFreeFlyerTpl
 
struct  JointHelicalTpl
 
struct  JointHelicalUnalignedTpl
 
struct  JointMimic
 
struct  JointModelBase
 
struct  JointModelCompositeTpl
 
struct  JointModelFreeFlyerTpl
 
struct  JointModelHelicalTpl
 
struct  JointModelHelicalUnalignedTpl
 
struct  JointModelMimic
 
struct  JointModelPlanarTpl
 
struct  JointModelPrismaticTpl
 
struct  JointModelPrismaticUnalignedTpl
 
struct  JointModelRevoluteTpl
 
struct  JointModelRevoluteUnalignedTpl
 
struct  JointModelRevoluteUnboundedTpl
 
struct  JointModelRevoluteUnboundedUnalignedTpl
 
struct  JointModelSphericalTpl
 
struct  JointModelSphericalZYXTpl
 
struct  JointModelTpl
 
struct  JointModelTranslationTpl
 
struct  JointModelUniversalTpl
 
struct  JointModelVoid
 
class  JointMotionSubspaceBase
 
struct  JointMotionSubspaceHelicalTpl
 
struct  JointMotionSubspaceHelicalUnalignedTpl
 
struct  JointMotionSubspaceIdentityTpl
 
struct  JointMotionSubspacePlanarTpl
 
struct  JointMotionSubspacePrismaticTpl
 
struct  JointMotionSubspacePrismaticUnalignedTpl
 
struct  JointMotionSubspaceRevoluteTpl
 
struct  JointMotionSubspaceRevoluteUnalignedTpl
 
struct  JointMotionSubspaceSphericalTpl
 
struct  JointMotionSubspaceSphericalZYXTpl
 
struct  JointMotionSubspaceTpl
 
struct  JointMotionSubspaceTranslationTpl
 
struct  JointMotionSubspaceTransposeBase
 
struct  JointMotionSubspaceUniversalTpl
 
struct  JointPlanarTpl
 
struct  JointPrismaticTpl
 
struct  JointPrismaticUnalignedTpl
 
struct  JointRevoluteTpl
 
struct  JointRevoluteUnalignedTpl
 
struct  JointRevoluteUnboundedTpl
 
struct  JointRevoluteUnboundedUnalignedTpl
 
struct  JointSphericalTpl
 
struct  JointSphericalZYXTpl
 
struct  JointTpl
 
struct  JointTranslationTpl
 
struct  JointUniversalTpl
 
struct  LanczosDecompositionTpl
 Compute the largest eigenvalues and the associated principle eigenvector via power iteration. More...
 
struct  LieGroup
 
struct  LieGroupBase
 
struct  LieGroupCollectionDefaultTpl
 
struct  LieGroupGenericTpl
 
struct  LieGroupMap
 
struct  LinearAffineTransform
 Linear affine transformation of the configuration vector. Valide for most common joints which are evolving on a vector space. More...
 
struct  log3_impl
 
struct  log6_impl
 
struct  MatrixMatrixProduct
 
struct  MatrixScalarProduct
 
struct  ModelItem
 
class  ModelPoolTpl
 
struct  ModelTpl
 
struct  MotionAlgebraAction
 Return type of the ation of a Motion onto an object of type D. More...
 
struct  MotionAlgebraAction< ForceDense< Derived >, MotionDerived >
 
struct  MotionAlgebraAction< ForceRef< Vector6ArgType >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceHelicalTpl< Scalar, Options, axis >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceHelicalUnalignedTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceIdentityTpl< S1, O1 >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspacePlanarTpl< S1, O1 >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspacePrismaticTpl< Scalar, Options, axis >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspacePrismaticUnalignedTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceRevoluteTpl< Scalar, Options, axis >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceRevoluteUnalignedTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceSphericalTpl< S1, O1 >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceSphericalZYXTpl< S1, O1 >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceTpl< Dim, Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceTranslationTpl< S1, O1 >, MotionDerived >
 
struct  MotionAlgebraAction< JointMotionSubspaceUniversalTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< MotionDense< Derived >, MotionDerived >
 
struct  MotionAlgebraAction< MotionHelicalTpl< Scalar, Options, axis >, MotionDerived >
 
struct  MotionAlgebraAction< MotionHelicalUnalignedTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< MotionPlanarTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< MotionPrismaticTpl< Scalar, Options, axis >, MotionDerived >
 
struct  MotionAlgebraAction< MotionPrismaticUnalignedTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< MotionRef< Vector6ArgType >, MotionDerived >
 
struct  MotionAlgebraAction< MotionRevoluteTpl< Scalar, Options, axis >, MotionDerived >
 
struct  MotionAlgebraAction< MotionRevoluteUnalignedTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< MotionSphericalTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< MotionTranslationTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< MotionZeroTpl< Scalar, Options >, MotionDerived >
 
struct  MotionAlgebraAction< ScaledJointMotionSubspace< Constraint >, MotionDerived >
 
struct  MotionAlgebraAction< SpatialAxis< axis >, MotionDerived >
 
class  MotionBase
 
class  MotionDense
 
struct  MotionHelicalTpl
 
struct  MotionHelicalUnalignedTpl
 
struct  MotionPlanarTpl
 
struct  MotionPrismaticTpl
 
struct  MotionPrismaticUnalignedTpl
 
class  MotionRef
 
class  MotionRef< const Vector6ArgType >
 
struct  MotionRevoluteTpl
 
struct  MotionRevoluteUnalignedTpl
 
struct  MotionSphericalTpl
 
class  MotionTpl
 
struct  MotionTranslationTpl
 
struct  MotionZeroTpl
 
struct  MultiplicationOp
 Forward declaration of the multiplication operation return type. Should be overloaded, otherwise it will procude a compilation error. More...
 
struct  MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceHelicalTpl< S2, O2, axis > >
 
struct  MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceHelicalUnalignedTpl< Scalar, Options > >
 
struct  MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspacePrismaticTpl< S2, O2, axis > >
 
struct  MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspacePrismaticUnalignedTpl< Scalar, Options > >
 
struct  MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceRevoluteTpl< S2, O2, axis > >
 
struct  MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceRevoluteUnalignedTpl< Scalar, Options > >
 
struct  MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceUniversalTpl< Scalar, Options > >
 
struct  MultiplicationOp< Eigen::MatrixBase< M6Like >, ScaledJointMotionSubspace< _Constraint > >
 
struct  MultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceHelicalTpl< S2, O2, axis > >
 
struct  MultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceHelicalUnalignedTpl< S2, O2 > >
 
struct  MultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspacePrismaticTpl< S2, O2, axis > >
 
struct  MultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspacePrismaticUnalignedTpl< S2, O2 > >
 
struct  MultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceRevoluteTpl< S2, O2, axis > >
 
struct  MultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceRevoluteUnalignedTpl< S2, O2 > >
 
struct  MultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceUniversalTpl< S2, O2 > >
 
struct  MultiplicationOp< InertiaTpl< S1, O1 >, ScaledJointMotionSubspace< _Constraint > >
 
struct  NumericalBase
 
struct  ParentChecker
 Simple model checker, that assert that model.parents is indeed a tree. More...
 
struct  PGSContactSolverTpl
 Projected Gauss Siedel solver. More...
 
struct  PowerIterationAlgoTpl
 Compute the largest eigenvalues and the associated principle eigenvector via power iteration. More...
 
struct  ProximalSettingsTpl
 Structure containing all the settings parameters for the proximal algorithms. More...
 
struct  ReachableSetParams
 Parameters for the reachable space algorithm. More...
 
struct  ReachableSetResults
 Structure containing the return value for the reachable algorithm. More...
 
struct  RigidConstraintDataTpl
 
struct  RigidConstraintModelTpl
 
struct  ScalarCast
 Cast scalar type from type FROM to type TO. More...
 
struct  ScalarCast< Scalar, CppAD::AD< ADScalar > >
 
struct  ScalarCast< Scalar, CppAD::cg::CG< Scalar > >
 
struct  ScalarMatrixProduct
 
struct  ScaledJointMotionSubspace
 
struct  SE3Base
 Base class for rigid transformation. More...
 
struct  SE3GroupAction
 
struct  SE3GroupAction< ForceDense< Derived > >
 
struct  SE3GroupAction< ForceRef< Vector6ArgType > >
 
struct  SE3GroupAction< ForceSet::Block >
 
struct  SE3GroupAction< JointMotionSubspaceHelicalTpl< Scalar, Options, axis > >
 
struct  SE3GroupAction< JointMotionSubspaceHelicalUnalignedTpl< Scalar, Options > >
 
struct  SE3GroupAction< JointMotionSubspaceIdentityTpl< S1, O1 > >
 
struct  SE3GroupAction< JointMotionSubspacePlanarTpl< S1, O1 > >
 
struct  SE3GroupAction< JointMotionSubspacePrismaticTpl< Scalar, Options, axis > >
 
struct  SE3GroupAction< JointMotionSubspacePrismaticUnalignedTpl< Scalar, Options > >
 
struct  SE3GroupAction< JointMotionSubspaceRevoluteTpl< Scalar, Options, axis > >
 
struct  SE3GroupAction< JointMotionSubspaceRevoluteUnalignedTpl< Scalar, Options > >
 
struct  SE3GroupAction< JointMotionSubspaceSphericalTpl< S1, O1 > >
 
struct  SE3GroupAction< JointMotionSubspaceSphericalZYXTpl< S1, O1 > >
 
struct  SE3GroupAction< JointMotionSubspaceTpl< Dim, Scalar, Options > >
 
struct  SE3GroupAction< JointMotionSubspaceTranslationTpl< S1, O1 > >
 
struct  SE3GroupAction< JointMotionSubspaceUniversalTpl< Scalar, Options > >
 
struct  SE3GroupAction< MotionDense< Derived > >
 
struct  SE3GroupAction< MotionHelicalTpl< Scalar, Options, axis > >
 
struct  SE3GroupAction< MotionHelicalUnalignedTpl< Scalar, Options > >
 
struct  SE3GroupAction< MotionPlanarTpl< Scalar, Options > >
 
struct  SE3GroupAction< MotionPrismaticTpl< Scalar, Options, axis > >
 
struct  SE3GroupAction< MotionPrismaticUnalignedTpl< Scalar, Options > >
 
struct  SE3GroupAction< MotionRef< Vector6ArgType > >
 
struct  SE3GroupAction< MotionRevoluteTpl< Scalar, Options, axis > >
 
struct  SE3GroupAction< MotionRevoluteUnalignedTpl< Scalar, Options > >
 
struct  SE3GroupAction< MotionSphericalTpl< Scalar, Options > >
 
struct  SE3GroupAction< MotionTranslationTpl< Scalar, Options > >
 
struct  SE3GroupAction< MotionZeroTpl< Scalar, Options > >
 
struct  SE3GroupAction< ScaledJointMotionSubspace< Constraint > >
 
struct  SE3GroupAction< TransformHelicalTpl< Scalar, Options, axis > >
 
struct  SE3GroupAction< TransformPrismaticTpl< Scalar, Options, axis > >
 
struct  SE3GroupAction< TransformRevoluteTpl< Scalar, Options, axis > >
 
struct  SE3GroupAction< TransformTranslationTpl< Scalar, Options > >
 
struct  SE3Tpl
 
struct  Serialize
 
struct  Serialize< JointDataCompositeTpl< Scalar, Options, JointCollectionTpl > >
 
struct  Serialize< JointModelCompositeTpl< Scalar, Options, JointCollectionTpl > >
 
struct  SINCOSAlgo
 Generic evaluation of sin/cos functions. More...
 
struct  SINCOSAlgo< boost::multiprecision::number< boost::multiprecision::mpfr_float_backend< X_digits10, X_alloc >, X_et >, boost::multiprecision::number< boost::multiprecision::mpfr_float_backend< S_digits10, S_alloc >, S_et >, boost::multiprecision::number< boost::multiprecision::mpfr_float_backend< C_digits10, C_alloc >, C_et > >
 
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
   More...
 
struct  TaylorSeriesExpansion< CppAD::AD< Scalar > >
 
struct  TaylorSeriesExpansion< CppAD::cg::CG< Scalar > >
 
struct  TaylorSeriesExpansion<::casadi::Matrix< Scalar > >
 
struct  Tensor
 
class  Timer
 
struct  traits
 Common traits structure to fully define base classes for CRTP. More...
 
struct  traits< BaumgarteCorrectorParametersTpl< _Scalar > >
 
struct  traits< CartesianProductOperation< LieGroup1, LieGroup2 > >
 
struct  traits< CartesianProductOperationVariantTpl< _Scalar, _Options, LieGroupCollectionTpl > >
 
struct  traits< ConstraintDataTpl< _Scalar, _Options, ConstraintCollectionTpl > >
 
struct  traits< ConstraintModelTpl< _Scalar, _Options, ConstraintCollectionTpl > >
 
struct  traits< DataTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< DelassusCholeskyExpressionTpl< ContactCholeskyDecomposition > >
 
struct  traits< DelassusOperatorDenseTpl< _Scalar, _Options > >
 
struct  traits< DelassusOperatorSparseTpl< _Scalar, _Options, _SparseCholeskyDecomposition > >
 
struct  traits< ForceRef< const Vector6ArgType > >
 
struct  traits< ForceRef< Vector6ArgType > >
 
struct  traits< ForceTpl< _Scalar, _Options > >
 
struct  traits< FrameTpl< _Scalar, _Options > >
 
struct  traits< GeometryData >
 
struct  traits< GeometryModel >
 
struct  traits< GeometryObject >
 
struct  traits< InertiaTpl< T, U > >
 
struct  traits< JointCompositeTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< JointDataCompositeTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< JointDataFreeFlyerTpl< _Scalar, _Options > >
 
struct  traits< JointDataHelicalTpl< _Scalar, _Options, axis > >
 
struct  traits< JointDataHelicalUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointDataMimic< Joint > >
 
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< JointDataRevoluteUnboundedUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointDataSphericalTpl< _Scalar, _Options > >
 
struct  traits< JointDataSphericalZYXTpl< _Scalar, _Options > >
 
struct  traits< JointDataTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< JointDataTranslationTpl< _Scalar, _Options > >
 
struct  traits< JointDataUniversalTpl< _Scalar, _Options > >
 
struct  traits< JointFreeFlyerTpl< _Scalar, _Options > >
 
struct  traits< JointHelicalTpl< _Scalar, _Options, axis > >
 
struct  traits< JointHelicalUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointMimic< Joint > >
 
struct  traits< JointModelCompositeTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< JointModelFreeFlyerTpl< _Scalar, _Options > >
 
struct  traits< JointModelHelicalTpl< _Scalar, _Options, axis > >
 
struct  traits< JointModelHelicalUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointModelMimic< Joint > >
 
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< JointModelRevoluteUnboundedUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointModelSphericalTpl< _Scalar, _Options > >
 
struct  traits< JointModelSphericalZYXTpl< _Scalar, _Options > >
 
struct  traits< JointModelTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< JointModelTranslationTpl< _Scalar, _Options > >
 
struct  traits< JointModelUniversalTpl< _Scalar, _Options > >
 
struct  traits< JointMotionSubspaceHelicalTpl< _Scalar, _Options, axis > >
 
struct  traits< JointMotionSubspaceHelicalUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >
 
struct  traits< JointMotionSubspacePlanarTpl< _Scalar, _Options > >
 
struct  traits< JointMotionSubspacePrismaticTpl< _Scalar, _Options, axis > >
 
struct  traits< JointMotionSubspacePrismaticUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointMotionSubspaceRevoluteTpl< _Scalar, _Options, axis > >
 
struct  traits< JointMotionSubspaceRevoluteUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointMotionSubspaceSphericalTpl< _Scalar, _Options > >
 
struct  traits< JointMotionSubspaceSphericalZYXTpl< _Scalar, _Options > >
 
struct  traits< JointMotionSubspaceTpl< _Dim, _Scalar, _Options > >
 
struct  traits< JointMotionSubspaceTranslationTpl< _Scalar, _Options > >
 
struct  traits< JointMotionSubspaceUniversalTpl< _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< JointRevoluteUnboundedUnalignedTpl< _Scalar, _Options > >
 
struct  traits< JointSphericalTpl< _Scalar, _Options > >
 
struct  traits< JointSphericalZYXTpl< _Scalar, _Options > >
 
struct  traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< JointTranslationTpl< _Scalar, _Options > >
 
struct  traits< JointUniversalTpl< _Scalar, _Options > >
 
struct  traits< LieGroupGenericTpl< LieGroupCollection > >
 
struct  traits< ModelTpl< _Scalar, _Options, JointCollectionTpl > >
 
struct  traits< MotionHelicalTpl< _Scalar, _Options, axis > >
 
struct  traits< MotionHelicalUnalignedTpl< _Scalar, _Options > >
 
struct  traits< MotionPlanarTpl< _Scalar, _Options > >
 
struct  traits< MotionPrismaticTpl< _Scalar, _Options, _axis > >
 
struct  traits< MotionPrismaticUnalignedTpl< _Scalar, _Options > >
 
struct  traits< MotionRef< const Vector6ArgType > >
 
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< MotionZeroTpl< _Scalar, _Options > >
 
struct  traits< RigidConstraintDataTpl< _Scalar, _Options > >
 
struct  traits< RigidConstraintModelTpl< _Scalar, _Options > >
 
struct  traits< ScaledJointMotionSubspace< Constraint > >
 
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< Symmetric3Tpl< _Scalar, _Options > >
 
struct  traits< TransformHelicalTpl< _Scalar, _Options, _axis > >
 
struct  traits< TransformPrismaticTpl< _Scalar, _Options, _axis > >
 
struct  traits< TransformRevoluteTpl< _Scalar, _Options, _axis > >
 
struct  traits< TransformTranslationTpl< _Scalar, _Options > >
 
struct  traits< TridiagonalSymmetricMatrixApplyOnTheLeftReturnType< MatrixDerived, TridiagonalSymmetricMatrix > >
 
struct  traits< TridiagonalSymmetricMatrixApplyOnTheRightReturnType< TridiagonalSymmetricMatrix, MatrixDerived > >
 
struct  traits< TridiagonalSymmetricMatrixInverse< TridiagonalSymmetricMatrix > >
 
struct  traits< TridiagonalSymmetricMatrixInverseApplyOnTheRightReturnType< TridiagonalSymmetricMatrixInverse, MatrixDerived > >
 
struct  traits< TridiagonalSymmetricMatrixTpl< _Scalar, _Options > >
 
struct  traits< VectorSpaceOperationTpl< Dim, _Scalar, _Options > >
 
struct  TransformHelicalTpl
 
struct  TransformPrismaticTpl
 
struct  TransformRevoluteTpl
 
struct  TransformTranslationTpl
 
struct  TransposeConstraintActionConstraint
 
struct  TreeBroadPhaseManagerTpl
 
struct  TridiagonalSymmetricMatrixApplyOnTheLeftReturnType
 
struct  TridiagonalSymmetricMatrixApplyOnTheRightReturnType
 
struct  TridiagonalSymmetricMatrixInverse
 
struct  TridiagonalSymmetricMatrixInverseApplyOnTheRightReturnType
 
struct  TridiagonalSymmetricMatrixTpl
 Dynamic size Tridiagonal symmetric matrix type This class is in practice used in Lanczos decomposition. More...
 
struct  UnboundedRevoluteAffineTransform
 
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 XAxis AxisX
 
typedef YAxis AxisY
 
typedef ZAxis AxisZ
 
template<typename ManagerDerived , typename Scalar >
using BroadPhaseManagerPool = BroadPhaseManagerPoolTpl< ManagerDerived, Scalar >
 
template<typename ManagerDerived , typename Scalar , int Options = 0, template< typename, int > class JointCollectionTpl = JointCollectionDefaultTpl>
using BroadPhaseManagerPoolTpl = BroadPhaseManagerPoolBase< BroadPhaseManagerTpl< ManagerDerived >, Scalar, Options, JointCollectionTpl >
 
typedef CartesianProductOperationVariantTpl< context::Scalar, context::Options, LieGroupCollectionDefaultTplCartesianProductOperationVariant
 
typedef ConstraintCollectionTpl< context::Scalar, context::Options > ConstraintCollection
 
typedef ConstraintDataTpl< context::Scalar, context::Options, ConstraintCollectionTplConstraintData
 
typedef ConstraintModelTpl< context::Scalar, context::Options, ConstraintCollectionTplConstraintModel
 
typedef ContactCholeskyDecompositionTpl< context::Scalar, context::Options > ContactCholeskyDecomposition
 
typedef CoulombFrictionConeTpl< context::Scalar > CoulombFrictionCone
 
typedef DataTpl< context::Scalar, context::Options > Data
 
typedef DelassusOperatorDenseTpl< context::Scalar, context::Options > DelassusOperatorDense
 
typedef DelassusOperatorSparseTpl< context::Scalar, context::Options > DelassusOperatorSparse
 
typedef DualCoulombFrictionConeTpl< context::Scalar > DualCoulombFrictionCone
 
typedef ForceTpl< context::Scalar, context::Options > Force
 
typedef ForceSetTpl< context::Scalar, context::Options > ForceSet
 
typedef FrameTpl< context::Scalar, context::Options > Frame
 
typedef Index FrameIndex
 
typedef boost::variant< GeometryNoMaterial, GeometryPhongMaterialGeometryMaterial
 
typedef GeometryPoolTpl< context::Scalar > GeometryPool
 
typedef Index GeomIndex
 
typedef InertiaTpl< context::Scalar, context::Options > Inertia
 
typedef JointTpl< context::Scalar > Joint
 
typedef JointCollectionDefaultTpl< context::Scalar > JointCollectionDefault
 
typedef JointDataTpl< context::Scalar > JointData
 
typedef JointDataCompositeTpl< context::Scalar > JointDataComposite
 
typedef JointDataFreeFlyerTpl< context::Scalar > JointDataFreeFlyer
 
typedef JointDataHelicalUnalignedTpl< context::Scalar > JointDataHelicalUnaligned
 
typedef JointDataHelicalTpl< context::Scalar, context::Options, 0 > JointDataHX
 
typedef JointDataHelicalTpl< context::Scalar, context::Options, 1 > JointDataHY
 
typedef JointDataHelicalTpl< context::Scalar, context::Options, 2 > JointDataHZ
 
typedef JointDataPlanarTpl< context::Scalar > JointDataPlanar
 
typedef JointDataPrismaticUnalignedTpl< context::Scalar > JointDataPrismaticUnaligned
 
typedef JointDataPrismaticTpl< context::Scalar, context::Options, 0 > JointDataPX
 
typedef JointDataPrismaticTpl< context::Scalar, context::Options, 1 > JointDataPY
 
typedef JointDataPrismaticTpl< context::Scalar, context::Options, 2 > JointDataPZ
 
typedef JointDataRevoluteUnalignedTpl< context::Scalar > JointDataRevoluteUnaligned
 
typedef JointDataRevoluteUnboundedUnalignedTpl< context::Scalar > JointDataRevoluteUnboundedUnaligned
 
typedef JointDataRevoluteUnboundedTpl< context::Scalar, context::Options, 0 > JointDataRUBX
 
typedef JointDataRevoluteUnboundedTpl< context::Scalar, context::Options, 1 > JointDataRUBY
 
typedef JointDataRevoluteUnboundedTpl< context::Scalar, context::Options, 2 > JointDataRUBZ
 
typedef JointDataRevoluteTpl< context::Scalar, context::Options, 0 > JointDataRX
 
typedef JointDataRevoluteTpl< context::Scalar, context::Options, 1 > JointDataRY
 
typedef JointDataRevoluteTpl< context::Scalar, context::Options, 2 > JointDataRZ
 
typedef JointDataSphericalTpl< context::Scalar > JointDataSpherical
 
typedef JointDataSphericalZYXTpl< context::Scalar > JointDataSphericalZYX
 
typedef JointDataTranslationTpl< context::Scalar > JointDataTranslation
 
typedef JointDataUniversalTpl< context::Scalar > JointDataUniversal
 
typedef JointCollectionDefault::JointDataVariant JointDataVariant
 
typedef JointHelicalTpl< context::Scalar, context::Options, 0 > JointHX
 
typedef JointHelicalTpl< context::Scalar, context::Options, 1 > JointHY
 
typedef JointHelicalTpl< context::Scalar, context::Options, 2 > JointHZ
 
typedef Index JointIndex
 
typedef JointModelTpl< context::Scalar > JointModel
 
typedef JointModelCompositeTpl< context::Scalar > JointModelComposite
 
typedef JointModelFreeFlyerTpl< context::Scalar > JointModelFreeFlyer
 
typedef JointModelHelicalUnalignedTpl< context::Scalar > JointModelHelicalUnaligned
 
typedef JointModelHelicalTpl< context::Scalar, context::Options, 0 > JointModelHX
 
typedef JointModelHelicalTpl< context::Scalar, context::Options, 1 > JointModelHY
 
typedef JointModelHelicalTpl< context::Scalar, context::Options, 2 > JointModelHZ
 
typedef JointModelPlanarTpl< context::Scalar > JointModelPlanar
 
typedef JointModelPrismaticUnalignedTpl< context::Scalar > JointModelPrismaticUnaligned
 
typedef JointModelPrismaticTpl< context::Scalar, context::Options, 0 > JointModelPX
 
typedef JointModelPrismaticTpl< context::Scalar, context::Options, 1 > JointModelPY
 
typedef JointModelPrismaticTpl< context::Scalar, context::Options, 2 > JointModelPZ
 
typedef JointModelRevoluteUnalignedTpl< context::Scalar > JointModelRevoluteUnaligned
 
typedef JointModelRevoluteUnboundedUnalignedTpl< context::Scalar > JointModelRevoluteUnboundedUnaligned
 
typedef JointModelRevoluteUnboundedTpl< context::Scalar, context::Options, 0 > JointModelRUBX
 
typedef JointModelRevoluteUnboundedTpl< context::Scalar, context::Options, 1 > JointModelRUBY
 
typedef JointModelRevoluteUnboundedTpl< context::Scalar, context::Options, 2 > JointModelRUBZ
 
typedef JointModelRevoluteTpl< context::Scalar, context::Options, 0 > JointModelRX
 
typedef JointModelRevoluteTpl< context::Scalar, context::Options, 1 > JointModelRY
 
typedef JointModelRevoluteTpl< context::Scalar, context::Options, 2 > JointModelRZ
 
typedef JointModelSphericalTpl< context::Scalar > JointModelSpherical
 
typedef JointModelSphericalZYXTpl< context::Scalar > JointModelSphericalZYX
 
typedef JointModelTranslationTpl< context::Scalar > JointModelTranslation
 
typedef JointModelUniversalTpl< context::Scalar > JointModelUniversal
 
typedef JointCollectionDefault::JointModelVariant JointModelVariant
 
typedef JointMotionSubspaceTpl< 1, context::Scalar, context::Options > JointMotionSubspace1d
 
typedef JointMotionSubspaceTpl< 3, context::Scalar, context::Options > JointMotionSubspace3d
 
typedef JointMotionSubspaceTpl< 6, context::Scalar, context::Options > JointMotionSubspace6d
 
typedef JointMotionSubspaceTpl< Eigen::Dynamic, context::Scalar, context::Options > JointMotionSubspaceXd
 
typedef JointPrismaticTpl< context::Scalar, context::Options, 0 > JointPX
 
typedef JointPrismaticTpl< context::Scalar, context::Options, 1 > JointPY
 
typedef JointPrismaticTpl< context::Scalar, context::Options, 2 > JointPZ
 
typedef JointRevoluteUnboundedTpl< context::Scalar, context::Options, 0 > JointRUBX
 
typedef JointRevoluteUnboundedTpl< context::Scalar, context::Options, 1 > JointRUBY
 
typedef JointRevoluteUnboundedTpl< context::Scalar, context::Options, 2 > JointRUBZ
 
typedef JointRevoluteTpl< context::Scalar, context::Options, 0 > JointRX
 
typedef JointRevoluteTpl< context::Scalar, context::Options, 1 > JointRY
 
typedef JointRevoluteTpl< context::Scalar, context::Options, 2 > JointRZ
 
typedef LieGroupCollectionDefaultTpl< context::Scalar > LieGroupCollectionDefault
 
typedef ModelTpl< context::Scalar, context::Options > Model
 
typedef ModelPoolTpl< context::Scalar > ModelPool
 
typedef MotionTpl<::CppAD::AD< double >, 0 > Motion
 
typedef MotionPlanarTpl< context::Scalar > MotionPlanar
 
typedef MotionPrismaticUnalignedTpl< context::Scalar > MotionPrismaticUnaligned
 
typedef MotionRevoluteUnalignedTpl< context::Scalar > MotionRevoluteUnaligned
 
typedef MotionSphericalTpl< context::Scalar > MotionSpherical
 
typedef MotionTranslationTpl< context::Scalar > MotionTranslation
 
typedef MotionZeroTpl< context::Scalar, context::Options > MotionZero
 
typedef Index PairIndex
 
typedef ProximalSettingsTpl< context::Scalar > ProximalSettings
 
typedef RigidConstraintDataTpl< context::Scalar, context::Options > RigidConstraintData
 
typedef RigidConstraintModelTpl< context::Scalar, context::Options > RigidConstraintModel
 
typedef SE3Tpl< context::Scalar, context::Options > SE3
 
typedef Symmetric3Tpl< context::Scalar, context::Options > Symmetric3
 
template<typename ManagerDerived , typename Scalar >
using TreeBroadPhaseManagerPool = TreeBroadPhaseManagerPoolTpl< ManagerDerived, Scalar >
 
template<typename ManagerDerived , typename Scalar , int Options = 0, template< typename, int > class JointCollectionTpl = JointCollectionDefaultTpl>
using TreeBroadPhaseManagerPoolTpl = BroadPhaseManagerPoolBase< TreeBroadPhaseManagerTpl< ManagerDerived >, Scalar, Options, JointCollectionTpl >
 
typedef Eigen::Matrix< bool, Eigen::Dynamic, 1 > VectorXb
 
typedef CartesianAxis< 0 > XAxis
 
typedef CartesianAxis< 1 > YAxis
 
typedef CartesianAxis< 2 > ZAxis
 

Enumerations

enum  { SELF = 0 }
 
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  ContactType { CONTACT_3D = 0 , CONTACT_6D , CONTACT_UNDEFINED }
   More...
 
enum class  Convention { WORLD = 0 , LOCAL = 1 }
 List of convention to call algorithms. More...
 
enum  FrameType {
  OP_FRAME = 0x1 << 0 , JOINT = 0x1 << 1 , FIXED_JOINT = 0x1 << 2 , BODY ,
  SENSOR = 0x1 << 4
}
 Enum on the possible types of frames. More...
 
enum  GeometryType { VISUAL , COLLISION }
 
enum  KinematicLevel { POSITION = 0 , VELOCITY = 1 , ACCELERATION = 2 }
 List of Kinematics Level supported by Pinocchio. More...
 
enum  ModelFileExtensionType { UNKNOWN = 0 , URDF }
 Supported model file extensions.
 
enum  ReferenceFrame { WORLD = 0 , LOCAL = 1 , LOCAL_WORLD_ALIGNED = 2 }
 Various conventions to express the velocity of a moving frame. More...
 

Functions

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, const Convention rf=Convention::LOCAL)
 The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model and the external forces. More...
 
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, const Convention convention=Convention::LOCAL)
 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 ConfigVectorPool , typename TangentVectorPool1 , typename TangentVectorPool2 , typename TangentVectorPool3 >
void abaInParallel (const size_t num_threads, ModelPoolTpl< Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< TangentVectorPool1 > &v, const Eigen::MatrixBase< TangentVectorPool2 > &tau, const Eigen::MatrixBase< TangentVectorPool3 > &a)
 A parallel version of the Articulated Body algorithm. It computes the forward dynamics, aka the joint acceleration according to the current state of the system and the desired joint torque. 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 >
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 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...
 
void appendGeometryModel (GeometryModel &geom_model1, const GeometryModel &geom_model2)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
ModelTpl< Scalar, Options, JointCollectionTpl > appendModel (const ModelTpl< Scalar, Options, JointCollectionTpl > &modelA, const ModelTpl< Scalar, Options, JointCollectionTpl > &modelB, const FrameIndex frameInModelA, const SE3Tpl< Scalar, Options > &aMb)
 Append a child model into a parent model, after a specific frame given by its index. 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 FrameIndex frameInModelA, const SE3Tpl< Scalar, Options > &aMb, ModelTpl< Scalar, Options, JointCollectionTpl > &model)
 Append a child model into a parent model, after a specific frame given by its index. 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, const 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 given by its index. More...
 
PINOCCHIO_PARSERS_DLLAPI void appendSuffixToPaths (std::vector< std::string > &list_of_paths, const std::string &suffix)
 For a given vector of paths, add a suffix inplace to each path and return the vector inplace. 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 MotionVelocity , typename MotionAcceleration >
Eigen::Matrix< typename MotionVelocity::Scalar, 6, 10, typename MotionVelocity::Vector3 ::Options > bodyRegressor (const MotionDense< MotionVelocity > &v, const MotionDense< MotionAcceleration > &a)
 Computes the regressor for the dynamic parameters of a single rigid body. More...
 
template<typename MotionVelocity , typename MotionAcceleration , typename OutputType >
void bodyRegressor (const MotionDense< MotionVelocity > &v, const MotionDense< MotionAcceleration > &a, const Eigen::MatrixBase< OutputType > &regressor)
 Computes the regressor for the dynamic parameters of a single rigid body. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void buildReducedModel (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const GeometryModel &geom_model, const std::vector< JointIndex > &list_of_joints_to_lock, const Eigen::MatrixBase< ConfigVectorType > &reference_configuration, ModelTpl< Scalar, Options, JointCollectionTpl > &reduced_model, GeometryModel &reduced_geom_model)
 Build a reduced model and a rededuced geometry model from a given input model, a given input geometry model and a list of joint to lock. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename GeometryModelAllocator , typename ConfigVectorType >
void buildReducedModel (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const std::vector< GeometryModel, GeometryModelAllocator > &list_of_geom_models, const std::vector< JointIndex > &list_of_joints_to_lock, const Eigen::MatrixBase< ConfigVectorType > &reference_configuration, ModelTpl< Scalar, Options, JointCollectionTpl > &reduced_model, std::vector< GeometryModel, GeometryModelAllocator > &list_of_reduced_geom_models)
 Build a reduced model and a rededuced geometry model from a given input model, a given input geometry model and a list of joint to lock. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
ModelTpl< Scalar, Options, JointCollectionTpl > buildReducedModel (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const std::vector< JointIndex > &list_of_joints_to_lock, const Eigen::MatrixBase< ConfigVectorType > &reference_configuration)
 Build a reduced model from a given input model and a list of joint to lock. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void buildReducedModel (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, std::vector< JointIndex > list_of_joints_to_lock, const Eigen::MatrixBase< ConfigVectorType > &reference_configuration, ModelTpl< Scalar, Options, JointCollectionTpl > &reduced_model)
 Build a reduced model from a given input model and a list of joint to lock. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, template< typename S, int O > class ConstraintCollectionTpl>
void calc (const ConstraintModelTpl< Scalar, Options, ConstraintCollectionTpl > &cmodel, ConstraintDataTpl< Scalar, Options, ConstraintCollectionTpl > &cdata, const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data)
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename VectorLike , typename Matrix6Type >
void calc_aba (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata, const Eigen::MatrixBase< VectorLike > &armature, 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 TangentVectorType >
void calc_first_order (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata, const Blank blank, 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 , 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 >
NewScalar cast (const Scalar &value)
 
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>
const DataTpl< Scalar, Options, JointCollectionTpl >::Vector3 & 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, 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>
const DataTpl< Scalar, Options, JointCollectionTpl >::Vector3 & centerOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, KinematicLevel kinematic_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 kinematic_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, typename ForceIn >
ForceIn::ForcePlain changeReferenceFrame (const SE3Tpl< Scalar, Options > &placement, const ForceDense< ForceIn > &f_in, const ReferenceFrame rf_in, const ReferenceFrame rf_out)
 
template<typename Scalar , int Options, typename ForceIn , typename ForceOut >
void changeReferenceFrame (const SE3Tpl< Scalar, Options > &placement, const ForceDense< ForceIn > &f_in, const ReferenceFrame rf_in, const ReferenceFrame rf_out, ForceDense< ForceOut > &f_out)
 
template<typename Scalar , int Options, typename MotionIn >
MotionIn::MotionPlain changeReferenceFrame (const SE3Tpl< Scalar, Options > &placement, const MotionDense< MotionIn > &m_in, const ReferenceFrame rf_in, const ReferenceFrame rf_out)
 
template<typename Scalar , int Options, typename MotionIn , typename MotionOut >
void changeReferenceFrame (const SE3Tpl< Scalar, Options > &placement, const MotionDense< MotionIn > &m_in, const ReferenceFrame rf_in, const ReferenceFrame rf_out, MotionDense< MotionOut > &m_out)
 
template<typename Scalar , typename Any >
bool check_expression_if_real (const Any &expression)
 
template<typename Scalar , bool default_value, typename Any >
bool check_expression_if_real (const Any &expression)
 
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 Motion1 , typename Motion2 >
Motion2::Vector3 classicAcceleration (const MotionDense< Motion1 > &spatial_velocity, const MotionDense< Motion2 > &spatial_acceleration)
 Computes the classic acceleration from a given spatial velocity and spatial acceleration. More...
 
template<typename Motion1 , typename Motion2 , typename Vector3Like >
void classicAcceleration (const MotionDense< Motion1 > &spatial_velocity, const MotionDense< Motion2 > &spatial_acceleration, const Eigen::MatrixBase< Vector3Like > &res)
 Computes the classic acceleration from a given spatial velocity and spatial acceleration. More...
 
template<typename Motion1 , typename Motion2 , typename SE3Scalar , int SE3Options>
Motion2::Vector3 classicAcceleration (const MotionDense< Motion1 > &spatial_velocity, const MotionDense< Motion2 > &spatial_acceleration, const SE3Tpl< SE3Scalar, SE3Options > &placement)
 Computes the classic acceleration of a given frame B knowing the spatial velocity and spatial acceleration of a frame A and the relative placement between these two frames. More...
 
template<typename Motion1 , typename Motion2 , typename SE3Scalar , int SE3Options, typename Vector3Like >
void classicAcceleration (const MotionDense< Motion1 > &spatial_velocity, const MotionDense< Motion2 > &spatial_acceleration, const SE3Tpl< SE3Scalar, SE3Options > &placement, const Eigen::MatrixBase< Vector3Like > &res)
 Computes the classic acceleration of a given frame B knowing the spatial velocity and spatial acceleration of a frame A and the relative placement between these two frames. More...
 
template<typename T >
bool compare_shared_ptr (const std::shared_ptr< T > &ptr1, const std::shared_ptr< T > &ptr2)
 Compares two std::shared_ptr.
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void computeABADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 The derivatives of the Articulated-Body algorithm. This function exploits the internal computations made in pinocchio::aba to significantly reduced the computation burden. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void computeABADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const container::aligned_vector< ForceTpl< Scalar, Options >> &fext)
 The derivatives of the Articulated-Body algorithm with external forces. This function exploits the internal computations made in pinocchio::aba to significantly reduced the computation burden. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename MatrixType1 , typename MatrixType2 , typename MatrixType3 >
void computeABADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, 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. This function exploits the internal computations made in pinocchio::aba to significantly reduced the computation burden. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
std::enable_if< ConfigVectorType::IsVectorAtCompileTime||TangentVectorType1::IsVectorAtCompileTime||TangentVectorType2::IsVectorAtCompileTime, void >::type 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 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 , 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 MatrixType1 , typename MatrixType2 , typename MatrixType3 >
std::enable_if< !(MatrixType1::IsVectorAtCompileTime||MatrixType2::IsVectorAtCompileTime||MatrixType3::IsVectorAtCompileTime), void >::type computeABADerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, 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. This function exploits the internal computations made in pinocchio::aba to significantly reduced the computation burden. 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 &geom_model, GeometryData &geom_data)
 
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...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeCentroidalMap (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 Computes the Centroidal Momentum Matrix. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeCentroidalMapTimeVariation (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 time derivative. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
const DataTpl< Scalar, Options, JointCollectionTpl >::ForcecomputeCentroidalMomentum (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Computes the Centroidal momentum, 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 TangentVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::ForcecomputeCentroidalMomentum (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, 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>
const DataTpl< Scalar, Options, JointCollectionTpl >::ForcecomputeCentroidalMomentumTimeVariation (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Computes the Centroidal momemtum 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 >
const DataTpl< Scalar, Options, JointCollectionTpl >::ForcecomputeCentroidalMomentumTimeVariation (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 momemtum and its time derivatives, a.k.a. the total momenta of the system and its time derivative expressed around the center of mass. More...
 
bool computeCollision (const GeometryModel &geom_model, GeometryData &geom_data, const PairIndex pair_id)
 Compute the collision status between a SINGLE collision pair. The result is store in the collisionResults vector. More...
 
bool computeCollision (const GeometryModel &geom_model, GeometryData &geom_data, const PairIndex pair_id, fcl::CollisionRequest &collision_request)
 Compute the collision status between a SINGLE collision pair. The result is store in the collisionResults vector. More...
 
template<typename BroadPhaseManagerDerived >
bool computeCollisions (BroadPhaseManagerBase< BroadPhaseManagerDerived > &broadphase_manager, CollisionCallBackBase *callback)
 Calls computeCollision for every active pairs of GeometryData. This function assumes that updateGeometryPlacements and broadphase_manager.update() have been called first. More...
 
template<typename BroadPhaseManagerDerived >
bool computeCollisions (BroadPhaseManagerBase< BroadPhaseManagerDerived > &broadphase_manager, const bool stopAtFirstCollision=false)
 Calls computeCollision for every active pairs of GeometryData. This function assumes that updateGeometryPlacements and broadphase_manager.update() have been called first. More...
 
bool computeCollisions (const GeometryModel &geom_model, GeometryData &geom_data, const bool stopAtFirstCollision=false)
 Calls computeCollision for every active pairs of GeometryData. This function assumes that updateGeometryPlacements has been called first. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename BroadPhaseManagerDerived , typename ConfigVectorType >
bool computeCollisions (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, BroadPhaseManagerBase< BroadPhaseManagerDerived > &broadphase_manager, CollisionCallBackBase *callback, const Eigen::MatrixBase< ConfigVectorType > &q)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename BroadPhaseManagerDerived , typename ConfigVectorType >
bool computeCollisions (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, BroadPhaseManagerBase< BroadPhaseManagerDerived > &broadphase_manager, const Eigen::MatrixBase< ConfigVectorType > &q, const bool stopAtFirstCollision=false)
 
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 &geom_model, GeometryData &geom_data, const Eigen::MatrixBase< ConfigVectorType > &q, const bool stopAtFirstCollision=false)
 
template<typename BroadPhaseManagerDerived , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorPool , typename CollisionVectorResult >
void computeCollisionsInParallel (const size_t num_threads, BroadPhaseManagerPoolBase< BroadPhaseManagerDerived, Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< CollisionVectorResult > &res, const bool stopAtFirstCollisionInConfiguration=false, const bool stopAtFirstCollisionInBatch=false)
 
template<typename BroadPhaseManagerDerived , typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void computeCollisionsInParallel (const size_t num_threads, BroadPhaseManagerPoolBase< BroadPhaseManagerDerived, Scalar, Options, JointCollectionTpl > &pool, const std::vector< Eigen::MatrixXd > &trajectories, std::vector< VectorXb > &res, const bool stopAtFirstCollisionInTrajectory=false)
 Evaluate the collision over a set of trajectories and return whether a trajectory contains a collision.
 
bool computeCollisionsInParallel (const size_t num_threads, const GeometryModel &geom_model, GeometryData &geom_data, const bool stopAtFirstCollision=false)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
bool computeCollisionsInParallel (const size_t num_threads, const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const GeometryModel &geom_model, GeometryData &geom_data, const Eigen::MatrixBase< ConfigVectorType > &q, const bool stopAtFirstCollision=false)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorPool , typename CollisionVectorResult >
void computeCollisionsInParallel (const size_t num_threads, GeometryPoolTpl< Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< CollisionVectorResult > &res, const bool stopAtFirstCollisionInConfiguration=false, const bool stopAtFirstCollisionInBatch=false)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, class ConstraintModelAllocator , class ConstraintDataAllocator >
void computeConstraintDynamicsDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_data)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, class ConstraintModelAllocator , class ConstraintDataAllocator , typename MatrixType1 , typename MatrixType2 , typename MatrixType3 , typename MatrixType4 , typename MatrixType5 , typename MatrixType6 >
void computeConstraintDynamicsDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_data, const Eigen::MatrixBase< MatrixType1 > &ddq_partial_dq, const Eigen::MatrixBase< MatrixType2 > &ddq_partial_dv, const Eigen::MatrixBase< MatrixType3 > &ddq_partial_dtau, const Eigen::MatrixBase< MatrixType4 > &lambda_partial_dq, const Eigen::MatrixBase< MatrixType5 > &lambda_partial_dv, const Eigen::MatrixBase< MatrixType6 > &lambda_partial_dtau)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, class ConstraintModelAllocator , class ConstraintDataAllocator >
void computeConstraintDynamicsDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_data, const ProximalSettingsTpl< Scalar > &settings)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, class ConstraintModelAllocator , class ConstraintDataAllocator , typename MatrixType1 , typename MatrixType2 , typename MatrixType3 , typename MatrixType4 , typename MatrixType5 , typename MatrixType6 >
void computeConstraintDynamicsDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_data, const ProximalSettingsTpl< Scalar > &settings, const Eigen::MatrixBase< MatrixType1 > &ddq_partial_dq, const Eigen::MatrixBase< MatrixType2 > &ddq_partial_dv, const Eigen::MatrixBase< MatrixType3 > &ddq_partial_dtau, const Eigen::MatrixBase< MatrixType4 > &lambda_partial_dq, const Eigen::MatrixBase< MatrixType5 > &lambda_partial_dv, const Eigen::MatrixBase< MatrixType6 > &lambda_partial_dtau)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename VectorLikeC , class ConstraintModelAllocator , class ConstraintDataAllocator , class CoulombFrictionConelAllocator , typename VectorLikeR , typename VectorLikeGamma , typename VectorLikeImp >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & computeContactImpulses (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< VectorLikeC > &c_ref, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas, const std::vector< CoulombFrictionConeTpl< Scalar >, CoulombFrictionConelAllocator > &cones, const Eigen::MatrixBase< VectorLikeR > &R, const Eigen::MatrixBase< VectorLikeGamma > &constraint_correction, ProximalSettingsTpl< Scalar > &settings, const boost::optional< VectorLikeImp > &impulse_guess=boost::none)
 Compute the contact impulses given a target velocity of contact points. More...
 
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: More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , class ModelAllocator , class DataAllocator , typename MatrixType >
void computeDampedDelassusMatrixInverse (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, DataAllocator > &contact_data, const Eigen::MatrixBase< MatrixType > &damped_delassus_inverse, const Scalar mu, const bool scaled=false, const bool Pv=true)
 Computes the inverse of the Delassus matrix associated to a set of given constraints. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , class ModelAllocator , class DataAllocator , typename MatrixType >
void computeDelassusMatrix (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, DataAllocator > &contact_data, const Eigen::MatrixBase< MatrixType > &delassus, const Scalar mu=0)
 Computes the Delassus matrix associated to a set of given constraints. More...
 
fcl::DistanceResult & computeDistance (const GeometryModel &geom_model, GeometryData &geom_data, const PairIndex pair_id)
 Compute the minimal distance between collision objects of a SINGLE collison pair. More...
 
std::size_t computeDistances (const GeometryModel &geom_model, GeometryData &geom_data)
 Compute the minimal distance between collision objects of a ALL collison pair. More...
 
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 &geom_model, GeometryData &geom_data)
 
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 &geom_model, GeometryData &geom_data, const Eigen::MatrixBase< ConfigVectorType > &q)
 
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 , typename Matrix6xLike >
void computeFrameJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const FrameIndex frameId, const Eigen::MatrixBase< Matrix6xLike > &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 , typename Matrix6xLike >
void computeFrameJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const FrameIndex frameId, const ReferenceFrame reference_frame, const Eigen::MatrixBase< Matrix6xLike > &J)
 Computes the Jacobian of a specific Frame expressed in the desired reference_frame given as argument. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x computeFrameKinematicRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, const ReferenceFrame rf)
 Computes the kinematic regressor that links the joint placement variations of the whole kinematic tree to the placement variation of the frame given as input. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xReturnType >
void computeFrameKinematicRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xReturnType > &kinematic_regressor)
 
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: 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 partial derivative of the generalized gravity contribution with respect to the joint configuration. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, class ConstraintModelAllocator , class ConstraintDataAllocator >
void computeImpulseDynamicsDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_data, const Scalar r_coeff, const ProximalSettingsTpl< Scalar > &settings)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, class ConstraintModelAllocator , class ConstraintDataAllocator , typename MatrixType1 , typename MatrixType2 , typename MatrixType3 , typename MatrixType4 >
void computeImpulseDynamicsDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_data, const Scalar r_coeff, const ProximalSettingsTpl< Scalar > &settings, const Eigen::MatrixBase< MatrixType1 > &dvimpulse_partial_dq, const Eigen::MatrixBase< MatrixType2 > &dvimpulse_partial_dv, const Eigen::MatrixBase< MatrixType3 > &impulse_partial_dq, const Eigen::MatrixBase< MatrixType4 > &impulse_partial_dv)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename Matrix6Like >
void computeJointJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const JointIndex joint_id, 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...
 
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 >
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, 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>
void computeJointKinematicHessians (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Computes all the terms required to compute the second order derivatives of the placement information, also know as the kinematic Hessian. This function assumes that the joint Jacobians (a.k.a data.J) has been computed first. See computeJointJacobians for such a function. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void computeJointKinematicHessians (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 Computes all the terms required to compute the second order derivatives of the placement information, also know as the kinematic Hessian. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x computeJointKinematicRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame rf)
 Computes the kinematic regressor that links the joint placement variations of the whole kinematic tree to the placement variation of the joint given as input. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xReturnType >
void computeJointKinematicRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xReturnType > &kinematic_regressor)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x computeJointKinematicRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame rf, const SE3Tpl< Scalar, Options > &placement)
 Computes the kinematic regressor that links the joint placements variations of the whole kinematic tree to the placement variation of the frame rigidly attached to the joint and given by its placement w.r.t. to the joint frame. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xReturnType >
void computeJointKinematicRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame rf, const SE3Tpl< Scalar, Options > &placement, const Eigen::MatrixBase< Matrix6xReturnType > &kinematic_regressor)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 >
DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & computeJointTorqueRegressor (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 joint torque regressor that links the joint torque to the dynamic parameters of each link according to the current the robot motion. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
Scalar computeKineticEnergy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Computes the kinetic energy of the system. The result is accessible through data.kinetic_energy. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
Scalar computeKineticEnergy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Computes the kinetic energy of the system. The result is accessible through data.kinetic_energy. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename ConstraintMatrixType , typename KKTMatrixType >
void computeKKTContactDynamicMatrixInverse (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Eigen::MatrixBase< KKTMatrixType > &KKTMatrix_inv, const Scalar &inv_damping=0.)
 Computes the inverse of the KKT matrix for dynamics with contact constraints. It computes the following matrix:
More...
 
template<typename MatrixLike , typename VectorLike >
void computeLargestEigenvector (const MatrixLike &mat, const Eigen::PlainObjectBase< VectorLike > &_eigenvector_est, const int max_it=10, const typename MatrixLike::Scalar rel_tol=1e-8)
 Compute the lagest eigenvector of a given matrix according to a given eigenvector estimate. More...
 
template<typename MatrixLike >
Eigen::Matrix< typename MatrixLike::Scalar, MatrixLike::RowsAtCompileTime, 1 > computeLargestEigenvector (const MatrixLike &mat, const int max_it=10, const typename MatrixLike::Scalar rel_tol=1e-8)
 Compute the lagest eigenvector of a given matrix. More...
 
template<typename MatrixLike >
Eigen::Matrix< typename MatrixLike::Scalar, MatrixLike::RowsAtCompileTime, 1 > computeLowestEigenvector (const MatrixLike &mat, const bool compute_largest=true, const int max_it=10, const typename MatrixLike::Scalar rel_tol=1e-8)
 Compute the lagest eigenvector of a given matrix. More...
 
template<typename MatrixLike , typename VectorLike1 , typename VectorLike2 >
void computeLowestEigenvector (const MatrixLike &mat, const Eigen::PlainObjectBase< VectorLike1 > &largest_eigenvector_est, const Eigen::PlainObjectBase< VectorLike2 > &lowest_eigenvector_est, const bool compute_largest=true, const int max_it=10, const typename MatrixLike::Scalar rel_tol=1e-8)
 Compute the lagest eigenvector of a given matrix according to a given eigenvector estimate. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
Scalar computeMechanicalEnergy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Computes the mechanical energy of the system stored in data.mechanical_energy. The result is accessible through data.kinetic_energy. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType >
Scalar computeMechanicalEnergy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
 Computes the mechanical energy of the system stored in data.mechanical_energy. The result is accessible through data.kinetic_energy. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
const DataTpl< Scalar, Options, JointCollectionTpl >::RowMatrixXs & computeMinverse (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Computes the inverse of the joint space inertia matrix using Articulated Body formulation. Compared to the complete signature computeMinverse<Scalar,Options,ConfigVectorType>, this version assumes that ABA has been called first. 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>
Scalar computePotentialEnergy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 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...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
Scalar computePotentialEnergy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 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...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::RowVectorXs & computePotentialEnergyRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 
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, 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 , 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 partial 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 ComputeRNEASecondOrderDerivatives (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 Second-Order partial 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 Tensor1 , typename Tensor2 , typename Tensor3 , typename Tensor4 >
void ComputeRNEASecondOrderDerivatives (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 Tensor1 &d2tau_dqdq, const Tensor2 &d2tau_dvdv, const Tensor3 &dtau_dqdv, const Tensor4 &dtau_dadq)
 Computes the Second-Order partial derivatives of the Recursive Newton Euler Algorithm w.r.t the joint configuration, the joint velocity and the joint acceleration. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
DataTpl< Scalar, Options, JointCollectionTpl >::Matrix3x & computeStaticRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
 Computes the static regressor that links the center of mass positions of all the links to the center of mass of the complete model according to the current configuration of the robot. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & computeStaticTorque (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const container::aligned_vector< ForceTpl< Scalar, Options >> &fext)
 Computes the generalized static torque contribution \( g(q) - \sum J(q)^{\top} f_{\text{ext}} \) of the Lagrangian dynamics: More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename ReturnMatrixType >
void computeStaticTorqueDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const container::aligned_vector< ForceTpl< Scalar, Options >> &fext, const Eigen::MatrixBase< ReturnMatrixType > &static_torque_partial_dq)
 Computes the partial derivative of the generalized gravity and external forces contributions (a.k.a static torque vector) with respect to the joint configuration. 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>
ForceTpl< Scalar, Options > computeSupportedForceByFrame (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id)
 Computes the force supported by a specific frame (given by frame_id) expressed in the LOCAL frame. The supported force corresponds to the sum of all the forces experienced after the given frame, i.e : More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
InertiaTpl< Scalar, Options > computeSupportedInertiaByFrame (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, bool with_subtree)
 Compute the inertia supported by a specific frame (given by frame_id) expressed in the LOCAL frame. The total supported inertia corresponds to the sum of all the inertia after the given frame, i.e : 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, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , class ContactModelAllocator , class ContactDataAllocator >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & constrainedABA (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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ContactModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ContactDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
 The constrained Articulated Body Algorithm (constrainedABA). It computes constrained forward dynamics, aka the joint accelerations and constraint forces given the current state, actuation and the constraints on the system. All the quantities are expressed in the LOCAL coordinate systems of the joint frames. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , class ConstraintModelAllocator , class ConstraintDataAllocator >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & constraintDynamics (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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas)
 Computes the forward dynamics with contact constraints according to a given list of Contact information. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , class ConstraintModelAllocator , class ConstraintDataAllocator >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & constraintDynamics (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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
 Computes the forward dynamics with contact constraints according to a given list of contact information. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , class ModelAllocator , class DataAllocator >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & contactABA (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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, DataAllocator > &contact_data)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , class ConstraintModelAllocator , class ConstraintDataAllocator , class CoulombFrictionConelAllocator , typename VectorLikeR , typename VectorLikeGamma , typename VectorLikeLam >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & contactInverseDynamics (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, Scalar dt, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas, const std::vector< CoulombFrictionConeTpl< Scalar >, CoulombFrictionConelAllocator > &cones, const Eigen::MatrixBase< VectorLikeR > &R, const Eigen::MatrixBase< VectorLikeGamma > &constraint_correction, ProximalSettingsTpl< Scalar > &settings, const boost::optional< VectorLikeLam > &lambda_guess=boost::none)
 The Contact Inverse Dynamics algorithm. It computes the inverse dynamics in the presence of contacts, 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>
void copy (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &origin, DataTpl< Scalar, Options, JointCollectionTpl > &dest, KinematicLevel kinematic_level)
 Copy part of the data from origin 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, const Convention convention=Convention::LOCAL)
 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 ConstraintCollectionTpl>
ConstraintDataTpl< Scalar, Options, ConstraintCollectionTplcreateData (const ConstraintModelTpl< Scalar, Options, ConstraintCollectionTpl > &cmodel)
 
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 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 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 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 LieGroupCollection , class ConfigL_t , class ConfigR_t , class JacobianIn_t , class JacobianOut_t >
void dDifference (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianIn_t > &Jin, int self, const Eigen::MatrixBase< JacobianOut_t > &Jout, const ArgumentPosition arg)
 
template<typename LieGroupCollection , class ConfigL_t , class ConfigR_t , class JacobianOut_t >
void dDifference (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianOut_t > &J, const ArgumentPosition arg)
 
template<typename LieGroupCollection , class ConfigL_t , class ConfigR_t , class JacobianIn_t , class JacobianOut_t >
void dDifference (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, int self, const Eigen::MatrixBase< JacobianIn_t > &Jin, const Eigen::MatrixBase< JacobianOut_t > &Jout, const ArgumentPosition arg)
 
template<typename LieGroupCollection , class ConfigL_t , class ConfigR_t , class Tangent_t >
void difference (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< Tangent_t > &v)
 
template<typename LieGroupCollection , class Config_t , class Tangent_t , class JacobianIn_t , class JacobianOut_t >
void dIntegrate (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &J_in, int self, const Eigen::MatrixBase< JacobianOut_t > &J_out, const ArgumentPosition arg, const AssignmentOperatorType op=SETTO)
 
template<typename LieGroupCollection , class Config_t , class Tangent_t , class JacobianOut_t >
void dIntegrate (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const ArgumentPosition arg, const AssignmentOperatorType op=SETTO)
 
template<typename LieGroupCollection , class Config_t , class Tangent_t , class JacobianIn_t , class JacobianOut_t >
void dIntegrate (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, int self, const Eigen::MatrixBase< JacobianIn_t > &J_in, const Eigen::MatrixBase< JacobianOut_t > &J_out, const ArgumentPosition arg, const AssignmentOperatorType op=SETTO)
 
template<typename LieGroupCollection , class Config_t , class Tangent_t , class JacobianIn_t , class JacobianOut_t >
void dIntegrateTransport (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &J_in, const Eigen::MatrixBase< JacobianOut_t > &J_out, const ArgumentPosition arg)
 
template<typename LieGroupCollection , class Config_t , class Tangent_t , class JacobianOut_t >
void dIntegrateTransport (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const ArgumentPosition arg)
 
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 LieGroupCollection , class ConfigL_t , class ConfigR_t >
ConfigL_t::Scalar distance (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1)
 
template<typename Vector3Like >
Eigen::Matrix< typename Vector3Like::Scalar, 3, 3, Vector3Like ::Options > exp3 (const Eigen::MatrixBase< Vector3Like > &v)
 Exp: so3 -> SO3. More...
 
template<typename Vector6Like >
SE3Tpl< typename Vector6Like::Scalar, Vector6Like ::Options > exp6 (const Eigen::MatrixBase< Vector6Like > &v)
 Exp: se3 -> SE3. More...
 
template<typename MotionDerived >
SE3Tpl< typename MotionDerived::Scalar, typename MotionDerived::Vector3 ::Options > exp6 (const MotionDense< MotionDerived > &nu)
 Exp: se3 -> SE3. More...
 
PINOCCHIO_PARSERS_DLLAPI 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...
 
PINOCCHIO_PARSERS_DLLAPI void extractPathFromEnvVar (const std::string &env_var_name, std::vector< std::string > &list_of_paths, 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>
JointIndex findCommonAncestor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, JointIndex joint1_id, JointIndex joint2_id, size_t &index_ancestor_in_support1, size_t &index_ancestor_in_support2)
 Computes the common ancestor between two joints belonging to the same kinematic tree. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , typename ConstraintMatrixType , typename DriftVectorType >
PINOCCHIO_DEPRECATED 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.)
 Compute the forward dynamics with contact constraints. Internally, pinocchio::computeAllTerms is called. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename TangentVectorType , typename ConstraintMatrixType , typename DriftVectorType >
PINOCCHIO_DEPRECATED const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & forwardDynamics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< TangentVectorType > &tau, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Eigen::MatrixBase< DriftVectorType > &gamma, const Scalar inv_damping=0.)
 Compute the forward dynamics with contact constraints, assuming pinocchio::computeAllTerms has been called. 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>
DataTpl< Scalar, Options, JointCollectionTpl >::BodyRegressorType & frameBodyRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, FrameIndex frame_id)
 Computes the regressor for the dynamic parameters of a rigid body attached to a given frame, puts the result in data.bodyRegressor and returns it. 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>
MotionTpl< Scalar, Options > getAcceleration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex jointId, const ReferenceFrame rf=LOCAL)
 Returns the spatial acceleration of the joint expressed in the desired reference frame. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure. 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 computeAllTerms(model,data,q,v) or computeCenterOfMass(model,data,q,v) 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>
MotionTpl< Scalar, Options > getClassicalAcceleration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex jointId, const ReferenceFrame rf=LOCAL)
 Returns the "classical" acceleration of the joint expressed in the desired reference frame. This is different from the "spatial" acceleration in that centrifugal effects are accounted for. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure. 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, typename Matrix6Like >
void getConstraintJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const RigidConstraintModelTpl< Scalar, Options > &constraint_model, RigidConstraintDataTpl< Scalar, Options > &constraint_data, const Eigen::MatrixBase< Matrix6Like > &J)
 Computes the kinematic Jacobian associatied to a given constraint model. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename DynamicMatrixLike , class ConstraintModelAllocator , class ConstraintDataAllocator >
void getConstraintsJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintDataAllocator > &constraint_model, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &constraint_data, const Eigen::MatrixBase< DynamicMatrixLike > &J)
 Computes the kinematic Jacobian associatied to a given set of constraint models. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & getCoriolisMatrix (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
 Retrives the Coriolis Matrix \( C(q,\dot{q}) \) of the Lagrangian dynamics: 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 FrameIndex frame_id, const ReferenceFrame rf=LOCAL)
 Returns the spatial acceleration of the Frame expressed in the desired reference frame. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in the data structure. 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 JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf=LOCAL)
 Returns the spatial acceleration of the Frame expressed in the desired reference frame. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xOut1 , typename Matrix6xOut2 , typename Matrix6xOut3 , typename Matrix6xOut4 >
void getFrameAccelerationDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, 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 derivatives of the frame acceleration quantity with respect to q, v and a. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. 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 Matrix6xOut1 , typename Matrix6xOut2 , typename Matrix6xOut3 , typename Matrix6xOut4 , typename Matrix6xOut5 >
void getFrameAccelerationDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xOut1 > &v_partial_dq, const Eigen::MatrixBase< Matrix6xOut2 > &v_partial_dv, const Eigen::MatrixBase< Matrix6xOut3 > &a_partial_dq, const Eigen::MatrixBase< Matrix6xOut4 > &a_partial_dv, const Eigen::MatrixBase< Matrix6xOut5 > &a_partial_da)
 Computes the partial derivatives of the frame acceleration quantity with respect to q, v and a. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. 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 Matrix6xOut1 , typename Matrix6xOut2 , typename Matrix6xOut3 , typename Matrix6xOut4 >
void getFrameAccelerationDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, 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 derivatives of the spatial acceleration of a frame given by its relative placement, with respect to q, v and a. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. 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 Matrix6xOut1 , typename Matrix6xOut2 , typename Matrix6xOut3 , typename Matrix6xOut4 , typename Matrix6xOut5 >
void getFrameAccelerationDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xOut1 > &v_partial_dq, const Eigen::MatrixBase< Matrix6xOut2 > &v_partial_dv, const Eigen::MatrixBase< Matrix6xOut3 > &a_partial_dq, const Eigen::MatrixBase< Matrix6xOut4 > &a_partial_dv, const Eigen::MatrixBase< Matrix6xOut5 > &a_partial_da)
 Computes the partial derivatives of the frame acceleration quantity with respect to q, v and a. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. 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>
MotionTpl< Scalar, Options > getFrameClassicalAcceleration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, const ReferenceFrame rf=LOCAL)
 Returns the "classical" acceleration of the Frame expressed in the desired reference frame. This is different from the "spatial" acceleration in that centrifugal effects are accounted for. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
MotionTpl< Scalar, Options > getFrameClassicalAcceleration (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf=LOCAL)
 Returns the "classical" acceleration of the Frame expressed in the desired reference frame. This is different from the "spatial" acceleration in that centrifugal effects are accounted for. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > getFrameJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, const ReferenceFrame reference_frame)
 Returns the jacobian of the frame expressed either expressed in the local frame coordinate system, in the local world aligned frame or in the WORLD coordinate system, depending on the value of reference_frame. You must first call pinocchio::computeJointJacobians. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xLike >
void getFrameJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, const ReferenceFrame reference_frame, const Eigen::MatrixBase< Matrix6xLike > &J)
 Returns the jacobian of the frame expressed either expressed in the local frame coordinate system, in the local world aligned frame or in the WORLD coordinate system, depending on the value of reference_frame. You must first call pinocchio::computeJointJacobians. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > getFrameJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame reference_frame)
 Returns the jacobian of the frame given by its relative placement w.r.t. a joint frame, and whose columns are either expressed in the LOCAL frame coordinate system, in the local world aligned frame or in the WORLD coordinate system, depending on the value of reference_frame. You must first call pinocchio::computeJointJacobians. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xLike >
void getFrameJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame reference_frame, const Eigen::MatrixBase< Matrix6xLike > &J)
 Returns the jacobian of the frame given by its relative placement w.r.t. a joint frame, and whose columns are either expressed in the LOCAL frame coordinate system, in the local world aligned (rf = LOCAL_WORLD_ALIGNED) frame or in the WORLD coordinate system, depending on the value of reference_frame. You must first call pinocchio::computeJointJacobians. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xLike >
void getFrameJacobianTimeVariation (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const 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), in the local world aligned (rf = LOCAL_WORLD_ALIGNED) frame 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 FrameIndex frame_id, const ReferenceFrame rf=LOCAL)
 Returns the spatial velocity of the Frame expressed in the desired reference frame. 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>
MotionTpl< Scalar, Options > getFrameVelocity (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf=LOCAL)
 Returns the spatial velocity of the Frame expressed in the desired reference frame. 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 Matrix6xOut1 , typename Matrix6xOut2 >
void getFrameVelocityDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xOut1 > &v_partial_dq, const Eigen::MatrixBase< Matrix6xOut2 > &v_partial_dv)
 Computes the partial derivatives of the spatial velocity of a frame given by its relative placement, with respect to q and v. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xOut1 , typename Matrix6xOut2 >
void getFrameVelocityDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xOut1 > &v_partial_dq, const Eigen::MatrixBase< Matrix6xOut2 > &v_partial_dv)
 Computes the partial derivatives of the frame spatial velocity with respect to q and v. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. 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<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix3xLike >
void getJacobianSubtreeCenterOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex &rootSubtreeId, const Eigen::MatrixBase< Matrix3xLike > &res)
 Retrieves the Jacobian of the center of mass of the given subtree according to the current value stored in data. It assumes that pinocchio::jacobianCenterOfMass has been called first with computeSubtreeComs equals to true. 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, const 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 Matrix6xOut1 , typename Matrix6xOut2 , typename Matrix6xOut3 , typename Matrix6xOut4 , typename Matrix6xOut5 >
void getJointAccelerationDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const 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, const Eigen::MatrixBase< Matrix6xOut3 > &a_partial_dq, const Eigen::MatrixBase< Matrix6xOut4 > &a_partial_dv, const Eigen::MatrixBase< Matrix6xOut5 > &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>
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > getJointJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame reference_frame)
 Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame, in the local world aligned (rf = LOCAL_WORLD_ALIGNED) 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 getJointJacobian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame reference_frame, const Eigen::MatrixBase< Matrix6Like > &J)
 Computes the Jacobian of a specific joint frame expressed in one of the pinocchio::ReferenceFrame options. 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 joint_id, const ReferenceFrame reference_frame, const Eigen::MatrixBase< Matrix6Like > &dJ)
 Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD), in the local world aligned (rf = LOCAL_WORLD_ALIGNED) frame or in the local frame (rf = LOCAL) of the joint. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
Tensor< Scalar, 3, Options > getJointKinematicHessian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex joint_id, const ReferenceFrame rf)
 Retrieves the kinematic Hessian of a given joint according to the values aleardy computed by computeJointKinematicHessians and stored in data. While the kinematic Jacobian of a given joint frame corresponds to the first order derivative of the placement variation with respect to \( q \), the kinematic Hessian corresponds to the second order derivation of placement variation, which in turns also corresponds to the first order derivative of the kinematic Jacobian. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
void getJointKinematicHessian (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex joint_id, const ReferenceFrame rf, Tensor< Scalar, 3, Options > &kinematic_hessian)
 Retrieves the kinematic Hessian of a given joint according to the values aleardy computed by computeJointKinematicHessians and stored in data. While the kinematic Jacobian of a given joint frame corresponds to the first order derivative of the placement variation with respect to \( q \), the kinematic Hessian corresponds to the second order derivation of placement variation, which in turns also corresponds to the first order derivative of the kinematic Jacobian. The frame in which the kinematic Hessian is precised by the input argument rf. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix6xOut1 , typename Matrix6xOut2 >
void getJointVelocityDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const 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 >
PINOCCHIO_DEPRECATED void getKKTContactDynamicMatrixInverse (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Eigen::MatrixBase< KKTMatrixType > &KKTMatrix_inv)
 Computes the inverse of the KKT matrix for dynamics with contact constraints. More...
 
int getOpenMPNumThreadsEnv ()
 Returns the number of thread defined by the environment variable OMP_NUM_THREADS. If this variable is not defined, this simply returns the default value 1.
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix3xOut1 , typename Matrix3xOut2 , typename Matrix3xOut3 , typename Matrix3xOut4 >
void getPointClassicAccelerationDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix3xOut1 > &v_point_partial_dq, const Eigen::MatrixBase< Matrix3xOut2 > &a_point_partial_dq, const Eigen::MatrixBase< Matrix3xOut3 > &a_point_partial_dv, const Eigen::MatrixBase< Matrix3xOut4 > &a_point_partial_da)
 Computes the partial derivatives of the classic acceleration of a point given by its placement information w.r.t. the joint frame. 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_point_partial_dq. v_point_partial_dv is not computed it is equal to a_point_partial_da. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix3xOut1 , typename Matrix3xOut2 , typename Matrix3xOut3 , typename Matrix3xOut4 , typename Matrix3xOut5 >
void getPointClassicAccelerationDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix3xOut1 > &v_point_partial_dq, const Eigen::MatrixBase< Matrix3xOut2 > &v_point_partial_dv, const Eigen::MatrixBase< Matrix3xOut3 > &a_point_partial_dq, const Eigen::MatrixBase< Matrix3xOut4 > &a_point_partial_dv, const Eigen::MatrixBase< Matrix3xOut5 > &a_point_partial_da)
 Computes the partial derivaties of the classic acceleration of a point given by its placement information w.r.t. to the joint frame. 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_point_partial_dq and v_point_partial_dv.. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix3xOut1 , typename Matrix3xOut2 >
void getPointVelocityDerivatives (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix3xOut1 > &v_point_partial_dq, const Eigen::MatrixBase< Matrix3xOut2 > &v_point_partial_dv)
 Computes the partial derivatives of the velocity of a point given by its placement information w.r.t. the joint frame. You must first call computForwardKinematicsDerivatives before calling this function. More...
 
template<typename Scalar , int Options, class Allocator >
struct PINOCCHIO_UNSUPPORTED_MESSAGE("The API will change towards more flexibility") RigidConstraintModelTpl size_t getTotalConstraintSize (const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
 Contact model structure containg all the info describing the rigid contact model. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
MotionTpl< Scalar, Options > getVelocity (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex jointId, const ReferenceFrame rf=LOCAL)
 Returns the spatial velocity of the joint expressed in the desired reference frame. You must first call pinocchio::forwardKinematics to update placement and velocity values in data structure. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
const std::vector< bool > hasConfigurationLimit (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through JointConfigurationLimitVisitor to get the configurations limits. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
const std::vector< bool > hasConfigurationLimitInTangent (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through JointConfigurationLimitInTangentVisitor to get the configurations limits in tangent space. More...
 
template<typename Derived >
bool hasNaN (const Eigen::DenseBase< Derived > &m)
 
template<typename NewScalar , typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename JointModelDerived >
bool hasSameIndexes (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel_generic, const JointModelBase< JointModelDerived > &jmodel)
 Check whether JointModelTpl<Scalar,...> has the indexes than another JointModelDerived. More...
 
template<typename Matrix3Like1 , typename Vector3Like , typename Matrix3Like2 >
void Hlog3 (const Eigen::MatrixBase< Matrix3Like1 > &R, const Eigen::MatrixBase< Vector3Like > &v, const Eigen::MatrixBase< Matrix3Like2 > &vt_Hlog)
 Second order derivative of log3. More...
 
template<typename Scalar , typename Vector3Like1 , typename Vector3Like2 , typename Matrix3Like >
void Hlog3 (const Scalar &theta, const Eigen::MatrixBase< Vector3Like1 > &log, const Eigen::MatrixBase< Vector3Like2 > &v, const Eigen::MatrixBase< Matrix3Like > &vt_Hlog)
 
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 >
PINOCCHIO_DEPRECATED 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 Scalar inv_damping=0.)
 Compute the impulse dynamics with contact constraints. Internally, pinocchio::crba is called. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , class ConstraintModelAllocator , class ConstraintDataAllocator >
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< TangentVectorType1 > &v_before, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas, const Scalar r_coeff, const ProximalSettingsTpl< Scalar > &settings)
 Compute the impulse dynamics with contact constraints. Internally, pinocchio::crba is called. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType , typename ConstraintMatrixType >
PINOCCHIO_DEPRECATED const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & impulseDynamics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< TangentVectorType > &v_before, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Scalar r_coeff=0., const Scalar inv_damping=0.)
 Compute the impulse dynamics with contact constraints, assuming pinocchio::crba has been called. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, class Allocator >
void initConstraintDynamics (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
 Init the forward dynamics data according to the contact information contained in contact_models. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, class Allocator >
void initPvDelassus (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, class Allocator >
void initPvSolver (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
 Init the data according to the contact information contained in contact_models. 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...
 
template<typename LieGroupCollection , class ConfigL_t , class ConfigR_t , class ConfigOut_t >
void interpolate (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const typename ConfigL_t::Scalar &u, const Eigen::MatrixBase< ConfigOut_t > &qout)
 
template<typename MatrixIn , typename MatrixOut >
void inverse (const Eigen::MatrixBase< MatrixIn > &m_in, const Eigen::MatrixBase< MatrixOut > &dest)
 
template<typename Scalar , int Options, template< typename S, int O > class ConstraintCollectionTpl, typename ConstraintDataDerived >
bool isEqual (const ConstraintDataTpl< Scalar, Options, ConstraintCollectionTpl > &cdata_generic, const ConstraintDataBase< ConstraintDataDerived > &cdata)
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename JointDataDerived >
bool isEqual (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jmodel_generic, const JointDataBase< JointDataDerived > &jmodel)
 Visit a JointDataTpl<Scalar,...> to compare it to another JointData. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename JointModelDerived >
bool isEqual (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel_generic, const JointModelBase< JointModelDerived > &jmodel)
 Visit a JointModelTpl<Scalar,...> to compare it to JointModelDerived. More...
 
template<typename VectorLike >
bool isNormalized (const Eigen::MatrixBase< VectorLike > &vec, const typename VectorLike::RealScalar &prec=Eigen::NumTraits< typename VectorLike::Scalar >::dummy_precision())
 Check whether the input vector is Normalized within the given precision. More...
 
template<typename LieGroupCollection , class Config_t >
bool isNormalized (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< Config_t > &qin, const typename Config_t::Scalar &prec=Eigen::NumTraits< typename Config_t::Scalar >::dummy_precision())
 
template<typename LieGroupCollection , class ConfigL_t , class ConfigR_t >
bool isSameConfiguration (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const typename ConfigL_t::Scalar &prec)
 
template<typename MatrixLike >
bool isUnitary (const Eigen::MatrixBase< MatrixLike > &mat, const typename MatrixLike::RealScalar &prec=Eigen::NumTraits< typename MatrixLike::Scalar >::dummy_precision())
 Check whether the input matrix is Unitary within the given precision. More...
 
template<typename MatrixLike >
bool isZero (const Eigen::MatrixBase< MatrixLike > &m, const typename MatrixLike::RealScalar &prec=Eigen::NumTraits< typename MatrixLike::Scalar >::dummy_precision())
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, template< typename S, int O > class ConstraintCollectionTpl, typename JacobianMatrix >
void jacobian (const ConstraintModelTpl< Scalar, Options, ConstraintCollectionTpl > &cmodel, ConstraintDataTpl< Scalar, Options, ConstraintCollectionTpl > &cdata, const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< JacobianMatrix > &jacobian_matrix)
 
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 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, typename ConfigVectorType , typename Matrix3xLike >
void jacobianSubtreeCenterOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const JointIndex &rootSubtreeId, const Eigen::MatrixBase< Matrix3xLike > &res)
 Computes the Jacobian of the center of mass of the given subtree according to a particular joint configuration. In addition, the algorithm also computes the Jacobian of all the joints (. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename Matrix3xLike >
void jacobianSubtreeCenterOfMass (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex &rootSubtreeId, const Eigen::MatrixBase< Matrix3xLike > &res)
 Computes the Jacobian of the center of mass of the given subtree according to the current value stored in data. It assumes that forwardKinematics has been called first. More...
 
template<AssignmentOperatorType op, typename Vector3Like , typename Matrix3Like >
void Jexp3 (const Eigen::MatrixBase< Vector3Like > &r, const Eigen::MatrixBase< Matrix3Like > &Jexp)
 Derivative of \( \exp{r} \). More...
 
template<typename Vector3Like , typename Matrix3Like >
void Jexp3 (const Eigen::MatrixBase< Vector3Like > &r, const Eigen::MatrixBase< Matrix3Like > &Jexp)
 Derivative of \( \exp{r} \). More...
 
template<typename MotionDerived >
Eigen::Matrix< typename MotionDerived::Scalar, 6, 6, MotionDerived::Options > Jexp6 (const MotionDense< MotionDerived > &nu)
 Derivative of exp6 Computed as the inverse of Jlog6.
 
template<AssignmentOperatorType op, 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 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 Matrix3Like1 , typename Matrix3Like2 >
void Jlog3 (const Eigen::MatrixBase< Matrix3Like1 > &R, const Eigen::MatrixBase< Matrix3Like2 > &Jlog)
 Derivative of log3. More...
 
template<typename Scalar , typename Vector3Like , typename Matrix3Like >
void Jlog3 (const Scalar &theta, const Eigen::MatrixBase< Vector3Like > &log, const Eigen::MatrixBase< Matrix3Like > &Jlog)
 Derivative of log3. More...
 
template<typename Scalar , int Options>
Eigen::Matrix< Scalar, 6, 6, Options > Jlog6 (const SE3Tpl< Scalar, Options > &M)
 Derivative of log6. More...
 
template<typename Scalar , int Options, typename Matrix6Like >
void Jlog6 (const SE3Tpl< Scalar, Options > &M, const Eigen::MatrixBase< Matrix6Like > &Jlog)
 Derivative of log6. More...
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
JointMotionSubspaceTpl< Eigen::Dynamic, Scalar, Options > joint_motin_subspace_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 S, int O > class JointCollectionTpl>
JointDataTpl< Scalar, Options, JointCollectionTpl >::ConfigVector_t joint_q (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataVariant through JointConfigVisitor to get the joint configuration vector. More...
 
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 S, int O > class JointCollectionTpl>
JointDataTpl< Scalar, Options, JointCollectionTpl >::TangentVector_t joint_v (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataVariant through JointConfigVisitor to get the joint velocity vector. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
DataTpl< Scalar, Options, JointCollectionTpl >::BodyRegressorType & jointBodyRegressor (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, JointIndex joint_id)
 Computes the regressor for the dynamic parameters of a rigid body attached to a given joint, puts the result in data.bodyRegressor and returns it. More...
 
template<typename Matrix3Like >
Eigen::Matrix< typename Matrix3Like::Scalar, 3, 1, Matrix3Like ::Options > log3 (const Eigen::MatrixBase< Matrix3Like > &R)
 Log: SO(3)-> so(3). 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 Matrix4Like >
MotionTpl< typename Matrix4Like::Scalar, Eigen::internal::traits< Matrix4Like >::Options > log6 (const Eigen::MatrixBase< Matrix4Like > &M)
 Log: SE3 -> se3. More...
 
template<typename Vector3Like , typename QuaternionLike >
MotionTpl< typename Vector3Like::Scalar, Vector3Like::Options > log6 (const Eigen::QuaternionBase< QuaternionLike > &quat, const Eigen::MatrixBase< Vector3Like > &vec)
 Log: SE3 -> se3. More...
 
template<typename Scalar , int Options>
MotionTpl< Scalar, Options > log6 (const SE3Tpl< Scalar, Options > &M)
 Log: SE3 -> se3. More...
 
template<typename M >
auto make_const_ref (Eigen::MatrixBase< M > const &m) -> Eigen::Ref< typename M::PlainObject const >
 
template<typename Derived >
Eigen::Ref< typename Derived::PlainObject > make_ref (const Eigen::MatrixBase< Derived > &x)
 
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: More...
 
template<typename VectorLike >
void normalize (const Eigen::MatrixBase< VectorLike > &vec)
 Normalize the input vector. More...
 
template<typename LieGroupCollection , class Config_t >
void normalize (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< Config_t > &qout)
 
template<typename Matrix3 >
void normalizeRotation (const Eigen::MatrixBase< Matrix3 > &rot)
 Orthogonormalization procedure for a rotation matrix (closed enough to SO(3)). 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 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 nv (const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
 Visit a JointModelTpl through JointNvVisitor to get the dimension of the joint tangent 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, typename JointDataDerived >
bool operator!= (const JointDataBase< JointDataDerived > &joint_data, const JointDataTpl< Scalar, Options, JointCollectionTpl > &joint_data_generic)
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename JointModelDerived >
bool operator!= (const JointModelBase< JointModelDerived > &joint_model, const JointModelTpl< Scalar, Options, JointCollectionTpl > &joint_model_generic)
 
template<typename LhsMatrixType , typename S , int O>
TridiagonalSymmetricMatrixApplyOnTheLeftReturnType< LhsMatrixType, TridiagonalSymmetricMatrixTpl< S, O > > operator* (const Eigen::MatrixBase< LhsMatrixType > &lhs, const TridiagonalSymmetricMatrixTpl< S, O > &rhs)
 
template<typename M6Like , typename S2 , int O2>
Eigen::Matrix< S2, 6, 3, O2 > operator* (const Eigen::MatrixBase< M6Like > &Y, const JointMotionSubspacePlanarTpl< S2, O2 > &)
 
template<typename M6Like , typename S2 , int O2>
SizeDepType< 3 >::ColsReturn< M6Like >::ConstType operator* (const Eigen::MatrixBase< M6Like > &Y, const JointMotionSubspaceSphericalTpl< S2, O2 > &)
 
template<typename M6Like , typename S2 , int O2>
const SizeDepType< 3 >::ColsReturn< M6Like >::ConstType operator* (const Eigen::MatrixBase< M6Like > &Y, const JointMotionSubspaceTranslationTpl< S2, O2 > &)
 
template<typename Matrix6Like , typename S2 , int O2>
const Matrix6Like & operator* (const Eigen::MatrixBase< Matrix6Like > &Y, const JointMotionSubspaceIdentityTpl< S2, O2 > &)
 
template<typename Matrix6Like , typename S2 , int O2>
const MatrixMatrixProduct< typename Eigen::internal::remove_const< typename SizeDepType< 3 >::ColsReturn< Matrix6Like >::ConstType >::type, typename JointMotionSubspaceSphericalZYXTpl< S2, O2 >::Matrix3 >::type operator* (const Eigen::MatrixBase< Matrix6Like > &Y, const JointMotionSubspaceSphericalZYXTpl< S2, O2 > &S)
 
template<typename MatrixDerived , typename ConstraintDerived >
MultiplicationOp< Eigen::MatrixBase< MatrixDerived >, ConstraintDerived >::ReturnType operator* (const Eigen::MatrixBase< MatrixDerived > &Y, const JointMotionSubspaceBase< ConstraintDerived > &constraint)
   More...
 
template<typename S1 , int O1, typename S2 , int O2>
InertiaTpl< S1, O1 >::Matrix6 operator* (const InertiaTpl< S1, O1 > &Y, const JointMotionSubspaceIdentityTpl< S2, O2 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S1, 6, 3, O1 > operator* (const InertiaTpl< S1, O1 > &Y, const JointMotionSubspacePlanarTpl< S2, O2 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S2, 6, 3, O2 > operator* (const InertiaTpl< S1, O1 > &Y, const JointMotionSubspaceSphericalTpl< S2, O2 > &)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S1, 6, 3, O1 > operator* (const InertiaTpl< S1, O1 > &Y, const JointMotionSubspaceSphericalZYXTpl< S2, O2 > &S)
 
template<typename S1 , int O1, typename S2 , int O2>
Eigen::Matrix< S2, 6, 3, O2 > operator* (const InertiaTpl< S1, O1 > &Y, const JointMotionSubspaceTranslationTpl< S2, O2 > &)
 
template<typename Scalar , int Options, typename ConstraintDerived >
MultiplicationOp< InertiaTpl< Scalar, Options >, ConstraintDerived >::ReturnType operator* (const InertiaTpl< Scalar, Options > &Y, const JointMotionSubspaceBase< ConstraintDerived > &constraint)
   More...
 
template<typename Scalar , int Options, typename Vector6Like >
MotionRef< const Vector6Like > operator* (const JointMotionSubspaceIdentityTpl< Scalar, Options > &, const Eigen::MatrixBase< Vector6Like > &v)
 
template<class ConstraintDerived >
JointMotionSubspaceTransposeBase< ConstraintDerived >::StDiagonalMatrixSOperationReturnType operator* (const JointMotionSubspaceTransposeBase< ConstraintDerived > &, const JointMotionSubspaceBase< ConstraintDerived > &S)
 
template<typename _Scalar , int _Options, int _axis>
Eigen::Matrix< _Scalar, 1, 1, _Options > operator* (const typename JointMotionSubspaceHelicalTpl< _Scalar, _Options, _axis >::TransposeConst &S_transpose, const JointMotionSubspaceHelicalTpl< _Scalar, _Options, _axis > &S)
 
template<typename _Scalar , int _Options>
Eigen::Matrix< _Scalar, 1, 1, _Options > operator* (const typename JointMotionSubspaceHelicalUnalignedTpl< _Scalar, _Options >::TransposeConst &S_transpose, const JointMotionSubspaceHelicalUnalignedTpl< _Scalar, _Options > &S)
 
template<typename MotionDerived >
internal::RHSScalarMultiplication< MotionDerived, typename MotionDerived::Scalar >::ReturnType operator* (const typename MotionDerived::Scalar &alpha, const MotionBase< MotionDerived > &motion)
 
template<typename F1 >
traits< F1 >::ForcePlain operator* (const typename traits< F1 >::Scalar alpha, const ForceDense< F1 > &f)
 Basic operations specialization.
 
template<typename M1 >
traits< M1 >::MotionPlain operator* (const typename traits< M1 >::Scalar alpha, const MotionDense< M1 > &v)
 
template<typename M1 , typename Scalar , int Options>
const M1 & operator+ (const MotionBase< M1 > &v, const MotionZeroTpl< Scalar, Options > &)
 
template<typename S1 , int O1, int axis, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionHelicalTpl< S1, O1, axis > &m1, const MotionDense< MotionDerived > &m2)
 
template<typename S1 , int O1, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionHelicalUnalignedTpl< 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 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, int axis, typename MotionDerived >
MotionDerived::MotionPlain operator+ (const MotionRevoluteTpl< S1, O1, axis > &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 MotionSphericalTpl< 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 Scalar , int Options, typename M1 >
const M1 & operator+ (const MotionZeroTpl< Scalar, Options > &, const MotionBase< M1 > &v)
 
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 ConstraintDataDerived , typename Scalar , int Options, template< typename S, int O > class ConstraintCollectionTpl>
bool operator== (const ConstraintDataBase< ConstraintDataDerived > &data1, const ConstraintDataTpl< Scalar, Options, ConstraintCollectionTpl > &data2)
 
bool operator== (const fcl::CollisionObject &lhs, const fcl::CollisionObject &rhs)
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename JointDataDerived >
bool operator== (const JointDataBase< JointDataDerived > &joint_data, const JointDataTpl< Scalar, Options, JointCollectionTpl > &joint_data_generic)
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl, typename JointModelDerived >
bool operator== (const JointModelBase< JointModelDerived > &joint_model, const JointModelTpl< Scalar, Options, JointCollectionTpl > &joint_model_generic)
 
template<typename M1 , typename F1 >
traits< F1 >::ForcePlain operator^ (const MotionDense< M1 > &v, const ForceBase< F1 > &f)
 
template<typename M1 , typename M2 >
traits< M1 >::MotionPlain operator^ (const MotionDense< M1 > &v1, const MotionDense< M2 > &v2)
 Basic operations specialization.
 
template<typename MotionDerived , typename S2 , int O2, int axis>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionHelicalTpl< S2, O2, axis > &m2)
 
template<typename MotionDerived , typename S2 , int O2>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionHelicalUnalignedTpl< 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, int axis>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionPrismaticTpl< 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, 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 MotionRevoluteUnalignedTpl< S2, O2 > &m2)
 
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>
MotionDerived::MotionPlain operator^ (const MotionDense< MotionDerived > &m1, const MotionTranslationTpl< S2, O2 > &m2)
 
template<typename Matrix3 >
Matrix3 orthogonalProjection (const Eigen::MatrixBase< Matrix3 > &mat)
 Orthogonal projection of a matrix on the SO(3) manifold. More...
 
template<typename MatrixType , typename VectorType >
void orthonormalisation (const Eigen::MatrixBase< MatrixType > &basis, const Eigen::MatrixBase< VectorType > &vec_)
 Perform the Gram-Schmidt orthonormalisation on the input/output vector for a given input basis. More...
 
template<typename Scalar >
const Scalar PI ()
 Returns the value of PI according to the template parameters Scalar. More...
 
typedef PINOCCHIO_ALIGNED_STD_VECTOR (JointData) JointDataVector
 
typedef PINOCCHIO_ALIGNED_STD_VECTOR (JointModel) JointModelVector
 
 PINOCCHIO_DEFINE_COMPARISON_OP (equal_to_op,==)
 
 PINOCCHIO_DEFINE_COMPARISON_OP (greater_than_op, >)
 
 PINOCCHIO_DEFINE_COMPARISON_OP (greater_than_or_equal_to_op, >=)
 
 PINOCCHIO_DEFINE_COMPARISON_OP (less_than_op,<)
 
 PINOCCHIO_DEFINE_COMPARISON_OP (less_than_or_equal_to_op,<=)
 
 PINOCCHIO_DEFINE_COMPARISON_OP (not_equal_to_op, !=)
 
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.
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType1 , typename TangentVectorType2 , class ContactModelAllocator , class ContactDataAllocator >
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & pv (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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ContactModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ContactDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
 The Popov-Vereshchagin algorithm. It computes constrained forward dynamics, aka the joint accelerations and constraint forces given the current state, actuation and the constraints on the system. All the quantities are expressed in the LOCAL coordinate systems of the joint frames. More...
 
template<typename LieGroupCollection , class Config_t >
void random (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< Config_t > &qout)
 
template<typename LieGroupCollection , class ConfigL_t , class ConfigR_t , class ConfigOut_t >
void randomConfiguration (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< ConfigOut_t > &qout)
 
std::string randomStringGenerator (const int len)
 Generate a random string composed of alphanumeric symbols of a given length. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void reachableWorkspace (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q0, const double time_horizon, const int frame_id, Eigen::MatrixXd &vertex, const ReachableSetParams &params=ReachableSetParams())
 Computes the reachable workspace on a fixed time horizon. For more information, please see https://gitlab.inria.fr/auctus-team/people/antunskuric/pycapacity. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void reachableWorkspaceHull (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q0, const double time_horizon, const int frame_id, ReachableSetResults &res, const ReachableSetParams &params=ReachableSetParams())
 Computes the convex Hull reachable workspace on a fixed time horizon. For more information, please see https://gitlab.inria.fr/auctus-team/people/antunskuric/pycapacity. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void reachableWorkspaceWithCollisions (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const GeometryModel &geom_model, const Eigen::MatrixBase< ConfigVectorType > &q0, const double time_horizon, const int frame_id, Eigen::MatrixXd &vertex, const ReachableSetParams &params=ReachableSetParams())
 Computes the reachable workspace with respect to a geometry model on a fixed time horizon. For more information, please see https://gitlab.inria.fr/auctus-team/people/antunskuric/pycapacity. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
void reachableWorkspaceWithCollisionsHull (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const GeometryModel &geom_model, const Eigen::MatrixBase< ConfigVectorType > &q0, const double time_horizon, const int frame_id, ReachableSetResults &res, const ReachableSetParams &params=ReachableSetParams())
 Computes the convex Hull of the reachable workspace with respect to a geometry model on a fixed time horizon. Make sure that reachable workspace takes into account collisions with environment. For more information, please see https://gitlab.inria.fr/auctus-team/people/antunskuric/pycapacity. More...
 
template<typename Matrix3 >
Matrix3 renormalize_rotation_matrix (const Eigen::MatrixBase< Matrix3 > &R)
 
bool replace (std::string &input_str, const std::string &from, const std::string &to)
 Replace string from with to in input_str. More...
 
template<typename VectorLike >
VectorLike::Scalar retrieveLargestEigenvalue (const Eigen::MatrixBase< VectorLike > &eigenvector)
 Compute the lagest eigenvalue of a given matrix. This is taking the eigenvector computed by the function computeLargestEigenvector. 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 URL-format. Currently convert from the following 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...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorPool , typename TangentVectorPool1 , typename TangentVectorPool2 , typename TangentVectorPool3 >
void rneaInParallel (const size_t num_threads, ModelPoolTpl< Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< TangentVectorPool1 > &v, const Eigen::MatrixBase< TangentVectorPool2 > &a, const Eigen::MatrixBase< TangentVectorPool3 > &tau)
 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...
 
PINOCCHIO_PARSERS_DLLAPI std::vector< std::string > rosPaths ()
 Parse the environment variables ROS_PACKAGE_PATH / AMENT_PREFIX_PATH and extract paths. More...
 
template<typename To , typename From >
To scalar_cast (const From &value)
 
void set_default_omp_options (const size_t num_threads=(size_t) omp_get_max_threads())
 
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 >
Scalar sign (const Scalar &t)
 Returns the robust sign of t.
 
template<typename S1 , typename S2 , typename S3 >
void SINCOS (const S1 &a, S2 *sa, S3 *ca)
 Computes sin/cos values of a given input scalar. 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 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 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...
 
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 LieGroupCollection , class ConfigL_t , class ConfigR_t >
ConfigL_t::Scalar squaredDistance (const LieGroupGenericTpl< LieGroupCollection > &lg, const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1)
 
template<typename Scalar , int Options, template< typename S, int O > class JointCollectionTpl>
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > stu_inertia (const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
 Visit a JointDataTpl through JointStUInertiaVisitor to get St*I*S matrix of the inertia matrix decomposition. More...
 
template<typename Derived >
void toCSVfile (const std::string &filename, const Eigen::MatrixBase< Derived > &matrix)
 
template<typename Scalar >
hpp::fcl::Transform3f toFclTransform3f (const SE3Tpl< Scalar > &m)
 
SE3 toPinocchioSE3 (const hpp::fcl::Transform3f &tf)
 
template<typename Vector3 , typename Scalar , typename Matrix3 >
void toRotationMatrix (const Eigen::MatrixBase< Vector3 > &axis, const Scalar &angle, const Eigen::MatrixBase< Matrix3 > &res)
 Computes a rotation matrix from a vector and the angular value orientations values. More...
 
template<typename Vector3 , typename Scalar , typename Matrix3 >
void toRotationMatrix (const Eigen::MatrixBase< Vector3 > &axis, const Scalar &cos_value, const Scalar &sin_value, const Eigen::MatrixBase< Matrix3 > &res)
 Computes a rotation matrix from a vector and values of sin and cos orientations values. More...
 
template<Eigen::UpLoType info, typename LhsMatrix , typename RhsMatrix , typename ResMat >
void triangularMatrixMatrixProduct (const Eigen::MatrixBase< LhsMatrix > &lhs_mat, const Eigen::MatrixBase< RhsMatrix > &rhs_mat, const Eigen::MatrixBase< ResMat > &res)
 Evaluate the product of a triangular matrix times a matrix. Eigen showing a bug at this level, in the case of vector entry. More...
 
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 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 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 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 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>
void updateGeometryPlacements (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const GeometryModel &geom_model, GeometryData &geom_data)
 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, typename ConfigVectorType >
void updateGeometryPlacements (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const GeometryModel &geom_model, GeometryData &geom_data, 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 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...
 
template<typename _Scalar , int _Options>
struct PINOCCHIO_UNSUPPORTED_MESSAGE ("The API will change towards more flexibility") ContactCholeskyDecompositionTpl
 Contact Cholesky decomposition structure. This structure allows to compute in a efficient and parsimonious way the Cholesky decomposition of the KKT matrix related to the contact dynamics. Such a decomposition is usefull when computing both the forward dynamics in contact or the related analytical derivatives. 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 LieGroup_t , 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 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, const AssignmentOperatorType op=SETTO)
 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 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, const AssignmentOperatorType op)
 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 ConfigVectorType , typename TangentVectorType , typename JacobianMatrixType1 , typename JacobianMatrixType2 >
void dIntegrateTransport (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< JacobianMatrixType1 > &Jin, const Eigen::MatrixBase< JacobianMatrixType2 > &Jout, const ArgumentPosition arg)
 Transport a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType , typename JacobianMatrixType1 , typename JacobianMatrixType2 >
void dIntegrateTransport (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< JacobianMatrixType1 > &Jin, const Eigen::MatrixBase< JacobianMatrixType2 > &Jout, const ArgumentPosition arg)
 Transport a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType , typename JacobianMatrixType >
void dIntegrateTransport (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< JacobianMatrixType > &J, const ArgumentPosition arg)
 Transport in place a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType , typename TangentVectorType , typename JacobianMatrixType >
void dIntegrateTransport (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< JacobianMatrixType > &J, const ArgumentPosition arg)
 Transport in place a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVector1 , typename ConfigVector2 , typename JacobianMatrix >
void dDifference (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVector1 > &q0, const Eigen::MatrixBase< ConfigVector2 > &q1, const Eigen::MatrixBase< JacobianMatrix > &J, const ArgumentPosition arg)
 Computes the Jacobian of a small variation of the configuration vector into the tangent space at identity. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVector1 , typename ConfigVector2 , typename JacobianMatrix >
void dDifference (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVector1 > &q0, const Eigen::MatrixBase< ConfigVector2 > &q1, const Eigen::MatrixBase< JacobianMatrix > &J, const ArgumentPosition arg)
 Computes the Jacobian of a small variation of the configuration 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, namely \( || q_{1} \ominus q_{0} ||_2^{2} \). 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, namely \( || q_{1} \ominus q_{0} ||_2 \). 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 ConfigVectorType >
bool isNormalized (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision())
 Check whether a configuration vector is normalized within the given precision provided by prec. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorType >
bool isNormalized (const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision())
 Check whether a configuration vector is normalized within the given precision provided by prec. 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=Eigen::NumTraits< Scalar >::dummy_precision())
 Return true if the given configurations are equivalents, within the given precision. 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, within the given precision. 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...
 

Variables

const int Dynamic = -1
 
PINOCCHIO_COMPILER_DIAGNOSTIC_POP typedef std::size_t Index
 

API that allocates memory

 Options
 
JointCollectionTpl & model
 
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > & lowerLimits
 
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > const Eigen::MatrixBase< ConfigVectorIn2 > & upperLimits
 
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 LieGroup_t , 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 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 configurations. 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 >
 PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS ((typename ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType)) randomConfiguration(const ModelTpl< Scalar
 Generate a configuration vector uniformly sampled among given limits. More...
 
template<typename Scalar , int Options, template< typename, int > class JointCollectionTpl, typename ConfigVectorIn1 , typename ConfigVectorIn2 >
 PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS ((typename ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType)) randomConfiguration(const ModelTpl< Scalar
 Generate a configuration vector uniformly sampled among provided limits. More...
 
template<typename LieGroup_t , typename Scalar , int Options, template< typename, int > class JointCollectionTpl>
 PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS ((typename ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType)) randomConfiguration(const ModelTpl< Scalar
 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>
 PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS ((typename ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType)) randomConfiguration(const ModelTpl< Scalar
 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.

Be carefull to include this header after fwd.hpp. fwd.hpp contains some define to change the boost::variant max size. If we don't include it before, default size is choosed that can make all the build fail.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Definition at line 14 of file fwd.hpp.

◆ ContactType

 

Type of contact

Enumerator
CONTACT_6D 

Point contact model.

CONTACT_UNDEFINED 

 

Frame contact model   The default contact is undefined

Definition at line 19 of file contact-info.hpp.

◆ FrameType

enum FrameType

Enum on the possible types of frames.

Note
In Pinocchio, the FIXED joints are not included in the kinematic tree but we keep track of them via the vector of frames contained in ModelTpl. The JOINT frames are duplicate information with respect to the joint information contained in ModelTpl.

All other frame types are defined for user convenience and code readability, to also keep track of the information usually stored within URDF models.

See also https://wiki.ros.org/urdf/XML/joint, https://wiki.ros.org/urdf/XML/link and https://wiki.ros.org/urdf/XML/sensor.

Enumerator
OP_FRAME 

operational frame: user-defined frames that are defined at runtime

JOINT 

joint frame: attached to the child body of a joint (a.k.a. child frame)

FIXED_JOINT 

fixed joint frame: joint frame but for a fixed joint

BODY 

body frame: attached to the collision, inertial or visual properties of a link

SENSOR 

sensor frame: defined in a sensor element

Definition at line 31 of file frame.hpp.

Function Documentation

◆ aba() [1/2]

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,
const Convention  rf = Convention::LOCAL 
)

The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model 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 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)
[in]conventionConvention to use.
Note
When running in LOCAL convention data.f can be leaved in an inconsistent state.
Returns
The current joint acceleration stored in data.ddq.

◆ aba() [2/2]

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 Convention  convention = Convention::LOCAL 
)

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).
[in]conventionConvention to use.
Note
When running in LOCAL convention data.f can be leaved in an inconsistent state.
Returns
The current joint acceleration stored in data.ddq.

◆ abaInParallel()

void pinocchio::abaInParallel ( const size_t  num_threads,
ModelPoolTpl< Scalar, Options, JointCollectionTpl > &  pool,
const Eigen::MatrixBase< ConfigVectorPool > &  q,
const Eigen::MatrixBase< TangentVectorPool1 > &  v,
const Eigen::MatrixBase< TangentVectorPool2 > &  tau,
const Eigen::MatrixBase< TangentVectorPool3 > &  a 
)

A parallel version of the Articulated Body algorithm. It computes the forward dynamics, aka the joint acceleration according to the current state of the system and the desired joint torque.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorPoolMatrix type of the joint configuration vector.
TangentVectorPool1Matrix type of the joint velocity vector.
TangentVectorPool2Matrix type of the joint torque vector.
TangentVectorPool3Matrix type of the joint acceleration vector.
Parameters
[in]poolPool containing model and data for parallel computations.
[in]num_threadsNumber of threads used for parallel computations.
[in]qThe joint configuration vector (dim model.nq x batch_size).
[in]vThe joint velocity vector (dim model.nv x batch_size).
[in]tauThe joint acceleration vector (dim model.nv x batch_size).
[out]aThe joint torque vector (dim model.nv x batch_size).

Definition at line 41 of file aba.hpp.

◆ addSkew()

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 68 of file skew.hpp.

◆ alphaSkew() [1/2]

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 166 of file skew.hpp.

◆ alphaSkew() [2/2]

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 134 of file skew.hpp.

◆ appendGeometryModel()

void pinocchio::appendGeometryModel ( GeometryModel geom_model1,
const GeometryModel geom_model2 
)
inline

Append geom_model2 to geom_model1

The steps for appending are:

  • add GeometryObject of geom_model2 to geom_model1,
  • add the collision pairs of geom_model2 into geom_model1 (indexes are updated)
  • add all the collision pairs between geometry objects of geom_model1 and geom_model2. 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]geom_model1geometry model where the data is added
[in]geom_model2geometry model from which new geometries are taken
Note
Of course, the geom_data corresponding to geom_model1 will not be valid anymore, and should be updated (or more simply, re-created from the new setting of geom_model1).
Todo:
This function is not asserted in unittest.

◆ appendModel() [1/3]

ModelTpl<Scalar, Options, JointCollectionTpl> pinocchio::appendModel ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelA,
const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelB,
const FrameIndex  frameInModelA,
const SE3Tpl< Scalar, Options > &  aMb 
)

Append a child model into a parent model, after a specific frame given by its index.

Parameters
[in]modelAthe parent model.
[in]modelBthe child model.
[in]frameInModelAindex of the frame of modelA where to append modelB.
[in]aMbpose of modelB universe joint (index 0) in frameInModelA.
Returns
A new model containing the fusion of modelA and modelB.

The order of the joints in the output models are

  • joints of modelA up to the parent of FrameInModelA,
  • all the descendents of parent of FrameInModelA,
  • the remaining joints of modelA.

Definition at line 51 of file model.hpp.

◆ appendModel() [2/3]

void pinocchio::appendModel ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelA,
const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelB,
const FrameIndex  frameInModelA,
const SE3Tpl< Scalar, Options > &  aMb,
ModelTpl< Scalar, Options, JointCollectionTpl > &  model 
)

Append a child model into a parent model, after a specific frame given by its index.

Parameters
[in]modelAthe parent model.
[in]modelBthe child 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.

The order of the joints in the output models are

  • joints of modelA up to the parent of FrameInModelA,
  • all the descendents of parent of FrameInModelA,
  • the remaining joints of modelA.

◆ appendModel() [3/3]

void pinocchio::appendModel ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelA,
const ModelTpl< Scalar, Options, JointCollectionTpl > &  modelB,
const GeometryModel geomModelA,
const GeometryModel geomModelB,
const 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 given by its index.

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.
[out]geomModelthe resulting geometry model.

◆ appendSuffixToPaths()

PINOCCHIO_PARSERS_DLLAPI void pinocchio::appendSuffixToPaths ( std::vector< std::string > &  list_of_paths,
const std::string &  suffix 
)

For a given vector of paths, add a suffix inplace to each path and return the vector inplace.

Parameters
[in,out]list_of_pathsThe vector of path names.
[in]suffixSuffix to be added to each element of the path names.

◆ axisLabel()

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.

◆ bias()

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

◆ bodyRegressor() [1/2]

Eigen::Matrix< typename MotionVelocity::Scalar, 6, 10, typename MotionVelocity::Vector3 ::Options> pinocchio::bodyRegressor ( const MotionDense< MotionVelocity > &  v,
const MotionDense< MotionAcceleration > &  a 
)
inline

Computes the regressor for the dynamic parameters of a single rigid body.

The result is such that \( I a + v \times I v = bodyRegressor(v,a) * I.toDynamicParameters() \)

Parameters
[in]vVelocity of the rigid body
[in]aAcceleration of the rigid body
Returns
The regressor of the body.

◆ bodyRegressor() [2/2]

void pinocchio::bodyRegressor ( const MotionDense< MotionVelocity > &  v,
const MotionDense< MotionAcceleration > &  a,
const Eigen::MatrixBase< OutputType > &  regressor 
)
inline

Computes the regressor for the dynamic parameters of a single rigid body.

The result is such that \( I a + v \times I v = bodyRegressor(v,a) * I.toDynamicParameters() \)

Parameters
[in]vVelocity of the rigid body
[in]aAcceleration of the rigid body
[out]regressorThe resulting regressor of the body.

◆ buildReducedModel() [1/4]

void pinocchio::buildReducedModel ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const GeometryModel geom_model,
const std::vector< JointIndex > &  list_of_joints_to_lock,
const Eigen::MatrixBase< ConfigVectorType > &  reference_configuration,
ModelTpl< Scalar, Options, JointCollectionTpl > &  reduced_model,
GeometryModel reduced_geom_model 
)

Build a reduced model and a rededuced geometry model from a given input model, a given input geometry model and a list of joint to lock.

Parameters
[in]modelthe input model to reduce.
[in]geom_modelthe input geometry model to reduce.
[in]list_of_joints_to_locklist of joints to lock in the input model.
[in]reference_configurationreference configuration.
[out]reduced_modelthe reduced model.
[out]reduced_geom_modelthe reduced geometry model.
Remarks
All the joints that have been set to be fixed in the new reduced_model now appear in the kinematic tree as a Frame as FIXED_JOINT.

◆ buildReducedModel() [2/4]

void pinocchio::buildReducedModel ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const std::vector< GeometryModel, GeometryModelAllocator > &  list_of_geom_models,
const std::vector< JointIndex > &  list_of_joints_to_lock,
const Eigen::MatrixBase< ConfigVectorType > &  reference_configuration,
ModelTpl< Scalar, Options, JointCollectionTpl > &  reduced_model,
std::vector< GeometryModel, GeometryModelAllocator > &  list_of_reduced_geom_models 
)

Build a reduced model and a rededuced geometry model from a given input model, a given input geometry model and a list of joint to lock.

Parameters
[in]modelthe input model to reduce.
[in]list_of_geom_modelsthe input geometry model to reduce (example: visual_model, collision_model).
[in]list_of_joints_to_locklist of joints to lock in the input model.
[in]reference_configurationreference configuration.
[out]reduced_modelthe reduced model.
[out]list_of_reduced_geom_modelthe list of reduced geometry models.
Remarks
All the joints that have been set to be fixed in the new reduced_model now appear in the kinematic tree as a Frame as FIXED_JOINT.

◆ buildReducedModel() [3/4]

ModelTpl<Scalar, Options, JointCollectionTpl> pinocchio::buildReducedModel ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const std::vector< JointIndex > &  list_of_joints_to_lock,
const Eigen::MatrixBase< ConfigVectorType > &  reference_configuration 
)

Build a reduced model from a given input model and a list of joint to lock.

Parameters
[in]modelthe input model to reduce.
[in]list_of_joints_to_locklist of joints to lock in the input model.
[in]reference_configurationreference configuration.
Returns
A reduce model of the input model.
Remarks
All the joints that have been set to be fixed in the new reduced_model now appear in the kinematic tree as a Frame as FIXED_JOINT.

Definition at line 136 of file model.hpp.

◆ buildReducedModel() [4/4]

void pinocchio::buildReducedModel ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
std::vector< JointIndex >  list_of_joints_to_lock,
const Eigen::MatrixBase< ConfigVectorType > &  reference_configuration,
ModelTpl< Scalar, Options, JointCollectionTpl > &  reduced_model 
)

Build a reduced model from a given input model and a list of joint to lock.

Parameters
[in]modelthe input model to reduce.
[in]list_of_joints_to_locklist of joints to lock in the input model.
[in]reference_configurationreference configuration.
[out]reduced_modelthe reduced model.
Remarks
All the joints that have been set to be fixed in the new reduced_model now appear in the kinematic tree as a Frame as FIXED_JOINT.
Todo:
At the moment, the joint and geometry order is kept while the frames are re-ordered in a hard to predict way. Their order could be kept.

◆ calc_aba()

void pinocchio::calc_aba ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel,
JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata,
const Eigen::MatrixBase< VectorLike > &  armature,
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]armatureArmature related to the current joint.
[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

◆ calc_first_order() [1/2]

void pinocchio::calc_first_order ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel,
JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata,
const Blank  blank,
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.
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]vThe full model's (in which the joint belongs to) velocity vector

◆ calc_first_order() [2/2]

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
[in]vThe full model's (in which the joint belongs to) velocity vector

◆ calc_zero_order()

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

◆ cast_joint()

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,...>.

◆ ccrba()

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 
)

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.
Remarks
As another output, this algorithm also computes the Joint Jacobian matrix (accessible via data.J).

◆ centerOfMass() [1/5]

const DataTpl<Scalar, Options, JointCollectionTpl>::Vector3& pinocchio::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).

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, expressed in the local coordinate frame of each joint.

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

◆ centerOfMass() [2/5]

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 
)

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.

◆ centerOfMass() [3/5]

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 
)

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.

◆ centerOfMass() [4/5]

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 
)

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.

◆ centerOfMass() [5/5]

const DataTpl<Scalar, Options, JointCollectionTpl>::Vector3& pinocchio::centerOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
KinematicLevel  kinematic_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 kinematic_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]kinematic_levelif = POSITION, computes the CoM position, if = VELOCITY, also computes the CoM velocity and if = ACCELERATION, it also computes the CoM acceleration.
[in]computeSubtreeComsIf true, the algorithm computes also the center of mass of the subtrees.

◆ changeReferenceFrame() [1/2]

void pinocchio::changeReferenceFrame ( const SE3Tpl< Scalar, Options > &  placement,
const ForceDense< ForceIn > &  f_in,
const ReferenceFrame  rf_in,
const ReferenceFrame  rf_out,
ForceDense< ForceOut > &  f_out 
)

[out] f_out Resulting force quantity.

Definition at line 19 of file force.hpp.

◆ changeReferenceFrame() [2/2]

void pinocchio::changeReferenceFrame ( const SE3Tpl< Scalar, Options > &  placement,
const MotionDense< MotionIn > &  m_in,
const ReferenceFrame  rf_in,
const ReferenceFrame  rf_out,
MotionDense< MotionOut > &  m_out 
)

[out] m_out Resulting motion quantity.

Definition at line 20 of file motion.hpp.

◆ checkData()

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.

◆ checkModelFileExtension()

ModelFileExtensionType pinocchio::checkModelFileExtension ( const std::string &  filename)
inline

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

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

Definition at line 39 of file utils.hpp.

◆ checkVersionAtLeast()

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 40 of file version.hpp.

◆ classicAcceleration() [1/4]

Motion2::Vector3 pinocchio::classicAcceleration ( const MotionDense< Motion1 > &  spatial_velocity,
const MotionDense< Motion2 > &  spatial_acceleration 
)
inline

Computes the classic acceleration from a given spatial velocity and spatial acceleration.

 

Template Parameters
Motion1type of the input spatial velocity.
Motion2type of the input spatial acceleration.
Parameters
[in]spatial_velocityinput spatial velocity.
[in]spatial_accelerationinput spatial acceleration.
Remarks
To be valid, the spatial velocity and the spatial acceleration have to be expressed at the same Frame.

Definition at line 52 of file classic-acceleration.hpp.

◆ classicAcceleration() [2/4]

void pinocchio::classicAcceleration ( const MotionDense< Motion1 > &  spatial_velocity,
const MotionDense< Motion2 > &  spatial_acceleration,
const Eigen::MatrixBase< Vector3Like > &  res 
)
inline

Computes the classic acceleration from a given spatial velocity and spatial acceleration.

 

Template Parameters
Motion1type of the input spatial velocity.
Motion2type of the input spatial acceleration.
Vector3Liketype of the return type (a type similar to a 3D vector).
Parameters
[in]spatial_velocityinput spatial velocity.
[in]spatial_accelerationinput spatial acceleration.
[out]rescomputed classic acceleration.
Remarks
To be valid, the spatial velocity and the spatial acceleration have to be expressed at the same Frame.

Definition at line 29 of file classic-acceleration.hpp.

◆ classicAcceleration() [3/4]

Motion2::Vector3 pinocchio::classicAcceleration ( const MotionDense< Motion1 > &  spatial_velocity,
const MotionDense< Motion2 > &  spatial_acceleration,
const SE3Tpl< SE3Scalar, SE3Options > &  placement 
)
inline

Computes the classic acceleration of a given frame B knowing the spatial velocity and spatial acceleration of a frame A and the relative placement between these two frames.

 

Template Parameters
Motion1type of the input spatial velocity.
Motion2type of the input spatial acceleration.
SE3ScalarScalar type of the SE3 object.
SE3OptionsOptions of the SE3 object.
Parameters
[in]spatial_velocityinput spatial velocity.
[in]spatial_accelerationinput spatial acceleration.
[in]placementrelative placement betwen the frame A and the frame B.

Definition at line 118 of file classic-acceleration.hpp.

◆ classicAcceleration() [4/4]

void pinocchio::classicAcceleration ( const MotionDense< Motion1 > &  spatial_velocity,
const MotionDense< Motion2 > &  spatial_acceleration,
const SE3Tpl< SE3Scalar, SE3Options > &  placement,
const Eigen::MatrixBase< Vector3Like > &  res 
)
inline

Computes the classic acceleration of a given frame B knowing the spatial velocity and spatial acceleration of a frame A and the relative placement between these two frames.

 

Template Parameters
Motion1type of the input spatial velocity.
Motion2type of the input spatial acceleration.
SE3ScalarScalar type of the SE3 object.
SE3OptionsOptions of the SE3 object.
Vector3Liketype of the return type (a type similar to a 3D vector).
Parameters
[in]spatial_velocityinput spatial velocity.
[in]spatial_accelerationinput spatial acceleration.
[in]placementrelative placement betwen the frame A and the frame B.
[out]rescomputed classic acceleration.

Definition at line 84 of file classic-acceleration.hpp.

◆ computeABADerivatives() [1/8]

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

The derivatives of the Articulated-Body algorithm. This function exploits the internal computations made in pinocchio::aba to significantly reduced the computation burden.

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.
See also
pinocchio::aba

◆ computeABADerivatives() [2/8]

void pinocchio::computeABADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const container::aligned_vector< ForceTpl< Scalar, Options >> &  fext 
)

The derivatives of the Articulated-Body algorithm with external forces. This function exploits the internal computations made in pinocchio::aba to significantly reduced the computation burden.

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]fextExternal forces expressed in the local frame of the joints (dim model.njoints).
Note
aba_partial_dtau is in fact nothing more than the inverse of the joint space inertia matrix.
See also
pinocchio::aba

◆ computeABADerivatives() [3/8]

void pinocchio::computeABADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
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. This function exploits the internal computations made in pinocchio::aba to significantly reduced the computation burden.

Template Parameters
JointCollectionCollection of Joint types.
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]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

◆ computeABADerivatives() [4/8]

std::enable_if< ConfigVectorType::IsVectorAtCompileTime || TangentVectorType1::IsVectorAtCompileTime || TangentVectorType2::IsVectorAtCompileTime, void>::type 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 
)

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.

◆ computeABADerivatives() [5/8]

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 
)

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.

◆ computeABADerivatives() [6/8]

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 
)

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

◆ computeABADerivatives() [7/8]

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 
)

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

◆ computeABADerivatives() [8/8]

std::enable_if< !(MatrixType1::IsVectorAtCompileTime || MatrixType2::IsVectorAtCompileTime || MatrixType3::IsVectorAtCompileTime), void>::type pinocchio::computeABADerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
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. This function exploits the internal computations made in pinocchio::aba to significantly reduced the computation burden.

Template Parameters
JointCollectionCollection of Joint types.
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.
[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

◆ computeAllTerms()

void pinocchio::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:

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.

◆ computeBodyRadius()

void pinocchio::computeBodyRadius ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const GeometryModel geom_model,
GeometryData geom_data 
)

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

Parameters
[in]modelKinematic model of the system
[in]geom_modelGeometry model of the system
[out]geom_dataGeometry data of the system
See also
GeometryData::radius

◆ computeCentroidalDynamicsDerivatives()

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 
)

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.

◆ computeCentroidalMap()

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

Computes the Centroidal Momentum Matrix.

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 Centroidal Momentum Matrix Ag.
Remarks
As another output, this algorithm also computes the Joint Jacobian matrix (accessible via data.J).

◆ computeCentroidalMapTimeVariation()

const DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x& pinocchio::computeCentroidalMapTimeVariation ( 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 time derivative.

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 time derivative dAg (accessible via data.dAg).
Remarks
As another output, this algorithm also computes the Centroidal Momentum Matrix Ag (accessible via data.Ag), the Joint Jacobian matrix (accessible via data.J) and the time derivatibe of the Joint Jacobian matrix (accessible via data.dJ).

◆ computeCentroidalMomentum() [1/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::Force& pinocchio::computeCentroidalMomentum ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)

Computes the Centroidal momentum, 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.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Returns
The centroidal momenta (stored in data.hg), center of mass (stored in data.com[0]) and velocity of center of mass (stored in data.vcom[0])

◆ computeCentroidalMomentum() [2/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::Force& pinocchio::computeCentroidalMomentum ( 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, 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), center of mass (stored in data.com[0]) and velocity of center of mass (stored in data.vcom[0])

◆ computeCentroidalMomentumTimeVariation() [1/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::Force& pinocchio::computeCentroidalMomentumTimeVariation ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)

Computes the Centroidal momemtum 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.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
Returns
The centroidal momenta time derivative (stored in data.dhg), centroidal momemta (stored in data.hg), center of mass (stored in data.com[0]) and velocity of center of mass (stored in data.vcom[0])

◆ computeCentroidalMomentumTimeVariation() [2/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::Force& pinocchio::computeCentroidalMomentumTimeVariation ( 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 momemtum 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), centroidal momemta (stored in data.hg), center of mass (stored in data.com[0]) and velocity of center of mass (stored in data.vcom[0])

◆ computeCollision() [1/2]

bool pinocchio::computeCollision ( const GeometryModel geom_model,
GeometryData geom_data,
const PairIndex  pair_id 
)

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]pair_idThe collsion pair index in the GeometryModel.
Returns
Return true is the collision objects are colliding.
Note
The complete collision result is also available in geom_data.collisionResults[pair_id]

◆ computeCollision() [2/2]

bool pinocchio::computeCollision ( const GeometryModel geom_model,
GeometryData geom_data,
const PairIndex  pair_id,
fcl::CollisionRequest &  collision_request 
)

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]pair_idThe collsion pair index in the GeometryModel.
[in]collision_requestThe collision request associated to the collision pair.
Returns
Return true is the collision objects are colliding.
Note
The complete collision result is also available in geom_data.collisionResults[pair_id]

◆ computeCollisions() [1/6]

bool pinocchio::computeCollisions ( BroadPhaseManagerBase< BroadPhaseManagerDerived > &  broadphase_manager,
CollisionCallBackBase callback 
)

Calls computeCollision for every active pairs of GeometryData. This function assumes that updateGeometryPlacements and broadphase_manager.update() have been called first.

Parameters
[in]broadphase_managerbroadphase instance for collision detection.
[in]callbackcallback pointer used for collision detection.
[in]stopAtFirstCollisionif true, stop the loop over the collision pairs when the first collision is detected.
Warning
if stopAtFirstcollision = true, then the collisions vector will not be entirely fulfilled (of course).

Definition at line 34 of file broadphase.hpp.

◆ computeCollisions() [2/6]

bool pinocchio::computeCollisions ( BroadPhaseManagerBase< BroadPhaseManagerDerived > &  broadphase_manager,
const bool  stopAtFirstCollision = false 
)

Calls computeCollision for every active pairs of GeometryData. This function assumes that updateGeometryPlacements and broadphase_manager.update() have been called first.

Parameters
[in]broadphase_managerbroadphase instance for collision detection.
[in]stopAtFirstCollisionif true, stop the loop over the collision pairs when the first collision is detected.
Warning
if stopAtFirstcollision = true, then the collisions vector will not be entirely fulfilled (of course).

Definition at line 57 of file broadphase.hpp.

◆ computeCollisions() [3/6]

bool pinocchio::computeCollisions ( const GeometryModel geom_model,
GeometryData geom_data,
const bool  stopAtFirstCollision = false 
)

Calls computeCollision for every active pairs of GeometryData. This function assumes that updateGeometryPlacements has been called first.

Parameters
[in]geom_modelgeometry model (const)
[out]geom_datacorresponding geometry data (nonconst) where collisions are computed
[in]stopAtFirstCollisionif true, stop the loop over the collision pairs when the first collision is detected.
Warning
if stopAtFirstcollision = true, then the collisions vector will not be entirely fulfilled (of course).

◆ computeCollisions() [4/6]

bool pinocchio::computeCollisions ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
BroadPhaseManagerBase< BroadPhaseManagerDerived > &  broadphase_manager,
CollisionCallBackBase callback,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
inline

Compute the forward kinematics, update the geometry placements and run the collision detection using the broadphase manager.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelrobot model (const)
[out]datacorresponding data (nonconst) where the forward kinematics results are stored
[in]broadphase_managerbroadphase manager for collision detection.
[in]callbackcallback pointer used for collision detection.///
[in]qrobot configuration.
[in]stopAtFirstCollisionif true, stop the loop over the collision pairs when the first collision is detected.
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 forward kinematics.

Definition at line 95 of file broadphase.hpp.

◆ computeCollisions() [5/6]

bool pinocchio::computeCollisions ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
BroadPhaseManagerBase< BroadPhaseManagerDerived > &  broadphase_manager,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const bool  stopAtFirstCollision = false 
)
inline

Compute the forward kinematics, update the geometry placements and run the collision detection using the broadphase manager.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelrobot model (const)
[out]datacorresponding data (nonconst) where the forward kinematics results are stored
[in]broadphase_managerbroadphase manager for collision detection.
[in]qrobot configuration.
[in]stopAtFirstCollisionif true, stop the loop over the collision pairs when the first collision is detected.
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 forward kinematics.

Definition at line 135 of file broadphase.hpp.

◆ computeCollisions() [6/6]

bool pinocchio::computeCollisions ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geom_model,
GeometryData geom_data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const bool  stopAtFirstCollision = false 
)

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 the forward kinematics results are stored
[in]geom_modelgeometry model (const)
[out]geom_datacorresponding geometry data (nonconst) where distances are computed
[in]qrobot configuration.
[in]stopAtFirstCollisionif true, stop the loop over the collision pairs when the first collision is detected.
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 forward kinematics.

◆ computeContactImpulses()

const DataTpl<Scalar, Options, JointCollectionTpl>:: TangentVectorType& pinocchio::computeContactImpulses ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< VectorLikeC > &  c_ref,
const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &  contact_models,
std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &  contact_datas,
const std::vector< CoulombFrictionConeTpl< Scalar >, CoulombFrictionConelAllocator > &  cones,
const Eigen::MatrixBase< VectorLikeR > &  R,
const Eigen::MatrixBase< VectorLikeGamma > &  constraint_correction,
ProximalSettingsTpl< Scalar > &  settings,
const boost::optional< VectorLikeImp > &  impulse_guess = boost::none 
)

Compute the contact impulses given a target velocity of contact points.

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]c_refThe contact point velocity
[in]contact_modelsThe list of contact models.
[in]contact_datasThe list of contact_datas.
[in]coneslist of friction cones.
[in]Rvector representing the diagonal of the compliance matrix.
[in]constraint_correctionvector representing the constraint correction.
[in]settingsThe settings for the proximal algorithm.
[in]impulse_guessinitial guess for the contact impulses.
Returns
The desired joint torques stored in data.tau.

Definition at line 57 of file contact-inverse-dynamics.hpp.

◆ computeCoriolisMatrix()

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 
)

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.

◆ computeDampedDelassusMatrixInverse()

void pinocchio::computeDampedDelassusMatrixInverse ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const std::vector< RigidConstraintModelTpl< Scalar, Options >, ModelAllocator > &  contact_models,
std::vector< RigidConstraintDataTpl< Scalar, Options >, DataAllocator > &  contact_data,
const Eigen::MatrixBase< MatrixType > &  damped_delassus_inverse,
const Scalar  mu,
const bool  scaled = false,
const bool  Pv = true 
)

Computes the inverse of the Delassus matrix associated to a set of given constraints.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
ModelAllocatorAllocator class for the std::vector.
DataAllocatorAllocator class for the std::vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (size model.nq).
[in]contact_modelsVector of contact models.
[in]contact_datasVector of contact data.
[out]damped_delassus_inverseThe resulting damped Delassus matrix.
[in]muDamping factor well-posdnessed of the problem.
[in]scaledIf set to true, the solution is scaled my a factor \( \mu \) to avoid numerical rounding issues.
[in]PvIf set to true, uses PV-OSIMr, otherwise uses EFPA.
Note
A hint: a typical value for mu is 1e-4 when two contact constraints or more are redundant.
Returns
The damped inverse Delassus matrix.

◆ computeDelassusMatrix()

void pinocchio::computeDelassusMatrix ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const std::vector< RigidConstraintModelTpl< Scalar, Options >, ModelAllocator > &  contact_models,
std::vector< RigidConstraintDataTpl< Scalar, Options >, DataAllocator > &  contact_data,
const Eigen::MatrixBase< MatrixType > &  delassus,
const Scalar  mu = 0 
)

Computes the Delassus matrix associated to a set of given constraints.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
ModelAllocatorAllocator class for the std::vector.
DataAllocatorAllocator class for the std::vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (size model.nq).
[in]contact_modelsVector of contact models.
[in]contact_datasVector of contact data.
[out]delassusThe resulting Delassus matrix.
[in]muOptional damping factor used when computing the inverse of the Delassus matrix.
Returns
The (damped) Delassus matrix.

◆ computeDistance()

fcl::DistanceResult& pinocchio::computeDistance ( const GeometryModel geom_model,
GeometryData geom_data,
const PairIndex  pair_id 
)

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]pair_idThe index of the collision pair in geom model.
Returns
A reference on fcl struct containing the distance result, referring an element of vector geom_data::distanceResults.
Note
The complete distance result is also available in geom_data.distanceResults[pair_id]

◆ computeDistances() [1/3]

std::size_t pinocchio::computeDistances ( const GeometryModel geom_model,
GeometryData geom_data 
)

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

Parameters
[in]GeomModelthe geometry model (const)
[out]GeomDatathe corresponding geometry data, where computations are done.
Returns
Index of the minimal pair distance in geom_data.DistanceResult
Note
The complete distance result is available by pair in geom_data.distanceResults

◆ computeDistances() [2/3]

std::size_t pinocchio::computeDistances ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geom_model,
GeometryData geom_data 
)

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]geom_modelgeometry model (const)
[out]geom_datacorresponding geometry data (nonconst) where distances are computed
Note
A similar function is available without model, data and q, not recomputing the FK.

◆ computeDistances() [3/3]

std::size_t pinocchio::computeDistances ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geom_model,
GeometryData geom_data,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)

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]geom_modelgeometry model (const)
[out]geom_datacorresponding 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.

◆ computeForwardKinematicsDerivatives()

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 
)

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).

◆ computeFrameJacobian() [1/2]

void pinocchio::computeFrameJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const FrameIndex  frameId,
const Eigen::MatrixBase< Matrix6xLike > &  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.

Definition at line 481 of file frames.hpp.

◆ computeFrameJacobian() [2/2]

void pinocchio::computeFrameJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const FrameIndex  frameId,
const ReferenceFrame  reference_frame,
const Eigen::MatrixBase< Matrix6xLike > &  J 
)
inline

Computes the Jacobian of a specific Frame expressed in the desired reference_frame given as argument.

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].
[in]reference_frameReference frame in which the Jacobian is expressed.
[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 desired reference frame (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,rf,J), but forwardKinematics and updateFramePlacements are not fully computed.

◆ computeFrameKinematicRegressor() [1/2]

DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x pinocchio::computeFrameKinematicRegressor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const FrameIndex  frame_id,
const ReferenceFrame  rf 
)

Computes the kinematic regressor that links the joint placement variations of the whole kinematic tree to the placement variation of the frame given as input.

Remarks
It assumes that the framesForwardKinematics(const ModelTpl<Scalar,Options,JointCollectionTpl> &, DataTpl<Scalar,Options,JointCollectionTpl> &, const Eigen::MatrixBase<ConfigVectorType> &) has been called first.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]frame_idIndex of the frame.
[in]rfReference frame in which the result is expressed (LOCAL, LOCAL_WORLD_ALIGNED or WORLD).

Definition at line 154 of file regressor.hpp.

◆ computeFrameKinematicRegressor() [2/2]

void pinocchio::computeFrameKinematicRegressor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const FrameIndex  frame_id,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xReturnType > &  kinematic_regressor 
)

Remarks
It assumes that the framesForwardKinematics(const ModelTpl<Scalar,Options,JointCollectionTpl> &, DataTpl<Scalar,Options,JointCollectionTpl> &, const Eigen::MatrixBase<ConfigVectorType> &) has been called first.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]frame_idIndex of the frame.
[in]rfReference frame in which the result is expressed (LOCAL, LOCAL_WORLD_ALIGNED or WORLD).
[out]kinematic_regressorThe kinematic regressor containing the result. Matrix of size 6*(model.njoints-1) initialized to 0.

◆ computeGeneralizedGravity()

const DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType& pinocchio::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} \)


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 generalized gravity torque stored in data.g.

◆ computeGeneralizedGravityDerivatives()

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 
)

Computes the partial 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

◆ computeJointJacobian()

void pinocchio::computeJointJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const JointIndex  joint_id,
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.

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]joint_idThe 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.

◆ computeJointJacobians() [1/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x& pinocchio::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.

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).

◆ computeJointJacobians() [2/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x& pinocchio::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.

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).

◆ computeJointJacobiansTimeVariation()

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 
)

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).

◆ computeJointKinematicHessians() [1/2]

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

Computes all the terms required to compute the second order derivatives of the placement information, also know as the kinematic Hessian. This function assumes that the joint Jacobians (a.k.a data.J) has been computed first. See computeJointJacobians for such a function.

Template Parameters
ScalarScalar type of the kinematic model.
OptionsAlignement options of the kinematic model.
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 function is also related to
See also
getJointKinematicHessian.

◆ computeJointKinematicHessians() [2/2]

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

Computes all the terms required to compute the second order derivatives of the placement information, also know as the kinematic Hessian.

Template Parameters
ScalarScalar type of the kinematic model.
OptionsAlignement options of the kinematic model.
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).
Remarks
This function is also related to
See also
getJointKinematicHessian.

Definition at line 352 of file kinematics-derivatives.hpp.

◆ computeJointKinematicRegressor() [1/4]

DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x pinocchio::computeJointKinematicRegressor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const ReferenceFrame  rf 
)

Computes the kinematic regressor that links the joint placement variations of the whole kinematic tree to the placement variation of the joint given as input.

Remarks
It assumes that the forwardKinematics(const ModelTpl<Scalar,Options,JointCollectionTpl> &, DataTpl<Scalar,Options,JointCollectionTpl> &, const Eigen::MatrixBase<ConfigVectorType> &) has been called first.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]joint_idIndex of the joint.
[in]rfReference frame in which the result is expressed (LOCAL, LOCAL_WORLD_ALIGNED or WORLD).

Definition at line 104 of file regressor.hpp.

◆ computeJointKinematicRegressor() [2/4]

void pinocchio::computeJointKinematicRegressor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xReturnType > &  kinematic_regressor 
)

Remarks
It assumes that the forwardKinematics(const ModelTpl<Scalar,Options,JointCollectionTpl> &, DataTpl<Scalar,Options,JointCollectionTpl> &, const Eigen::MatrixBase<ConfigVectorType> &) has been called first.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]joint_idIndex of the joint.
[in]rfReference frame in which the result is expressed (LOCAL, LOCAL_WORLD_ALIGNED or WORLD).
[out]kinematic_regressorThe kinematic regressor containing the result. Matrix of size 6*(model.njoints-1) initialized to 0.

◆ computeJointKinematicRegressor() [3/4]

DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x pinocchio::computeJointKinematicRegressor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const ReferenceFrame  rf,
const SE3Tpl< Scalar, Options > &  placement 
)

Computes the kinematic regressor that links the joint placements variations of the whole kinematic tree to the placement variation of the frame rigidly attached to the joint and given by its placement w.r.t. to the joint frame.

Remarks
It assumes that the forwardKinematics(const ModelTpl<Scalar,Options,JointCollectionTpl> &, DataTpl<Scalar,Options,JointCollectionTpl> &, const Eigen::MatrixBase<ConfigVectorType> &) has been called first.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]joint_idIndex of the joint.
[in]rfReference frame in which the result is expressed (LOCAL, LOCAL_WORLD_ALIGNED or WORLD).
[in]placementRelative placement to the joint frame.

Definition at line 53 of file regressor.hpp.

◆ computeJointKinematicRegressor() [4/4]

void pinocchio::computeJointKinematicRegressor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const ReferenceFrame  rf,
const SE3Tpl< Scalar, Options > &  placement,
const Eigen::MatrixBase< Matrix6xReturnType > &  kinematic_regressor 
)

Remarks
It assumes that the forwardKinematics(const ModelTpl<Scalar,Options,JointCollectionTpl> &, DataTpl<Scalar,Options,JointCollectionTpl> &, const Eigen::MatrixBase<ConfigVectorType> &) has been called first.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]joint_idIndex of the joint.
[in]rfReference frame in which the result is expressed (LOCAL, LOCAL_WORLD_ALIGNED or WORLD).
[in]placementRelative placement to the joint frame.
[out]kinematic_regressorThe kinematic regressor containing the result. Matrix of size 6*(model.njoints-1) initialized to 0.

◆ computeJointTorqueRegressor()

DataTpl<Scalar, Options, JointCollectionTpl>::MatrixXs& pinocchio::computeJointTorqueRegressor ( 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 joint torque regressor that links the joint torque to the dynamic parameters of each link according to the current the robot motion.

The result is stored in data.jointTorqueRegressor and it corresponds to a matrix \( Y \) such that \( \tau = Y(q,\dot{q},\ddot{q})\pi \) where \( \pi = (\pi_1^T\ \dots\ \pi_n^T)^T \) and \( \pi_i = \text{model.inertias[i].toDynamicParameters()} \)

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 joint torque regressor of the system.
Warning
This function writes temporary information in data.bodyRegressor. This means if you have valuable data in it it will be overwritten.

◆ computeKineticEnergy() [1/2]

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

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

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 kinetic energy of the system in [J].

◆ computeKineticEnergy() [2/2]

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

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].

◆ computeKKTContactDynamicMatrixInverse()

void pinocchio::computeKKTContactDynamicMatrixInverse ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< ConstraintMatrixType > &  J,
const Eigen::MatrixBase< KKTMatrixType > &  KKTMatrix_inv,
const Scalar &  inv_damping = 0. 
)

Computes the inverse of the KKT matrix for dynamics with contact constraints. It computes the following matrix:

\( \left[\begin{matrix}\mathbf{M}^{-1}-\mathbf{M}^{-1}\mathbf{J}^{\top}_c\widehat{\mathbf{M}}^{-1}\mathbf{J}_c\mathbf{M}^{-1} & \mathbf{M}^{-1}\mathbf{J}^{\top}_c\widehat{\mathbf{M}}^{-1} \\ \widehat{\mathbf{M}}^{-1}\mathbf{J}_c\mathbf{M}^{-1} & -\widehat{\mathbf{M}}^{-1}\end{matrix}\right] \)


Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]JJacobian of the constraints.
[out]KKTMatrix_invinverse of the MJtJ matrix.
[in]inv_dampingregularization coefficient.

◆ computeLargestEigenvector() [1/2]

void pinocchio::computeLargestEigenvector ( const MatrixLike &  mat,
const Eigen::PlainObjectBase< VectorLike > &  _eigenvector_est,
const int  max_it = 10,
const typename MatrixLike::Scalar  rel_tol = 1e-8 
)

Compute the lagest eigenvector of a given matrix according to a given eigenvector estimate.

 

Definition at line 138 of file eigenvalues.hpp.

◆ computeLargestEigenvector() [2/2]

Eigen::Matrix<typename MatrixLike::Scalar, MatrixLike::RowsAtCompileTime, 1> pinocchio::computeLargestEigenvector ( const MatrixLike &  mat,
const int  max_it = 10,
const typename MatrixLike::Scalar  rel_tol = 1e-8 
)

Compute the lagest eigenvector of a given matrix.

 

Definition at line 154 of file eigenvalues.hpp.

◆ computeLowestEigenvector() [1/2]

Eigen::Matrix<typename MatrixLike::Scalar, MatrixLike::RowsAtCompileTime, 1> pinocchio::computeLowestEigenvector ( const MatrixLike &  mat,
const bool  compute_largest = true,
const int  max_it = 10,
const typename MatrixLike::Scalar  rel_tol = 1e-8 
)

Compute the lagest eigenvector of a given matrix.

 

Definition at line 188 of file eigenvalues.hpp.

◆ computeLowestEigenvector() [2/2]

void pinocchio::computeLowestEigenvector ( const MatrixLike &  mat,
const Eigen::PlainObjectBase< VectorLike1 > &  largest_eigenvector_est,
const Eigen::PlainObjectBase< VectorLike2 > &  lowest_eigenvector_est,
const bool  compute_largest = true,
const int  max_it = 10,
const typename MatrixLike::Scalar  rel_tol = 1e-8 
)

Compute the lagest eigenvector of a given matrix according to a given eigenvector estimate.

 

Definition at line 168 of file eigenvalues.hpp.

◆ computeMechanicalEnergy() [1/2]

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

Computes the mechanical energy of the system stored in data.mechanical_energy. The result is accessible through data.kinetic_energy.

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 total mechanal energy of the system in [J].

◆ computeMechanicalEnergy() [2/2]

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

Computes the mechanical energy of the system stored in data.mechanical_energy. 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 total mechanal energy of the system in [J]. The fonctions also computes the data.kinetic_energy and data.potential_energy.

◆ computeMinverse() [1/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::RowMatrixXs& pinocchio::computeMinverse ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)

Computes the inverse of the joint space inertia matrix using Articulated Body formulation. Compared to the complete signature computeMinverse<Scalar,Options,ConfigVectorType>, this version assumes that ABA has been called first.

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 inverse of the joint space inertia matrix stored in data.ddq.

◆ computeMinverse() [2/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::RowMatrixXs& pinocchio::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.

Remarks
Only the upper triangular part of the matrix is filled.
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.Minv.

◆ computePotentialEnergy() [1/2]

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

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.
Note
This potential energy are of the for \( \sum_{i} - m_{i}gh_{i} \) where:
  • \( m_{i} \) is the mass of the body \( i \),
  • \( h_{i} \) is the height of the body \( i \),
  • \( g \) is the gravity value.
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 potential energy of the system expressed in [J].

◆ computePotentialEnergy() [2/2]

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

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.
Note
This potential energy are of the for \( \sum_{i} - m_{i}gh_{i} \) where:
  • \( m_{i} \) is the mass of the body \( i \),
  • \( h_{i} \) is the height of the body \( i \),
  • \( g \) is the gravity value.
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].

◆ computePotentialEnergyRegressor()

const DataTpl<Scalar, Options, JointCollectionTpl>::RowVectorXs& pinocchio::computePotentialEnergyRegressor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q 
)
\brief Computes the kinetic energy regressor that links the kinetic energy of the system to
the dynamic parameters of each link according to the current robot motion.

The result is stored in `data.kineticEnergyRegressor` and it corresponds to a matrix
\f$ Y_e \f$ such that \f$ K = Y_e(q,\dot{q})\pi \f$ where
\pi_i = \text{model.inertias[i].toDynamicParameters()} \f$

\tparam JointCollection Collection of Joint types.
\tparam ConfigVectorType Type of the joint configuration vector.
\tparam TangentVectorType Type of the joint velocity vector.

\param[in] model The model structure of the rigid body system.
\param[in] data The data structure of the rigid body system.
\param[in] q The joint configuration vector (dim model.nq).
\param[in] v The joint velocity vector (dim model.nv).

\return The kinetic energy regressor of the system.

template< typename Scalar, int Options, template<typename, int> class JointCollectionTpl, typename ConfigVectorType, typename TangentVectorType> const typename DataTpl<Scalar, Options, JointCollectionTpl>::RowVectorXs & computeKineticEnergyRegressor( const ModelTpl<Scalar, Options, JointCollectionTpl> & model, DataTpl<Scalar, Options, JointCollectionTpl> & data, const Eigen::MatrixBase<ConfigVectorType> & q, const Eigen::MatrixBase<TangentVectorType> & v);

\brief Computes the potential energy regressor that links the potential energy
of the system to the dynamic parameters of each link according to the current robot motion.

The result is stored in `data.potentialEnergyRegressor` and it corresponds to a matrix
\f$ Y_p \f$ such that \f$ P = Y_p(q)\pi \f$ where
\pi_i = \text{model.inertias[i].toDynamicParameters()} \f$

\tparam JointCollection Collection of Joint types.
\tparam ConfigVectorType Type of the joint configuration vector.

\param[in] model The model structure of the rigid body system.
\param[in] data The data structure of the rigid body system.
\param[in] q The joint configuration vector (dim model.nq).

\return The kinetic energy regressor of the system. 

◆ computeRNEADerivatives() [1/4]

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 
)

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::decompose

◆ computeRNEADerivatives() [2/4]

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 
)

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::decompose

◆ computeRNEADerivatives() [3/4]

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 
)

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

◆ computeRNEADerivatives() [4/4]

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 
)

Computes the partial 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

◆ ComputeRNEASecondOrderDerivatives() [1/2]

void pinocchio::ComputeRNEASecondOrderDerivatives ( 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 Second-Order partial 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.d2tau_dqdq, data.d2tau_dvdv, data.d2tau_dqdv, and data.d2tau_dadq which respectively correspond to the Second-Order partial derivatives of the joint torque vector with respect to the joint configuration, velocity and cross Second-Order partial derivatives with respect to configuration/velocity and configuration/acceleration respectively.
Remarks
d2tau_dqdq, d2tau_dvdv2, d2tau_dqdv and d2tau_dadq must be first initialized with zeros (d2tau_dqdq.setZero(),etc). The storage order of the 3D-tensor derivatives is important. For d2tau_dqdq, the elements of generalized torque varies along the rows, while elements of q vary along the columns and pages of the tensor. For d2tau_dqdv, the elements of generalized torque varies along the rows, while elements of v vary along the columns and elements of q along the pages of the tensor. Hence, d2tau_dqdv is essentially d (d tau/dq)/dv, with outer-most derivative representing the third dimension (pages) of the tensor. The tensor d2tau_dadq reduces down to dM/dq, and hence the elements of q vary along the pages of the tensor. In other words, this tensor derivative is d(d tau/da)/dq. All other remaining combinations of second-order derivatives of generalized torque are zero.
See also

Definition at line 140 of file rnea-second-order-derivatives.hpp.

◆ ComputeRNEASecondOrderDerivatives() [2/2]

void pinocchio::ComputeRNEASecondOrderDerivatives ( 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 Tensor1 &  d2tau_dqdq,
const Tensor2 &  d2tau_dvdv,
const Tensor3 &  dtau_dqdv,
const Tensor4 &  dtau_dadq 
)
inline

Computes the Second-Order partial derivatives of the Recursive Newton Euler Algorithm w.r.t 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.
Tensor1Type of the 3D-Tensor containing the SO partial derivative with respect to the joint configuration vector. The elements of Torque vector are along the 1st dim, and joint config along 2nd,3rd dimensions.
Tensor2Type of the 3D-Tensor containing the Second-Order partial derivative with respect to the joint velocity vector. The elements of Torque vector are along the 1st dim, and the velocity along 2nd,3rd dimensions.
Tensor3Type of the 3D-Tensor containing the cross Second-Order partial derivative with respect to the joint configuration and velocty vector. The elements of Torque vector are along the 1st dim, and the config. vector along 2nd dimension, and velocity along the third dimension.
Tensor4Type of the 3D-Tensor containing the cross Second-Order partial derivative with respect to the joint configuration and acceleration vector. This is also the First-order partial derivative of Mass-Matrix (M) with respect to configuration vector. The elements of Torque vector are along the 1st dim, and the acceleration vector along 2nd dimension, while configuration along the third dimension.
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]d2tau_dqdqSecond-Order Partial derivative of the generalized torque vector with respect to the joint configuration.
[out]d2tau_dvdvSecond-Order Partial derivative of the generalized torque vector with respect to the joint velocity
[out]dtau_dqdvCross Second-Order Partial derivative of the generalized torque vector with respect to the joint configuration and velocity.
[out]dtau_dadqCross Second-Order Partial derivative of the generalized torque vector with respect to the joint configuration and accleration.
Remarks
d2tau_dqdq, d2tau_dvdv, dtau_dqdv and dtau_dadq must be first initialized with zeros (d2tau_dqdq.setZero(), etc). The storage order of the 3D-tensor derivatives is important. For d2tau_dqdq, the elements of generalized torque varies along the rows, while elements of q vary along the columns and pages of the tensor. For dtau_dqdv, the elements of generalized torque varies along the rows, while elements of v vary along the columns and elements of q along the pages of the tensor. Hence, dtau_dqdv is essentially d (d tau/dq)/dv, with outer-most derivative representing the third dimension (pages) of the tensor. The tensor dtau_dadq reduces down to dM/dq, and hence the elements of q vary along the pages of the tensor. In other words, this tensor derivative is d(d tau/da)/dq. All other remaining combinations of second-order derivatives of generalized torque are zero.
See also

◆ computeStaticRegressor()

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

Computes the static regressor that links the center of mass positions of all the links to the center of mass of the complete model according to the current configuration of the robot.

The result is stored in data.staticRegressor and it corresponds to a matrix \( Y \) such that \( c = Y(q,\dot{q},\ddot{q})\tilde{\pi} \) where \( \tilde{\pi} = (\tilde{\pi}_1^T\ \dots\ \tilde{\pi}_n^T)^T \) and \( \tilde{\pi}_i = \text{model.inertias[i].toDynamicParameters().head<4>()} \)

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 static regressor of the system.

◆ computeStaticTorque()

const DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType& pinocchio::computeStaticTorque ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const container::aligned_vector< ForceTpl< Scalar, Options >> &  fext 
)

Computes the generalized static torque contribution \( g(q) - \sum J(q)^{\top} f_{\text{ext}} \) of the Lagrangian dynamics:

\( \begin{eqnarray} M \ddot{q} + c(q, \dot{q}) + g(q) = \tau + \sum J(q)^{\top} f_{\text{ext}} \end{eqnarray} \)


. This torque vector accouts for the contribution of the gravity and the external forces.

Note
This function is equivalent to pinocchio::rnea(model, data, q, 0, 0, fext).
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]fextExternal forces expressed in the local frame of the joints (dim model.njoints).
Returns
The generalized static torque stored in data.tau.

◆ computeStaticTorqueDerivatives()

void pinocchio::computeStaticTorqueDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const container::aligned_vector< ForceTpl< Scalar, Options >> &  fext,
const Eigen::MatrixBase< ReturnMatrixType > &  static_torque_partial_dq 
)

Computes the partial derivative of the generalized gravity and external forces contributions (a.k.a static torque vector) 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).
[in]fextExternal forces expressed in the local frame of the joints (dim model.njoints).
[out]static_torque_partial_dqPartial derivative of the static torque vector with respect to the joint configuration.
Remarks
gravity_partial_dq must be first initialized with zeros (gravity_partial_dq.setZero).
See also
pinocchio::computeGeneralizedTorque

◆ computeSubtreeMasses()

void pinocchio::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.

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.

◆ computeSupportedForceByFrame()

ForceTpl<Scalar, Options> pinocchio::computeSupportedForceByFrame ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const FrameIndex  frame_id 
)

Computes the force supported by a specific frame (given by frame_id) expressed in the LOCAL frame. The supported force corresponds to the sum of all the forces experienced after the given frame, i.e :

  • The inertial forces and gravity (applied on the supported inertia in body)
  • The forces applied by child joints
  • (The external forces) You must first call pinocchio::rnea to update placements, velocities and efforts values in data structure.
Note
If an external force is applied to the frame parent joint (during rnea), it won't be taken in consideration in this function (it will be considered to be applied before the frame in the joint and not after. However external forces applied to child joints will be taken into account).
Physically speaking, if the robot were to be separated in two parts glued together at that given frame, the supported force represents the internal forces applide from the part after the cut/frame to the part before. This compute what a force-torque sensor would measures if it would be placed at that frame.
The equivalent function for a joint would be to read data.f[joint_id], after having call pinocchio::rnea.
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]frameIdThe index of the frame.
Returns
The computed force.
Warning
pinocchio::rnea should have been called first

◆ computeSupportedInertiaByFrame()

InertiaTpl<Scalar, Options> pinocchio::computeSupportedInertiaByFrame ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const FrameIndex  frame_id,
bool  with_subtree 
)

Compute the inertia supported by a specific frame (given by frame_id) expressed in the LOCAL frame. The total supported inertia corresponds to the sum of all the inertia after the given frame, i.e :

  • The frame inertia
  • The child frames inertia ('Child frames' refers to frames that share the same parent joint and are placed after the given frame)
  • The child joints inertia (if with_subtree == true) You must first call pinocchio::forwardKinematics to update placement values in data structure.
Note
Physically speaking, if the robot were to be cut in two parts at that given frame, this supported inertia would represents the inertia of the part that was after the frame. with_subtree determines if the childs joints must be taken into consideration (if true) or only the current joint (if false).
The equivalent function for a joint would be :
  • to read data.Ycrb[joint_id], after having called pinocchio::crba (if with_subtree == true).
  • to read model.inertia[joint_id] (if with_subtree == false).
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]frameIdThe index of the frame.
[in]with_subtreeIf false, compute the inertia only inside the frame parent joint if false. If true, include child joints inertia.
Returns
The computed inertia.
Warning
forwardKinematics should have been called first

◆ computeTotalMass() [1/2]

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.

◆ computeTotalMass() [2/2]

Scalar pinocchio::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.

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.

◆ constrainedABA()

const DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType& pinocchio::constrainedABA ( 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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ContactModelAllocator > &  contact_models,
std::vector< RigidConstraintDataTpl< Scalar, Options >, ContactDataAllocator > &  contact_datas,
ProximalSettingsTpl< Scalar > &  settings 
)
inline

The constrained Articulated Body Algorithm (constrainedABA). It computes constrained forward dynamics, aka the joint accelerations and constraint forces given the current state, actuation and the constraints on the system. All the quantities are expressed in the LOCAL coordinate systems of the joint frames.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
AllocatorAllocator class for the std::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]contact_modelsVector of contact models.
[in]contact_datasVector of contact data.
[in]settingsProximal settings (mu, accuracy and maximal number of iterations).
Note
A hint: a typical value of mu in proximal settings is 1e-6, and should always be positive. This also overwrites data.f, possibly leaving it in an inconsistent state.
Returns
A reference to the joint acceleration stored in data.ddq. data.lambdaA[0] stores the constraint forces.

◆ constraintDynamics() [1/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType& pinocchio::constraintDynamics ( 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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &  contact_models,
std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &  contact_datas 
)
inline

Computes the forward dynamics with contact constraints according to a given list of Contact information.

Note
When using forwardDynamics for the first time, you should call first initConstraintDynamics to initialize the internal memory used in the algorithm.

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.
AllocatorAllocator class for the std::vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (size model.nq).
[in]vThe joint velocity (size model.nv).
[in]tauThe joint torque vector (size model.nv).
[in]contact_modelsVector of contact models.
[in]contact_datasVector of contact data.
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.

Definition at line 150 of file constrained-dynamics.hpp.

◆ constraintDynamics() [2/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType& pinocchio::constraintDynamics ( 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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &  contact_models,
std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &  contact_datas,
ProximalSettingsTpl< Scalar > &  settings 
)
inline

Computes the forward dynamics with contact constraints according to a given list of contact information.

Note
When using forwardDynamics for the first time, you should call first initConstraintDynamics to initialize the internal memory used in the algorithm.

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.
AllocatorAllocator class for the std::vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (size model.nq).
[in]vThe joint velocity (size model.nv).
[in]tauThe joint torque vector (size model.nv).
[in]contact_modelsVector of contact models.
[in]contact_datasVector of contact data.
[in]settingsProximal settings (mu, accuracy and maximal number of iterations).
Note
A hint: a typical value for mu is 1e-12 when two contact constraints are redundant.
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.

◆ contactInverseDynamics()

const DataTpl<Scalar, Options, JointCollectionTpl>:: TangentVectorType& pinocchio::contactInverseDynamics ( 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,
Scalar  dt,
const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &  contact_models,
std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &  contact_datas,
const std::vector< CoulombFrictionConeTpl< Scalar >, CoulombFrictionConelAllocator > &  cones,
const Eigen::MatrixBase< VectorLikeR > &  R,
const Eigen::MatrixBase< VectorLikeGamma > &  constraint_correction,
ProximalSettingsTpl< Scalar > &  settings,
const boost::optional< VectorLikeLam > &  lambda_guess = boost::none 
)

The Contact Inverse Dynamics algorithm. It computes the inverse dynamics in the presence of contacts, 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).
[in]dtThe time step.
[in]contact_modelsThe list of contact models.
[in]contact_datasThe list of contact_datas.
[in]coneslist of friction cones.
[in]Rvector representing the diagonal of the compliance matrix.
[in]constraint_correctionvector representing the constraint correction.
[in]settingsThe settings for the proximal algorithm.
[in]lambda_guessinitial guess for the contact forces.
Returns
The desired joint torques stored in data.tau.

Definition at line 192 of file contact-inverse-dynamics.hpp.

◆ copy()

void copy ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  origin,
DataTpl< Scalar, Options, JointCollectionTpl > &  dest,
KinematicLevel  kinematic_level 
)
inline

Copy part of the data from origin 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]kinematic_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.

◆ crba()

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

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 easily get data.M symmetric by copying the strictly upper triangular part in the strictly lower triangular part with data.M.triangularView<Eigen::StrictlyLower>() = data.M.transpose().triangularView<Eigen::StrictlyLower>();
This algorithm also takes into account the rotor inertia effects, by adding on the diagonal of the Joint Space Inertia Matrix their contributions. This is done only for single DOF joint (e.g. Revolute, Prismatic, etc.).
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Note
In WORLD convention, a direct outcome of this algorithm is the computation of the centroidal momentum matrix (data.Ag), a forward geometry 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).
[in]conventionConvention to use.
Returns
The joint space inertia matrix with only the upper triangular part computed.

◆ createData()

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

◆ cross() [1/2]

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 256 of file skew.hpp.

◆ cross() [2/2]

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 228 of file skew.hpp.

◆ dccrba()

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 
)

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 velocity vector (dim model.nv).
Returns
The Centroidal Momentum Matrix time derivative dAg (accessible via data.dAg).
Remarks
As another output, this algorithm also computes the Centroidal Momentum Matrix Ag (accessible via data.Ag), the Joint Jacobian matrix (accessible via data.J) and the time derivatibe of the Joint Jacobian matrix (accessible via data.dJ).

◆ dDifference() [1/2]

void pinocchio::dDifference ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVector1 > &  q0,
const Eigen::MatrixBase< ConfigVector2 > &  q1,
const Eigen::MatrixBase< JacobianMatrix > &  J,
const ArgumentPosition  arg 
)

Computes the Jacobian of a small variation of the configuration 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 \( d(q0, q1) \) the difference function, these jacobians satisfy the following relationships in the tangent space:

  • Jacobian relative to q0: \( d(q_0 \oplus \delta q_0, q_1) \ominus d(q_0, q_1) = J_{q_0} \delta q_0 + o(\| \delta q_0 \|)\).
  • Jacobian relative to q1: \( d(q_0, q_1 \oplus \delta q_1) \ominus d(q_0, q_1) = J_{q_1} \delta q_1 + o(\| \delta q_1 \|)\).
Parameters
[in]modelModel of the kinematic tree on which the difference operation is performed.
[in]q0Initial configuration (size model.nq)
[in]q1Joint velocity (size model.nv)
[out]JJacobian of the Difference operation, either with respect to q0 or q1 (size model.nv x model.nv).
[in]argArgument (either q0 or q1) with respect to which the differentiation is performed.

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

◆ dDifference() [2/2]

void pinocchio::dDifference ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVector1 > &  q0,
const Eigen::MatrixBase< ConfigVector2 > &  q1,
const Eigen::MatrixBase< JacobianMatrix > &  J,
const ArgumentPosition  arg 
)

Computes the Jacobian of a small variation of the configuration 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 \( d(q0, q1) \) the difference function, these jacobians satisfy the following relationships in the tangent space:

  • Jacobian relative to q0: \( d(q_0 \oplus \delta q_0, q_1) \ominus d(q_0, q_1) = J_{q_0} \delta q_0 + o(\| \delta q_0 \|)\).
  • Jacobian relative to q1: \( d(q_0, q_1 \oplus \delta q_1) \ominus d(q_0, q_1) = J_{q_1} \delta q_1 + o(\| \delta q_1 \|)\).
Parameters
[in]modelModel of the kinematic tree on which the difference operation is performed.
[in]q0Initial configuration (size model.nq)
[in]q1Joint velocity (size model.nv)
[out]JJacobian of the Difference operation, either with respect to q0 or q1 (size model.nv x model.nv).
[in]argArgument (either q0 or q1) with respect to which the differentiation is performed.

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

◆ difference() [1/4]

ConfigVectorIn1 pinocchio::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.

Parameters
[in]modelModel of the kinematic tree on which the difference operation is performed.
[in]q0Initial configuration (size model.nq)
[in]q1Finial configuration (size model.nq)
Returns
The corresponding velocity (size model.nv)
Parameters
[in]modelModel of the kinematic tree on which the difference operation is performed.
[in]q0Initial configuration (size model.nq)
[in]q1Final configuration (size model.nq)
Returns
The corresponding velocity (size model.nv)

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

◆ difference() [2/4]

ConfigVectorIn1 pinocchio::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.

Parameters
[in]modelModel of the kinematic tree on which the difference operation is performed.
[in]q0Initial configuration (size model.nq)
[in]q1Final configuration (size model.nq)
Returns
The corresponding velocity (size model.nv)

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

◆ difference() [3/4]

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 on which the difference operation is performed.
[in]q0Initial configuration (size model.nq)
[in]q1Desired configuration (size model.nq)
[out]dvoutThe corresponding velocity (size model.nv)

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 on which the difference operation is performed.
[in]q0Initial configuration (size model.nq)
[in]q1Desired configuration (size model.nq)
[out]dvoutThe corresponding velocity (size model.nv).

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

◆ difference() [4/4]

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 on which the difference operation is performed.
[in]q0Initial configuration (size model.nq)
[in]q1Desired configuration (size model.nq)
[out]dvoutThe corresponding velocity (size model.nv).

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

◆ dIntegrate() [1/3]

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 of the kinematic tree on which the integration operation is performed.
[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 differentiation is performed.

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

◆ dIntegrate() [2/3]

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,
const AssignmentOperatorType  op 
)

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 of the kinematic tree on which the integration operation is performed.
[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 differentiation is performed.

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

◆ dIntegrate() [3/3]

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,
const AssignmentOperatorType  op 
)

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 of the kinematic tree on which the integration operation is performed.
[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 differentiation is performed.

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 of the kinematic tree on which the integration operation is performed.
[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 differentiation is performed.

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

◆ dIntegrateTransport() [1/4]

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

Transport in place a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments.

This function performs the parallel transportation of an input matrix whose columns are expressed in the tangent space of the integrated element \( q \oplus v \), to the tangent space at \( q \). In other words, this functions transforms a tangent vector expressed at \( q \oplus v \) to a tangent vector expressed at \( q \), considering that the change of configuration between \( q \oplus v \) and \( q \) may alter the value of this tangent vector. A typical example of parallel transportation is the action operated by a rigid transformation \( M \in \text{SE}(3)\) on a spatial velocity \( v \in \text{se}(3)\). In the context of configuration spaces assimilated to vector spaces, this operation corresponds to Identity. For Lie groups, its corresponds to the canonical vector field transportation.

Parameters
[in]modelModel of the kinematic tree on which the integration operation is performed.
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[in,out]JInput/output matrix (number of rows = model.nv).
[in]argArgument (either ARG0 for q or ARG1 for v) with respect to which the differentation is performed.

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

◆ dIntegrateTransport() [2/4]

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

Transport in place a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments.

This function performs the parallel transportation of an input matrix whose columns are expressed in the tangent space of the integrated element \( q \oplus v \), to the tangent space at \( q \). In other words, this functions transforms a tangent vector expressed at \( q \oplus v \) to a tangent vector expressed at \( q \), considering that the change of configuration between \( q \oplus v \) and \( q \) may alter the value of this tangent vector. A typical example of parallel transportation is the action operated by a rigid transformation \( M \in \text{SE}(3)\) on a spatial velocity \( v \in \text{se}(3)\). In the context of configuration spaces assimilated to vector spaces, this operation corresponds to Identity. For Lie groups, its corresponds to the canonical vector field transportation.

Parameters
[in]modelModel of the kinematic tree on which the integration operation is performed.
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[in,out]JInput/output matrix (number of rows = model.nv).
[in]argArgument (either ARG0 for q or ARG1 for v) with respect to which the differentation is performed.

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

◆ dIntegrateTransport() [3/4]

void pinocchio::dIntegrateTransport ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v,
const Eigen::MatrixBase< JacobianMatrixType1 > &  Jin,
const Eigen::MatrixBase< JacobianMatrixType2 > &  Jout,
const ArgumentPosition  arg 
)

Transport a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments.

This function performs the parallel transportation of an input matrix whose columns are expressed in the tangent space of the integrated element \( q \oplus v \), to the tangent space at \( q \). In other words, this functions transforms a tangent vector expressed at \( q \oplus v \) to a tangent vector expressed at \( q \), considering that the change of configuration between \( q \oplus v \) and \( q \) may alter the value of this tangent vector. A typical example of parallel transportation is the action operated by a rigid transformation \( M \in \text{SE}(3)\) on a spatial velocity \( v \in \text{se}(3)\). In the context of configuration spaces assimilated to vector spaces, this operation corresponds to Identity. For Lie groups, its corresponds to the canonical vector field transportation.

Parameters
[in]modelModel of the kinematic tree on which the integration operation is performed.
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[out]JinInput matrix (number of rows = model.nv).
[out]JoutOutput matrix (same size as Jin).
[in]argArgument (either ARG0 for q or ARG1 for v) with respect to which the differentation is performed.

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

◆ dIntegrateTransport() [4/4]

void pinocchio::dIntegrateTransport ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Eigen::MatrixBase< TangentVectorType > &  v,
const Eigen::MatrixBase< JacobianMatrixType1 > &  Jin,
const Eigen::MatrixBase< JacobianMatrixType2 > &  Jout,
const ArgumentPosition  arg 
)

Transport a matrix from the terminal to the initial tangent space of the integrate operation, with respect to the configuration or the velocity arguments.

This function performs the parallel transportation of an input matrix whose columns are expressed in the tangent space of the integrated element \( q \oplus v \), to the tangent space at \( q \). In other words, this functions transforms a tangent vector expressed at \( q \oplus v \) to a tangent vector expressed at \( q \), considering that the change of configuration between \( q \oplus v \) and \( q \) may alter the value of this tangent vector. A typical example of parallel transportation is the action operated by a rigid transformation \( M \in \text{SE}(3)\) on a spatial velocity \( v \in \text{se}(3)\). In the context of configuration spaces assimilated to vector spaces, this operation corresponds to Identity. For Lie groups, its corresponds to the canonical vector field transportation.

Parameters
[in]modelModel of the kinematic tree on which the integration operation is performed.
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[out]JinInput matrix (number of rows = model.nv).
[out]JoutOutput matrix (same size as Jin).
[in]argArgument (either ARG0 for q or ARG1 for v) with respect to which the differentation is performed.

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

◆ dinv_inertia()

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

◆ distance() [1/2]

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

Distance between two configuration vectors, namely \( || q_{1} \ominus q_{0} ||_2 \).

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 q0 and q1.

Distance between two configuration vectors, namely \( || q_{1} \ominus q_{0} ||_2 \).

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 q0 and q1.

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

◆ distance() [2/2]

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

Distance between two configuration vectors.

Distance between two configuration vectors, namely \( || q_{1} \ominus q_{0} ||_2 \).

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 q0 and q1.

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

◆ exp3()

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 36 of file explog.hpp.

◆ exp6() [1/2]

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 417 of file explog.hpp.

◆ exp6() [2/2]

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 347 of file explog.hpp.

◆ extractPathFromEnvVar() [1/2]

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

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.

◆ extractPathFromEnvVar() [2/2]

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

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

Parameters
[in]env_var_nameThe name of the environment variable.
[out]list_of_pathsList of path to fill with the paths extracted from the environment variable value.
[in]delimiterThe delimiter between two consecutive paths.

◆ findCommonAncestor()

JointIndex pinocchio::findCommonAncestor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
JointIndex  joint1_id,
JointIndex  joint2_id,
size_t &  index_ancestor_in_support1,
size_t &  index_ancestor_in_support2 
)

Computes the common ancestor between two joints belonging to the same kinematic tree.

Parameters
[in]modelthe input model.
[in]joint1_idindex of the first joint.
[in]joint2_idindex of the second joint.
[out]index_ancestor_in_support1index of the ancestor within model.support[joint1_id].
[out]index_ancestor_in_support2index of the ancestor within model.support[joint2_id].

◆ forwardDynamics() [1/2]

PINOCCHIO_DEPRECATED 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. 
)
inline

Compute the forward dynamics with contact constraints. Internally, pinocchio::computeAllTerms is called.

Deprecated:
This function has been deprecated and will be removed in future releases of Pinocchio. Please use the class RigidConstraintModel to define new contacts, and initConstraintDynamics(model, data, contact_models) and constraintDynamics(model, data, q, v, tau, contact_models, contact_datas[,prox_settings]) instead.
Note
It solves 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.
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.

◆ forwardDynamics() [2/2]

PINOCCHIO_DEPRECATED const DataTpl<Scalar, Options, JointCollectionTpl>:: TangentVectorType& pinocchio::forwardDynamics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< TangentVectorType > &  tau,
const Eigen::MatrixBase< ConstraintMatrixType > &  J,
const Eigen::MatrixBase< DriftVectorType > &  gamma,
const Scalar  inv_damping = 0. 
)
inline

Compute the forward dynamics with contact constraints, assuming pinocchio::computeAllTerms has been called.

Deprecated:
This function has been deprecated and will be removed in future releases of Pinocchio. Please use the class RigidConstraintModel to define new contacts, and initConstraintDynamics(model, data, contact_models) and constraintDynamics(model, data, q, v, tau, contact_models, contact_datas[,prox_settings]) instead.
Note
It solves 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]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.
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.

◆ forwardKinematics() [1/3]

void pinocchio::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.

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).

◆ forwardKinematics() [2/3]

void pinocchio::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.

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).

◆ forwardKinematics() [3/3]

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 
)

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).

◆ frameBodyRegressor()

DataTpl<Scalar, Options, JointCollectionTpl>::BodyRegressorType& pinocchio::frameBodyRegressor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
FrameIndex  frame_id 
)
inline

Computes the regressor for the dynamic parameters of a rigid body attached to a given frame, puts the result in data.bodyRegressor and returns it.

This algorithm assumes RNEA has been run to compute the acceleration and gravitational effects.

The result is such that \( f = \text{frameBodyRegressor(model,data,frame_id) * I.toDynamicParameters()} \) where \( f \) is the net force acting on the body, including gravity

Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]frame_idThe id of the frame.
Returns
The dynamic regressor of the body.

◆ framesForwardKinematics()

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.

◆ getAcceleration()

MotionTpl<Scalar, Options> pinocchio::getAcceleration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  jointId,
const ReferenceFrame  rf = LOCAL 
)

Returns the spatial acceleration of the joint expressed in the desired reference frame. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]jointIdId of the joint
[in]rfReference frame in which the acceleration is expressed.
Returns
The spatial acceleration of the joint expressed in the desired reference frame.
Warning
Second order forwardKinematics should have been called first

◆ getCenterOfMassVelocityDerivatives()

void pinocchio::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 computeAllTerms(model,data,q,v) or computeCenterOfMass(model,data,q,v) 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 \).

◆ getCentroidalDynamicsDerivatives()

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 
)

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]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.

◆ getClassicalAcceleration()

MotionTpl<Scalar, Options> pinocchio::getClassicalAcceleration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  jointId,
const ReferenceFrame  rf = LOCAL 
)

Returns the "classical" acceleration of the joint expressed in the desired reference frame. This is different from the "spatial" acceleration in that centrifugal effects are accounted for. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]jointIdId of the joint
[in]rfReference frame in which the acceleration is expressed.
Returns
The classic acceleration of the joint expressed in the desired reference frame.
Warning
Second order forwardKinematics should have been called first

◆ getComFromCrba()

const DataTpl<Scalar, Options, JointCollectionTpl>::Vector3& pinocchio::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).

Template Parameters
JointCollectionCollection of Joint types.
Matrix3xLikeType of the output Jacobian matrix.
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).

◆ getConstraintJacobian()

void pinocchio::getConstraintJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const RigidConstraintModelTpl< Scalar, Options > &  constraint_model,
RigidConstraintDataTpl< Scalar, Options > &  constraint_data,
const Eigen::MatrixBase< Matrix6Like > &  J 
)

Computes the kinematic Jacobian associatied to a given constraint model.

Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]constraint_modelConstraint model.
[in]constraint_dataConstraint data.
[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.).

◆ getConstraintsJacobian()

void pinocchio::getConstraintsJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintDataAllocator > &  constraint_model,
std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &  constraint_data,
const Eigen::MatrixBase< DynamicMatrixLike > &  J 
)

Computes the kinematic Jacobian associatied to a given set of constraint models.

Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]constraint_modelsVector of constraint models.
[in]constraint_datasVector of constraint data.
[out]JA reference on the Jacobian matrix where the results will be stored in (dim nc x model.nv). You must fill J with zero elements, e.g. J.fill(0.).

◆ getCoriolisMatrix()

const DataTpl<Scalar, Options, JointCollectionTpl>::MatrixXs& pinocchio::getCoriolisMatrix ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data 
)

Retrives 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} \)


after a call to the dynamics derivatives.

Note
In the previous equation, \( c(q, \dot{q}) = C(q, \dot{q})\dot{q} \).
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 Coriolis matrix stored in data.C.

◆ getFrameAcceleration() [1/2]

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

Returns the spatial acceleration of the Frame expressed in the desired reference frame. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in the data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[in]rfReference frame in which the acceleration is expressed.
Returns
The spatial acceleration of the Frame expressed in the desired reference frame.
Warning
Second order forwardKinematics should have been called first
Remarks
In the context of a frame placement constraint \(J(q) a + \dot{J}(q, v) v = 0\), one way to compute the second term \(\dot{J}(q, v) v\) is to call second-order forwardKinematics with a zero acceleration, then read the remaining \(\dot{J}(q, v) v\) by calling this function. This is significantly more efficient than applying the matrix \(\dot{J}(q, v)\) (from getFrameJacobianTimeVariation) to the velocity vector \(v\).

Definition at line 166 of file frames.hpp.

◆ getFrameAcceleration() [2/2]

MotionTpl<Scalar, Options> pinocchio::getFrameAcceleration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  rf = LOCAL 
)
inline

Returns the spatial acceleration of the Frame expressed in the desired reference frame. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]joint_idId of the parent joint
[in]placementframe placement with respect to the parent joint
[in]rfReference frame in which the acceleration is expressed.
Returns
The spatial acceleration of the Frame expressed in the desired reference frame.
Warning
Second order forwardKinematics should have been called first

◆ getFrameAccelerationDerivatives() [1/4]

void pinocchio::getFrameAccelerationDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const FrameIndex  frame_id,
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 derivatives of the frame acceleration quantity with respect to q, v and a. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. 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 frame spatial velocity with respect to the joint configuration vector.
Matrix6xOut2Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint configuration vector.
Matrix6xOut3Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint velocity vector.
Matrix6xOut4Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint acceleration vector.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[in]rfReference frame in which the velocity is expressed.
[out]v_partial_dqPartial derivative of the frame spatial velocity w.r.t. \( q \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( q \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( v \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( \dot{v} \).

Definition at line 185 of file frames-derivatives.hpp.

◆ getFrameAccelerationDerivatives() [2/4]

void pinocchio::getFrameAccelerationDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const FrameIndex  frame_id,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xOut1 > &  v_partial_dq,
const Eigen::MatrixBase< Matrix6xOut2 > &  v_partial_dv,
const Eigen::MatrixBase< Matrix6xOut3 > &  a_partial_dq,
const Eigen::MatrixBase< Matrix6xOut4 > &  a_partial_dv,
const Eigen::MatrixBase< Matrix6xOut5 > &  a_partial_da 
)

Computes the partial derivatives of the frame acceleration quantity with respect to q, v and a. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. 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 frame spatial velocity with respect to the joint configuration vector.
Matrix6xOut2Matrix6x containing the partial derivatives of the frame spatial velocity with respect to the joint velocity vector.
Matrix6xOut3Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint configuration vector.
Matrix6xOut4Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint velocity vector.
Matrix6xOut5Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint acceleration vector.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[in]rfReference frame in which the velocity is expressed.
[out]v_partial_dqPartial derivative of the frame spatial velocity w.r.t. \( q \).
[out]v_partial_dvPartial derivative of the frame spatial velociy w.r.t. \( v \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( q \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( v \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( \dot{v} \).

Definition at line 315 of file frames-derivatives.hpp.

◆ getFrameAccelerationDerivatives() [3/4]

void pinocchio::getFrameAccelerationDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
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 derivatives of the spatial acceleration of a frame given by its relative placement, with respect to q, v and a. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. 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 frame spatial velocity with respect to the joint configuration vector.
Matrix6xOut2Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint configuration vector.
Matrix6xOut3Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint velocity vector.
Matrix6xOut4Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint acceleration vector.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]joint_idIndex of the supporting joint
[in]placementPlacement of the Frame w.r.t. the joint frame.
[in]rfReference frame in which the velocity is expressed.
[out]v_partial_dqPartial derivative of the frame spatial velocity w.r.t. \( q \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( q \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( v \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( \dot{v} \).

◆ getFrameAccelerationDerivatives() [4/4]

void pinocchio::getFrameAccelerationDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xOut1 > &  v_partial_dq,
const Eigen::MatrixBase< Matrix6xOut2 > &  v_partial_dv,
const Eigen::MatrixBase< Matrix6xOut3 > &  a_partial_dq,
const Eigen::MatrixBase< Matrix6xOut4 > &  a_partial_dv,
const Eigen::MatrixBase< Matrix6xOut5 > &  a_partial_da 
)

Computes the partial derivatives of the frame acceleration quantity with respect to q, v and a. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities. 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 frame spatial velocity with respect to the joint configuration vector.
Matrix6xOut2Matrix6x containing the partial derivatives of the frame spatial velocity with respect to the joint velocity vector.
Matrix6xOut3Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint configuration vector.
Matrix6xOut4Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint velocity vector.
Matrix6xOut5Matrix6x containing the partial derivatives of the frame spatial acceleration with respect to the joint acceleration vector.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]joint_idIndex of the supporting joint
[in]placementPlacement of the Frame w.r.t. the joint frame.
[in]rfReference frame in which the velocity is expressed.
[out]v_partial_dqPartial derivative of the frame spatial velocity w.r.t. \( q \).
[out]v_partial_dvPartial derivative of the frame spatial velociy w.r.t. \( v \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( q \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( v \).
[out]a_partial_dqPartial derivative of the frame spatial acceleration w.r.t. \( \dot{v} \).

Definition at line 254 of file frames-derivatives.hpp.

◆ getFrameClassicalAcceleration() [1/2]

MotionTpl<Scalar, Options> pinocchio::getFrameClassicalAcceleration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const FrameIndex  frame_id,
const ReferenceFrame  rf = LOCAL 
)
inline

Returns the "classical" acceleration of the Frame expressed in the desired reference frame. This is different from the "spatial" acceleration in that centrifugal effects are accounted for. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[in]rfReference frame in which the acceleration is expressed.
Returns
The classical acceleration of the Frame expressed in the desired reference frame.
Warning
Second order forwardKinematics should have been called first
Remarks
In the context of a frame placement constraint \(J(q) a + \dot{J}(q, v) v = 0\), one way to compute the second term \(\dot{J}(q, v) v\) is to call second-order forwardKinematics with a zero acceleration, then read the remaining \(\dot{J}(q, v) v\) by calling this function. This is significantly more efficient than applying the matrix \(\dot{J}(q, v)\) (from getFrameJacobianTimeVariation) to the velocity vector \(v\).

Definition at line 226 of file frames.hpp.

◆ getFrameClassicalAcceleration() [2/2]

MotionTpl<Scalar, Options> pinocchio::getFrameClassicalAcceleration ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  rf = LOCAL 
)
inline

Returns the "classical" acceleration of the Frame expressed in the desired reference frame. This is different from the "spatial" acceleration in that centrifugal effects are accounted for. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure.

Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]joint_idId of the parent joint
[in]placementframe placement with respect to the parent joint
[in]rfReference frame in which the acceleration is expressed.
Returns
The classical acceleration of the Frame expressed in the desired reference frame.
Warning
Second order forwardKinematics should have been called first

◆ getFrameJacobian() [1/4]

Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> pinocchio::getFrameJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const FrameIndex  frame_id,
const ReferenceFrame  reference_frame 
)

Returns the jacobian of the frame expressed either expressed in the local frame coordinate system, in the local world aligned frame or in the WORLD coordinate system, depending on the value of reference_frame. You must first call pinocchio::computeJointJacobians.

Remarks
Similarly to pinocchio::getJointJacobian:
  • if rf == LOCAL, this function returns the Jacobian of the frame expressed in the local coordinate system of the frame
  • if rf == LOCAL_WORLD_ALIGNED, this function returns the Jacobian of the frame centered on the frame origin and expressed in a coordinate system aligned with the WORLD.
  • if rf == WORLD, this function returns the Jacobian of the frame expressed at the point coincident with the origin and expressed in a coordinate system aligned with the WORLD.
Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idIndex of the frame
[in]reference_frameReference frame in which the Jacobian is expressed.
Warning
The function pinocchio::computeJointJacobians should have been called first.

Definition at line 397 of file frames.hpp.

◆ getFrameJacobian() [2/4]

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

Returns the jacobian of the frame expressed either expressed in the local frame coordinate system, in the local world aligned frame or in the WORLD coordinate system, depending on the value of reference_frame. You must first call pinocchio::computeJointJacobians.

Remarks
Similarly to pinocchio::getJointJacobian:
  • if rf == LOCAL, this function returns the Jacobian of the frame expressed in the local coordinate system of the frame
  • if rf == LOCAL_WORLD_ALIGNED, this function returns the Jacobian of the frame centered on the frame origin and expressed in a coordinate system aligned with the WORLD.
  • if rf == WORLD, this function returns the Jacobian of the frame expressed at 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_idIndex of the frame
[in]reference_frameReference frame in which the Jacobian is expressed.
[out]JThe Jacobian of the Frame expressed in the coordinates Frame.
Warning
The function pinocchio::computeJointJacobians should have been called first.

Definition at line 351 of file frames.hpp.

◆ getFrameJacobian() [3/4]

Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> pinocchio::getFrameJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  reference_frame 
)

Returns the jacobian of the frame given by its relative placement w.r.t. a joint frame, and whose columns are either expressed in the LOCAL frame coordinate system, in the local world aligned frame or in the WORLD coordinate system, depending on the value of reference_frame. You must first call pinocchio::computeJointJacobians.

Remarks
Similarly to pinocchio::getJointJacobian:
  • if rf == LOCAL, this function returns the Jacobian of the frame expressed in the local coordinate system of the frame
  • if rf == LOCAL_WORLD_ALIGNED, this function returns the Jacobian of the frame centered on the frame origin and expressed in a coordinate system aligned with the WORLD.
  • if rf == WORLD, this function returns the Jacobian of the frame expressed at the point coincident with the origin and expressed in a coordinate system aligned with the WORLD.
Template Parameters
JointCollectionCollection of Joint types.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]joint_idIndex of the joint.
[in]reference_frameReference frame in which the Jacobian is expressed.
Warning
The function pinocchio::computeJointJacobians should have been called first.

Definition at line 304 of file frames.hpp.

◆ getFrameJacobian() [4/4]

void pinocchio::getFrameJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  reference_frame,
const Eigen::MatrixBase< Matrix6xLike > &  J 
)

Returns the jacobian of the frame given by its relative placement w.r.t. a joint frame, and whose columns are either expressed in the LOCAL frame coordinate system, in the local world aligned (rf = LOCAL_WORLD_ALIGNED) frame or in the WORLD coordinate system, depending on the value of reference_frame. You must first call pinocchio::computeJointJacobians.

Remarks
Similarly to pinocchio::getJointJacobian:
  • if rf == LOCAL, this function returns the Jacobian of the frame expressed in the local coordinate system of the frame
  • if rf == LOCAL_WORLD_ALIGNED, this function returns the Jacobian of the frame centered on the frame origin and expressed in a coordinate system aligned with the WORLD.
  • if rf == WORLD, this function returns the Jacobian of the frame expressed at 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]joint_idIndex of the joint.
[in]reference_frameReference frame in which the Jacobian is expressed.
[out]JThe Jacobian of the Frame expressed in the reference_frame coordinate system.
Warning
The function pinocchio::computeJointJacobians should have been called first.

◆ getFrameJacobianTimeVariation()

void pinocchio::getFrameJacobianTimeVariation ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const 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), in the local world aligned (rf = LOCAL_WORLD_ALIGNED) frame or in the LOCAL frame (rf = LOCAL).

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]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.).

◆ getFrameVelocity() [1/2]

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

Returns the spatial velocity of the Frame expressed in the desired reference frame. 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
[in]rfReference frame in which the velocity is expressed.
Returns
The spatial velocity of the Frame expressed in the desired reference frame.
Warning
Fist or second order forwardKinematics should have been called first

Definition at line 108 of file frames.hpp.

◆ getFrameVelocity() [2/2]

MotionTpl<Scalar, Options> pinocchio::getFrameVelocity ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  rf = LOCAL 
)
inline

Returns the spatial velocity of the Frame expressed in the desired reference frame. 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]joint_idId of the parent joint
[in]placementframe placement with respect to the parent joint
[in]rfReference frame in which the velocity is expressed.
Returns
The spatial velocity of the Frame expressed in the desired reference frame.
Warning
Fist or second order forwardKinematics should have been called first

◆ getFrameVelocityDerivatives() [1/2]

void pinocchio::getFrameVelocityDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xOut1 > &  v_partial_dq,
const Eigen::MatrixBase< Matrix6xOut2 > &  v_partial_dv 
)

Computes the partial derivatives of the spatial velocity of a frame given by its relative placement, with respect to q and v. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities.

Template Parameters
JointCollectionCollection of Joint types.
Matrix6xOut1Matrix6x containing the partial derivatives of the frame spatial velocity with respect to the joint configuration vector.
Matrix6xOut2Matrix6x containing the partial derivatives of the frame spatial velocity with respect to the joint velocity vector.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]joint_idIndex of the supporting joint
[in]placementPlacement of the Frame w.r.t. the joint frame.
[in]rfReference frame in which the velocity is expressed.
[out]v_partial_dqPartial derivative of the frame spatial velocity w.r.t. \( q \).
[out]v_partial_dvPartial derivative of the frame spatial velociy w.r.t. \( v \).

◆ getFrameVelocityDerivatives() [2/2]

void pinocchio::getFrameVelocityDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const FrameIndex  frame_id,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix6xOut1 > &  v_partial_dq,
const Eigen::MatrixBase< Matrix6xOut2 > &  v_partial_dv 
)

Computes the partial derivatives of the frame spatial velocity with respect to q and v. You must first call pinocchio::computeForwardKinematicsDerivatives to compute all the required quantities.

Template Parameters
JointCollectionCollection of Joint types.
Matrix6xOut1Matrix6x containing the partial derivatives of the frame spatial velocity with respect to the joint configuration vector.
Matrix6xOut2Matrix6x containing the partial derivatives of the frame spatial velocity with respect to the joint velocity vector.
Parameters
[in]modelThe kinematic model
[in]dataData associated to model
[in]frame_idId of the operational Frame
[in]rfReference frame in which the velocity is expressed.
[out]v_partial_dqPartial derivative of the frame spatial velocity w.r.t. \( q \).
[out]v_partial_dvPartial derivative of the frame spatial velociy w.r.t. \( v \).

Definition at line 76 of file frames-derivatives.hpp.

◆ getJacobianComFromCrba()

const DataTpl<Scalar, Options, JointCollectionTpl>::Matrix3x& pinocchio::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.

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.

◆ getJacobianSubtreeCenterOfMass()

void pinocchio::getJacobianSubtreeCenterOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex &  rootSubtreeId,
const Eigen::MatrixBase< Matrix3xLike > &  res 
)

Retrieves the Jacobian of the center of mass of the given subtree according to the current value stored in data. It assumes that pinocchio::jacobianCenterOfMass has been called first with computeSubtreeComs equals to true.

Template Parameters
JointCollectionCollection of Joint types.
Matrix3xLikeType of the output Jacobian matrix.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]rootSubtreeIdIndex of the parent joint supporting the subtree.
[out]resThe Jacobian matrix where the results will be stored in (dim 3 x model.nv). You must first fill J with zero elements, e.g. J.setZero().

◆ getJointAccelerationDerivatives() [1/2]

void pinocchio::getJointAccelerationDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const 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.

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. \( v \).
[out]a_partial_dqPartial derivative of the joint spatial acceleration w.r.t. \( \dot{v} \).

◆ getJointAccelerationDerivatives() [2/2]

void pinocchio::getJointAccelerationDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const 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,
const Eigen::MatrixBase< Matrix6xOut3 > &  a_partial_dq,
const Eigen::MatrixBase< Matrix6xOut4 > &  a_partial_dv,
const Eigen::MatrixBase< Matrix6xOut5 > &  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.

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 velocity with respect to the joint velocity vector.
Matrix6xOut3Matrix6x containing the partial derivatives of the spatial acceleration with respect to the joint configuration vector.
Matrix6xOut4Matrix6x containing the partial derivatives of the spatial acceleration with respect to the joint velocity vector.
Matrix6xOut5Matrix6x 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]v_partial_dvPartial derivative of the joint spatial velociy w.r.t. \( v \).
[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. \( v \).
[out]a_partial_dqPartial derivative of the joint spatial acceleration w.r.t. \( \dot{v} \).

◆ getJointJacobian() [1/2]

Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> pinocchio::getJointJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const ReferenceFrame  reference_frame 
)

Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame, in the local world aligned (rf = LOCAL_WORLD_ALIGNED) 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.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]joint_idThe index of the joint.
[in]reference_frameReference frame in which the result is expressed.

Definition at line 129 of file jacobian.hpp.

◆ getJointJacobian() [2/2]

void pinocchio::getJointJacobian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  joint_id,
const ReferenceFrame  reference_frame,
const Eigen::MatrixBase< Matrix6Like > &  J 
)

Computes the Jacobian of a specific joint frame expressed in one of the pinocchio::ReferenceFrame options.

For the LOCAL reference frame, the Jacobian \({}^j J_{0j}\) from the joint frame \(j\) to the world frame \(0\) is such that \({}^j v_{0j} = {}^j J_{0j} \dot{q}\), where \({}^j v_{0j}\) is the velocity of the origin of the moving joint frame relative to the fixed world frame, projected into the basis of the joint frame. LOCAL_WORLD_ALIGNED is the same velocity but projected into the world frame basis.

For the WORLD reference frame, the Jacobian \({}^0 J_{0j}\) from the joint frame \(j\) to the world frame \(0\) is such that \({}^0 v_{0j} = {}^0 J_{0j} \dot{q}\), where \({}^0 v_{0j}\) is the spatial velocity of the joint frame. The linear component of this spatial velocity is the velocity of a (possibly imaginary) point attached to the moving joint frame j which is traveling through the origin of the world frame at that instant. The angular component is the instantaneous angular velocity of the joint frame as viewed in the world frame.

When serialized to a 6D vector, the order of coordinates is: three linear followed by three angular.

For further details regarding the different velocities or the Jacobian see Chapters 2 and 3 respectively in A Mathematical Introduction to Robotic Manipulation by Murray, Li and Sastry.

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]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]joint_idThe id of the joint.
[in]reference_frameReference frame in which the result is expressed.
[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.).

◆ getJointJacobianTimeVariation()

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

Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD), in the local world aligned (rf = LOCAL_WORLD_ALIGNED) frame 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]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]joint_idThe id of the joint.
[in]reference_frameReference frame in which the result 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.).

◆ getJointKinematicHessian() [1/2]

Tensor<Scalar, 3, Options> pinocchio::getJointKinematicHessian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Model::JointIndex  joint_id,
const ReferenceFrame  rf 
)

Retrieves the kinematic Hessian of a given joint according to the values aleardy computed by computeJointKinematicHessians and stored in data. While the kinematic Jacobian of a given joint frame corresponds to the first order derivative of the placement variation with respect to \( q \), the kinematic Hessian corresponds to the second order derivation of placement variation, which in turns also corresponds to the first order derivative of the kinematic Jacobian.

Template Parameters
ScalarScalar type of the kinematic model.
OptionsAlignement options of the kinematic model.
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]joint_idIndex of the joint in model.
[in]rfReference frame with respect to which the derivative of the Jacobian is expressed.
Returns
The kinematic Hessian of the joint provided by its joint_id and expressed in the frame precised by the variable rf.
Remarks
This function is also related to
See also
computeJointKinematicHessians. This function will proceed to some dynamic memory allocation for the return type. Please refer to getJointKinematicHessian for a version without dynamic memory allocation.

Definition at line 424 of file kinematics-derivatives.hpp.

◆ getJointKinematicHessian() [2/2]

void pinocchio::getJointKinematicHessian ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Model::JointIndex  joint_id,
const ReferenceFrame  rf,
Tensor< Scalar, 3, Options > &  kinematic_hessian 
)

Retrieves the kinematic Hessian of a given joint according to the values aleardy computed by computeJointKinematicHessians and stored in data. While the kinematic Jacobian of a given joint frame corresponds to the first order derivative of the placement variation with respect to \( q \), the kinematic Hessian corresponds to the second order derivation of placement variation, which in turns also corresponds to the first order derivative of the kinematic Jacobian. The frame in which the kinematic Hessian is precised by the input argument rf.

Template Parameters
ScalarScalar type of the kinematic model.
OptionsAlignement options of the kinematic model.
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]joint_idIndex of the joint in model.
[in]rfReference frame with respect to which the derivative of the Jacobian is expressed
[out]kinematic_hessianSecond order derivative of the joint placement w.r.t. \( q \) expressed in the frame given by rf.
Remarks
This function is also related to
See also
computeJointKinematicHessians. kinematic_hessian has to be initialized with zero when calling this function for the first time and there is no dynamic memory allocation.

◆ getJointVelocityDerivatives()

void pinocchio::getJointVelocityDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const 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.

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]v_partial_dqPartial derivative of the joint velociy w.r.t. \( q \).
[out]v_partial_dvPartial derivative of the joint velociy w.r.t. \( v \).

◆ getKKTContactDynamicMatrixInverse()

PINOCCHIO_DEPRECATED void pinocchio::getKKTContactDynamicMatrixInverse ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConstraintMatrixType > &  J,
const Eigen::MatrixBase< KKTMatrixType > &  KKTMatrix_inv 
)

Computes the inverse of the KKT matrix for dynamics with contact constraints.

Deprecated:
forwardDynamics/impuseDynamics is deprecated, and this function signature needs forwardDynamics to be called before. Please use the inverse() function in ContactCholeskyDecomposition class instead. It computes the following matrix:
\( \left[\begin{matrix}\mathbf{M}^{-1}-\mathbf{M}^{-1}\mathbf{J}^{\top}_c\widehat{\mathbf{M}}^{-1}\mathbf{J}_c\mathbf{M}^{-1} & \mathbf{M}^{-1}\mathbf{J}^{\top}_c\widehat{\mathbf{M}}^{-1} \\ \widehat{\mathbf{M}}^{-1}\mathbf{J}_c\mathbf{M}^{-1} & -\widehat{\mathbf{M}}^{-1}\end{matrix}\right] \)


Remarks
The matrix is defined when one's call forwardDynamics/impulseDynamics. This method makes use of the matrix decompositions performed during the forwardDynamics/impulseDynamics and returns the inverse. The jacobian should be the same that the one provided to forwardDynamics/impulseDynamics. Thus forward Dynamics/impulseDynamics should have been called first.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]JJacobian of the constraints.
[out]KKTMatrix_invinverse of the MJtJ matrix.

◆ getPointClassicAccelerationDerivatives() [1/2]

void pinocchio::getPointClassicAccelerationDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Model::JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix3xOut1 > &  v_point_partial_dq,
const Eigen::MatrixBase< Matrix3xOut2 > &  a_point_partial_dq,
const Eigen::MatrixBase< Matrix3xOut3 > &  a_point_partial_dv,
const Eigen::MatrixBase< Matrix3xOut4 > &  a_point_partial_da 
)

Computes the partial derivatives of the classic acceleration of a point given by its placement information w.r.t. the joint frame. 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_point_partial_dq. v_point_partial_dv is not computed it is equal to a_point_partial_da.

Template Parameters
JointCollectionCollection of Joint types.
Matrix3xOut1Matrix3x containing the partial derivatives of the spatial velocity with respect to the joint configuration vector.
Matrix3xOut2Matrix3x containing the partial derivatives of the spatial acceleration with respect to the joint configuration vector.
Matrix3xOut3Matrix3x containing the partial derivatives of the spatial acceleration with respect to the joint velocity vector.
Matrix3xOut4Matrix3x 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]joint_idIndex of the joint in model.
[in]placementRelative placement of the point w.r.t. the joint frame.
[in]rfReference frame in which the Jacobian is expressed (either LOCAL or LOCAL_WORLD_ALIGNED).
[out]v_point_partial_dqPartial derivative of the point velocity w.r.t. \( q \).
[out]a_point_partial_dqPartial derivative of the point classic acceleration w.r.t. \( q \).
[out]a_point_partial_dvPartial derivative of the point classic acceleration w.r.t. \( v \).
[out]a_point_partial_daPartial derivative of the point classic acceleration w.r.t. \( \dot{v} \).

◆ getPointClassicAccelerationDerivatives() [2/2]

void pinocchio::getPointClassicAccelerationDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Model::JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix3xOut1 > &  v_point_partial_dq,
const Eigen::MatrixBase< Matrix3xOut2 > &  v_point_partial_dv,
const Eigen::MatrixBase< Matrix3xOut3 > &  a_point_partial_dq,
const Eigen::MatrixBase< Matrix3xOut4 > &  a_point_partial_dv,
const Eigen::MatrixBase< Matrix3xOut5 > &  a_point_partial_da 
)

Computes the partial derivaties of the classic acceleration of a point given by its placement information w.r.t. to the joint frame. 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_point_partial_dq and v_point_partial_dv..

Template Parameters
JointCollectionCollection of Joint types.
Matrix3xOut1Matrix3x containing the partial derivatives of the spatial velocity with respect to the joint configuration vector.
Matrix3xOut2Matrix3x containing the partial derivatives of the spatial velocity with respect to the joint velocity vector.
Matrix3xOut3Matrix3x containing the partial derivatives of the spatial acceleration with respect to the joint configuration vector.
Matrix3xOut4Matrix3x containing the partial derivatives of the spatial acceleration with respect to the joint velocity vector.
Matrix3xOut5Matrix3x 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]joint_idIndex of the joint in model.
[in]placementRelative placement of the point w.r.t. the joint frame.
[in]rfReference frame in which the Jacobian is expressed (either LOCAL or LOCAL_WORLD_ALIGNED).
[out]v_point_partial_dqPartial derivative of the point velocity w.r.t. \( q \).
[out]v_point_partial_dvPartial derivative of the point velociy w.r.t. \( v \).
[out]a_point_partial_dqPartial derivative of the point classic acceleration w.r.t. \( q \).
[out]a_point_partial_dvPartial derivative of the point classic acceleration w.r.t. \( v \).
[out]a_point_partial_daPartial derivative of the point classic acceleration w.r.t. \( \dot{v} \).

◆ getPointVelocityDerivatives()

void pinocchio::getPointVelocityDerivatives ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Model::JointIndex  joint_id,
const SE3Tpl< Scalar, Options > &  placement,
const ReferenceFrame  rf,
const Eigen::MatrixBase< Matrix3xOut1 > &  v_point_partial_dq,
const Eigen::MatrixBase< Matrix3xOut2 > &  v_point_partial_dv 
)

Computes the partial derivatives of the velocity of a point given by its placement information w.r.t. the joint frame. You must first call computForwardKinematicsDerivatives before calling this function.

Template Parameters
JointCollectionCollection of Joint types.
Matrix3xOut1Matrix3x containing the partial derivatives of the spatial velocity with respect to the joint configuration vector.
Matrix3xOut2Matrix3x containing the partial derivatives of the spatial velocity 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]joint_idIndex of the joint in model.
[in]placementRelative placement of the point w.r.t. the joint frame.
[in]rfReference frame in which the Jacobian is expressed (either LOCAL or LOCAL_WORLD_ALIGNED).
[out]v_point_partial_dqPartial derivative of the point velocity w.r.t. \( q \).
[out]v_point_partial_dvPartial derivative of the point velociy w.r.t. \( v \).

◆ getTotalConstraintSize()

struct PINOCCHIO_UNSUPPORTED_MESSAGE ("The API will change towards more flexibility") RigidConstraintModelTpl size_t pinocchio::getTotalConstraintSize ( const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &  contact_models)

Contact model structure containg all the info describing the rigid contact model.

 

Definition at line 808 of file contact-info.hpp.

◆ getVelocity()

MotionTpl<Scalar, Options> pinocchio::getVelocity ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex  jointId,
const ReferenceFrame  rf = LOCAL 
)

Returns the spatial velocity of the joint expressed in the desired reference frame. 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]jointIdId of the joint
[in]rfReference frame in which the velocity is expressed.
Returns
The spatial velocity of the joint expressed in the desired reference frame.
Warning
Fist or second order forwardKinematics should have been called first

◆ hasConfigurationLimit()

const std::vector<bool> pinocchio::hasConfigurationLimit ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel)
inline

Visit a JointModelTpl through JointConfigurationLimitVisitor to get the configurations limits.

Parameters
[in]jmodelThe JointModelVariant
Returns
The bool with configurations limits of the joint

◆ hasConfigurationLimitInTangent()

const std::vector<bool> pinocchio::hasConfigurationLimitInTangent ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel)
inline

Visit a JointModelTpl through JointConfigurationLimitInTangentVisitor to get the configurations limits in tangent space.

Parameters
[in]jmodelThe JointModelVariant
Returns
The bool with configurations limits in tangent space of the joint

◆ hasSameIndexes()

bool pinocchio::hasSameIndexes ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel_generic,
const JointModelBase< JointModelDerived > &  jmodel 
)

Check whether JointModelTpl<Scalar,...> has the indexes than another JointModelDerived.

Parameters
[in]jmodel_genericThe generic joint model containing a variant.
[in]jmodelThe other joint modelto compare with
Returns
True if the two joints have the same indexes.

◆ Hlog3()

void pinocchio::Hlog3 ( const Eigen::MatrixBase< Matrix3Like1 > &  R,
const Eigen::MatrixBase< Vector3Like > &  v,
const Eigen::MatrixBase< Matrix3Like2 > &  vt_Hlog 
)

Second order derivative of log3.

This computes \( v^T H_{log} \).

Parameters
[in]Rthe rotation matrix.
[in]vthe 3D vector.
[out]vt_Hlogthe product of the Hessian with the input vector

Definition at line 321 of file explog.hpp.

◆ id()

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

◆ idx_q()

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

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.

Parameters
[in]jmodelThe JointModelVariant
Returns
The index in the full model configuration space corresponding to the first degree of freedom of jmodel

◆ idx_v()

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

Visit a JointModelTpl through JointIdxVVisitor to get the index in the full model tangent space corresponding to the first joint tangent space degree.

Parameters
[in]jmodelThe JointModelVariant
Returns
The index in the full model tangent space corresponding to the first joint tangent space degree

◆ impulseDynamics() [1/3]

PINOCCHIO_DEPRECATED 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 Scalar  inv_damping = 0. 
)
inline

Compute the impulse dynamics with contact constraints. Internally, pinocchio::crba is called.

Deprecated:
This function has been deprecated and will be removed in future releases of Pinocchio. Please use the class RigidConstraintModel to define new contacts, and initConstraintDynamics(model, data, contact_models) and impulseDynamics(model, data, q, v_before, contact_models, contact_datas[,r_coeff, mu]) instead.
Note
It solves 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]inv_dampingDamping factor for Cholesky decomposition of JMinvJt. Set to zero if constraints are full rank.
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.

◆ impulseDynamics() [2/3]

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< TangentVectorType1 > &  v_before,
const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &  contact_models,
std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &  contact_datas,
const Scalar  r_coeff,
const ProximalSettingsTpl< Scalar > &  settings 
)

Compute the impulse dynamics with contact constraints. Internally, pinocchio::crba is called.

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.
TangentVectorType1Type of the joint velocity vector.
AllocatorAllocator class for the std::vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]qThe joint configuration (size model.nq).
[in]v_beforeThe joint velocity (size model.nv).
[in]contact_modelsVector of contact information related to the problem.
[in]contact_datasVector of contact datas related to the contact models.
[in]r_coeffcoefficient of restitution: must be in [0.,1.]
[in]muDamping factor for cholesky decomposition. Set to zero if constraints are full rank.
Note
A hint: a typical value for mu is 1e-12 when two contact constraints are redundant.
Returns
A reference to the joint velocities stored in data.dq_after. The Lagrange Multipliers linked to the contact forces are available throw data.impulse_c vector.

◆ impulseDynamics() [3/3]

PINOCCHIO_DEPRECATED const DataTpl<Scalar, Options, JointCollectionTpl>:: TangentVectorType& pinocchio::impulseDynamics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< TangentVectorType > &  v_before,
const Eigen::MatrixBase< ConstraintMatrixType > &  J,
const Scalar  r_coeff = 0.,
const Scalar  inv_damping = 0. 
)
inline

Compute the impulse dynamics with contact constraints, assuming pinocchio::crba has been called.

Deprecated:
This function has been deprecated and will be removed in future releases of Pinocchio. Please use the class RigidConstraintModel to define new contacts, and initConstraintDynamics(model, data, contact_models) and impulseDynamics(model, data, q, v_before, contact_models, contact_datas[,r_coeff, mu]) instead.
Note
It solves 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]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]inv_dampingDamping factor for Cholesky decomposition of JMinvJt. Set to zero if constraints are full rank.
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.

◆ initConstraintDynamics()

void pinocchio::initConstraintDynamics ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &  contact_models 
)
inline

Init the forward dynamics data according to the contact information contained in contact_models.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
AllocatorAllocator class for the std::vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]contact_modelsVector of contact information related to the problem.

◆ initPvSolver()

void pinocchio::initPvSolver ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &  contact_models 
)
inline

Init the data according to the contact information contained in contact_models.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
AllocatorAllocator class for the std::vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]contact_modelsVector of contact information related to the problem.

◆ integrate() [1/5]

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.

◆ integrate() [2/5]

ConfigVectorType pinocchio::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.

Parameters
[in]modelModel of the kinematic tree on which the integration operation is performed.
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
Returns
The integrated configuration (size model.nq)

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

◆ integrate() [3/5]

ConfigVectorType pinocchio::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.

Parameters
[in]modelModel of the kinematic tree on which the integration operation is performed.
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
Returns
The integrated configuration (size model.nq)

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

◆ integrate() [4/5]

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 of the kinematic tree on which the integration is performed.
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[out]qoutThe integrated configuration (size model.nq)

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

◆ integrate() [5/5]

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 of the kinematic tree on which the integration is performed.
[in]qInitial configuration (size model.nq)
[in]vJoint velocity (size model.nv)
[out]qoutThe integrated configuration (size model.nq)

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

◆ integrateCoeffWiseJacobian() [1/2]

void pinocchio::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.

Parameters
[in]modelModel of the kinematic tree.
[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 1079 of file joint-configuration.hpp.

◆ integrateCoeffWiseJacobian() [2/2]

void pinocchio::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.

Parameters
[in]modelModel of the kinematic tree.
[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 1079 of file joint-configuration.hpp.

◆ interpolate() [1/4]

ConfigVectorIn1 pinocchio::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.

Parameters
[in]modelModel of the kinematic tree on which the interpolation operation is performed.
[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 1197 of file joint-configuration.hpp.

◆ interpolate() [2/4]

ConfigVectorIn1 pinocchio::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.

Parameters
[in]modelModel of the kinematic tree on which the interpolation operation is performed.
[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 1197 of file joint-configuration.hpp.

◆ interpolate() [3/4]

void pinocchio::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 of the kinematic tree on which the interpolation is performed.
[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 131 of file joint-configuration.hpp.

◆ interpolate() [4/4]

void pinocchio::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 of the kinematic tree on which the interpolation is performed.
[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 131 of file joint-configuration.hpp.

◆ isEqual() [1/2]

bool pinocchio::isEqual ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jmodel_generic,
const JointDataBase< JointDataDerived > &  jmodel 
)

Visit a JointDataTpl<Scalar,...> to compare it to another JointData.

Parameters
[in]jdata_genericThe generic joint data containing a variant.
[in]jdataThe other joint data for the comparison.
Returns
True if the two joints data are equal.

◆ isEqual() [2/2]

bool pinocchio::isEqual ( const JointModelTpl< Scalar, Options, JointCollectionTpl > &  jmodel_generic,
const JointModelBase< JointModelDerived > &  jmodel 
)

Visit a JointModelTpl<Scalar,...> to compare it to JointModelDerived.

Parameters
[in]jmodel_genericThe generic joint model containing a variant.
[in]jmodelThe other joint model for the comparison.
Returns
True if the two joint models are equal.

◆ isNormalized() [1/3]

bool pinocchio::isNormalized ( const Eigen::MatrixBase< VectorLike > &  vec,
const typename VectorLike::RealScalar &  prec = Eigen::NumTraits<typename VectorLike::Scalar>::dummy_precision() 
)
inline

Check whether the input vector is Normalized within the given precision.

Parameters
[in]vecInput vector
[in]precRequired precision
Returns
true if vec is normalized within the precision prec.

Definition at line 206 of file matrix.hpp.

◆ isNormalized() [2/3]

bool pinocchio::isNormalized ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Scalar &  prec = Eigen::NumTraits< Scalar >::dummy_precision() 
)

Check whether a configuration vector is normalized within the given precision provided by prec.

Parameters
[in]modelModel of the kinematic tree.
[in]qConfiguration to check (size model.nq).
[in]precPrecision.
Returns
Whether the configuration is normalized or not, within the given precision.

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

◆ isNormalized() [3/3]

bool pinocchio::isNormalized ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const Scalar &  prec = Eigen::NumTraits<Scalar>::dummy_precision() 
)

Check whether a configuration vector is normalized within the given precision provided by prec.

Parameters
[in]modelModel of the kinematic tree.
[in]qConfiguration to check (size model.nq).
[in]precPrecision.
Returns
Whether the configuration is normalized or not, within the given precision.

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

◆ isSameConfiguration() [1/2]

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() 
)

Return true if the given configurations are equivalents, within the given precision.

Remarks
Two configurations can be equivalent but not equally coefficient wise (e.g two quaternions with opposite coefficients give rise to the same orientation, i.e. they are equivalent.).
Parameters
[in]modelModel of the kinematic tree.
[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, within the given precision.
Remarks
Two configurations can be equivalent but not equally coefficient wise (e.g two quaternions with opposite coefficients give rise to the same orientation, i.e. they are equivalent.).
Parameters
[in]modelModel of the kinematic tree.
[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 1024 of file joint-configuration.hpp.

◆ isSameConfiguration() [2/2]

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() 
)

Return true if the given configurations are equivalents, within the given precision.

Remarks
Two configurations can be equivalent but not equally coefficient wise (e.g two quaternions with opposite coefficients give rise to the same orientation, i.e. they are equivalent.).
Parameters
[in]modelModel of the kinematic tree.
[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 1024 of file joint-configuration.hpp.

◆ isUnitary()

bool pinocchio::isUnitary ( const Eigen::MatrixBase< MatrixLike > &  mat,
const typename MatrixLike::RealScalar &  prec = Eigen::NumTraits<typename MatrixLike::Scalar>::dummy_precision() 
)
inline

Check whether the input matrix is Unitary within the given precision.

Parameters
[in]matInput matrix
[in]precRequired precision
Returns
true if mat is unitary within the precision prec

Definition at line 155 of file matrix.hpp.

◆ jacobianCenterOfMass() [1/2]

const DataTpl<Scalar, Options, JointCollectionTpl>::Matrix3x& pinocchio::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 (.

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, expressed in the world coordinate frame.
Returns
The jacobian of center of mass position of the rigid body system expressed in the world frame (matrix 3 x model.nv).

◆ jacobianCenterOfMass() [2/2]

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 
)

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 centers of mass of the subtrees, expressed in the world coordinate frame.
Returns
The jacobian of center of mass position of the rigid body system expressed in the world frame (matrix 3 x model.nv).

◆ jacobianSubtreeCenterOfMass() [1/2]

void pinocchio::jacobianSubtreeCenterOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const Eigen::MatrixBase< ConfigVectorType > &  q,
const JointIndex &  rootSubtreeId,
const Eigen::MatrixBase< Matrix3xLike > &  res 
)

Computes the Jacobian of the center of mass of the given subtree according to a particular joint configuration. In addition, the algorithm also computes the Jacobian of all the joints (.

See also
pinocchio::computeJointJacobians).
Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Matrix3xLikeType of the output Jacobian 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]rootSubtreeIdIndex of the parent joint supporting the subtree.
[out]resThe Jacobian matrix where the results will be stored in (dim 3 x model.nv). You must first fill J with zero elements, e.g. J.setZero().

◆ jacobianSubtreeCenterOfMass() [2/2]

void pinocchio::jacobianSubtreeCenterOfMass ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const JointIndex &  rootSubtreeId,
const Eigen::MatrixBase< Matrix3xLike > &  res 
)

Computes the Jacobian of the center of mass of the given subtree according to the current value stored in data. It assumes that forwardKinematics has been called first.

Template Parameters
JointCollectionCollection of Joint types.
Matrix3xLikeType of the output Jacobian matrix.
Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]rootSubtreeIdIndex of the parent joint supporting the subtree.
[out]resThe Jacobian matrix where the results will be stored in (dim 3 x model.nv). You must first fill J with zero elements, e.g. J.setZero().

◆ Jexp3() [1/2]

void pinocchio::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}{||r||^2} (1-\frac{\sin{||r||}}{||r||}) r r^T \]

Definition at line 118 of file explog.hpp.

◆ Jexp3() [2/2]

void pinocchio::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}{||r||^2} (1-\frac{\sin{||r||}}{||r||}) r r^T \]

Definition at line 192 of file explog.hpp.

◆ Jlog3() [1/2]

void pinocchio::Jlog3 ( const Eigen::MatrixBase< Matrix3Like1 > &  R,
const Eigen::MatrixBase< Matrix3Like2 > &  Jlog 
)

Derivative of log3.

Parameters
[in]Rthe rotation matrix.
[out]Jlogthe jacobian

Equivalent to

double theta;
Vector3 log = pinocchio::log3 (R, theta);
pinocchio::Jlog3 (theta, log, Jlog);
void Jlog3(const Scalar &theta, const Eigen::MatrixBase< Vector3Like > &log, const Eigen::MatrixBase< Matrix3Like > &Jlog)
Derivative of log3.
Definition: explog.hpp:240
Eigen::Matrix< typename Matrix3Like::Scalar, 3, 1, Matrix3Like ::Options > log3(const Eigen::MatrixBase< Matrix3Like > &R, typename Matrix3Like::Scalar &theta)
Same as log3.
Definition: explog.hpp:83

Definition at line 262 of file explog.hpp.

◆ Jlog3() [2/2]

void pinocchio::Jlog3 ( const Scalar &  theta,
const Eigen::MatrixBase< Vector3Like > &  log,
const Eigen::MatrixBase< Matrix3Like > &  Jlog 
)

Derivative of log3.

This function is the right derivative of log3, that is, for \(R \in SO(3)\) and \(\omega t in \mathfrak{so}(3)\), it provides the linear approximation:

\[ \log_3(R \oplus \omega t) = \log_3(R \exp_3(\omega t)) \approx \log_3(R) + \text{Jlog3}(R) \omega t \]

Parameters
[in]thetathe angle value.
[in]logthe output of log3.
[out]Jlogthe jacobian

Equivalently, \(\text{Jlog3}\) is the right Jacobian of \(\log_3\):

\[ \text{Jlog3}(R) = \frac{\partial \log_3(R)}{\partial R} \]

Note that this is the right Jacobian: \(\text{Jlog3}(R) : T_{R} SO(3) \to T_{\log_6(R)} \mathfrak{so}(3)\). (By convention, calculations in Pinocchio always perform right differentiation, i.e., Jacobians are in local coordinates (also known as body coordinates), unless otherwise specified.)

If we denote by \(\theta = \log_3(R)\) and \(\log = \log_3(R, \theta)\), then \(\text{Jlog} = \text{Jlog}_3(R)\) can be calculated as:

\[ \begin{align*} \text{Jlog} & = \frac{\theta \sin(\theta)}{2 (1 - \cos(\theta))} I_3 + \frac{1}{2} \widehat{\log} + \left(\frac{1}{\theta^2} - \frac{\sin(\theta)}{2\theta(1-\cos(\theta))}\right) \log \log^T \\ & = I_3 + \frac{1}{2} \widehat{\log} + \left(\frac{1}{\theta^2} - \frac{1 + \cos \theta}{2 \theta \sin \theta}\right) \widehat{\log}^2 \end{align*} \]

where \(\widehat{v}\) denotes the skew-symmetric matrix obtained from the 3D vector \(v\).

Note
The inputs must be such that \( \theta = \Vert \log \Vert \).

Definition at line 240 of file explog.hpp.

◆ Jlog6() [1/2]

Eigen::Matrix<Scalar, 6, 6, Options> pinocchio::Jlog6 ( const SE3Tpl< Scalar, Options > &  M)

Derivative of log6.

  This function is the right derivative of log6, that is, for \(M \in SE(3)\) and \(\xi in \mathfrak{se}(3)\), it provides the linear approximation:

\[ \log_6(M \oplus \xi) = \log_6(M \exp_6(\xi)) \approx \log_6(M) + \text{Jlog6}(M) \xi \]

Equivalently, \(\text{Jlog6}\) is the right Jacobian of \(\log_6\):

\[ \text{Jlog6}(M) = \frac{\partial \log_6(M)}{\partial M} \]

Note that this is the right Jacobian: \(\text{Jlog6}(M) : T_{M} SE(3) \to T_{\log_6(M)} \mathfrak{se}(3)\). (By convention, calculations in Pinocchio always perform right differentiation, i.e., Jacobians are in local coordinates (also known as body coordinates), unless otherwise specified.)

Internally, it is calculated using the following formulas:

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

where

\[ M = \left(\begin{array}{cc} \exp(\mathbf{r}) & \mathbf{p} \\ 0 & 1 \\ \end{array}\right) \]

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

and

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

Remarkable identity:
For \((A,B) \in SE(3)^2\), let \(M_1(A, B) = A B\) and \(m_1 = \log_6(M_1) \). Then, we have the following partial (right) Jacobians:
  • \( \frac{\partial m_1}{\partial A} = Jlog_6(M_1) Ad_B^{-1} \),
  • \( \frac{\partial m_1}{\partial B} = Jlog_6(M_1) \).
Remarkable identity:
Let \(A \in SE(3)\), \(M_2(A) = A^{-1}\) and \(m_2 = \log_6(M_2)\). Then, we have the following partial (right) Jacobian:
  • \( \frac{\partial m_2}{\partial A} = - Jlog_6(M_2) Ad_A \).
Parameters
[in]MThe rigid transformation.

Definition at line 679 of file explog.hpp.

◆ Jlog6() [2/2]

void pinocchio::Jlog6 ( const SE3Tpl< Scalar, Options > &  M,
const Eigen::MatrixBase< Matrix6Like > &  Jlog 
)

Derivative of log6.

This function is the right derivative of log6, that is, for \(M \in SE(3)\) and \(\xi in \mathfrak{se}(3)\), it provides the linear approximation:

\[ \log_6(M \oplus \xi) = \log_6(M \exp_6(\xi)) \approx \log_6(M) + \text{Jlog6}(M) \xi \]

Equivalently, \(\text{Jlog6}\) is the right Jacobian of \(\log_6\):

\[ \text{Jlog6}(M) = \frac{\partial \log_6(M)}{\partial M} \]

Note that this is the right Jacobian: \(\text{Jlog6}(M) : T_{M} SE(3) \to T_{\log_6(M)} \mathfrak{se}(3)\). (By convention, calculations in Pinocchio always perform right differentiation, i.e., Jacobians are in local coordinates (also known as body coordinates), unless otherwise specified.)

Internally, it is calculated using the following formulas:

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

where

\[ M = \left(\begin{array}{cc} \exp(\mathbf{r}) & \mathbf{p} \\ 0 & 1 \\ \end{array}\right) \]

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

and

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

Remarkable identity:
For \((A,B) \in SE(3)^2\), let \(M_1(A, B) = A B\) and \(m_1 = \log_6(M_1) \). Then, we have the following partial (right) Jacobians:
  • \( \frac{\partial m_1}{\partial A} = Jlog_6(M_1) Ad_B^{-1} \),
  • \( \frac{\partial m_1}{\partial B} = Jlog_6(M_1) \).
Remarkable identity:
Let \(A \in SE(3)\), \(M_2(A) = A^{-1}\) and \(m_2 = \log_6(M_2)\). Then, we have the following partial (right) Jacobian:
  • \( \frac{\partial m_2}{\partial A} = - Jlog_6(M_2) Ad_A \).

Definition at line 668 of file explog.hpp.

◆ joint_motin_subspace_xd()

JointMotionSubspaceTpl<Eigen::Dynamic, Scalar, Options> pinocchio::joint_motin_subspace_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

◆ joint_q()

JointDataTpl<Scalar, Options, JointCollectionTpl>::ConfigVector_t pinocchio::joint_q ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata)
inline

Visit a JointDataVariant through JointConfigVisitor to get the joint configuration vector.

Parameters
[in]jdataThe joint data to visit.
Returns
The current value of the joint configuration vector

◆ joint_transform()

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)

◆ joint_v()

JointDataTpl<Scalar, Options, JointCollectionTpl>::TangentVector_t pinocchio::joint_v ( const JointDataTpl< Scalar, Options, JointCollectionTpl > &  jdata)
inline

Visit a JointDataVariant through JointConfigVisitor to get the joint velocity vector.

Parameters
[in]jdataThe joint data to visit.
Returns
The current value of the joint velocity vector

◆ jointBodyRegressor()

DataTpl<Scalar, Options, JointCollectionTpl>::BodyRegressorType& pinocchio::jointBodyRegressor ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
JointIndex  joint_id 
)
inline

Computes the regressor for the dynamic parameters of a rigid body attached to a given joint, puts the result in data.bodyRegressor and returns it.

This algorithm assumes RNEA has been run to compute the acceleration and gravitational effects.

The result is such that \( f = \text{jointBodyRegressor(model,data,joint_id) * I.toDynamicParameters()} \) where \( f \) is the net force acting on the body, including gravity

Parameters
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]joint_idThe id of the joint.
Returns
The regressor of the body.

◆ log3() [1/2]

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

Log: SO(3)-> so(3).

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 103 of file explog.hpp.

◆ log3() [2/2]

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 83 of file explog.hpp.

◆ log6() [1/3]

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 \to { v,\omega \in \mathfrak{se}(3), ||\omega|| < 2\pi } \).

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

Definition at line 475 of file explog.hpp.

◆ log6() [2/3]

MotionTpl<typename Vector3Like::Scalar, Vector3Like::Options> pinocchio::log6 ( const Eigen::QuaternionBase< QuaternionLike > &  quat,
const Eigen::MatrixBase< Vector3Like > &  vec 
)

Log: SE3 -> se3.

Pseudo-inverse of exp from \( SE3 \to { v,\omega \in \mathfrak{se}(3), ||\omega|| < 2\pi } \), using the quaternion representation of the rotation.

Parameters
[in]quatThe rotation quaternion.
[in]vecThe translation vector.
Returns
The twist associated to the rigid transformation during time 1.

Definition at line 454 of file explog.hpp.

◆ log6() [3/3]

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

Log: SE3 -> se3.

Pseudo-inverse of exp from \( SE3 \to { v,\omega \in \mathfrak{se}(3), ||\omega|| < 2\pi } \).

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

Definition at line 435 of file explog.hpp.

◆ motion()

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

◆ name()

std::string pinocchio::name ( const LieGroupGenericTpl< LieGroupCollection > &  lg)
inline

Visit a LieGroupVariant to get the name of it.

Parameters
[in]lgthe LieGroupVariant.
Returns
The Lie group name

◆ neutral() [1/5]

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

◆ neutral() [2/5]

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

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

Parameters
[in]modelModel of the kinematic tree on which the neutral element is computed.
Returns
The neutral configuration element (size model.nq).

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

◆ neutral() [3/5]

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

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

Parameters
[in]modelModel of the kinematic tree on which the neutral element is computed.
Returns
The neutral configuration element (size model.nq).

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

◆ neutral() [4/5]

void pinocchio::neutral ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ReturnType > &  qout 
)

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

Parameters
[in]modelModel of the kinematic tree on which the neutral element is computed
[out]qoutThe neutral configuration element (size model.nq).
[in]modelModel of the kinematic tree on which the neutral element is computed.
[out]qoutThe neutral configuration element (size model.nq).

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

◆ neutral() [5/5]

void pinocchio::neutral ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ReturnType > &  qout 
)

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

Parameters
[in]modelModel of the kinematic tree on which the neutral element is computed.
[out]qoutThe neutral configuration element (size model.nq).

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

◆ nonLinearEffects()

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 
)

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.

◆ normalize() [1/3]

void pinocchio::normalize ( const Eigen::MatrixBase< VectorLike > &  vec)
inline

Normalize the input vector.

Parameters
[in]vecInput vector

Definition at line 249 of file matrix.hpp.

◆ normalize() [2/3]

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

Normalize a configuration vector.

Parameters
[in]modelModel of the kinematic tree.
[in,out]qConfiguration to normalize (size model.nq).

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

◆ normalize() [3/3]

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

Normalize a configuration vector.

Parameters
[in]modelModel of the kinematic tree.
[in,out]qConfiguration to normalize (size model.nq).

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

◆ normalizeRotation()

void pinocchio::normalizeRotation ( const Eigen::MatrixBase< Matrix3 > &  rot)

Orthogonormalization procedure for a rotation matrix (closed enough to SO(3)).

Parameters
[in,out]rotA 3x3 matrix to orthonormalize

Definition at line 80 of file rotation.hpp.

◆ nq() [1/2]

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

Visit a JointModelTpl through JointNqVisitor to get the dimension of the joint configuration space.

Parameters
[in]jmodelThe JointModelVariant
Returns
The dimension of joint configuration space

◆ nq() [2/2]

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

◆ nv() [1/2]

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

Visit a JointModelTpl through JointNvVisitor to get the dimension of the joint tangent space.

Parameters
[in]jmodelThe JointModelVariant
Returns
The dimension of joint tangent space

◆ nv() [2/2]

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

◆ operator*() [1/2]

MultiplicationOp<Eigen::MatrixBase<MatrixDerived>, ConstraintDerived>::ReturnType pinocchio::operator* ( const Eigen::MatrixBase< MatrixDerived > &  Y,
const JointMotionSubspaceBase< ConstraintDerived > &  constraint 
)

 

Operation Y_matrix * S used in the ABA algorithm for instance

Definition at line 161 of file joint-motion-subspace-base.hpp.

◆ operator*() [2/2]

MultiplicationOp<InertiaTpl<Scalar, Options>, ConstraintDerived>::ReturnType pinocchio::operator* ( const InertiaTpl< Scalar, Options > &  Y,
const JointMotionSubspaceBase< ConstraintDerived > &  constraint 
)

 

Operation Y * S used in the CRBA algorithm for instance

Definition at line 150 of file joint-motion-subspace-base.hpp.

◆ orthogonalProjection()

Matrix3 pinocchio::orthogonalProjection ( const Eigen::MatrixBase< Matrix3 > &  mat)

Orthogonal projection of a matrix on the SO(3) manifold.

Parameters
[in]matA 3x3 matrix to project on SO(3).
Returns
the orthogonal projection of mat on SO(3)

Definition at line 105 of file rotation.hpp.

◆ orthonormalisation()

void pinocchio::orthonormalisation ( const Eigen::MatrixBase< MatrixType > &  basis,
const Eigen::MatrixBase< VectorType > &  vec_ 
)

Perform the Gram-Schmidt orthonormalisation on the input/output vector for a given input basis.

 

 

Parameters
[in]basisOrthonormal basis  
[in,out]vecVector to orthonomarlize wrt the input basis

Definition at line 20 of file gram-schmidt-orthonormalisation.hpp.

◆ PI()

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 27 of file fwd.hpp.

◆ PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS() [1/4]

pinocchio::PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS ( (typename ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType)  ) const

Generate a configuration vector uniformly sampled among given 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 of the kinematic tree on which the uniform sampling operation is performed.
[in]lowerLimitsJoints lower limits (size model.nq).
[in]upperLimitsJoints upper limits (size model.nq).
Returns
The resulting configuration vector (size model.nq).

◆ PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS() [2/4]

pinocchio::PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS ( (typename ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType)  ) const

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 of the kinematic tree on which the uniform sampling operation is performed.
[in]lowerLimitsJoints lower limits (size model.nq).
[in]upperLimitsJoints upper limits (size model.nq).
Returns
The resulting configuration vector (size model.nq)

◆ PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS() [3/4]

pinocchio::PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS ( (typename ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType)  ) const

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 of the kinematic tree on which the uniform sampling operation is performed.
Returns
The resulting configuration vector (size model.nq)

◆ PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS() [4/4]

pinocchio::PINOCCHIO_EIGEN_PLAIN_TYPE_NO_PARENS ( (typename ModelTpl< Scalar, Options, JointCollectionTpl >::ConfigVectorType)  ) const

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 of the kinematic tree on which the uniform sampling operation is performed.
Returns
The resulting configuration vector (size model.nq).

◆ PINOCCHIO_UNSUPPORTED_MESSAGE()

struct pinocchio::PINOCCHIO_UNSUPPORTED_MESSAGE ( "The API will change towards more flexibility"  )

Contact Cholesky decomposition structure. This structure allows to compute in a efficient and parsimonious way the Cholesky decomposition of the KKT matrix related to the contact dynamics. Such a decomposition is usefull when computing both the forward dynamics in contact or the related analytical derivatives.

 

Template Parameters
_ScalarScalar type.  
_OptionsAlignment Options of the Eigen objects contained in the data structure.

Data information related to the Sparsity structure of the Cholesky decompostion

Definition at line 1 of file contact-cholesky.hpp.

◆ pv()

const DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType& pinocchio::pv ( 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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ContactModelAllocator > &  contact_models,
std::vector< RigidConstraintDataTpl< Scalar, Options >, ContactDataAllocator > &  contact_datas,
ProximalSettingsTpl< Scalar > &  settings 
)
inline

The Popov-Vereshchagin algorithm. It computes constrained forward dynamics, aka the joint accelerations and constraint forces given the current state, actuation and the constraints on the system. All the quantities are expressed in the LOCAL coordinate systems of the joint frames.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
TangentVectorType1Type of the joint velocity vector.
TangentVectorType2Type of the joint torque vector.
AllocatorAllocator class for the std::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]contact_modelsVector of contact models.
[in]contact_datasVector of contact data.
[in]settingsProximal settings (mu, accuracy and maximal number of iterations).
Note
This also overwrites data.f, possibly leaving it in an inconsistent state.
Returns
A reference to the joint acceleration stored in data.ddq. data.lambdaA[0] stores the constraint forces.

◆ randomConfiguration() [1/2]

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 of the system on which the random configuration operation is performed.
[in]lowerLimitsJoints lower limits (size model.nq).
[in]upperLimitsJoints upper limits (size model.nq).
[out]qoutThe resulting configuration vector (size model.nq).
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 of the system on which the random configuration operation is performed.
[in]lowerLimitsJoints lower limits (size model.nq).
[in]upperLimitsJoints upper limits (size model.nq).
[out]qoutThe resulting configuration vector (size model.nq).

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

◆ randomConfiguration() [2/2]

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 of the system on which the random configuration operation is performed.
[in]lowerLimitsJoints lower limits (size model.nq).
[in]upperLimitsJoints upper limits (size model.nq).
[out]qoutThe resulting configuration vector (size model.nq).

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

◆ randomStringGenerator()

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

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

Parameters
[in]lenThe length of the output string.
Returns
a random string composed of alphanumeric symbols.

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

◆ reachableWorkspace()

void pinocchio::reachableWorkspace ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q0,
const double  time_horizon,
const int  frame_id,
Eigen::MatrixXd &  vertex,
const ReachableSetParams params = ReachableSetParams() 
)

Computes the reachable workspace on a fixed time horizon. For more information, please see https://gitlab.inria.fr/auctus-team/people/antunskuric/pycapacity.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]qThe initial joint configuration vector (dim model.nq).
[in]frame_idIndex of the frame for which the workspace should be computed.
[in]time_horizontime horizon for which the polytope will be computed (in seconds)
[in]paramsparameters of the algorithm
[out]pointsinside of the reachable workspace

◆ reachableWorkspaceHull()

void pinocchio::reachableWorkspaceHull ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const Eigen::MatrixBase< ConfigVectorType > &  q0,
const double  time_horizon,
const int  frame_id,
ReachableSetResults res,
const ReachableSetParams params = ReachableSetParams() 
)

Computes the convex Hull reachable workspace on a fixed time horizon. For more information, please see https://gitlab.inria.fr/auctus-team/people/antunskuric/pycapacity.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]qThe initial joint configuration vector (dim model.nq).
[in]frame_idIndex of the frame for which the workspace should be computed.
[in]time_horizontime horizon for which the polytope will be computed (in seconds)
[in]paramsparameters of the algorithm
[out]resResults of algorithm

◆ reachableWorkspaceWithCollisions()

void pinocchio::reachableWorkspaceWithCollisions ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const GeometryModel geom_model,
const Eigen::MatrixBase< ConfigVectorType > &  q0,
const double  time_horizon,
const int  frame_id,
Eigen::MatrixXd &  vertex,
const ReachableSetParams params = ReachableSetParams() 
)

Computes the reachable workspace with respect to a geometry model on a fixed time horizon. For more information, please see https://gitlab.inria.fr/auctus-team/people/antunskuric/pycapacity.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]qThe initial joint configuration vector (dim model.nq).
[in]frame_idIndex of the frame for which the workspace should be computed.
[in]time_horizontime horizon for which the polytope will be computed (in seconds)
[in]paramsparameters of the algorithm
[out]pointsinside of the reachable workspace

◆ reachableWorkspaceWithCollisionsHull()

void pinocchio::reachableWorkspaceWithCollisionsHull ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const GeometryModel geom_model,
const Eigen::MatrixBase< ConfigVectorType > &  q0,
const double  time_horizon,
const int  frame_id,
ReachableSetResults res,
const ReachableSetParams params = ReachableSetParams() 
)

Computes the convex Hull of the reachable workspace with respect to a geometry model on a fixed time horizon. Make sure that reachable workspace takes into account collisions with environment. For more information, please see https://gitlab.inria.fr/auctus-team/people/antunskuric/pycapacity.

Template Parameters
JointCollectionCollection of Joint types.
ConfigVectorTypeType of the joint configuration vector.
Parameters
[in]modelThe model structure of the rigid body system.
[in]geom_modelGeometry model, to take into accout collision with the environment
[in]qThe initial joint configuration vector (dim model.nq).
[in]frame_idIndex of the frame for which the workspace should be computed.
[in]time_horizontime horizon for which the polytope will be computed (in seconds)
[in]paramsparameters of the algorithm
[out]resResults of algorithm

◆ replace()

bool pinocchio::replace ( std::string &  input_str,
const std::string &  from,
const std::string &  to 
)
inline

Replace string from with to in input_str.

Parameters
[in]input_strstring on which replace operates.
[in]fromThe string to replace.
[in]toThe string to replace the old value with.
Returns
true if from has been found within input_str

Definition at line 22 of file string.hpp.

◆ retrieveLargestEigenvalue()

VectorLike::Scalar pinocchio::retrieveLargestEigenvalue ( const Eigen::MatrixBase< VectorLike > &  eigenvector)

Compute the lagest eigenvalue of a given matrix. This is taking the eigenvector computed by the function computeLargestEigenvector.

 

Definition at line 206 of file eigenvalues.hpp.

◆ retrieveResourcePath()

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 URL-format. Currently convert from the following 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 60 of file utils.hpp.

◆ rnea() [1/2]

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 
)

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.

◆ rnea() [2/2]

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 
)

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.

◆ rneaInParallel()

void pinocchio::rneaInParallel ( const size_t  num_threads,
ModelPoolTpl< Scalar, Options, JointCollectionTpl > &  pool,
const Eigen::MatrixBase< ConfigVectorPool > &  q,
const Eigen::MatrixBase< TangentVectorPool1 > &  v,
const Eigen::MatrixBase< TangentVectorPool2 > &  a,
const Eigen::MatrixBase< TangentVectorPool3 > &  tau 
)

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.
ConfigVectorPoolMatrix type of the joint configuration vector.
TangentVectorPool1Matrix type of the joint velocity vector.
TangentVectorPool2Matrix type of the joint acceleration vector.
TangentVectorPool3Matrix type of the joint torque vector.
Parameters
[in]poolPool containing model and data for parallel computations.
[in]num_threadsNumber of threads used for parallel computations.
[in]qThe joint configuration vector (dim model.nq x batch_size).
[in]vThe joint velocity vector (dim model.nv x batch_size).
[in]aThe joint acceleration vector (dim model.nv x batch_size).
[out]tauThe joint torque vector (dim model.nv x batch_size).

Definition at line 40 of file rnea.hpp.

◆ rosPaths()

PINOCCHIO_PARSERS_DLLAPI std::vector<std::string> pinocchio::rosPaths ( )

Parse the environment variables ROS_PACKAGE_PATH / AMENT_PREFIX_PATH and extract paths.

Returns
The vector of paths extracted from the environment variables ROS_PACKAGE_PATH / AMENT_PREFIX_PATH

◆ setIndexes()

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

◆ shortname()

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

◆ SINCOS()

void pinocchio::SINCOS ( const S1 &  a,
S2 *  sa,
S3 *  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.
[out]saVariable containing the sin of a.
[out]caVariable containing the cos of a.

Definition at line 27 of file sincos.hpp.

◆ skew() [1/2]

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 51 of file skew.hpp.

◆ skew() [2/2]

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 22 of file skew.hpp.

◆ skewSquare() [1/2]

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 skew[u] * skew[v].

Definition at line 210 of file skew.hpp.

◆ skewSquare() [2/2]

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 182 of file skew.hpp.

◆ squaredDistance() [1/4]

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

Squared distance between two configurations.

Parameters
[in]modelModel of the kinematic tree on which the squared distance operation is performed.
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
Returns
The corresponding squared distances for each joint (size model.njoints-1, corresponding to the number of joints)

Squared distance between two configurations.

Parameters
[in]modelModel of the kinematic tree on which the squared distance operation is performed.
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
Returns
The corresponding squared distances for each joint (size model.njoints-1, corresponding to the number of joints)

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

◆ squaredDistance() [2/4]

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

Squared distance between two configuration vectors.

Squared distance between two configurations.

Parameters
[in]modelModel of the kinematic tree on which the squared distance operation is performed.
[in]q0Configuration 0 (size model.nq)
[in]q1Configuration 1 (size model.nq)
Returns
The corresponding squared distances for each joint (size model.njoints-1, corresponding to the number of joints)

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

◆ squaredDistance() [3/4]

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 of the system on which the squared distance operation is performed.
[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 257 of file joint-configuration.hpp.

◆ squaredDistance() [4/4]

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 of the system on which the squared distance operation is performed.
[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 257 of file joint-configuration.hpp.

◆ squaredDistanceSum() [1/2]

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

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

Overall squared distance between two configuration vectors.

Parameters
[in]modelModel of the kinematic tree
[in]q0Configuration from (size model.nq)
[in]q1Configuration to (size model.nq)
Returns
The squared distance between the two configurations q0 and q1.

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

◆ squaredDistanceSum() [2/2]

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

Overall squared distance between two configuration vectors, namely \( || q_{1} \ominus q_{0} ||_2^{2} \).

Overall squared distance between two configuration vectors.

Parameters
[in]modelModel of the kinematic tree
[in]q0Configuration from (size model.nq)
[in]q1Configuration to (size model.nq)
Returns
The squared distance between the two configurations q0 and q1.

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

◆ stu_inertia()

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

Visit a JointDataTpl through JointStUInertiaVisitor to get St*I*S matrix of the inertia matrix decomposition.

Parameters
[in]jdataThe joint data to visit.
Returns
The St*I*S matrix

◆ toRotationMatrix() [1/2]

void pinocchio::toRotationMatrix ( const Eigen::MatrixBase< Vector3 > &  axis,
const Scalar &  angle,
const Eigen::MatrixBase< Matrix3 > &  res 
)

Computes a rotation matrix from a vector and the angular value orientations values.

Remarks
This code is issue from Eigen::AxisAngle::toRotationMatrix

Definition at line 64 of file rotation.hpp.

◆ toRotationMatrix() [2/2]

void pinocchio::toRotationMatrix ( const Eigen::MatrixBase< Vector3 > &  axis,
const Scalar &  cos_value,
const Scalar &  sin_value,
const Eigen::MatrixBase< Matrix3 > &  res 
)

Computes a rotation matrix from a vector and values of sin and cos orientations values.

Remarks
This code is issue from Eigen::AxisAngle::toRotationMatrix

Definition at line 26 of file rotation.hpp.

◆ triangularMatrixMatrixProduct()

void pinocchio::triangularMatrixMatrixProduct ( const Eigen::MatrixBase< LhsMatrix > &  lhs_mat,
const Eigen::MatrixBase< RhsMatrix > &  rhs_mat,
const Eigen::MatrixBase< ResMat > &  res 
)
inline

Evaluate the product of a triangular matrix times a matrix. Eigen showing a bug at this level, in the case of vector entry.

Parameters
[in]lhs_matInput tringular matrix
[in]rhs_matRight hand side operand in the multplication
[in]resResulting matrix

Definition at line 59 of file triangular-matrix.hpp.

◆ u_inertia()

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

◆ udinv_inertia()

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

◆ unSkew() [1/2]

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 117 of file skew.hpp.

◆ unSkew() [2/2]

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 93 of file skew.hpp.

◆ updateFramePlacement()

const DataTpl<Scalar, Options, JointCollectionTpl>::SE3& pinocchio::updateFramePlacement ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const 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

◆ updateFramePlacements()

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.

◆ updateGeometryPlacements() [1/2]

void pinocchio::updateGeometryPlacements ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
const DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geom_model,
GeometryData geom_data 
)
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]geom_modelThe geometry model containing the collision objects.
[out]geom_dataThe geometry data containing the placements of the collision objects. See oMg field in GeometryData.

◆ updateGeometryPlacements() [2/2]

void pinocchio::updateGeometryPlacements ( const ModelTpl< Scalar, Options, JointCollectionTpl > &  model,
DataTpl< Scalar, Options, JointCollectionTpl > &  data,
const GeometryModel geom_model,
GeometryData geom_data,
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]geom_modelThe geometry model containing the collision objects.
[out]geom_dataThe geometry data containing the placements of the collision objects. See oMg field in GeometryData.
[in]qThe joint configuration vector (dim model.nq).

◆ updateGlobalPlacements()

void pinocchio::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.

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.

Variable Documentation

◆ Dynamic

const int Dynamic = -1

This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is stored in some runtime variable.

Definition at line 140 of file fwd.hpp.

◆ model

JointCollectionTpl & model
Initial value:
{
return randomConfiguration<LieGroupMap, Scalar, Options, JointCollectionTpl>(model)

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

◆ upperLimits

JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > const Eigen::MatrixBase< ConfigVectorIn2 > & upperLimits
Initial value:
{
LieGroupMap, Scalar, Options, JointCollectionTpl, ConfigVectorIn1, ConfigVectorIn2>(
model, lowerLimits.derived(), upperLimits.derived())
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.

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