datastructsManipulator.h
Go to the documentation of this file.
00001 
00060 #ifndef __DATASTRUCTS_MANIPULATOR_H_
00061 #define __DATASTRUCTS_MANIPULATOR_H_
00062 
00063 #include <schunk_powercube_chain/Joint.h>
00064 #include <iostream>
00065 
00066 // never in headerfiles!
00067 // using namespace std;
00068 
00069 #ifdef SWIG
00070 %module PowerCubeCtrl
00071 %{
00072         #include <schunk_powercube_chain/datastructsManipulator.h>
00073 %}
00074 #endif 
00075 
00076 
00082 struct Point3D {
00083     double x;
00084     double y;
00085     double z;
00086 };
00087 
00088 struct AbsPos {
00089         AbsPos() : Eulerx(0.0), Eulery(0.0), Eulerz(0.0), Transx(0.0), Transy(0.0), Transz(0.0) {;}
00090         // Bitte beachten: Es werden von nun an XYZ-fixed Winkel benutzt
00091         // (Siehe Craig, S.45ff)
00092         // welche gleichbedeutend mit den Euler-ZYX Winkeln sind.
00093         // Die Bezeichnungen Eulerx, Eulery, Eulerz werden daher beibehalten. 
00094     double Eulerx;
00095     double Eulery;
00096     double Eulerz;
00097     double Transx;
00098     double Transy;
00099     double Transz;
00100         void set(double* p);
00101         void setTransX(double transx) {Transx=transx;}
00102         void setTransY(double transy) {Transy=transy;}
00103         void setTransZ(double transz) {Transz=transz;}
00104         void setEulerX(double eulerx) {Eulerx=eulerx;}
00105         void setEulerY(double eulery) {Eulery=eulery;}
00106         void setEulerZ(double eulerz) {Eulerz=eulerz;}
00107         double getTransX() {return Transx;}
00108         double getTransY() {return Transy;}
00109         double getTransZ() {return Transz;}
00110         double getEulerX() {return Eulerx;}
00111         double getEulerY() {return Eulery;}
00112         double getEulerZ() {return Eulerz;}
00113         void angleScale(double s);
00114         void toDeg() { angleScale(57.295779524); }
00115         void toRad() { angleScale(0.017453292); }
00116         AbsPos operator*(double s) const;
00117         AbsPos operator+(const AbsPos& abs2) const;
00118         AbsPos operator-(const AbsPos& abs2) const;
00119         double getPosLength() const { return sqrt(Transx*Transx + Transy*Transy + Transz*Transz); }
00124         double distMeasure(AbsPos otherPos) const;
00125 };
00126 
00127 std::ostream& operator<< (std::ostream& os, const AbsPos& a);
00128 
00129 
00130 inline AbsPos operator* (double s, const AbsPos& abs) { return abs * s; }
00131 
00132 
00133 
00134 struct DH {
00135     Jointd  a;
00136     Jointd  d;
00137     Jointd  alpha;
00138     Jointd  theta;
00139 };
00140 
00141 struct LimitsTheta {
00142     Jointd max;
00143     Jointd min; 
00144 };
00145 
00146 
00147 #endif //__DATASTRUCTS_MANIPULATOR_H_
00148 


schunk_powercube_chain
Author(s): Florian Weisshardt
autogenerated on Thu Aug 27 2015 15:06:58