00001 00007 #ifndef MINIQUADROTOR_ROTOR_ACTUATOR_H 00008 #define MINIQUADROTOR_ROTOR_ACTUATOR_H 00009 00010 namespace argos { 00011 class CCI_MiniQuadrotorRotorActuator; 00012 } 00013 00014 #include <argos3/core/control_interface/ci_actuator.h> 00015 00016 namespace argos { 00017 00018 class CCI_MiniQuadrotorRotorActuator : public CCI_Actuator { 00019 00020 public: 00021 00022 struct SVelocities { 00023 Real Velocities[4]; 00024 00025 SVelocities(); 00026 SVelocities(Real f_north_vel, 00027 Real f_west_vel, 00028 Real f_south_vel, 00029 Real f_east_vel); 00030 SVelocities(const SVelocities& s_velocities); 00031 SVelocities& operator=(const SVelocities& s_velocities); 00032 }; 00033 00034 public: 00035 00036 virtual ~CCI_MiniQuadrotorRotorActuator() {} 00037 00038 virtual void SetRotorVelocities(const SVelocities& s_velocities) = 0; 00039 00040 #ifdef ARGOS_WITH_LUA 00041 virtual void CreateLuaState(lua_State* pt_lua_state); 00042 #endif 00043 00044 protected: 00045 00046 SVelocities m_sCurrentVelocities; 00047 00048 }; 00049 00050 } 00051 00052 #endif