Irobot Roomba Movement Panel
Control the iRobot Roomba and read sensor data
+ How To Add This Control To Your Project (Click to Expand)
- Make sure you have the latest version of ARC installed.
- Select the Get button in this page to download the archive file.
- Double click the downloaded archive file to execute installer.
- The installer will add this control to ARC.
- Load ARC and press the Project -> Add Control button from the menu.
- Choose the Movement Panels category tab.
- Press the Irobot Roomba Movement Panel icon to add the control to your project.
Control iRobot Roomba Series 500 and read sensor data. This currently works with the 500 series robots and iRobot create. The baud rate and connection type will need to be configured in the settings menu.
SCI Connection Types
The connection types can be Software Serial (read only), HW UART (read/write), and USB COM TTL (read/write)
Reading Sensor Data
You can read sensor data, if the PC COM or HW UART ports are used for the connection. This also requires the TX and RX wires to be connected to the roomba's SCI interface. The data from the sensors and internal values are set as global variables. You can access everything from battery voltage to wheel encoder counts.
Different models (i.e. create vs roomba) use different baudrates. Check the manual for the roomba version to see what baudrate it uses. I believe the roomba uses baudrate 115200, and the create uses 57600. But, don't hold me to that :). I do notice that older roomba's use 57600 baud - ensure you have selected the correct baud rate in the config settings. Newer roombas use 115,200 baud. If you are unsure, try each baud rate.
Here's a video of the nice proportional steering that this control provides the iRobot roomba. This video has the roomba set to follow Kate's orange socks.
Like all movement panels, only one can exist. In this case, this Movement Panel will connect to a Roomba by its SCI interface. This control allows for a variety of speeds also, so you can use the analog joystick to control speeds. Or use the speed control in the camera to track objects with nice smooth trajectories.
ARC allows multiple physical robot controllers to be connected at once. The Movement Controls only operate on the first board (Board 0) or PC serial port.
The cable connector can have either TX & RX or just RX connected from the Roomba. If only RX pin is connected, the sensor data will not be read.
Roomba <-> USB <-> PC
iRobot has a low cost USB cable that can connect directly to a PC. This is useful if the PC is located within the robot. You can get it from here: https://store.irobot.com/default/parts-and-accessories/create-accessories/communication-cable-for-create-2/4466502.html
Roomba <-> EZB <-> PC
This method will require you to make a connector cable. This requires a 7 pin Male Mini Din to connect to an EZB I/O Controller. Watch DJ's iRobot Roomba Live Hack to see how to make a cable.
This is a 7 Pin Male Mini-Din connector.
These images demonstrate how to make a cable with RX only. Meaning, the sensor data will not be read by ARC. If you wish to have the sensor data transmitted from the iRobot Roomba to ARC, the pin #4 (TXD) will need a connection. View DJ's iRobot Roomba Live Hack video for step-by-step instructions to make the cable with TX and RX.
Great Platform Base
How about using an iRobot Roomba for your robot wheel base? You can attach a camera and the EZ-B to a Roomba and turn it into a lean mean cleaning security machine! Combine a USB Joystick and the HTTP Remote Server Control... Voila! A remote control security cleaning robot. That's easy!
You can use an iRobot Roomba motherboard as an HBridge to drive your custom motors. This gives your robot the ability to self charge. By positioning the IR sensors on you robot in the same fashion as the Roomba, your robot can easily dock with the Roomba's self charging base.
*Note before connecting to a robot controller, check the signal wire (white wire) with a volt meter and ensure you have between zero and five volts from the Roomba. If you see higher voltage, you're connected to the wrong port. If you apply too much voltage to the the controller from the Roomba, you will damage the port.