Blender V4.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
27namespace KDL
28{
29 //Forward declaration
30 class ChainJntToJacSolver;
31
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
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 bool Equal(const Jacobian &a, const Jacobian &b, double eps)
Definition jacobian.cpp:121
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
local_group_size(16, 16) .push_constant(Type b
#define rot(x, k)
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)
const btScalar eps
Definition poly34.cpp:11