00001 00060 #ifndef _SIMULATED_ARM_H_ 00061 #define _SIMULATED_ARM_H_ 00062 00063 #include <schunk_powercube_chain/PowerCubeCtrl.h> 00064 #include <vector> 00065 #include <string> 00066 00067 class simulatedMotor; 00068 00069 class simulatedArm 00070 { 00071 public: 00072 00073 simulatedArm(); 00074 virtual ~simulatedArm(); 00075 00076 bool Init(PowerCubeCtrlParams * params); 00077 00078 bool isInitialized() const { return m_Initialized; } 00079 00080 std::string getErrorMessage() const { return m_ErrorMessage; } 00081 00082 bool Close() { m_Initialized = false; return true; } 00083 00085 // Funktionen Arm-Ansteuerung: // 00087 00090 bool MoveJointSpaceSync(const std::vector<double>& Angle); 00091 00093 bool MovePos(const std::vector<double>&); 00095 bool MoveVel(const std::vector<double>&); 00096 00098 // bool MoveCur(const std::vector<double>&); 00099 00101 bool Stop(); 00102 00104 // Funktionen zum setzen von Parametern: // 00106 00109 bool setMaxVelocity(double radpersec); 00110 bool setMaxVelocity(const std::vector<double>& radpersec); 00111 00114 bool setMaxAcceleration(double radPerSecSquared); 00115 bool setMaxAcceleration(const std::vector<double>& radPerSecSquared); 00116 00118 // hier die Funktionen zur Statusabfrage: // 00120 00121 00123 bool getConfig(std::vector<double>& result); 00124 00126 bool getJointVelocities(std::vector<double> & result); 00127 00130 bool statusMoving(); 00131 00133 bool statusDec(); 00134 00136 bool statusAcc(); 00137 00139 // bool doHoming(); 00140 // bool HomingDone(); 00141 00143 bool waitForSync() { return true; } // makes no difference in simulation 00145 bool dontWaitForSync() { return true; } // makes no difference in simulation 00146 00147 protected: 00148 00149 int m_DOF; 00150 bool m_Initialized; 00151 std::string m_ErrorMessage; 00152 00153 std::vector<simulatedMotor> m_motors; 00154 00155 std::vector<double> m_maxVel; 00156 std::vector<double> m_maxAcc; 00157 00158 }; 00159 00160 00161 #endif