Towards Visually-Guided Neuromorphic Robots



Beobot Prototyping

The base RC-car mobile platform, prepared for our first video shoot, in which we simply mounted a camcorder on it and drove it manually.
The car runs at 25 MPH for about 20 minutes on a standard set of two 7.2V battery packs. We will equip the beobots with four packs and many additional Li-Ion camcorder batteries to power the on-board quad-CPU Beowulf. Ruchi has found cool battery packs and DC/DC converter chips which we are experimenting with.
Controlling the servomechanisms (which allow the robot to turn, accelerate, brake and switch between first and second gear) is working using a serial-to-servo converter and some software which Jen developed. Jen is now putting together a servo-based pan/tilt camera mount for the beobots.
Software to control the diagnostic LCD screen from a standard PC serial port is almost ready, from Jen and Paul.
The dual-CPU embedded motherboards (Rocky-3742EVFG, purchased from are working great. Eric installed Linux Mandrake 8.1 on a 256MB CompactFlash disk, and it was a breeze. The Gigabit Ethernet chip (which will link both boards in each beobot) was not automatically recognized during installation, but a kernel module is available for it, so it was trivial to configure. The default kernel did not include support for 1GB of memory, so we are cooking up a custom kernel with all the drivers required for the board. Video, sound, ieee1394, serial, parallel, etc are all working great under Linux.
We just wrote a high-level driver for these cool firewire (IEEE-1394) cameras. Each Beobot will have two such cameras, mounted on a pan/tilt head composed of two servomechanisms.
Eric and Tony finish to prepare the robot for its first trip outdoors (under human control). Check it out here (8.5 MB MPEG movie, 30 fps). In this movie sequence, the attention model has its internal memory (inhibition of return) turned on, so, once it looks at any given object, it will not come back to it for a few seconds. In this respect, the attentional fixations shown in this movie differ from ours, as we tend to continuously fixate one interesting object when we find one that is relevant to our current task. Note how the model does find most interesting objects in the scene (hands, people, trees, pillars) though it only very briefly attends to each one. The autonomous beobots will use a combination of our attention model (to find possible obstacles and landmarks), a navigation system based on a rapid computation of the gist of the scene (where the road is, where the sky is, etc), and localized object recognition linked to the attention model, so that we can identify the targets being attended to.
Nathan completed soldering together a prototype of our infernal power conversion system, which delivers up to 34A @ 5V to the CPU boards from batteries. Looks like we can power all four CPUs for slightly over an hour from 8 standard R/C battery packs. Great!
Mounting the CPU boards onto the car chassis was challenging because the CPU boards have no mounting holes pre-drilled in them, and component density is so high that there is absolutely no room to drill anywhere on the boards. April found a great way of solving thie problem: the CPU boards rest on a rubber mat in which appropriate cut-outs have been laser-cut to accommodate for the various components soldered on the back side of the CPU boards. The rubber mat rests on a solid piece of laser-cut clear acrylic, the base board. Finally, a piece of thin laser-cut acrylic fits tightly around the CPU boards so that they cannot shift. The CPU boards are then maintained in place by many screws just adjacent to the CPU boards, so that the screw heads hold the boards without requiring any drilling into the boards. Click here for a larger image.
The final version of our infernal power conversion system is ready for fabrication. The schematic diagram and printed circuit board layout were done using the freeware version of Eagle PCB software from Cadsoft. The circuit just fits within the 3x4in maximum board size available in the freeware vesion of Eagle PCB. Thank you Cadsoft!
Daesu completed a simple circuit (shown in front of the two motors) that allows us to switch between PC-controlled and radio-controlled by flipping a switch on the radio controller. This will allow us to easily take over the control of the robot in case of bug in our vision algorithms.
The main platform, shown here from below, is ready to go. On the left, the mini-SSC interfaces the PCs to the car's servomechanism. On the right, the fan-cooled power conversion module delivers power to the CPUs from camcorder battery packs.
The first prototype is basically ready and working; the last few components missing on this picture are the batteries, the protective shell, and the pan/tilt camera mounts.
Hook it up, install Linux Mandrake 8.2 on the flash drives, and off you go!
This laser-cut control panel at the back of the robot was a real pain to assemble, because we had to cut and solder a zillion custom cables. But it is really useful to connect the beobot to a monitor, keyboard, mouse, GPS, speakers and microphone, various USB devices, etc.

Copyright © 2005 by the University of Southern California, iLab and The Beobot Team. Last updated Thursday, 02-Sep-2010 10:05:32 PDT