The robot’s processing is divided among six (with room to grow) commodity PCs running RTLinux. One to handle balance and locomotion, another visual processing, the third diagnostics and watchdog, the fourth planning and mapping, the fifth dexterous manipulation, and the sixth, coordination, watchdog and safety. Most of the design (except the goal planning and mapping) is behavior-based.

The main boards are sealed in a shock-box in the chest cavity to keep the muck out and shock isolate the critical components. All critical software is run off solid-state drives for safety. I wouldn’t want a hard-drive crash make the robot fall over. Keeping things cool was a potential problem, but using the Mini’s motor had another advantage here. I just rerouted the AC coolant lines to the CPU box, and voila: instant water-cooling.

The gyros are polled at 100Hz, which is overkill considering the height of the robot’s CG. With six gyros churning at 100hz, a lot of mission-critical bandwidth is required, so I placed the gyros on their own token-ring controller that is accessible only to the balance and watchdog CPUs.

Remote access is constant via a commercial packet radio box—using an antenna a bit more expensive than a crisp tin :-). I use remote access for remote control, monitoring, and programming.