ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00015 #ifndef CCI_FOOTBOT_GRIPPER_ACTUATOR_H 00016 #define CCI_FOOTBOT_GRIPPER_ACTUATOR_H 00017 00018 /* To avoid dependency problems when including */ 00019 namespace argos { 00020 class CCI_FootBotGripperActuator; 00021 } 00022 00023 #include <argos3/core/control_interface/ci_actuator.h> 00024 #include <argos3/core/utility/math/angles.h> 00025 00026 namespace argos { 00027 00028 class CCI_FootBotGripperActuator : virtual public CCI_Actuator { 00029 00030 public: 00031 00032 /* Useful gripper aperture values */ 00033 static CRadians UNLOCKED; 00034 static CRadians LOCKED_POSITIVE; 00035 static CRadians LOCKED_NEGATIVE; 00036 00037 public: 00038 00042 CCI_FootBotGripperActuator(); 00043 00047 virtual ~CCI_FootBotGripperActuator() {} 00048 00053 void SetAperture(const CRadians& c_aperture); 00054 00058 virtual void EnableCheckForObjectGrippedRoutine() = 0; 00059 00063 virtual void DisableCheckForObjectGrippedRoutine() = 0; 00064 00068 inline void LockPositive() { 00069 SetAperture(LOCKED_POSITIVE); 00070 } 00071 00075 inline void LockNegative() { 00076 SetAperture(LOCKED_NEGATIVE); 00077 } 00078 00082 inline void Unlock() { 00083 SetAperture(UNLOCKED); 00084 } 00085 00086 #ifdef ARGOS_WITH_LUA 00087 virtual void CreateLuaState(lua_State* pt_lua_state); 00088 #endif 00089 00090 protected: 00091 00092 CRadians m_cAperture; 00093 00094 }; 00095 00096 } 00097 00098 #endif