In order to demonstrate how learning algorithms can be applied to improve the information processing capabilities of systems in real environments, we have constructed a small quadruped robot that is able to perform various simple sensorimotor tasks. Figure 1 shows a picture of our robot, which is approximately 25 cm in length and about 1 kg in weight, powered by a 9.6V rechargeable battery pack. It contains 14 hobby servo motors to provide three degrees of freedom for each of the four legs, as well as two degrees of freedom for the head. Attached to the head assembly is a small board level CCD camera that acts as a single eye, as well as two directional electret microphones for ears. The two head servo motors allow the camera to rapidly pan and tilt over a wide range of viewing angles. In addition to the visual and auditory inputs, a two-axis gyroscopic rate sensor is used to provide vestibular input for stabilization tasks.
An onboard Motorola 68HC11 microprocessor converts and processes the gyroscopic inputs, and provides auditory feedback by producing sounds in a small speaker. It also generates the timing signals for the 14 motors, which are demultiplexed to the separate motors using shift registers. Because the microprocessor is not powerful enough to process the input signals from the CCD camera and microphones, the video and audio signals are currently sent to an offboard computer for processing as shown in Figure 2. The computer is then able to direct the onboard microprocessor to generate the appropriate motor behavior via a serial link.
The neural network algorithms for visual and auditory processing and control are implemented using Matlab for rapid development purposes. Real-time acquisition of the video and audio signals into Matlab variables is accomplished with custom-written drivers running under either the Microsoft Windows or the Linux operating system. Because the hardware was built using cheap, commercially available components (total cost of the system ), the control software needs to be robust against the large sources of noise and drift in the hardware components. The following sections explain how online learning algorithms can compensate for limitations in the hardware and changes in environmental conditions.