Orocos KDL
treeidsolver_recursive_newton_euler.hpp
1// Copyright (C) 2009 Ruben Smits <ruben dot smits at intermodalics dot eu>
2
3// Version: 1.0
4// Author: Franco Fusco <franco dot fusco at ls2n dot fr>
5// Maintainer: Ruben Smits <ruben dot smits at intermodalics dot eu>
6// URL: http://www.orocos.org/kdl
7
8// This library is free software; you can redistribute it and/or
9// modify it under the terms of the GNU Lesser General Public
10// License as published by the Free Software Foundation; either
11// version 2.1 of the License, or (at your option) any later version.
12
13// This library is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16// Lesser General Public License for more details.
17
18// You should have received a copy of the GNU Lesser General Public
19// License along with this library; if not, write to the Free Software
20// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
22#ifndef KDL_TREE_IDSOLVER_RECURSIVE_NEWTON_EULER_HPP
23#define KDL_TREE_IDSOLVER_RECURSIVE_NEWTON_EULER_HPP
24
25#include "treeidsolver.hpp"
26
27namespace KDL{
42 public:
48 TreeIdSolver_RNE(const Tree& tree, Vector grav);
49
60 int CartToJnt(const JntArray &q, const JntArray &q_dot, const JntArray &q_dotdot, const WrenchMap& f_ext, JntArray &torques);
61
64
65 private:
67 void initAuxVariables();
68
70 void rne_step(SegmentMap::const_iterator segment, const JntArray &q, const JntArray &q_dot, const JntArray &q_dotdot, const WrenchMap& f_ext, JntArray& torques);
71
72 const Tree& tree;
73 unsigned int nj;
74 unsigned int ns;
75 std::map<std::string,Frame> X;
76 std::map<std::string,Twist> S;
77 std::map<std::string,Twist> v;
78 std::map<std::string,Twist> a;
79 std::map<std::string,Wrench> f;
80 Twist ag;
81 };
82}
83
84#endif
Definition jntarray.hpp:70
TreeIdSolver_RNE(const Tree &tree, Vector grav)
virtual void updateInternalDataStructures()
int CartToJnt(const JntArray &q, const JntArray &q_dot, const JntArray &q_dotdot, const WrenchMap &f_ext, JntArray &torques)
This abstract class encapsulates the inverse dynamics solver for a KDL::Tree.
Definition treeidsolver.hpp:41
This class encapsulates a tree kinematic interconnection structure. It is built out of segments.
Definition tree.hpp:100
represents both translational and rotational velocities.
Definition frames.hpp:723
A concrete implementation of a 3 dimensional vector class.
Definition frames.hpp:163
Definition articulatedbodyinertia.hpp:32
std::map< std::string, Wrench > WrenchMap
Definition treeidsolver.hpp:33