
Quick and Easy way to add vision to your iRobot Create or Roomba
The iRobot Create is a nifty robot base similar to the iRobot Roomba vacuum cleaner. The Create has hard points for mounting additional equipment, the array of Roomba sensors, a breakout panel with pins for extra sensors and motors and a serial port (both TTL and RS232).
The XBC is a robot controller used in the Botball Robot Education Program. As such, the XBC is in use by thousands of students from middle to graduate school. The newest version of the XBC connects to a PC via a USB port, but the XBC also has a hidden TTL level serial port. KISS Institue for Practical Robotics, the non-profit that distributes the XBC and runs the Botball program, has just released an XBC/Roomba/Create serial cable. The cable allows the XBC and Roomba or Create to talk. It also powers the XBC off of the Create/Roomba battery and includes a DIO connection that can wake a Roomba.
The XBC is programmed using Interactive C (IC), a free program with an ultra friendly UI, a simulator, editor, and other nifty features. It can be used to program the XBC, Handy Board, RCX and other processors.
The XBC comes with a camera and firmware that allow it to do frame rate color tracking of multiple objects and multiple colors. The xbccamlib which come with the IC installation provides simple function calls to do blob tracking. The XBC allows color models to be created through the GUI on the XBC and the tuning of the models is done with real-time feedback on the XBC's color screen. More info on the XBC can be found in an IROS 2005 paper by Legrand et.al.. XBCs and the XBC/Roomba/Create cable may be purchased from botballstore.org.
NEW (5/9/07): Robots playing tennis -- sort of. In this movie two robots play tennis. The robots back themselves up from the net (red line). They then wait, scanning the net until the green ball comes over onto their side. The robot runs over and whacks the ball back onto the other side, aiming its shot to send the ball back towards the center of the field. The robots use the orientation of the red line in the image to angle their shot. They use the bottom of the bounding box of the green blob relative to the centroid of the red line to determine when the ball is on their side. The total hardware cost for the pair of robots was approximately $1000.
Here is a movie showing a couple demos: a Create with an XBC pushing a ball along the floor. This is a version of the inverted pendulum problem. Given the curved front of the Create and the not all that roundess of the ball, the Create has to do a bit of maneuvering to keep it so solidly on its nose. However, the XBC color tracking is so fast and the Create's control so smooth that it only took a couple iterations playing with the gain values to get it locked down. You can see the code and the Create Library for the XBC.
The second demo on the movie shows a Roomba outfitted with an XBC and three sonars. The XBC has standard library routines for handling the sonar, and the Roomba Library for the XBC lets you command the Roomba similarly to the Create (the XBC can also wake up the Roomba and put it to sleep). In this demo the Roomba tries to roam around avoiding obstacles and a Create, using vision tracking, is chasing it. Here is the Roomba code, and here is the chase code for the Create.
As part of the Yuri Night celebration of humanity's first space explorer, I created a little piece of kinetic art: A Yuri Gagarin robot that orbits a ball (the robot will adjust its course to maintain the orbit as the ball is moved). Here a movie, and here's the code.
Using this link to iRobot will allow you to order a Create or a Roomba, and will also help support the Botball educational robotics program (at no extra cost to you). Enjoy.
Last Updated 5/9/07 2100CDT by David P. Miller