The robots uses two MPUs.
The primary CPU is a Hitachi SH7032 (Now made by Renesas - the SH-2 core MPUs would be a better choice now). This controls takes in all sensor data and determines which of the robot's behaviours should be active at any one time. It is also responsible for communicating with the AVR MPU and, if required, host PC.
The secondary CPU is an AVR Atmega8535-16, supplied by www.active-robotics.co.uk . This was needed to ensure accurate real-time of sampling of the Gyro and to calculate the orientation of the robot. I found that leaving this job to the rather laden SH7032 left room for a lot of error. As well as gyro sampling the AVR also samples and decodes the values sent back from the IR range finders (There is enough time between the Gyro sample IRQ's to read and calculate the Infrared Range Finders successfully) and also calculates the current battery voltage. The gyro and IR data is then sent, over a serial link, to the SH7032 for processing.
Inter-Processor Communication.
The two MPUs are linked by a simple serial channel. The bulk of the data is the Gyro and IRRF reading from the AVR to the SH7032. The SH7032 can tell the AVR to recalibrate the Gyro or reset the sensor readings if required.
The picture below shows the MPU's in-situ:
The SH7032 is just under the AVR board....wires coming in from every which way. Something I've cleaned up recently!