Page 352 - Hacking Roomba
P. 352
RoombaCam: chapter
Adding Eyes to
Roomba
dding vision to a robot is no small feat. You need sufficient process-
ing power to handle the higher data rate of video, sufficient storage in this chapter
Aspace to store intermediary images for processing, and an interface
to hook a camera to. This is all just to get video into the robot. It says noth-
ing of the kind of processing needed to parse the incoming video and recog- Add a Linksys
nize even simple things like color or motion, let alone people or places. WRTSL54GS to
Roomba
Vision systems in robotics and artificial intelligence are a huge area of
research. Several applications have been created (many free research projects
that run on Linux), each tackling one subset of the vision problem like Add a camera to
motion detection or spot following. These tools all require a prepared envi- Roomba
ronment with consistent environmental parameters, or they must be tuned
to your particular environment. Install and use
webcam drivers in
Rather than attempt to show one of these systems in use, this chapter adds
vision to a Roomba robot to create a remote telemetry vehicle, much like a OpenWrt
Mars rover. The on-board camera becomes your view into the world as seen
by the robot. Unlike a simple video camera, however, the camera data is run Add Flash memory
through the embedded Linux system on the robot, allowing processing and storage
acting on vision data.
To add a camera, a more capable embedded Linux system than the one Control Roomba
used in Chapter 14 is needed. The Asus WL-HDD from that chapter is a from C
great box but is a bit underpowered for handling video. Its USB subsystem
also seems to have problems when communicating with multiple devices Create a web-based
simultaneously. There are several upgrades possible and the Linksys command center
WRTSL54GS is used here.
The small systems that run stripped-down versions of Linux have more in Build a small USB-
common with the tiny microcontrollers like the Basic Stamp of Chapter 13 to-serial dongle
than a desktop computer. In the computer/microcontroller comparison of
Figure 13-1, these Linux-capable devices are definitely on the microcon-
troller side. They are much simpler than a full Linux system, and you don’t
have to be a Linux expert to make them work. You do need to have famil-
iarity with the command line, as in the previous chapters, but you don’t
need to be a professional Linux system administrator. If you’re new to
Linux, this is a great way learn the basics. And all the techniques used in
this chapter are applicable to larger Linux systems.