The motors are controlled by micro-switch bump sensors, tachometers, and a small bank of relays that are switched by the onboard PIC16F84 microcontroller. High level planning and control is carried out by a Common Lisp program running on the base station which monitors the robot's behaviour and sends commands via the radio link.