rbd::InverseStatics Class Reference

#include <RBDyn/RBDyn/IS.h>

Public Member Functions

 InverseStatics ()
 
 InverseStatics (const MultiBody &mb)
 
void setJacobianSize (const MultiBody &mb, const MultiBodyConfig &mbc, const std::vector< Eigen::MatrixXd > &jacMomentsAndForces)
 
void inverseStatics (const MultiBody &mb, MultiBodyConfig &mbc)
 
void computeTorqueJacobianJoint (const MultiBody &mb, MultiBodyConfig &mbc, const std::vector< Eigen::MatrixXd > &jacMomentsAndForces)
 
void computeTorqueJacobianJoint (const MultiBody &mb, MultiBodyConfig &mbc)
 
void sInverseStatics (const MultiBody &mb, MultiBodyConfig &mbc)
 
const std::vector< sva::ForceVecd > & f () const
 Get the internal forces. More...
 
const std::vector< Eigen::MatrixXd > & jointTorqueDiff () const
 

Detailed Description

Inverse Dynamics algorithm.

Constructor & Destructor Documentation

◆ InverseStatics() [1/2]

rbd::InverseStatics::InverseStatics ( )
inline

◆ InverseStatics() [2/2]

rbd::InverseStatics::InverseStatics ( const MultiBody mb)
Parameters
mbMultiBody associated with this algorithm.

Member Function Documentation

◆ computeTorqueJacobianJoint() [1/2]

void rbd::InverseStatics::computeTorqueJacobianJoint ( const MultiBody mb,
MultiBodyConfig mbc 
)

Default version of computeTorqeuJacobienJoint The external forces are assumed constant w.r.t q

◆ computeTorqueJacobianJoint() [2/2]

void rbd::InverseStatics::computeTorqueJacobianJoint ( const MultiBody mb,
MultiBodyConfig mbc,
const std::vector< Eigen::MatrixXd > &  jacMomentsAndForces 
)

Compute the derivatives of the torques calculated by the inverse statics w.r.t. q and forces WARNING: This computes the derivative of the torques w.r.t some fictitious forces applied on each body at the point (0,0,0) of the reference frame.

Parameters
mbMultiBody used has model.
mbcUses force, parentToSon, bodyPosW, parentToSon, motionSubspace and gravity.
jacMomentsAndForcesvector of jacobian of external forces on each body. It is assumed to be computed by the user. It is the jacobian of the equivalent force transported at the zero of the robot. Note that those matrix should be empty if zero to avoid unnecessary calculations. Fills jointTorqueJacQ and jointTorqueJacF.

◆ f()

const std::vector<sva::ForceVecd>& rbd::InverseStatics::f ( ) const
inline

Get the internal forces.

Returns
vector of forces transmitted from body λ(i) to body i across joint i.

◆ inverseStatics()

void rbd::InverseStatics::inverseStatics ( const MultiBody mb,
MultiBodyConfig mbc 
)

Compute the inverse statics.

Parameters
mbMultiBody used has model.
mbcUses force, parentToSon, bodyPosW, motionSubspace and gravity. Fills bodyAccB and jointTorque.

◆ jointTorqueDiff()

const std::vector<Eigen::MatrixXd>& rbd::InverseStatics::jointTorqueDiff ( ) const
inline

◆ setJacobianSize()

void rbd::InverseStatics::setJacobianSize ( const MultiBody mb,
const MultiBodyConfig mbc,
const std::vector< Eigen::MatrixXd > &  jacMomentsAndForces 
)

◆ sInverseStatics()

void rbd::InverseStatics::sInverseStatics ( const MultiBody mb,
MultiBodyConfig mbc 
)

safe version of

See also
inverseStatics.
Exceptions
std::domain_errorIf mb don't match mbc.

The documentation for this class was generated from the following file: