00001
00002
00003 #ifndef _REC_ROBOTINO_COM_OMNIRIVE_H_
00004 #define _REC_ROBOTINO_COM_OMNIRIVE_H_
00005
00006 #include "rec/robotino/com/Actor.h"
00007
00008 namespace rec
00009 {
00010 namespace robotino
00011 {
00012 namespace com
00013 {
00014 class OmniDriveImpl;
00015
00024 class
00025 #ifdef WIN32
00026 # ifdef rec_robotino_com_EXPORTS
00027 __declspec(dllexport)
00028 #endif
00029 # ifdef rec_robotino_com2_EXPORTS
00030 __declspec(dllexport)
00031 #endif
00032 # ifdef rec_robotino_com3_EXPORTS
00033 __declspec(dllexport)
00034 #endif
00035 #endif
00036 OmniDrive : public Actor
00037 {
00038 public:
00039 OmniDrive();
00040
00041 virtual ~OmniDrive();
00042
00048 void setVelocity( float vx, float vy, float omega );
00049
00061 void project( float* m1, float* m2, float* m3, float vx, float vy, float omega ) const;
00062
00074 void unproject( float* vx, float* vy, float* omega, float m1, float m2, float m3 ) const;
00075
00086 void setDriveLayout( double rb = 125.0f , double rw = 40.0, double fctrl = 900.0, double gear = 16, double mer = 2000 );
00087
00098 void getDriveLayout( double* rb, double* rw, double* fctrl, double* gear, double* mer );
00099
00100 private:
00101 void updateMotorSpeeds();
00102
00103 OmniDriveImpl* _impl;
00104 };
00105 }
00106 }
00107 }
00108 #endif