Public Member Functions | Private Attributes
KdlChainIdRne Class Reference

Recursive Newton Euler ID solver for chains in a tree. More...

#include <KdlChainIdRne.h>

List of all members.

Public Member Functions

int DynamicsPass (const KDL::Wrenches &f_ext, KDL::JntArray &torques, KDL::Wrench &f_base, std::vector< KDL::Wrench > &f, const KDL::RigidBodyInertia &I_ext, const KDL::RigidBodyInertia &I_seg, KDL::JntArray &Hv, KDL::RigidBodyInertia &I_base)
 KdlChainIdRne (const KDL::Chain &chain, const KDL::Twist &v_base, const KDL::Twist &a_base)
 Constructor for KdlChainIdRne (empty)
int KinematicsPass (const KDL::JntArray &q, const KDL::JntArray &q_dot, const KDL::JntArray &q_dotdot, KDL::Twist &v_out, KDL::Twist &a_out)
 ~KdlChainIdRne ()

Private Attributes

std::vector< KDL::Twista
KDL::Twist ab
KDL::Chain chain
KDL::Wrench Fis
std::vector
< KDL::RigidBodyInertia
Ii
unsigned int nj
unsigned int ns
std::vector< KDL::TwistS
std::vector< KDL::Twistv
KDL::Twist vb
std::vector< KDL::FrameX

Detailed Description

Recursive Newton Euler ID solver for chains in a tree.

The algorithm implementation is based on the book "Rigid Body Dynamics Algorithms" of Roy Featherstone, 2008 (ISBN:978-0-387-74314-1) See pages 96 for the pseudo-code.

It calculates the torques for the joints, 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.

This function assumes that the contributions of the base joint are calculated in the calling function.

Definition at line 27 of file KdlChainIdRne.h.


Constructor & Destructor Documentation

KdlChainIdRne::KdlChainIdRne ( const KDL::Chain chain,
const KDL::Twist v_base,
const KDL::Twist a_base 
)

Constructor for KdlChainIdRne (empty)

Constructor for the solver, it will allocate all the necessary memory

Parameters:
chainThe kinematic chain to calculate the inverse dynamics for, an internal copy will be made.
v_baseThe velocity of the base frame in world/parent frame
a_baseThe acceleration of the base frame due to prior joints and/or gravity, in world/parent frame.
chain_
v_base
a_base

Definition at line 12 of file KdlChainIdRne.cpp.

Definition at line 36 of file KdlChainIdRne.h.


Member Function Documentation

int KdlChainIdRne::DynamicsPass ( const KDL::Wrenches f_ext,
KDL::JntArray torques,
KDL::Wrench f_base,
std::vector< KDL::Wrench > &  f,
const KDL::RigidBodyInertia I_ext,
const KDL::RigidBodyInertia I_seg,
KDL::JntArray Hv,
KDL::RigidBodyInertia I_base 
)

Function to calculate from Cartesian forces to joint torques. Must call KinematicsPass prior to this function. Input Parameters:

Parameters:
f_extThe external forces (no gravity) on the segments in that segments frame (different than Featherstone algorithm) Output parameters:
torquesthe resulting torques for the joints
f_baseThe wrench on the base frame for tree ID
torques
forceBase
inertiaExt
inertiaSeg
Hv
inertiaBase

Definition at line 95 of file KdlChainIdRne.cpp.

int KdlChainIdRne::KinematicsPass ( const KDL::JntArray q,
const KDL::JntArray q_dot,
const KDL::JntArray q_dotdot,
KDL::Twist v_out,
KDL::Twist a_out 
)

Function to calculate all necessary kinematic parameters. Must be called prior to DynamicsPass Input parameters:

Parameters:
qThe current joint positions
q_dotThe current joint velocities
q_dotdotThe current joint accelerations
qPosition
q_dotVelocity
q_dotdotAcceleration
velOut
accelOut

Definition at line 27 of file KdlChainIdRne.cpp.


Member Data Documentation

std::vector<KDL::Twist> KdlChainIdRne::a [private]

Definition at line 66 of file KdlChainIdRne.h.

Definition at line 70 of file KdlChainIdRne.h.

Definition at line 60 of file KdlChainIdRne.h.

Definition at line 68 of file KdlChainIdRne.h.

std::vector<KDL::RigidBodyInertia> KdlChainIdRne::Ii [private]

Definition at line 67 of file KdlChainIdRne.h.

unsigned int KdlChainIdRne::nj [private]

Definition at line 61 of file KdlChainIdRne.h.

unsigned int KdlChainIdRne::ns [private]

Definition at line 62 of file KdlChainIdRne.h.

std::vector<KDL::Twist> KdlChainIdRne::S [private]

Definition at line 64 of file KdlChainIdRne.h.

std::vector<KDL::Twist> KdlChainIdRne::v [private]

Definition at line 65 of file KdlChainIdRne.h.

Definition at line 69 of file KdlChainIdRne.h.

std::vector<KDL::Frame> KdlChainIdRne::X [private]

Definition at line 63 of file KdlChainIdRne.h.


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


robodyn_controllers
Author(s):
autogenerated on Sat Jun 8 2019 20:20:54