Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KDL_TREE_IDSOLVER_RECURSIVE_NEWTON_EULER_HPP
00023 #define KDL_TREE_IDSOLVER_RECURSIVE_NEWTON_EULER_HPP
00024
00025 #include "treeidsolver.hpp"
00026
00027 namespace KDL{
00041 class TreeIdSolver_RNE : public TreeIdSolver {
00042 public:
00048 TreeIdSolver_RNE(const Tree& tree, Vector grav);
00049
00060 int CartToJnt(const JntArray &q, const JntArray &q_dot, const JntArray &q_dotdot, const WrenchMap& f_ext, JntArray &torques);
00061
00063 virtual void updateInternalDataStructures();
00064
00065 private:
00067 void initAuxVariables();
00068
00070 void rne_step(SegmentMap::const_iterator segment, const JntArray &q, const JntArray &q_dot, const JntArray &q_dotdot, const WrenchMap& f_ext, JntArray& torques);
00071
00072 const Tree& tree;
00073 unsigned int nj;
00074 unsigned int ns;
00075 std::map<std::string,Frame> X;
00076 std::map<std::string,Twist> S;
00077 std::map<std::string,Twist> v;
00078 std::map<std::string,Twist> a;
00079 std::map<std::string,Wrench> f;
00080 Twist ag;
00081 };
00082 }
00083
00084 #endif