ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/robots/foot-bot/control_interface/ci_footbot_gripper_actuator.h
Go to the documentation of this file.
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