ERSP Player Driver

From ImageWiki

Jump to: navigation, search

The ERSP Player driver was initially developed as part of a project in 2006/2007 by Jonas Fonseca and Bue Petersen. A few problems and enhancements remains to be resolved before the driver will be able to be fully functional. The problems as well as possible fixes are listed below together with a wish list of enhancements.

The plan is to submit the driver for inclusion in the Player project to get it reviewed and make it more easily available to students. We hope for the driver will be used and reviewed as part of the course Robot_Eksperimentarium_2007 in the autumn 2007.

Get the newest version of the driver by running:

   $ svn checkout http://image.diku.dk/svn/robot/trunk/erspplayerdriver

The current version of the driver is documentet on the ERSP Player Driver Documentation page.

Problems and issues

During the ERSP Player driver development project there was identified some problems and issues with the driver and later some ideas for improvements showed up.

IR sensor reading appears very unstable in some of the done experiments. The oscillation is so high that we suspect other reasons than the natural unstability of the IR sensor reading (eg. due to light influence etc.) One other major problem was the robots responsiveness during the execution of a specific wall following program (dikuwallfollow), where the robot seemed like it repeated its last command or not responded to new inputs (at least not before it hit the wall).


The problems all was discovered in the SVN revision r823 from 28. February 2007.


We have found these issues that could cause the problems (or anyway should befixed):

  • Check and fix for race condition in the driver: PutData, (Un)Subscribe. [DONE in SVN r834]
  • "Sample rate": previously, samples were sent on each change. Now, it is possible to configure a "sensor_interval" specifying how many usec the driver should wait between updates. [DONE in SVN r841]
  • ERSP uses centimeters and Player uses meters for distances. [DONE in SVN r842] ERSP2PLAYER_{DISTANCE,VELOCITY} and PLAYER2ERSP_{DISTANCE,VELOCITY,ACCELERATION) macros added to make these possible issues more visible and easy to change.
  • IR sensor issues:
    • Check how much the "light sensitivity" of the IR sensors adds to the error. [Not DONE]
    • Test/figure out how much IR readings oscillate across the different robots. The main reason is to find a HW bug. Using /opt/evolution_robotics-3.1.0-0/bin/test_range_sensor the changes seem to oscillate, also. The program filters out of range readings, making easier to focus on relevant sensors. [Not DONE]
    • It could be further investigated, which error function could model the noise to correct for the noise in more advanced programs. E.g. keep the previous reading(s) if the new reading changes too much. Corners could be a problem, so it must be "dynamic". Could buffers that average the readings be used? [Not DONE]
  • Responsiveness: The above fixes might have improved the robots responsiveness, but there might still be issues. Comparing a execution of the wall follow program in the simulator (Stage) and on the robot still shows some problems, though we would not expect it to behave identically. Therefore the following issues should be investigated further or kept in mind when using the driver:
    • The architecture of Player imposes some challenges about the sensor and command message queues. How do we avoid filling up the queues (Push/Pull Player setting)? How can we get the newest data? Which data to discard when queue is full? Timestamps?
    • In general You should carefully design your robot control program in a manner that suits your problem with regard on when and how often the sensors are read and the actuators activated.

Enhancement wish list

Further development of the driver could in addition to the issues above include:

  • Add support for a power interface. [DONE in SVN r849]
  • Add support for odometry readings. [DONE in SVN r2201]
  • Add support for more "pose" information about the sensors.

Who

The further development was done by Jonas, Carlson and Bue,

Please contact us by email if You have any questions regarding the driver or need a bugfix.

DIKU students and users, please contact us if you have a bugfix for the driver or if you want to develop it further.

Personal tools