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