eyebot_proximity_default_sensor.cpp
Go to the documentation of this file.
1 
7 #include <argos3/core/simulator/entity/embodied_entity.h>
8 #include <argos3/core/simulator/entity/composable_entity.h>
9 #include <argos3/core/simulator/simulator.h>
10 
12 
13 namespace argos {
14 
15  /****************************************/
16  /****************************************/
17 
19 
20  public:
21 
22  virtual Real CalculateReading(Real f_distance) {
23  if(f_distance < 0.009889556) {
24  return 1.0;
25  }
26  else {
27  return 0.0100527 / (f_distance + 0.000163144);
28  }
29  }
30 
31  };
32 
33  /****************************************/
34  /****************************************/
35 
37  m_pcProximityImpl(new CProximitySensorImpl()) {}
38 
39  /****************************************/
40  /****************************************/
41 
43  delete m_pcProximityImpl;
44  }
45 
46  /****************************************/
47  /****************************************/
48 
50  try {
51  m_pcProximityImpl->SetRobot(c_entity);
52  }
53  catch(CARGoSException& ex) {
54  THROW_ARGOSEXCEPTION_NESTED("Can't set robot for the eye-bot proximity default sensor", ex);
55  }
56  }
57 
58  /****************************************/
59  /****************************************/
60 
62  m_pcProximityImpl->Init(t_tree);
63  }
64 
65  /****************************************/
66  /****************************************/
67 
69  m_pcProximityImpl->Update();
70  for(size_t i = 0; i < 24; ++i) {
71  m_tReadings[i].Value = m_pcProximityImpl->GetReadings()[i];
72  }
73  }
74 
75  /****************************************/
76  /****************************************/
77 
79  m_pcProximityImpl->Reset();
80  }
81 
82  /****************************************/
83  /****************************************/
84 
86  "eyebot_proximity", "default",
87  "Carlo Pinciroli [ilpincy@gmail.com]",
88  "1.0",
89  "The eye-bot proximity sensor.",
90  "This sensor accesses the eye-bot proximity sensor. For a complete description\n"
91  "of its usage, refer to the ci_eyebot_proximity_sensor.h interface. For the XML\n"
92  "configuration, refer to the default proximity sensor.\n",
93  "Usable"
94  );
95 
96 }
#define THROW_ARGOSEXCEPTION_NESTED(message, nested)
This macro throws an ARGoS exception with the passed message and nesting the passed exception.
float Real
Collects all ARGoS code.
Definition: datatypes.h:39
The namespace containing all the ARGoS related code.
Definition: ci_actuator.h:12
REGISTER_SENSOR(CEPuckProximityDefaultSensor, "epuck_proximity", "default", "Danesh Tarapore [daneshtarapore@gmail.com]", "1.0", "The E-Puck proximity sensor.", "This sensor accesses the epuck proximity sensor. For a complete description\n" "of its usage, refer to the ci_epuck_proximity_sensor.h interface. For the XML\n" "configuration, refer to the default proximity sensor.\n", "Usable")
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
Basic class for an entity that contains other entities.
The exception that wraps all errors in ARGoS.
virtual Real CalculateReading(Real f_distance)
Calculates the proximity reading when the closest occluding object is located as the given distance.
virtual void SetRobot(CComposableEntity &c_entity)
Sets the entity associated to this sensor.
virtual void Reset()
Resets the sensor to the state it had just after Init().
virtual void Update()
Updates the state of the entity associated to this sensor, if the sensor is currently enabled.
virtual void Init(TConfigurationNode &t_tree)
Initializes the sensor from the XML configuration tree.
const std::vector< Real > & GetReadings() const
virtual void SetRobot(CComposableEntity &c_entity)
Sets the entity associated to this sensor.
virtual void Update()
Updates the state of the entity associated to this sensor, if the sensor is currently enabled.
virtual void Init(TConfigurationNode &t_tree)
Initializes the sensor from the XML configuration tree.
virtual void Reset()
Resets the sensor to the state it had just after Init().