Robotics & Sound Localization I

The following movie was made during a neurobionics lab course I taught. NOTE: Loud! Turn down the volume!

Video: Günther and Joschka localizing each other by sound

What can be seen are two robots (the larger one is called "Joschka" and the smaller one is called "Günther"). One is programmed to chase (the "hunter") and the other is programmed to run away (the "prey"). The interesting thing is that they can only sense each other through the sound they are making when they are moving (and through their collision avoidance systems). This is why they stop at regular intervals to listen, otherwise they would get confused by their own motor noise.

Their behavior can be summarized like this:

  1. Avoid obstacles (this always takes precedence).
  2. Move toward a sound (hunter) or away from a sound (prey).

The idea of the lab course was to show students (mainly biologists, but also computer scientists) how to start with inspiration from nature and get to a technical implementation.

I designed and taught this 3-4 day lab course which began with the physical and neurobiological basics of sound localization. Then different algorithms were implemented with Matlab on the PC. On the last day, the behavior of two sound localizing robots had to be programmed (I did the implementation of the sound localization algorithms on the robots myself, as that would have been beyond the scope of the lab course).

Scroll down for a description and close-up pictures of the robots.

Common characteristics:

Base:
Conrad Electronic CCRP5.

Control Processor:
Infineon C164CI microcontroller (Conrad Electronic C-CONTROL II unit).

Control software written in:
C2.
This is the programming language of the C-CONTROL II unit. It is syntactically similar to C, but compiled to bytecode and interpreted in a virtual machine on the C164CI microcontroller.

Sensors:
Wheel encoders, IR collision avoidance system (front left / front right), touch sensor, motor current sense, IR communication system.

Microphones:
2 omnidirectional electret condenser microphone capsules, connected to a custom-built preamplifier board.

Günther

Binaural sound source localization method:
Correlation in the time domain.

Implementation language:
C164 assembly.

Running on:
  • C164CI microcontroller.
  • Microphone preamplifier connected to 2 A/D inputs of microcontroller.

Joschka

Binaural sound source localization method:
Dual delay-line algorithm (detection of phase coincidence in the frequency domain).

Implementation language:
C.

Running on:
  • Spectrum Digital DSK6713 DSP Starter Kit board (Texas Instruments TMS320C6713 digital signal processor).
  • Microphone preamplifier connected to stereo line-in input of DSP board.
  • Communication between C164CI microntroller and DSP board through I²C bus.
Home
Günther, the sound source localizing robot

Günther, the sound source localizing robot.

Joschka, the sound source localizing robot

Joschka, the sound source localizing robot.