KDL
1.3.0
|
Implementation of a method to calculate the matrices H (inertia),C(coriolis) and G(gravitation) for the calculation torques out of the pose and derivatives. More...
#include <src/chaindynparam.hpp>
Public Member Functions | |
ChainDynParam (const Chain &chain, Vector _grav) | |
virtual | ~ChainDynParam () |
virtual int | JntToCoriolis (const JntArray &q, const JntArray &q_dot, JntArray &coriolis) |
virtual int | JntToMass (const JntArray &q, JntSpaceInertiaMatrix &H) |
virtual int | JntToGravity (const JntArray &q, JntArray &gravity) |
Private Attributes | |
const Chain | chain |
int | nr |
unsigned int | nj |
unsigned int | ns |
Vector | grav |
Vector | vectornull |
JntArray | jntarraynull |
ChainIdSolver_RNE | chainidsolver_coriolis |
ChainIdSolver_RNE | chainidsolver_gravity |
std::vector< Wrench > | wrenchnull |
std::vector< Frame > | X |
std::vector< Twist > | S |
std::vector< ArticulatedBodyInertia > | Ic |
Wrench | F |
Twist | ag |
Implementation of a method to calculate the matrices H (inertia),C(coriolis) and G(gravitation) for the calculation torques out of the pose and derivatives.
(inverse dynamics)
The algorithm implementation for H is based on the book "Rigid Body Dynamics Algorithms" of Roy Featherstone, 2008 (ISBN:978-0-387-74314-1) See page 107 for the pseudo-code. This algorithm is extended for the use of fixed joints
It calculates the joint-space inertia matrix, given the motion of the joints (q,qdot,qdotdot), external forces on the segments (expressed in the segments reference frame) and the dynamical parameters of the segments.
References ag, grav, and KDL::Vector::Zero().
|
virtual |
|
virtual |
References KDL::ChainIdSolver_RNE::CartToJnt(), chainidsolver_coriolis, jntarraynull, KDL::SetToZero(), and wrenchnull.
|
virtual |
References KDL::ChainIdSolver_RNE::CartToJnt(), chainidsolver_gravity, jntarraynull, KDL::SetToZero(), and wrenchnull.
|
virtual |
References chain, KDL::dot(), F, KDL::Segment::getInertia(), KDL::Segment::getJoint(), KDL::Chain::getSegment(), KDL::Joint::getType(), Ic, nj, KDL::Joint::None, ns, KDL::Segment::pose(), S, KDL::Segment::twist(), and X.
|
private |
Referenced by ChainDynParam().
|
private |
Referenced by JntToMass().
|
private |
Referenced by JntToCoriolis().
|
private |
Referenced by JntToGravity().
|
private |
Referenced by JntToMass().
|
private |
Referenced by ChainDynParam().
|
private |
Referenced by JntToMass().
|
private |
Referenced by JntToCoriolis(), and JntToGravity().
|
private |
Referenced by JntToMass().
|
private |
|
private |
Referenced by JntToMass().
|
private |
Referenced by JntToMass().
|
private |
|
private |
Referenced by JntToCoriolis(), and JntToGravity().
|
private |
Referenced by JntToMass().