ilpincy / argos3

A parallel, multi-engine simulator for heterogeneous swarm robotics
http://www.argos-sim.info/
262 stars 121 forks source link

Inconsistent XML interface for adding noise to sensors/actuators #120

Open jharwell opened 4 years ago

jharwell commented 4 years ago

I'm currently looking at investigating swarm robustness in the present of noise, and would like to add footbot sensor/actuator noise. The sensor/actuators I'm interested in all have the ability to add noise, but the interface is very inconsistent:

As you can see, there is quite a lot of variety in the level of control, as well as how things are specified in the XML. My thoughts on how to make things somewhat more consistent:

For the simpler sensors/actuators (battery, proximity, light), choosing whether to specify the range directly in the XML or as a single number is an easy change to make, and my preference is pythonic in this regard, in that explicit is better than implicit, and I think specifying the range directly in the XML is the way to go. For the blob sensor, I think exposing the angle of the noise in addition to distance to the user would also be good.

Some sensors/actuators allow the user to specify Gaussian distributions for noise (blob camera, differential steering), and some don't (proximity, ground, and light sensors). I think that adding the ability to choose the type of noise (i.e. uniform or Guassian), or making them all the same would be beneficial as well. However, I'm not a robotics expert, and there may be good reasons why some have uniform vs. Guassian depending on the type of sensor/actuator, but these are not documented in the argos3 -q <query> interface.

@ilpincy @allsey87 any thoughts how how to make things more consistent? I would be happy to do the implementation myself, if there is some consensus on what changes make sense and would enhance usability in ARGoS.