ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef RANGE_AND_BEARING_MEDIUM_SENSOR_H 00008 #define RANGE_AND_BEARING_MEDIUM_SENSOR_H 00009 00010 #include <string> 00011 #include <map> 00012 00013 namespace argos { 00014 class CRangeAndBearingMediumSensor; 00015 class CRABEquippedEntity; 00016 class CControllableEntity; 00017 class CRABMedium; 00018 } 00019 00020 #include <argos3/core/simulator/sensor.h> 00021 #include <argos3/core/utility/math/rng.h> 00022 #include <argos3/core/simulator/space/space.h> 00023 #include <argos3/plugins/robots/generic/control_interface/ci_range_and_bearing_sensor.h> 00024 00025 namespace argos { 00026 00027 class CRangeAndBearingMediumSensor : public CSimulatedSensor, 00028 public CCI_RangeAndBearingSensor { 00029 00030 public: 00031 00032 CRangeAndBearingMediumSensor(); 00033 virtual ~CRangeAndBearingMediumSensor() {} 00034 virtual void SetRobot(CComposableEntity& c_entity); 00035 virtual void Init(TConfigurationNode& t_tree); 00036 virtual void Update(); 00037 virtual void Reset(); 00038 virtual void Destroy(); 00039 00040 private: 00041 00042 CRABEquippedEntity* m_pcRangeAndBearingEquippedEntity; 00043 CControllableEntity* m_pcControllableEntity; 00044 CRABMedium* m_pcRangeAndBearingMedium; 00045 Real m_fDistanceNoiseStdDev; 00046 CRandom::CRNG* m_pcRNG; 00047 CSpace& m_cSpace; 00048 bool m_bShowRays; 00049 }; 00050 } 00051 00052 #endif