KDL 1.5.1
Loading...
Searching...
No Matches
treeidsolver_recursive_newton_euler.hpp
Go to the documentation of this file.
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
63 virtual void updateInternalDataStructures();
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;
81 };
82}
83
84#endif
Definition jntarray.hpp:70
Recursive newton euler inverse dynamics solver for kinematic trees.
Definition treeidsolver_recursive_newton_euler.hpp:41
virtual void updateInternalDataStructures()
Update the internal data structures.
Definition treeidsolver_recursive_newton_euler.cpp:35
TreeIdSolver_RNE(const Tree &tree, Vector grav)
Constructor for the solver, it will allocate all the necessary memory.
Definition treeidsolver_recursive_newton_euler.cpp:28
unsigned int nj
Definition treeidsolver_recursive_newton_euler.hpp:73
std::map< std::string, Frame > X
Definition treeidsolver_recursive_newton_euler.hpp:75
std::map< std::string, Twist > a
Definition treeidsolver_recursive_newton_euler.hpp:78
std::map< std::string, Wrench > f
Definition treeidsolver_recursive_newton_euler.hpp:79
void rne_step(SegmentMap::const_iterator segment, const JntArray &q, const JntArray &q_dot, const JntArray &q_dotdot, const WrenchMap &f_ext, JntArray &torques)
One recursion step.
Definition treeidsolver_recursive_newton_euler.cpp:78
Twist ag
Definition treeidsolver_recursive_newton_euler.hpp:80
std::map< std::string, Twist > S
Definition treeidsolver_recursive_newton_euler.hpp:76
int CartToJnt(const JntArray &q, const JntArray &q_dot, const JntArray &q_dotdot, const WrenchMap &f_ext, JntArray &torques)
Function to calculate from Cartesian forces to joint torques.
Definition treeidsolver_recursive_newton_euler.cpp:52
unsigned int ns
Definition treeidsolver_recursive_newton_euler.hpp:74
std::map< std::string, Twist > v
Definition treeidsolver_recursive_newton_euler.hpp:77
void initAuxVariables()
Helper function to initialize private members X, S, v, a, f.
Definition treeidsolver_recursive_newton_euler.cpp:41
const Tree & tree
Definition treeidsolver_recursive_newton_euler.hpp:72
This abstract class encapsulates the inverse dynamics solver for a KDL::Tree.
Definition treeidsolver.hpp:41
This class encapsulates a tree kinematic interconnection structure.
Definition tree.hpp:100
represents both translational and rotational velocities.
Definition frames.hpp:720
A concrete implementation of a 3 dimensional vector class.
Definition frames.hpp:161
Definition articulatedbodyinertia.cpp:26
std::map< std::string, Wrench > WrenchMap
Definition treeidsolver.hpp:33