Here are some images and movies and other stuff showing our progress toward building a "fleet" of several (identical) highly-capable research robots.

This project is currently on hold as we work on some other new research robots.

A very brief overview

Each robot will have:

Update 10/03: as of now, we have given up on the Ampro board in favor of the Via EPIA ME6000. Ampro did not provide us with satisfactory support, considering their board couldn't even handle booting from a hard drive (using their instructions to do so). In fact, their support staff seemed to have less of a clue about their own board than we did. Personally, I'm quite pleased with the Via board so far. All of our software was "ported" by changing one line:

#define ROBOT_BYTE_ORDER __LITTLE_ENDIAN

With this change, and the near-completion of our chassis and selection of a camera, we are nearly ready to start putting the final robot together.

Prototype integration test "1" (07/09/2003)

Here are some pictures from our first real "integration" test (integration between the microcontrollers in charge of the lowest-level stuff, like driving the motors, and the main computer/software). The chassis being used is completely temporary (as you can see, none of the hardware is even really fixed to it). The main computer (pictures 4 and 5) is still sitting on my desk, and is talking to the hardware via that serial tether. Pictures 2 and 3 show the PDA controlling the motors.

1 2 3
4 5 6
7 8


Movie:Driving around controlled by the PDA (mpeg4 divx, 2.7mb)

Software Feature-complete! (08/01/03)

We are done adding new features to our robot software (for now). Some of the things our software does:

Of course, our software does lots more, but these are the most important functionalities it provides. You may be interested in the doxygen documentation generated from the source.

Some interesting code statistics (generated using David A. Wheeler's SLOCCount):

SLOC    Directory       SLOC-by-Language (Sorted)
3726    misc            cpp=3726
1931    pda             perl=1104,cpp=827
1560    librobot        ansic=1560
1026    arch            cpp=628,ansic=398
710     interp          ansic=710
621     include         ansic=621
347     scripts         sh=347
316     driver          ansic=316
169     mc              ansic=169
0       doc             (none)
0       top_dir         (none)

Totals grouped by language (dominant language first):
cpp:           5181 (49.79%)
ansic:         3774 (36.27%)
perl:          1104 (10.61%)
sh:             347 (3.33%)

Total Physical Source Lines of Code (SLOC)                = 10,406
Development Effort Estimate, Person-Years (Person-Months) = 2.34 (28.08)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 0.74 (8.88)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 3.16
Total Estimated Cost to Develop                           = $ 316,075
 (average salary = $56,286/year, overhead = 2.40).

We seem to have squeezed 28.08 person-months of development into just two! Hopefully there aren't 14 times more bugs!