After posting my Nimbus video, people have asked if I could provide more details on the robot’s design and components. This post attempts to give a more thorough overview than the video does, in case you’d like to build your own :-)

Arduino based

The robot is based on the Arduino platform which sports an ATmega328 microcontroller running at 16MHz. The Arduino was chosen not only for its ease of use, but also because of the numerous expansion shields available. Nimbus Mk I has one such shield, the Ardumoto Motor Driver Shield, which controls the two DC motors. Other shields can be added as needed, and they stack on top of each other. For instance, I’m currently experimenting with the XBee shield which adds wireless communication.
Motors & wheels
Nimbus can move around thanks to two Micro Metal Gearmotors from Pololu. The motors come in a variety of power and gear ratios which determines the speed and torque of the robot. Early prototypes used the 30:1 motors, but I found that they were be a bit too fast, giving Nimbus a hard time to react quickly enough to sensor input. Instead I settled on the 50:1 variant, which are a bit slower and allows for more fine-grained control.
The motors are mounted on the chassis with a pair of Micro Metal Gearmotor Brackets. The wheels attached to the motors are the 32x7mm Pololu wheels and a 3/8” ball caster is mounted in the front for easy maneuvering.
Sensors - Sharp GP2Y0A21YK

Three infrared proximity sensors serve as Nimbus’ eyes into the world. They are the popular Sharp GP2Y0A21YK which can sense distances between 10mm and 80mm. Other models are also available with different range configurations. Care must be taken when using these sensors though, as their output is non-linear. Acroname Robotics has an excellent article which explains how these sensors work, and how to make sense of their output.
Chassis

The round chassis is one of the few custom made parts on Nimbus. The disc is 128mm in diameter, with slots cut out for the two wheels on each side. It was designed using Inkscape, which allowed me to test out the placement of the components in the correct scale. Early prototypes used a cardboard version of the chassis, which helped discover any mechanical issues early on.
The complete design can be downloaded here (SVG) or as PDF.
When I was satisfied with the design, I printed it out and headed over to the Cybernetics workshop at my university. The friendly fellows there were happy to cut it out for me in super-strong Polycarbonate and drill out the holes.
I’m in the process of making the chassis available for manufacturing through Ponoko - the personal factory. I’ll make a new post soonish :-)
Battery & power supply
The battery is a standard 2-cell 800mAh LiPo with a nominal voltage of 7.4V. These can be purchased from most RC hobby shops. Any battery pack will work though, as long as it supplies a voltage between 7 and 12 volts.

Since LiPos should not be charged below 3.0V per cell, the voltage is continuously monitored. A simple voltage divider halves the voltage so it can be read by one of the analog inputs of the Arduino. When the analog reading is below a 3.2V threshold, the robot stops and blinks its LED to indicate that it’s out of power and needs to be recharged. The power supply also includes a power switch, a status LED and Vcc/GND outputs. Everything is put together on a round 1” protoboard.
Here are the schematics.
RGB LED
Mounted through a hole in the center of the chassis is an RGB LED. It serves both as a great debugging tool and as Nimbus’ aura :-) The LED is controlled by three PWM outputs of the Arduino, allowing to display any color. As with the power supply, the circuit is mounted on a round 1” protoboard with three appropriate current-limiting resistors.
List of components
Here’s the full list of the major components, excluding common stuff like wires, screws, resistors and such.
The Code
Finally, the code is up at GitHub for your forking pleasure.
Feel free to post any questions in the comments :-)