GCOP
1.0
|
00001 #ifndef GCOP_KINBODY3DMANIFOLD_H 00002 #define GCOP_KINBODY3DMANIFOLD_H 00003 00004 #include "manifold.h" 00005 #include <limits> 00006 00007 namespace gcop { 00008 00009 using namespace std; 00010 using namespace Eigen; 00011 typedef Matrix<double, 6, 1> Vector6d; 00012 00013 class Kinbody3dManifold : public Manifold<Matrix4d, 6> { 00014 public: 00015 00016 static Kinbody3dManifold& Instance(); 00017 00018 void Lift(Vector6d &v, 00019 const Matrix4d &xa, 00020 const Matrix4d &xb); 00021 00022 void Retract(Matrix4d &xb, 00023 const Matrix4d &xa, 00024 const Vector6d &v); 00025 00026 void dtau(Matrix4d &M, const Vector6d &v); 00027 00028 void Adtau(Matrix4d &M, const Vector6d &v); 00029 00030 private: 00031 Kinbody3dManifold(); 00032 }; 00033 } 00034 00035 #endif