ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef FOOTBOT_ENTITY_H 00008 #define FOOTBOT_ENTITY_H 00009 00010 namespace argos { 00011 class CControllableEntity; 00012 class CFootBotDistanceScannerEquippedEntity; 00013 class CEmbodiedEntity; 00014 class CFootBotEntity; 00015 class CFootBotTurretEntity; 00016 class CGripperEquippedEntity; 00017 class CGroundSensorEquippedEntity; 00018 class CLEDEquippedEntity; 00019 class CLightSensorEquippedEntity; 00020 class COmnidirectionalCameraEquippedEntity; 00021 class CProximitySensorEquippedEntity; 00022 class CRABEquippedEntity; 00023 class CWiFiEquippedEntity; 00024 } 00025 00026 #include <argos3/core/simulator/entity/composable_entity.h> 00027 #include <argos3/plugins/simulator/entities/wheeled_entity.h> 00028 00029 namespace argos { 00030 00031 class CFootBotEntity : public CComposableEntity { 00032 00033 public: 00034 00035 ENABLE_VTABLE(); 00036 00037 public: 00038 00039 CFootBotEntity(); 00040 00041 CFootBotEntity(const std::string& str_id, 00042 const std::string& str_controller_id, 00043 const CVector3& c_position = CVector3(), 00044 const CQuaternion& c_orientation = CQuaternion(), 00045 Real f_rab_range = 3.0f, 00046 const CRadians& c_aperture = ToRadians(CDegrees(70.0f))); 00047 00048 virtual void Init(TConfigurationNode& t_tree); 00049 virtual void Reset(); 00050 virtual void Destroy(); 00051 00052 virtual void UpdateComponents(); 00053 00054 inline CControllableEntity& GetControllableEntity() { 00055 return *m_pcControllableEntity; 00056 } 00057 00058 inline CFootBotDistanceScannerEquippedEntity& GetDistanceScannerEquippedEntity() { 00059 return *m_pcDistanceScannerEquippedEntity; 00060 } 00061 00062 inline CFootBotTurretEntity& GetTurretEntity() { 00063 return *m_pcTurretEntity; 00064 } 00065 00066 inline CEmbodiedEntity& GetEmbodiedEntity() { 00067 return *m_pcEmbodiedEntity; 00068 } 00069 00070 inline CGripperEquippedEntity& GetGripperEquippedEntity() { 00071 return *m_pcGripperEquippedEntity; 00072 } 00073 00074 inline CGroundSensorEquippedEntity& GetGroundSensorEquippedEntity() { 00075 return *m_pcGroundSensorEquippedEntity; 00076 } 00077 00078 inline CLEDEquippedEntity& GetLEDEquippedEntity() { 00079 return *m_pcLEDEquippedEntity; 00080 } 00081 00082 inline CLightSensorEquippedEntity& GetLightSensorEquippedEntity() { 00083 return *m_pcLightSensorEquippedEntity; 00084 } 00085 00086 inline COmnidirectionalCameraEquippedEntity& GetOmnidirectionalCameraEquippedEntity() { 00087 return *m_pcOmnidirectionalCameraEquippedEntity; 00088 } 00089 00090 inline CProximitySensorEquippedEntity& GetProximitySensorEquippedEntity() { 00091 return *m_pcProximitySensorEquippedEntity; 00092 } 00093 00094 inline CRABEquippedEntity& GetRABEquippedEntity() { 00095 return *m_pcRABEquippedEntity; 00096 } 00097 00098 inline CWheeledEntity& GetWheeledEntity() { 00099 return *m_pcWheeledEntity; 00100 } 00101 00102 inline CWiFiEquippedEntity& GetWiFiEquippedEntity() { 00103 return *m_pcWiFiEquippedEntity; 00104 } 00105 00106 virtual std::string GetTypeDescription() const { 00107 return "foot-bot"; 00108 } 00109 00110 private: 00111 00112 void SetLEDPosition(); 00113 00114 private: 00115 00116 CControllableEntity* m_pcControllableEntity; 00117 CFootBotDistanceScannerEquippedEntity* m_pcDistanceScannerEquippedEntity; 00118 CFootBotTurretEntity* m_pcTurretEntity; 00119 CEmbodiedEntity* m_pcEmbodiedEntity; 00120 CGripperEquippedEntity* m_pcGripperEquippedEntity; 00121 CGroundSensorEquippedEntity* m_pcGroundSensorEquippedEntity; 00122 CLEDEquippedEntity* m_pcLEDEquippedEntity; 00123 CLightSensorEquippedEntity* m_pcLightSensorEquippedEntity; 00124 COmnidirectionalCameraEquippedEntity* m_pcOmnidirectionalCameraEquippedEntity; 00125 CProximitySensorEquippedEntity* m_pcProximitySensorEquippedEntity; 00126 CRABEquippedEntity* m_pcRABEquippedEntity; 00127 CWheeledEntity* m_pcWheeledEntity; 00128 CWiFiEquippedEntity* m_pcWiFiEquippedEntity; 00129 }; 00130 00131 } 00132 00133 #endif