ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/simulator/sensors/differential_steering_default_sensor.h
Go to the documentation of this file.
00001 
00007 #ifndef DIFFERENTIAL_STEERING_DEFAULT_SENSOR_H
00008 #define DIFFERENTIAL_STEERING_DEFAULT_SENSOR_H
00009 
00010 #include <string>
00011 #include <map>
00012 
00013 namespace argos {
00014    class CDifferentialSteeringDefaultSensor;
00015    class CWheeledEntity;
00016 }
00017 
00018 #include <argos3/plugins/robots/generic/control_interface/ci_differential_steering_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 CDifferentialSteeringDefaultSensor : public CSimulatedSensor,
00027                                      public CCI_DifferentialSteeringSensor {
00028 
00029    public:
00030 
00031       CDifferentialSteeringDefaultSensor();
00032 
00033       virtual ~CDifferentialSteeringDefaultSensor() {}
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       CWheeledEntity* m_pcWheeledEntity;
00047 
00049       const Real* m_pfWheelVelocities;
00050 
00052       CRandom::CRNG* m_pcRNG;
00053 
00055       bool m_bAddNoise;
00056 
00058       CRange<Real> m_cVelNoiseRange;
00059 
00061       CRange<Real> m_cDistNoiseRange;
00062    };
00063 
00064 }
00065 
00066 #endif