Classes | Public Member Functions | Private Attributes
KDL::TreeIdSolver_RNE Class Reference

Recursive newton euler inverse dynamics solver. More...

#include <treeidsolver_recursive_newton_euler.hpp>

Inheritance diagram for KDL::TreeIdSolver_RNE:
Inheritance graph
[legend]

List of all members.

Classes

struct  Entry
struct  JntEntry

Public Member Functions

int CartToJnt (const JntArray &q, const JntArray &q_dot, const JntArray &q_dotdot, const Wrenches &f_ext, JntArray &torques)
int CartToJnt (const std::vector< double > &q, const std::vector< double > &q_dot, const std::vector< double > &q_dotdot, const Wrenches &f_ext, JntArray &torques)
 TreeIdSolver_RNE (const Tree &tree, Vector grav)
 ~TreeIdSolver_RNE ()

Private Attributes

Twist ag
 indexed by joint name
std::map< std::string, Entrydb
std::map< std::string, JntEntryjntdb
 indexed by segment name
std::string root_name
Tree tree

Detailed Description

Recursive newton euler inverse dynamics solver.

The algorithm implementation is based on the book "Rigid Body Dynamics Algorithms" of Roy Featherstone, 2008 (ISBN:978-0-387-74314-1) See page 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.

Definition at line 39 of file treeidsolver_recursive_newton_euler.hpp.


Constructor & Destructor Documentation

KDL::TreeIdSolver_RNE::TreeIdSolver_RNE ( const Tree tree,
Vector  grav 
)

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.
gravThe gravity vector to use during the calculation.

Definition at line 36 of file treeidsolver_recursive_newton_euler.cpp.

Definition at line 47 of file treeidsolver_recursive_newton_euler.hpp.


Member Function Documentation

int KDL::TreeIdSolver_RNE::CartToJnt ( const JntArray &  q,
const JntArray &  q_dot,
const JntArray &  q_dotdot,
const Wrenches f_ext,
JntArray &  torques 
) [virtual]

Function to calculate from Cartesian forces to joint torques. Input parameters;

Parameters:
qThe current joint positions
q_dotThe current joint velocities
q_dotdotThe current joint accelerations
f_extThe external forces (no gravity) on the segments Output parameters:
torquesthe resulting torques for the joints

these are not RT safe... maps are dangerous because might create element inadvertently

Implements KDL::TreeIdSolver.

Definition at line 187 of file treeidsolver_recursive_newton_euler.cpp.

int KDL::TreeIdSolver_RNE::CartToJnt ( const std::vector< double > &  q,
const std::vector< double > &  q_dot,
const std::vector< double > &  q_dotdot,
const Wrenches f_ext,
JntArray &  torques 
) [virtual]

these are not RT safe... maps are dangerous because might create element inadvertently

Implements KDL::TreeIdSolver.

Definition at line 67 of file treeidsolver_recursive_newton_euler.cpp.


Member Data Documentation

indexed by joint name

Definition at line 96 of file treeidsolver_recursive_newton_euler.hpp.

std::map<std::string, Entry> KDL::TreeIdSolver_RNE::db [private]

Definition at line 91 of file treeidsolver_recursive_newton_euler.hpp.

std::map<std::string, JntEntry> KDL::TreeIdSolver_RNE::jntdb [private]

indexed by segment name

Definition at line 92 of file treeidsolver_recursive_newton_euler.hpp.

std::string KDL::TreeIdSolver_RNE::root_name [private]

Definition at line 81 of file treeidsolver_recursive_newton_euler.hpp.

Definition at line 80 of file treeidsolver_recursive_newton_euler.hpp.


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


r2_controllers_gazebo
Author(s): Stephen Hart
autogenerated on Mon Oct 6 2014 02:48:44