Menu

#5 Implement processing chains for sensors and motors

2.0
open
nobody
None
major
2014-01-29
2014-01-23
No

At the moment every sensor/motor is implemented as a separate class. All the processing from acquiring data from the simulation up to preparing data in a form suitable for the neural network is done inside each class. It would be better to implement processing chains (i.e. the possibility to have processing blocks that can be put one after the other), as they would increase code reuse. For example a block adding noise can be implemeted in a general way and then used only when necessary.

Discussion

  • Stefano Nolfi

    Stefano Nolfi - 2014-01-27

    I am not sure that this might be required since the way in which noise is added tend to vary depending on the type of sensor and since I cannot immagine other possible uses of this functionality

     
  • Tomassino Ferrauto

    For most sensors adding noise means adding a value taken from an uniform or gaussian distribution in a given range, so it is actually the same code in all sensors. Implementing processing chains would eliminate the need to duplicate code. Moreover at the moment it is not possible to add a different kind of noise (e.g. noise on binary sensors) without modifying farsa code. In addition processing chains would be useful for other kind of processing, for example:

    - normalization/range modification;
    - averaging of multiple sensors or of a single sensor (e.g. the average of consecutive IR sensors);
    - pre-processing of raw sensor data, for example discretization, linearization or making data non-linear;
    - other ad-hoc forms of preprocessing.
    

    All of the above could be implemented without the need to modify existing code. Furthermore custom processing blocks could be easier to implement than current sensors as they can rely on existing sensors to acquire the raw data (i.e. no need to write "low-level" code to get data from the simulation).

     

Log in to post a comment.

MongoDB Logo MongoDB