ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/simulator/sensors/positioning_default_sensor.h
Go to the documentation of this file.
00001 
00007 #ifndef POSITIONING_DEFAULT_SENSOR_H
00008 #define POSITIONING_DEFAULT_SENSOR_H
00009 
00010 #include <string>
00011 #include <map>
00012 
00013 namespace argos {
00014    class CPositioningDefaultSensor;
00015    class CEmbodiedEntity;
00016 }
00017 
00018 #include <argos3/plugins/robots/generic/control_interface/ci_positioning_sensor.h>
00019 #include <argos3/core/utility/math/range.h>
00020 #include <argos3/core/utility/math/rng.h>
00021 #include <argos3/core/simulator/space/space.h>
00022 #include <argos3/core/simulator/sensor.h>
00023 
00024 namespace argos {
00025 
00026    class CPositioningDefaultSensor : public CSimulatedSensor,
00027                                      public CCI_PositioningSensor {
00028 
00029    public:
00030 
00031       CPositioningDefaultSensor();
00032 
00033       virtual ~CPositioningDefaultSensor() {}
00034 
00035       virtual void SetRobot(CComposableEntity& c_entity);
00036 
00037       virtual void Init(TConfigurationNode& t_tree);
00038 
00039       virtual void Update();
00040 
00041       virtual void Reset();
00042 
00043    protected:
00044 
00046       CEmbodiedEntity* m_pcEmbodiedEntity;
00047 
00049       CRandom::CRNG* m_pcRNG;
00050 
00052       bool m_bAddNoise;
00053 
00055       CRange<Real> m_cPosNoiseRange;
00056 
00058       CRange<CRadians> m_cAngleNoiseRange;
00059 
00061       CRange<Real> m_cAxisNoiseRange;
00062    };
00063 
00064 }
00065 
00066 #endif