One of the best known robots in the consumer space is iRobot's Roomba carpet and floor cleaner. It uses brushes instead of a vacuum to clean, but it does so automatically. The Roomba has been joined by the Scooba floor washer and the Dirty Dog, which has more powerful motors and better brushes that can even pick up small nuts and bolts. The Dirty Dog is designed for cleaning up workshops.
The Roomba platform is now available to robotic developers as well. The Roomba does have a serial interface, but the new iRobot Create (Fig. 1) provides an even better development platform, with space for custom peripherals and hardware. It definitely beats duct tape and Dremel tools. The Create also provides access to the on-board micrcontroller.
The Create retains the omnidirectional infrared sensor (Fig. 2) located at the front of the robot. This is used to detect its charging station (an optional item) and virtual walls, infrared transmitters that mark boundaries for the robot. A closeup look (Fig. 3) reveals the sensor's simplicity. Multiple sensors are located inside the robot, and this plastic light guide reflects infrared light from all around. This allows the robot to identify the direction of the light.
The infrared sensor is just one of 32 sensors built into the Create platform. The front cowl is actually a bump sensor that can indicate on which side a collision has occurred. This sensor only handles the front half of the round robot, but this is usually sufficient since the robot normally pivots or turns in a forward direction. It can move backwards, but most algorithms assume that the robot has moved forward into a collision, so it can usually back up a short distance and pivot to its heart's content.
The other sensors include downward-looking infrared sensors to detect a falloff — typically steps leading down, or very steep inclines. Internal sensors include support for detecting battery charge levels and motor control.
The Create has a more robust traction system than the typical Roomba (Fig. 4). This helps the robot navigate over rougher terrain, but it is still an indoor robot that requires a relatively flat surface. It can handle surfaces such as concrete or even short grass, but the low clearance limits its mobility in more rugged environments. The wheel drive mechanisms are hinged, so there is some movement available should the robot navigate into an area that is not quite flat.
There is a non-traction balance wheel under the front of the Create (Fig. 5), and a slightly smaller one can be added to the back. These wheels simply turn and pivot in response to movements initiated by the pair of drive wheels.
The first major change to the Create, as compared to the Roomba, is the cargo area in the rear of the robot (Fig. 6). It has removable panels and numerous threaded mounting holes for adding custom equipment. About a third of the volume in the Create is available for flush mounting of external hardware. Of course, rising above the Create is an option, but it can often be a requirement. Limits tend to be power, weight, and center of gravity.
Adding Intelligence To The iRobot Create
The iRobot Create's built-in microcontroller is accessible via the serial port, available from the cargo bay interface connector or the connection on the side of the robot (Fig. 7). The latter is comparable to the port found on the Roomba. It is not an RS-232 port, so you need to use the accompany cable (Fig. 8) to access the system.
The cargo bay interface is also designed for direct access by the likes of iRobot's Command Module (Fig. 9). The module fits inside the cargo bay (Fig. 10). The $59 Command Module contains a 20-MHz Atmel MegaAVR with a USB interface. This microcontroller interfaces with the Create microcontroller using the serial port on the cargo bay interface. The unit draws power from the Create's battery.
The Command Module is only one way of adding intelligence to the Create. Other modules from third parties are in the works, and it is not too difficult for someone to build their own interface to plug into the cargo bay port.
The cargo bay port provides power from the Create's battery, and also provides the serial port interface that runs at speeds up to 115.2 Kbaud. Commands can be sent across the interface to control the behavior of the on-board microcontroller. In general, the functions can be initiated at a higher level, alleviating the host processor from the low level chores. This can limit the fine control that direct access to the motors would provide, but this approach provides a more robust support platform. It is possible to control things like the drive motors, but there is the latency of the serial interface to consider.
The Create has nine built-in demos, including one for finding and mating with its docking/recharging station (see the Video). Create's controller can also store scripts — sequences of basic commands. The scripts can be invoked with minimal overhead, allowing more complex actions to be initiated by the host.
The Create's serial interface also provides access to the main infrared sensor. This sensor can detect data from a handheld infrared remote control unit providing basic wireless control options. The motors provide odometer support. Finally, the unit has basic audio output support.
The Command Module has access to all of these facilities, but its MegaAVR is programmable in assembler and C. The tools are freely available. Debugging is not as easy as a JTAG interface but more than sufficient for most applications. The Command Module can be powered while the Create is essentially powered down, and the Command Module can be powered off while the Create is turned on.
The Command Module hides most of the cargo bay connector pins and exposes many (but not all) of the MegaAVR IO pins. Surprisingly, the documentation only makes mention of the digital and analog support. There is actually a serial interface that is available as well, which can be very handy in controlling off-module devices.
Overall, the Create is an impressive platform for the price. Like the Roobma, its plastic construction is good but not rugged. It will last a long time with proper care. The drive and sensors are well designed. It is more likely that any additions via the cargo bay will be more susceptible to damage than the platform itself.
The next article in this series will take a closer look at the software support of the Create and the Command Center.