Merge of itasc branch. Project files, scons and cmake should be working. Makefile...
[blender.git] / intern / itasc / kdl / chainjnttojacsolver.hpp
1 // Copyright  (C)  2007  Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
2
3 // Version: 1.0
4 // Author: Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
5 // Maintainer: Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
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_CHAINJNTTOJACSOLVER_HPP
23 #define KDL_CHAINJNTTOJACSOLVER_HPP
24
25 #include "frames.hpp"
26 #include "jacobian.hpp"
27 #include "jntarray.hpp"
28 #include "chain.hpp"
29
30 namespace KDL
31 {
32     /**
33      * @brief  Class to calculate the jacobian of a general
34      * KDL::Chain, it is used by other solvers. It should not be used
35      * outside of KDL.
36      *
37      *
38      */
39
40     class ChainJntToJacSolver
41     {
42     public:
43         ChainJntToJacSolver(const Chain& chain);
44         ~ChainJntToJacSolver();
45         /**
46          * Calculate the jacobian expressed in the base frame of the
47          * chain, with reference point at the end effector of the
48          * *chain. The alghoritm is similar to the one used in
49          * KDL::ChainFkSolverVel_recursive
50          *
51          * @param q_in input joint positions
52          * @param jac output jacobian
53          *
54          * @return always returns 0
55          */
56         int JntToJac(const JntArray& q_in,Jacobian& jac);
57
58     private:
59         const Chain chain;
60         Twist t_local;
61         Frame T_total;
62     };
63 }
64 #endif
65