se3 Namespace Reference

Namespaces

namespace  buildModels
namespace  cholesky
namespace  forceSet
namespace  fusion
namespace  internal
namespace  lua
namespace  motionSet
namespace  prismatic
namespace  python
namespace  revolute
namespace  urdf

Classes

struct  JacobianCenterOfMassForwardStep
struct  JacobianCenterOfMassBackwardStep
struct  CrbaForwardStep
struct  CrbaBackwardStep
struct  JacobiansForwardStep
struct  JacobianForwardStep
struct  JointLimitsStep
struct  emptyForwardStep
struct  ForwardKinematicZeroStep
struct  ForwardKinematicFirstStep
struct  ForwardKinematicSecondStep
struct  NLEForwardStep
struct  NLEBackwardStep
struct  RneaForwardStep
struct  RneaBackwardStep
class  Exception
class  ConstraintBase
struct  traits< ConstraintTpl< D, T, U > >
class  ConstraintTpl
class  ForceSetTpl
class  IsSameCollisionPair
struct  DistanceResult
class  GeometryModel
class  GeometryData
struct  JointDataBase
struct  SizeDepType
struct  SizeDepType< Eigen::Dynamic >
struct  JointModelBase
struct  traits< JointDense< _NQ, _NV > >
struct  traits< JointDataDense< _NQ, _NV > >
struct  traits< JointModelDense< _NQ, _NV > >
struct  JointDataDense
struct  JointModelDense
struct  traits< ConstraintIdentity >
struct  ConstraintIdentity
struct  traits< JointFreeFlyer >
struct  traits< JointDataFreeFlyer >
struct  traits< JointModelFreeFlyer >
struct  JointDataFreeFlyer
struct  JointModelFreeFlyer
struct  traits< JointGeneric >
struct  traits< JointDataGeneric >
struct  traits< JointModelGeneric >
struct  JointDataGeneric
struct  JointModelGeneric
struct  traits< MotionPlanar >
struct  MotionPlanar
struct  traits< ConstraintPlanar >
struct  ConstraintPlanar
struct  traits< JointPlanar >
struct  traits< JointDataPlanar >
struct  traits< JointModelPlanar >
struct  JointDataPlanar
struct  JointModelPlanar
struct  traits< MotionPrismaticUnaligned >
struct  MotionPrismaticUnaligned
struct  traits< ConstraintPrismaticUnaligned >
struct  ConstraintPrismaticUnaligned
struct  traits< JointPrismaticUnaligned >
struct  traits< JointDataPrismaticUnaligned >
struct  traits< JointModelPrismaticUnaligned >
struct  JointDataPrismaticUnaligned
struct  JointModelPrismaticUnaligned
struct  traits< MotionPrismatic< axis > >
struct  MotionPrismatic
struct  traits< ConstraintPrismatic< axis > >
struct  ConstraintPrismatic
struct  JointPrismatic
struct  traits< JointPrismatic< axis > >
struct  traits< JointDataPrismatic< axis > >
struct  traits< JointModelPrismatic< axis > >
struct  JointDataPrismatic
struct  JointModelPrismatic
struct  traits< MotionRevoluteUnaligned >
struct  MotionRevoluteUnaligned
struct  traits< ConstraintRevoluteUnaligned >
struct  ConstraintRevoluteUnaligned
struct  traits< JointRevoluteUnaligned >
struct  traits< JointDataRevoluteUnaligned >
struct  traits< JointModelRevoluteUnaligned >
struct  JointDataRevoluteUnaligned
struct  JointModelRevoluteUnaligned
struct  traits< MotionRevolute< axis > >
struct  MotionRevolute
struct  traits< ConstraintRevolute< axis > >
struct  ConstraintRevolute
struct  JointRevolute
struct  traits< JointRevolute< axis > >
struct  traits< JointDataRevolute< axis > >
struct  traits< JointModelRevolute< axis > >
struct  JointDataRevolute
struct  JointModelRevolute
struct  JointSphericalZYXTpl
struct  traits< JointSphericalZYX >
struct  traits< JointDataSphericalZYX >
struct  traits< JointModelSphericalZYX >
struct  JointDataSphericalZYX
struct  JointModelSphericalZYX
struct  traits< MotionSpherical >
struct  MotionSpherical
struct  traits< struct ConstraintRotationalSubspace >
struct  ConstraintRotationalSubspace
struct  traits< JointSpherical >
struct  traits< JointDataSpherical >
struct  traits< JointModelSpherical >
struct  JointDataSpherical
struct  JointModelSpherical
struct  traits< MotionTranslation >
struct  MotionTranslation
struct  traits< ConstraintTranslationSubspace >
struct  ConstraintTranslationSubspace
struct  traits< JointTranslation >
struct  traits< JointDataTranslation >
struct  traits< JointModelTranslation >
struct  JointDataTranslation
struct  JointModelTranslation
class  CreateJointData
class  Joint_nv
class  Joint_nq
class  Joint_idx_q
class  Joint_idx_v
class  Joint_lowerPosLimit
class  Joint_upperPosLimit
class  Joint_maxEffortLimit
class  Joint_maxVelocityLimit
class  Model
class  Data
struct  CATForwardStep
struct  CATBackwardStep
class  ForceBase
struct  traits< ForceTpl< T, U > >
class  ForceTpl
struct  traits
class  InertiaBase
struct  traits< InertiaTpl< T, U > >
class  InertiaTpl
class  MotionBase
struct  traits< MotionTpl< T, U > >
class  MotionTpl
struct  traits< BiasZero >
struct  BiasZero
class  SE3Base
 The rigid transform aMb can be seen in two ways: More...
struct  traits< SE3Tpl< T, U > >
class  SE3Tpl
class  Symmetric3Tpl

Typedefs

typedef ConstraintTpl
< 1, double, 0 > 
Constraint1d
typedef ConstraintTpl
< 3, double, 0 > 
Constraint3d
typedef ConstraintTpl
< 6, double, 0 > 
Constraint6d
typedef ConstraintTpl
< Eigen::Dynamic, double, 0 > 
ConstraintXd
typedef ForceSetTpl< double, 0 > ForceSet
typedef JointPrismatic< 0 > JointPX
typedef JointDataPrismatic< 0 > JointDataPX
typedef JointModelPrismatic< 0 > JointModelPX
typedef JointPrismatic< 1 > JointPY
typedef JointDataPrismatic< 1 > JointDataPY
typedef JointModelPrismatic< 1 > JointModelPY
typedef JointPrismatic< 2 > JointPZ
typedef JointDataPrismatic< 2 > JointDataPZ
typedef JointModelPrismatic< 2 > JointModelPZ
typedef JointRevolute< 0 > JointRX
typedef JointDataRevolute< 0 > JointDataRX
typedef JointModelRevolute< 0 > JointModelRX
typedef JointRevolute< 1 > JointRY
typedef JointDataRevolute< 1 > JointDataRY
typedef JointModelRevolute< 1 > JointModelRY
typedef JointRevolute< 2 > JointRZ
typedef JointDataRevolute< 2 > JointDataRZ
typedef JointModelRevolute< 2 > JointModelRZ
typedef JointSphericalZYXTpl
< double, 0 > 
JointSphericalZYX
typedef boost::variant
< JointModelRX, JointModelRY,
JointModelRZ,
JointModelRevoluteUnaligned,
JointModelSpherical,
JointModelSphericalZYX,
JointModelPX, JointModelPY,
JointModelPZ,
JointModelPrismaticUnaligned,
JointModelFreeFlyer,
JointModelPlanar,
JointModelTranslation,
JointModelDense<-1,-1 > > 
JointModelVariant
typedef boost::variant
< JointDataRX, JointDataRY,
JointDataRZ,
JointDataRevoluteUnaligned,
JointDataSpherical,
JointDataSphericalZYX,
JointDataPX, JointDataPY,
JointDataPZ,
JointDataPrismaticUnaligned,
JointDataFreeFlyer,
JointDataPlanar,
JointDataTranslation,
JointDataDense<-1,-1 > > 
JointDataVariant
typedef std::vector
< JointModelVariant
JointModelVector
typedef std::vector
< JointDataVariant
JointDataVector
typedef ForceTpl< double, 0 > Force
typedef InertiaTpl< double, 0 > Inertia
typedef MotionTpl< double, 0 > Motion
typedef SE3Tpl< double, 0 > SE3
typedef Symmetric3Tpl< double, 0 > Symmetric3

Enumerations

enum  { MAX_JOINT_NV = 6 }
enum  ModelFileExtensionType {
  UNKNOWN = 0,
  URDF,
  LUA
}
 Supported model file extensions. More...

Functions

const Eigen::Vector3d & centerOfMass (const Model &model, Data &data, const Eigen::VectorXd &q, const bool computeSubtreeComs=true, const bool updateKinematics=true)
 Computes the center of mass position of a given model according to a particular joint configuration.
void centerOfMassAcceleration (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a, const bool computeSubtreeComs=true, const bool updateKinematics=true)
 Computes the center of mass position, velocity and acceleration of a given model according to a particular joint configuration, velocity and acceleration.
const Eigen::Matrix< double,
3, Eigen::Dynamic > & 
jacobianCenterOfMass (const Model &model, Data &data, const Eigen::VectorXd &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.
const Eigen::Vector3d & getComFromCrba (const Model &model, Data &data)
 Extracts the center of mass position from the joint space inertia matrix (also called the mass matrix).
const Eigen::Matrix< double,
3, Eigen::Dynamic > & 
getJacobianComFromCrba (const Model &model, Data &data)
 Extracts both the jacobian of the center of mass (CoM) and the CoM position from the joint space inertia matrix (also called the mass matrix).
void updateCollisionGeometry (const Model &model, Data &data, const GeometryModel &geom, GeometryData &data_geom, const Eigen::VectorXd &q, const bool computeGeometry=false)
bool computeCollisions (const Model &model, Data &data, const GeometryModel &model_geom, GeometryData &data_geom, const Eigen::VectorXd &q, const bool stopAtFirstCollision=false)
bool computeCollisions (GeometryData &data_geom, const bool stopAtFirstCollision=false)
void computeDistances (GeometryData &data_geom)
void computeDistances (const Model &model, Data &data, const GeometryModel &model_geom, GeometryData &data_geom, const Eigen::VectorXd &q)
const Eigen::MatrixXd & crba (const Model &model, Data &data, const Eigen::VectorXd &q)
 Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R.
double kineticEnergy (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const bool update_kinematics=true)
 Computes the kinetic energy of the system.
double potentialEnergy (const Model &model, Data &data, const Eigen::VectorXd &q, const bool update_kinematics=true)
 Computes the potential energy of the system, i.e.
const Data::Matrix6xcomputeJacobians (const Model &model, Data &data, const Eigen::VectorXd &q)
 Computes the full model jacobian, i.e.
template<bool localFrame>
void getJacobian (const Model &model, const Data &data, Model::Index jointId, Eigen::MatrixXd &J)
 Computes the jacobian of a specific joint frame expressed either in the world frame or in the local frame of the joint.
const Data::Matrix6xjacobian (const Model &model, Data &data, const Eigen::VectorXd &q, const Model::Index &jointId)
 Computes the jacobian of a specific joint frame expressed in the local frame of the joint.
void jointLimits (const Model &model, Data &data, const Eigen::VectorXd &q)
void emptyForwardPass (const Model &model, Data &data)
 Browse through the model tree structure with an empty step.
void forwardKinematics (const Model &model, Data &data, const Eigen::VectorXd &q)
void forwardKinematics (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v)
void forwardKinematics (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a)
const Eigen::VectorXd & nonLinearEffects (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v)
const Eigen::VectorXd & rnea (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a)
std::ostream & operator<< (std::ostream &os, const GeometryModel &model_geom)
std::ostream & operator<< (std::ostream &os, const GeometryData &data_geom)
template<typename D >
Motion operator* (const ConstraintIdentity &, const Eigen::MatrixBase< D > &v)
Inertia::Matrix6 operator* (const Inertia &Y, const ConstraintIdentity &)
template<typename D >
const Eigen::MatrixBase< D > & operator* (const ConstraintIdentity::TransposeConst &, const Eigen::MatrixBase< D > &F)
const MotionPlanar operator+ (const MotionPlanar &m, const BiasZero &)
Motion operator+ (const MotionPlanar &m1, const Motion &m2)
template<typename D >
Motion operator* (const ConstraintPlanar &, const Eigen::MatrixBase< D > &v)
Motion operator^ (const Motion &m1, const MotionPlanar &m2)
Eigen::Matrix
< Inertia::Scalar_t, 6, 3 > 
operator* (const Inertia &Y, const ConstraintPlanar &)
const MotionPrismaticUnalignedoperator+ (const MotionPrismaticUnaligned &m, const BiasZero &)
Motion operator+ (const MotionPrismaticUnaligned &m1, const Motion &m2)
Motion operator^ (const Motion &m1, const MotionPrismaticUnaligned &m2)
Eigen::Matrix< double, 6, 1 > operator* (const Inertia &Y, const ConstraintPrismaticUnaligned &cpu)
template<int axis>
const MotionPrismatic< axis > & operator+ (const MotionPrismatic< axis > &m, const BiasZero &)
template<int axis>
Motion operator+ (const MotionPrismatic< axis > &m1, const Motion &m2)
Motion operator^ (const Motion &m1, const MotionPrismatic< 0 > &m2)
Motion operator^ (const Motion &m1, const MotionPrismatic< 1 > &m2)
Motion operator^ (const Motion &m1, const MotionPrismatic< 2 > &m2)
Eigen::Matrix< double, 6, 1 > operator* (const Inertia &Y, const ConstraintPrismatic< 0 > &)
Eigen::Matrix< double, 6, 1 > operator* (const Inertia &Y, const ConstraintPrismatic< 1 > &)
Eigen::Matrix< double, 6, 1 > operator* (const Inertia &Y, const ConstraintPrismatic< 2 > &)
const MotionRevoluteUnalignedoperator+ (const MotionRevoluteUnaligned &m, const BiasZero &)
Motion operator+ (const MotionRevoluteUnaligned &m1, const Motion &m2)
Motion operator^ (const Motion &m1, const MotionRevoluteUnaligned &m2)
Eigen::Matrix< double, 6, 1 > operator* (const Inertia &Y, const ConstraintRevoluteUnaligned &cru)
template<int axis>
const MotionRevolute< axis > & operator+ (const MotionRevolute< axis > &m, const BiasZero &)
template<int axis>
Motion operator+ (const MotionRevolute< axis > &m1, const Motion &m2)
Motion operator^ (const Motion &m1, const MotionRevolute< 0 > &m2)
Motion operator^ (const Motion &m1, const MotionRevolute< 1 > &m2)
Motion operator^ (const Motion &m1, const MotionRevolute< 2 > &m2)
Eigen::Matrix< double, 6, 1 > operator* (const Inertia &Y, const ConstraintRevolute< 0 > &)
Eigen::Matrix< double, 6, 1 > operator* (const Inertia &Y, const ConstraintRevolute< 1 > &)
Eigen::Matrix< double, 6, 1 > operator* (const Inertia &Y, const ConstraintRevolute< 2 > &)
Motion operator^ (const Motion &m1, const JointSphericalZYX::MotionSpherical &m2)
template<typename _Scalar , int _Options>
const Eigen::CoeffBasedProduct
< Eigen::Matrix< _Scalar,
6, 3, _Options >
, Eigen::Matrix< _Scalar,
3, 3, _Options >
, 6 >::PlainObject 
operator* (const InertiaTpl< _Scalar, _Options > &Y, const typename JointSphericalZYXTpl< _Scalar, _Options >::ConstraintRotationalSubspace &S)
const MotionSpherical operator+ (const MotionSpherical &m, const BiasZero &)
Motion operator+ (const MotionSpherical &m1, const Motion &m2)
template<typename D >
Motion operator* (const ConstraintRotationalSubspace &, const Eigen::MatrixBase< D > &v)
Motion operator^ (const Motion &m1, const MotionSpherical &m2)
Eigen::Matrix< double, 6, 3 > operator* (const Inertia &Y, const ConstraintRotationalSubspace &)
const MotionTranslation operator+ (const MotionTranslation &m, const BiasZero &)
Motion operator+ (const MotionTranslation &m1, const Motion &m2)
template<typename D >
Motion operator* (const ConstraintTranslationSubspace &, const Eigen::MatrixBase< D > &v)
Motion operator^ (const Motion &m1, const MotionTranslation &m2)
Eigen::Matrix< double, 6, 3 > operator* (const Inertia &Y, const ConstraintTranslationSubspace &)
int nv (const JointModelVariant &jmodel)
int nq (const JointModelVariant &jmodel)
int idx_q (const JointModelVariant &jmodel)
int idx_v (const JointModelVariant &jmodel)
Eigen::MatrixXd lowerPosLimit (const JointModelVariant &jmodel)
Eigen::MatrixXd upperPosLimit (const JointModelVariant &jmodel)
Eigen::MatrixXd maxEffortLimit (const JointModelVariant &jmodel)
Eigen::MatrixXd maxVelocityLimit (const JointModelVariant &jmodel)
std::ostream & operator<< (std::ostream &os, const Model &model)
std::string random (const int len)
ModelFileExtensionType checkModelFileExtension (const std::string &filename)
 Extract the type of the given model file according to its extension.
void computeAllTerms (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v)
template<typename D >
Eigen::Matrix< typename
D::Scalar, 3, 3, D::Options > 
exp3 (const Eigen::MatrixBase< D > &v)
 Exp: so3 -> SO3.
template<typename D >
Eigen::Matrix< typename
D::Scalar, 3, 1, D::Options > 
log3 (const Eigen::MatrixBase< D > &R)
 Log: SO3 -> so3.
template<typename _Scalar , int _Options>
SE3Tpl< _Scalar, _Options > exp6 (const MotionTpl< _Scalar, _Options > &nu)
 Exp: se3 -> SE3.
template<typename D >
SE3Tpl< typename D::Scalar,
D::Options > 
exp6 (const Eigen::MatrixBase< D > &v)
 Exp: se3 -> SE3.
template<typename _Scalar , int _Options>
MotionTpl< _Scalar, _Options > log6 (const SE3Tpl< _Scalar, _Options > &M)
 Log: SE3 -> se3.
template<typename D >
MotionTpl< typename D::Scalar,
D::Options > 
log6 (const Eigen::MatrixBase< D > &M)
 Log: SE3 -> se3.
fcl::Matrix3f toFclMatrix3f (const Eigen::Matrix3d &mat)
Eigen::Matrix3d toMatrix3d (const fcl::Matrix3f &mat)
fcl::Vec3f toFclVec3f (const Eigen::Vector3d &vec)
Eigen::Vector3d toVector3d (const fcl::Vec3f &vec)
fcl::Transform3f toFclTransform3f (const se3::SE3 &m)
se3::SE3 toPinocchioSE3 (const fcl::Transform3f &tf)
template<typename S , int O>
MotionTpl< S, O > operator^ (const MotionTpl< S, O > &m1, const MotionTpl< S, O > &m2)
template<typename S , int O>
ForceTpl< S, O > operator^ (const MotionTpl< S, O > &m, const ForceTpl< S, O > &f)
const Motionoperator+ (const Motion &v, const BiasZero &)
const Motionoperator+ (const BiasZero &, const Motion &v)
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.
template<typename D >
Eigen::Matrix< typename
D::Scalar, 3, 1, D::Options > 
unSkew (const Eigen::MatrixBase< D > &M)
 Inverse operation related to skew.
template<typename D >
Eigen::Matrix< typename
D::Scalar, 3, 3, D::Options > 
alphaSkew (const typename D::Scalar s, const Eigen::MatrixBase< D > &v)
template<typename V , typename M >
Eigen::Matrix< typename
M::Scalar,
3, M::ColsAtCompileTime,
M::Options > 
cross (const Eigen::MatrixBase< V > &v, const Eigen::MatrixBase< M > &m)

Typedef Documentation

typedef ConstraintTpl<1,double,0> se3::Constraint1d
typedef ConstraintTpl<3,double,0> se3::Constraint3d
typedef ConstraintTpl<6,double,0> se3::Constraint6d
typedef ConstraintTpl<Eigen::Dynamic,double,0> se3::ConstraintXd
typedef ForceTpl<double,0> se3::Force
typedef ForceSetTpl<double,0> se3::ForceSet
typedef InertiaTpl<double,0> se3::Inertia
typedef std::vector<JointDataVariant> se3::JointDataVector
typedef MotionTpl<double,0> se3::Motion
typedef SE3Tpl<double,0> se3::SE3
typedef Symmetric3Tpl<double,0> se3::Symmetric3

Enumeration Type Documentation

anonymous enum
Enumerator:
MAX_JOINT_NV 

Supported model file extensions.

Enumerator:
UNKNOWN 
URDF 
LUA 

Function Documentation

template<typename D >
Eigen::Matrix<typename D::Scalar,3,3,D::Options> se3::alphaSkew ( const typename D::Scalar  s,
const Eigen::MatrixBase< D > &  v 
) [inline]

Referenced by exp6(), log6(), and operator*().

const Eigen::Vector3d & se3::centerOfMass ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const bool  computeSubtreeComs = true,
const bool  updateKinematics = true 
) [inline]

Computes the center of mass position of a given model according to a particular joint configuration.

The result is accessible throw 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).

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.
[in]updateKinematicsIf true, the algorithm updates first the geometry of the tree. Otherwise, it uses the current kinematics stored in data.
Returns:
The center of mass position of the rigid body system expressed in the world frame (vector 3).

References se3::Data::com, forwardKinematics(), se3::Model::inertias, se3::Data::liMi, se3::Data::mass, se3::Model::nbody, se3::Model::parents, se3::SE3Base< Derived >::rotation(), and se3::SE3Base< Derived >::translation().

Referenced by se3::python::AlgorithmsPythonVisitor::com_proxy().

void se3::centerOfMassAcceleration ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  v,
const Eigen::VectorXd &  a,
const bool  computeSubtreeComs = true,
const bool  updateKinematics = true 
) [inline]

Computes the center of mass position, velocity and acceleration of a given model according to a particular joint configuration, velocity and acceleration.

The result is accessible throw 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).

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.
[in]updateKinematicsIf true, the algorithm updates first the second order kinematics of the tree. Otherwise, it uses the current kinematics stored in data.

References se3::Data::a, se3::Data::acom, se3::MotionBase< Derived >::angular(), se3::Data::com, forwardKinematics(), se3::Model::inertias, se3::Data::liMi, se3::MotionBase< Derived >::linear(), se3::Data::mass, se3::Model::nbody, se3::Model::parents, se3::SE3Base< Derived >::rotation(), se3::SE3Base< Derived >::translation(), se3::Data::v, and se3::Data::vcom.

Referenced by se3::python::AlgorithmsPythonVisitor::com_acceleration_proxy(), and computeAllTerms().

ModelFileExtensionType se3::checkModelFileExtension ( const std::string &  filename)

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

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

References LUA, UNKNOWN, and URDF.

bool se3::computeCollisions ( const Model model,
Data data,
const GeometryModel model_geom,
GeometryData data_geom,
const Eigen::VectorXd &  q,
const bool  stopAtFirstCollision = false 
) [inline]
bool se3::computeCollisions ( GeometryData data_geom,
const bool  stopAtFirstCollision = false 
) [inline]
void se3::computeDistances ( GeometryData data_geom) [inline]
void se3::computeDistances ( const Model model,
Data data,
const GeometryModel model_geom,
GeometryData data_geom,
const Eigen::VectorXd &  q 
) [inline]
const Data::Matrix6x & se3::computeJacobians ( const Model model,
Data data,
const Eigen::VectorXd &  q 
) [inline]

Computes the full model jacobian, i.e.

the stack of all motion subspace expressed in the world frame. The result is accessible throw data.J.

Note:
This jacobian does not correspond to a specific joint frame jacobian. From this jacobian, it is then possible to easily extract the jacobian of a specific joint frame.
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).

References se3::Data::J, se3::Model::joints, se3::Data::joints, se3::Model::nbody, and se3::fusion::JointVisitor< JacobiansForwardStep >::run().

Referenced by se3::python::AlgorithmsPythonVisitor::compute_jacobians_proxy(), and se3::python::AlgorithmsPythonVisitor::jacobian_proxy().

const Eigen::MatrixXd & se3::crba ( const Model model,
Data data,
const Eigen::VectorXd &  q 
) [inline]

Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R.

Featherstone, 2008). The result is accessible throw data.M.

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

References se3::Model::joints, se3::Data::joints, se3::Data::M, se3::Model::nbody, and se3::fusion::JointVisitor< CrbaForwardStep >::run().

Referenced by se3::python::AlgorithmsPythonVisitor::crba_proxy().

template<typename V , typename M >
Eigen::Matrix<typename M::Scalar,3,M::ColsAtCompileTime,M::Options> se3::cross ( const Eigen::MatrixBase< V > &  v,
const Eigen::MatrixBase< M > &  m 
) [inline]
void se3::emptyForwardPass ( const Model model,
Data data 
) [inline]

Browse through the model tree structure with an empty step.

Parameters:
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.

References se3::Model::joints, se3::Data::joints, se3::Model::nbody, and se3::fusion::JointVisitor< emptyForwardStep >::run().

template<typename D >
Eigen::Matrix<typename D::Scalar,3,3,D::Options> se3::exp3 ( const Eigen::MatrixBase< D > &  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.

References nv().

Referenced by se3::python::ExplogPythonVisitor::exp3_proxy(), and exp6().

template<typename _Scalar , int _Options>
SE3Tpl<_Scalar, _Options> se3::exp6 ( const MotionTpl< _Scalar, _Options > &  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.

References alphaSkew(), se3::MotionBase< MotionTpl< _Scalar, _Options > >::angular(), exp3(), and se3::MotionBase< MotionTpl< _Scalar, _Options > >::linear().

Referenced by exp6(), se3::python::ExplogPythonVisitor::exp6FromMotion_proxy(), and se3::python::ExplogPythonVisitor::exp6FromVector_proxy().

template<typename D >
SE3Tpl<typename D::Scalar, D::Options> se3::exp6 ( const Eigen::MatrixBase< D > &  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..

References exp6().

void se3::forwardKinematics ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  v 
) [inline]
void se3::forwardKinematics ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  v,
const Eigen::VectorXd &  a 
) [inline]
const Eigen::Vector3d & se3::getComFromCrba ( const Model model,
Data data 
) [inline]

Extracts the center of mass position from the joint space inertia matrix (also called the mass 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).

References se3::Data::com, se3::Data::liMi, and se3::Data::Ycrb.

template<bool localFrame>
void se3::getJacobian ( const Model model,
const Data data,
Model::Index  jointId,
Eigen::MatrixXd &  J 
)

Computes the jacobian of a specific joint frame expressed either in the world frame or in the local frame of the joint.

This jacobian is extracted from data.J. Please first run once se3::computeJacobians before.

Parameters:
[in]localFrameExpressed the jacobian in the local frame or world frame coordinates system.
[in]modelThe model structure of the rigid body system.
[in]dataThe data structure of the rigid body system.
[in]jointIdThe id of the joint.
[in]JA reference on the jacobian matrix where the results will be stored in (dim 6 x model.nv).

References idx_v(), se3::Data::J, se3::Model::joints, nv(), se3::Data::oMi, and se3::Data::parents_fromRow.

const Eigen::Matrix< double, 3, Eigen::Dynamic > & se3::getJacobianComFromCrba ( const Model model,
Data data 
) [inline]

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

The results are accessible throw data.Jcom and data.com[0] and are both expressed in the world frame.

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

References se3::Data::Jcom, se3::Data::liMi, se3::Data::M, se3::Model::nv, and se3::SE3Base< Derived >::rotation().

Referenced by computeAllTerms().

int se3::idx_q ( const JointModelVariant &  jmodel) [inline]
int se3::idx_v ( const JointModelVariant &  jmodel) [inline]

References se3::Joint_idx_v::run().

Referenced by getJacobian().

const Data::Matrix6x & se3::jacobian ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const Model::Index jointId 
) [inline]

Computes the jacobian of a specific joint frame expressed in the local frame of the joint.

The result is stored in data.J.

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

References se3::Data::iMf, se3::Data::J, se3::Model::joints, se3::Data::joints, se3::Model::parents, and se3::fusion::JointVisitor< JacobiansForwardStep >::run().

const Eigen::Matrix< double, 3, Eigen::Dynamic > & se3::jacobianCenterOfMass ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const bool  computeSubtreeComs = true 
) [inline]

Computes both the jacobian and the the center of mass position of a given model according to a particular joint configuration.

The results are accessible throw data.Jcom and data.com[0] and are both expressed in the world frame. And data.com[i] gives the center of mass of the subtree supported by joint i (expressed in the joint i frame).

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

References se3::Data::com, se3::Data::Jcom, se3::Model::joints, se3::Data::joints, se3::Data::mass, se3::Model::nbody, and se3::fusion::JointVisitor< JacobianCenterOfMassForwardStep >::run().

Referenced by se3::python::AlgorithmsPythonVisitor::Jcom_proxy().

void se3::jointLimits ( const Model model,
Data data,
const Eigen::VectorXd &  q 
) [inline]
double se3::kineticEnergy ( const Model &  model,
Data &  data,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  v,
const bool  update_kinematics = true 
) [inline]

Computes the kinetic energy of the system.

The result is accessible throw data.kinetic_energy.

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

References forwardKinematics(), se3::Model::inertias, se3::Data::kinetic_energy, se3::Model::nbody, and se3::Data::v.

Referenced by se3::python::AlgorithmsPythonVisitor::kineticEnergy_proxy().

template<typename D >
Eigen::Matrix<typename D::Scalar,3,1,D::Options> se3::log3 ( const Eigen::MatrixBase< D > &  R)

Log: SO3 -> so3.

Pseudo-inverse of log from SO3 -> { v so3, ||v|| < 2pi }.

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

Referenced by se3::python::ExplogPythonVisitor::log3_proxy(), and log6().

template<typename _Scalar , int _Options>
MotionTpl<_Scalar,_Options> se3::log6 ( const SE3Tpl< _Scalar, _Options > &  M)

Log: SE3 -> se3.

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

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

References alphaSkew(), log3(), se3::SE3Base< SE3Tpl< _Scalar, _Options > >::rotation(), and se3::SE3Base< SE3Tpl< _Scalar, _Options > >::translation().

Referenced by log6(), se3::python::ExplogPythonVisitor::log6FromMatrix_proxy(), and se3::python::ExplogPythonVisitor::log6FromSE3_proxy().

template<typename D >
MotionTpl<typename D::Scalar,D::Options> se3::log6 ( const Eigen::MatrixBase< D > &  M)

Log: SE3 -> se3.

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

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

References log6().

Eigen::MatrixXd se3::lowerPosLimit ( const JointModelVariant &  jmodel) [inline]
Eigen::MatrixXd se3::maxEffortLimit ( const JointModelVariant &  jmodel) [inline]
Eigen::MatrixXd se3::maxVelocityLimit ( const JointModelVariant &  jmodel) [inline]
const Eigen::VectorXd & se3::nonLinearEffects ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  v 
) [inline]
int se3::nq ( const JointModelVariant &  jmodel) [inline]

References se3::Joint_nq::run().

int se3::nv ( const JointModelVariant &  jmodel) [inline]

References se3::Joint_nv::run().

Referenced by exp3(), and getJacobian().

template<typename D >
Motion se3::operator* ( const ConstraintIdentity &  ,
const Eigen::MatrixBase< D > &  v 
)
Inertia::Matrix6 se3::operator* ( const Inertia &  Y,
const ConstraintIdentity &   
) [inline]
template<typename D >
const Eigen::MatrixBase<D>& se3::operator* ( const ConstraintIdentity::TransposeConst &  ,
const Eigen::MatrixBase< D > &  F 
)
template<typename D >
Motion se3::operator* ( const ConstraintRotationalSubspace &  ,
const Eigen::MatrixBase< D > &  v 
)
template<typename D >
Motion se3::operator* ( const ConstraintTranslationSubspace &  ,
const Eigen::MatrixBase< D > &  v 
)
Eigen::Matrix<double, 6, 3> se3::operator* ( const Inertia &  Y,
const ConstraintRotationalSubspace &   
) [inline]
Eigen::Matrix<double, 6, 3> se3::operator* ( const Inertia &  Y,
const ConstraintTranslationSubspace &   
) [inline]
template<typename D >
Motion se3::operator* ( const ConstraintPlanar &  ,
const Eigen::MatrixBase< D > &  v 
)
Eigen::Matrix<double,6,1> se3::operator* ( const Inertia &  Y,
const ConstraintPrismaticUnaligned &  cpu 
) [inline]
template<typename _Scalar , int _Options>
const Eigen::CoeffBasedProduct< Eigen::Matrix < _Scalar, 6, 3, _Options >, Eigen::Matrix < _Scalar, 3, 3, _Options >, 6 >::PlainObject se3::operator* ( const InertiaTpl< _Scalar, _Options > &  Y,
const typename JointSphericalZYXTpl< _Scalar, _Options >::ConstraintRotationalSubspace &  S 
)
Eigen::Matrix<double,6,1> se3::operator* ( const Inertia &  Y,
const ConstraintRevoluteUnaligned &  cru 
) [inline]
Eigen::Matrix<double,6,1> se3::operator* ( const Inertia &  Y,
const ConstraintPrismatic< 0 > &   
) [inline]
Eigen::Matrix<double,6,1> se3::operator* ( const Inertia &  Y,
const ConstraintPrismatic< 1 > &   
) [inline]
Eigen::Matrix<double,6,1> se3::operator* ( const Inertia &  Y,
const ConstraintRevolute< 0 > &   
) [inline]
Eigen::Matrix<double,6,1> se3::operator* ( const Inertia &  Y,
const ConstraintPrismatic< 2 > &   
) [inline]
Eigen::Matrix<double,6,1> se3::operator* ( const Inertia &  Y,
const ConstraintRevolute< 1 > &   
) [inline]
Eigen::Matrix<double,6,1> se3::operator* ( const Inertia &  Y,
const ConstraintRevolute< 2 > &   
) [inline]
const MotionPrismaticUnaligned& se3::operator+ ( const MotionPrismaticUnaligned &  m,
const BiasZero &   
) [inline]
Motion se3::operator+ ( const MotionPrismaticUnaligned &  m1,
const Motion &  m2 
) [inline]
const MotionRevoluteUnaligned& se3::operator+ ( const MotionRevoluteUnaligned &  m,
const BiasZero &   
) [inline]
const MotionPlanar se3::operator+ ( const MotionPlanar &  m,
const BiasZero &   
) [inline]
const MotionSpherical se3::operator+ ( const MotionSpherical &  m,
const BiasZero &   
) [inline]
Motion se3::operator+ ( const MotionRevoluteUnaligned &  m1,
const Motion &  m2 
) [inline]
Motion se3::operator+ ( const MotionSpherical &  m1,
const Motion &  m2 
) [inline]
const MotionTranslation se3::operator+ ( const MotionTranslation &  m,
const BiasZero &   
) [inline]
Motion se3::operator+ ( const MotionTranslation &  m1,
const Motion &  m2 
) [inline]
template<int axis>
const MotionPrismatic<axis>& se3::operator+ ( const MotionPrismatic< axis > &  m,
const BiasZero &   
)
template<int axis>
const MotionRevolute<axis>& se3::operator+ ( const MotionRevolute< axis > &  m,
const BiasZero &   
)
template<int axis>
Motion se3::operator+ ( const MotionPrismatic< axis > &  m1,
const Motion &  m2 
)
template<int axis>
Motion se3::operator+ ( const MotionRevolute< axis > &  m1,
const Motion &  m2 
)
const Motion& se3::operator+ ( const Motion &  v,
const BiasZero &   
) [inline]
const Motion& se3::operator+ ( const BiasZero &  ,
const Motion &  v 
) [inline]
std::ostream& se3::operator<< ( std::ostream &  os,
const Model &  model 
) [inline]
std::ostream& se3::operator<< ( std::ostream &  os,
const GeometryModel &  model_geom 
) [inline]
std::ostream& se3::operator<< ( std::ostream &  os,
const GeometryData &  data_geom 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionSpherical &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionTranslation &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const JointSphericalZYX::MotionSpherical &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionPrismaticUnaligned &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionRevoluteUnaligned &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionRevolute< 0 > &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionPrismatic< 0 > &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionRevolute< 1 > &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionPrismatic< 1 > &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionRevolute< 2 > &  m2 
) [inline]
Motion se3::operator^ ( const Motion &  m1,
const MotionPrismatic< 2 > &  m2 
) [inline]
template<typename S , int O>
MotionTpl<S,O> se3::operator^ ( const MotionTpl< S, O > &  m1,
const MotionTpl< S, O > &  m2 
)
template<typename S , int O>
ForceTpl<S,O> se3::operator^ ( const MotionTpl< S, O > &  m,
const ForceTpl< S, O > &  f 
)
double se3::potentialEnergy ( const Model &  model,
Data &  data,
const Eigen::VectorXd &  q,
const bool  update_kinematics = true 
) [inline]

Computes the potential energy of the system, i.e.

the potential energy linked to the gravity field. The result is accessible throw data.potential_energy.

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 in [J].

References forwardKinematics(), se3::Model::gravity, se3::Model::inertias, se3::MotionBase< Derived >::linear(), se3::Model::nbody, se3::Data::oMi, and se3::Data::potential_energy.

Referenced by se3::python::AlgorithmsPythonVisitor::potentialEnergy_proxy().

std::string se3::random ( const int  len) [inline]
const Eigen::VectorXd & se3::rnea ( const Model model,
Data data,
const Eigen::VectorXd &  q,
const Eigen::VectorXd &  v,
const Eigen::VectorXd &  a 
) [inline]
fcl::Matrix3f se3::toFclMatrix3f ( const Eigen::Matrix3d &  mat) [inline]

Referenced by toFclTransform3f().

fcl::Transform3f se3::toFclTransform3f ( const se3::SE3 m)
fcl::Vec3f se3::toFclVec3f ( const Eigen::Vector3d &  vec) [inline]

Referenced by toFclTransform3f().

Eigen::Matrix3d se3::toMatrix3d ( const fcl::Matrix3f &  mat) [inline]

Referenced by toPinocchioSE3().

se3::SE3 se3::toPinocchioSE3 ( const fcl::Transform3f &  tf)

References toMatrix3d(), and toVector3d().

Eigen::Vector3d se3::toVector3d ( const fcl::Vec3f &  vec) [inline]
template<typename D >
Eigen::Matrix<typename D::Scalar,3,1,D::Options> se3::unSkew ( const Eigen::MatrixBase< D > &  M) [inline]

Inverse operation related to skew.

From a given skew-symmetric matrix M of dimension 3x3, it extracts the supporting vector, i.e. the entries of M.

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

Referenced by se3::InertiaTpl< _Scalar, _Options >::InertiaTpl().

void se3::updateCollisionGeometry ( const Model model,
Data data,
const GeometryModel geom,
GeometryData data_geom,
const Eigen::VectorXd &  q,
const bool  computeGeometry = false 
) [inline]
Eigen::MatrixXd se3::upperPosLimit ( const JointModelVariant &  jmodel) [inline]