iRobot Roomba 500 package based on the iRobot Open Interface Specification. There are two nodes available, a light node which exposes odometry and velocity commands, and a full node which exposes all capabilities of the underlying library.
roomba_500_series contains two nodes for interfacing a Roomba 500 series robot with ROS, however it is possible to use the iRobot OI library to do your own nodes to customize the data exchange between ROS and the Roomba. The iRobot OI library is based on the Open Interface Specifications document released by iRobot
Currently the iRobot OI library allows for almost all the Roomba interactions provided by the Open Interface, from which one can probably point out the following:
Odometry:
Sensor data:
Actuate on the Roomba:
The following functions will cause the OI mode to change, locking out the user from the robot, thus lossing control over the Roomba:
An ROS service was added to the roomba_500_series package to allow for the Roomba to dock without leaving the OI mode required to maintain control. More on this on the wiki page.