Hi all,

  I would like to share with you a driver we developed for online map building using MRICP (map reference ICP) algorithm. It was used in last year's "Search and Rescue" competition in which we managed to get good results (2'nd) place for the autonomous section. This driver is compatible with player 2 and is intensively tested and debugged and is currently in a stable conditions and thus i want other users to benefit from it's many functionalities. In Summary :

The driver requires at least one laser interface, and optionally a position  interface (the latter is required if you actually want to drive the  robot via this driver).  The driver provides a position interface which  returns the position of the robot in the current patch as calculated by mricp.

Specifications / Operation
- Upon start, the driver initializes the initial pose to [0 0 0] m,m,rd   
- When the driver recieves a PLAYER_POSITION_RESET_ODOM_REQ configuration   request, it:
  1- Saves the current map patch and starts a new one.
  2- Raves the pose of the new patch in respect to the old one.
  3- It resets the Robot pose to[0 0 0].
  4- Resets the Occupancy grid probability and assumes all the cells unknown.

- The driver saves the information about the map patches and their position relative to the previous patch map_path/map_configs.txt where map_path is the path of the directory to contain the maps specified in the driver configuration file.
- The driver computes the Occupancy Grid using Bayesian probability update. It computes the uncertainty in the sensor readings and uses the prior knowledge of each cell to get the postirior (new estimation) of the cells state.

This driver can be downloaded from : http://www.tarektaha.com/research/download.php?view.23

The driver is reasonably documented and with few examples and logs, feel free to request any more details if needed.

Tarek Taha
Doctoral Candidate
Centre for Autonomous Systems
University of Technology, Sydney
ph: +61 2 9514 3147
mobile: +61 433 292 432