MASLab 2003 Kit

Each team received an identical kit of parts at the beginning of January. This kit served as a starting point for their robots – teams were not limited to their kits' contents and could purchase items on their own in order to pursue creative strategies.

Hardware

The basic kit included enough parts to build a simple robot: a computer, a robotics controller, a digital camera, motors, wheels, and basic hardware to attach everything together.

The electrical components used in MASLab are quite different from other contests. At the heart of each team's robot is the "Geode," a 300 MHz x86-compatible processor with 256 MB of RAM, a 6GB hard disk, wireless networking, and a full complement of standard PC peripherals. This PC runs an unmodified installation of RedHat Linux.

The Geode itself cannot control motors nor interface with sensors, so the MASLab staff designed and manufactured a custom robotics controller board. We call the controller the "ORC", for "Our Robotics Controller". This board serves as a slave to the Geode, executing simple commands under the direction of a program running on the Geode. The Geode and ORC communicate over an RS-232 serial link.

The ORC has an LCD display, support for four bi-directional 12V motors, three servos, analog and digital sensor inputs, optical encoders, and ultrasound range finders. Most of these features are implemented in microcontrollers from Cypress Microsystems. An Altera CPLD is also available for students to implement their own hardware,

While the usual assortment of robotics sensors are available (ultrasound range finders, infrared range finders, momentary buttons), MASLab additionally includes a digital camera. This color camera has a resolution of 640x480 and serves as most robots' primary sensor, scanning the playing field looking for targets and scoring areas.

Image processing is a computationally intensive task, which is one of the main reasons why a 300 MHz PC is part of the basic MASLab kit. A fast PC with plenty of memory also allows students to use more complex algorithms in their robot’s AI, such as optimal path finding algorithms and fine-grained occupancy grids.

Each team received a pair of DC motors with integrated gearheads. Two different speeds were available with gear ratios varying by 3x. The high-torque/low-speed motors are easier to work with since they drive over imperfections in the playing field unimpeded. However, some teams preferred the faster motors since the robots have a limited amount of time to explore a fairly large playing field.

MASLab robots draw a significant amount of power. The kit includes a 12 volt, 5 amp-hour lead-acid battery which provides a runtime of a couple hours.

Software

Students wrote multi-threaded C/C++ programs to control their robots using several low-level libraries provided by the staff. The ORC firmware and application programming interface (API) hides hardware details from users so they can execute simple commands such as servoSeek() rather than manually produce pulse-width-modulated control signals.

Image processing is challenging enough without having to start from scratch, so students used Intel’s optimized image processing algorithms (also known as the "Integrated Performance Primitives"). Advanced teams could also use Intel's "Open Computer Vision" library. MASLab staff members provided several functions to ease the use of this library, but every team developed its own image processing algorithms and strategies from scratch.

To help in the debugging process, the MASLab staff developed the "botclient". This graphical application allows teams to easily visualize the data collected by their robot. For example, the botclient could display raw and processed images from the camera or plot sensor values as a function of time. A team’s robot transmits this data using wireless networking to another PC where it is displayed.