roomba
[Drivers]
Newer versions of the iRobot Roomba vaccum robot can be controlled by an external computer over a serial line. This driver supports control of these robots.Note that the serial port on top of the Roomba operates at 5V, not the RS232 standard of 12V. This means that you cannot just plug a plain old serial cable between the Roomba and your PC's serial port. You need to put a level-shifter in between them. Or you if have a computer that exposes serial lines at "logic level," (e.g., the Gumstix), you can use them directly. Check out iRobot's hacker site for more information, including the pinout on the Roomba's serial port. The Roomba Wiki has a howto on building an appropriate serial cable.
- Compile-time dependencies
- none
- Provides
- position2d
- This interface returns odometry data (PLAYER_POSITION2D_DATA_STATE), and accepts velocity commands (PLAYER_POSITION2D_CMD_VEL).
- power
- This interface returns battery levels (PLAYER_POWER_DATA_STATE).
- bumper
- This interface returns bumper data (PLAYER_BUMPER_DATA_STATE).
- Supported configuration requests
- PLAYER_POSITION2D_REQ_GET_GEOM
- PLAYER_BUMPER_GET_GEOM
- Configuration file options
- port (string)
- Default: "/dev/ttyS0"
- Serial port used to communicate with the robot.
- safe (integer)
- Default: 1
- Nonzero to keep the robot in "safe" mode (the robot will stop if the wheeldrop or cliff sensors are triggered), zero for "full" mode
- Example
driver ( name "roomba" provides ["position2d:0" "power:0" "bumper:0"] port "/dev/ttyS2" safe 1 )
- Todo:
- Add support for IRs, vacuum motors, etc.
- Recover from a cliff/wheeldrop sensor being triggered in safe mode; the robot goes into passive mode when this happens, which right now requires Player to be restarted
- Author:
- Brian Gerkey