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_JACOBIAN_HPP
00023 #define KDL_JACOBIAN_HPP
00024
00025 #include "frames.hpp"
00026 #include <Eigen/Core>
00027
00028 namespace KDL
00029 {
00030
00031 class Jacobian;
00032 bool Equal(const Jacobian& a,const Jacobian& b,double eps=epsilon);
00033 void SetToZero(Jacobian& jac);
00034
00035
00036 class Jacobian
00037 {
00038 public:
00039
00040 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
00041 Eigen::Matrix<double,6,Eigen::Dynamic> data;
00042 Jacobian();
00043 explicit Jacobian(unsigned int nr_of_columns);
00044 Jacobian(const Jacobian& arg);
00045
00047 void resize(unsigned int newNrOfColumns);
00048
00050 Jacobian& operator=(const Jacobian& arg);
00051
00052 bool operator ==(const Jacobian& arg)const;
00053 bool operator !=(const Jacobian& arg)const;
00054
00055 friend bool Equal(const Jacobian& a,const Jacobian& b,double eps);
00056
00057
00058 ~Jacobian();
00059
00060 double operator()(unsigned int i,unsigned int j)const;
00061 double& operator()(unsigned int i,unsigned int j);
00062 unsigned int rows()const;
00063 unsigned int columns()const;
00064
00065 friend void SetToZero(Jacobian& jac);
00066
00067 friend bool changeRefPoint(const Jacobian& src1, const Vector& base_AB, Jacobian& dest);
00068 friend bool changeBase(const Jacobian& src1, const Rotation& rot, Jacobian& dest);
00069 friend bool changeRefFrame(const Jacobian& src1,const Frame& frame, Jacobian& dest);
00070
00071 Twist getColumn(unsigned int i) const;
00072 void setColumn(unsigned int i,const Twist& t);
00073
00074 void changeRefPoint(const Vector& base_AB);
00075 void changeBase(const Rotation& rot);
00076 void changeRefFrame(const Frame& frame);
00077
00078
00079 };
00080
00081 bool changeRefPoint(const Jacobian& src1, const Vector& base_AB, Jacobian& dest);
00082 bool changeBase(const Jacobian& src1, const Rotation& rot, Jacobian& dest);
00083 bool changeRefFrame(const Jacobian& src1,const Frame& frame, Jacobian& dest);
00084
00085
00086 }
00087
00088 #endif