Blender  V3.3
jacobian.hpp
Go to the documentation of this file.
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_JACOBIAN_HPP
23 #define KDL_JACOBIAN_HPP
24 
25 #include "frames.hpp"
26 
27 namespace KDL
28 {
29  //Forward declaration
30  class ChainJntToJacSolver;
31 
32  class Jacobian
33  {
34  friend class ChainJntToJacSolver;
35  private:
36  unsigned int size;
37  unsigned int nr_blocks;
38  public:
40  Jacobian(unsigned int size,unsigned int nr=1);
41  Jacobian(const Jacobian& arg);
42 
43  Jacobian& operator=(const Jacobian& arg);
44 
45  bool operator ==(const Jacobian& arg);
46  bool operator !=(const Jacobian& arg);
47 
48  friend bool Equal(const Jacobian& a,const Jacobian& b,double eps);
49 
50 
51  ~Jacobian();
52 
53  double operator()(int i,int j)const;
54  double& operator()(int i,int j);
55  unsigned int rows()const;
56  unsigned int columns()const;
57 
58  friend void SetToZero(Jacobian& jac);
59 
60  friend void changeRefPoint(const Jacobian& src1, const Vector& base_AB, Jacobian& dest);
61  friend void changeBase(const Jacobian& src1, const Rotation& rot, Jacobian& dest);
62  friend void changeRefFrame(const Jacobian& src1,const Frame& frame, Jacobian& dest);
63 
64 
65  };
66  bool Equal(const Jacobian&, const Jacobian&, double = epsilon);
67 }
68 
69 #endif
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
Class to calculate the jacobian of a general KDL::Chain, it is used by other solvers....
represents a frame transformation in 3D space (rotation + translation)
Definition: frames.hpp:526
friend void changeBase(const Jacobian &src1, const Rotation &rot, Jacobian &dest)
Definition: jacobian.cpp:95
bool operator==(const Jacobian &arg)
Definition: jacobian.cpp:111
double operator()(int i, int j) const
Definition: jacobian.cpp:59
Twist * twists
Definition: jacobian.hpp:39
friend void SetToZero(Jacobian &jac)
Definition: jacobian.cpp:81
friend void changeRefPoint(const Jacobian &src1, const Vector &base_AB, Jacobian &dest)
Definition: jacobian.cpp:87
unsigned int columns() const
Definition: jacobian.cpp:76
friend bool Equal(const Jacobian &a, const Jacobian &b, double eps)
Definition: jacobian.cpp:121
Jacobian(unsigned int size, unsigned int nr=1)
Definition: jacobian.cpp:29
Jacobian & operator=(const Jacobian &arg)
Definition: jacobian.cpp:44
bool operator!=(const Jacobian &arg)
Definition: jacobian.cpp:116
unsigned int rows() const
Definition: jacobian.cpp:71
friend void changeRefFrame(const Jacobian &src1, const Frame &frame, Jacobian &dest)
Definition: jacobian.cpp:103
represents rotations in 3 dimensional space.
Definition: frames.hpp:299
represents both translational and rotational velocities.
Definition: frames.hpp:679
A concrete implementation of a 3 dimensional vector class.
Definition: frames.hpp:143
SyclQueue void * dest
#define rot(x, k)
static unsigned a[3]
Definition: RandGen.cpp:78
Definition: chain.cpp:27
double epsilon
default precision while comparing with Equal(..,..) functions. Initialized at 0.0000001.
Definition: utility.cpp:22
IMETHOD bool Equal(const VectorAcc &, const VectorAcc &, double=epsilon)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
const btScalar eps
Definition: poly34.cpp:11