NOTE: Package is deprecated. Only works with ROS Diamondback and below with Ubuntu 12.04 and below

NOTE: Those interested in the ROAR training/testing dataset can find it here.



The ROAR package contains a set of GUI and command line tools to allow you to easily create simple models of audio events, and then attempt to detect these events later in your own software.

Currently ROAR uses popular techniques (spectral analysis and noise reduction, PLP coefficients, One-Class SVMs) for categorizing short-time audio clips. As such, ROAR is good at learning and detecting unique sound samples that last roughly 100 milliseconds. For example, the ring of a doorbell or the click of a button. ROAR was not designed to distinguish between long-time audio clips, such as two different songs or different words of human speech. However, most longer audio segments contain smaller distinct clips, and it is possible to train on these events.

It is written using python interfaces to the ALSA sound library (the default sound standard in most Linux distributions), so, if your microphone works in Linux chances are it will work with ROAR.


The first step in using ROAR is to obtain a proper microphone and ensure it is functioning properly.

All ALSA compatible microphones work with ROAR. When doing precise audio detection it is best to pick a microphone that has a clear crisp response. Directional microphones work very well, but tend to perform poorly if you move away from their "sweet spot". A few microphones we have personally tested include the Samson C01U, the Roland UA-25ex, and the MXL AC-404. We recommend the AC-404 as a good starter microphone, since it has a nice crisp response for almost 180 degrees in front of the mic.

Creating PR2 Ears

We used the MXL AC-404 microphone to create two ears for our PR2 robot. Details for reproducing our hardware/software setup can be found on the PR2 Hardware Modifications page.

You should also change roar/launch/audio_parameters.yaml audio_card line to read:

audio_card: plug:left_ear

ALSA Configuration

None of the ROAR software will work properly unless you enable your computers microphone input (duh). Each microphone is a little different, so it is hard to give generic instructions,but here are a few tips:

Generally, when you can record using gnome-sound-recorder, then you've got the microphone setup properly. You may want to store these settings or load some settings you previously stored with.

alsactl -f ~/roar_microphone.state store
alsactl -f ~/roar_microphone.state restore


For the smoothest programming experience it is highly recommended you use Ubuntu 10.04 or greater. ROAR depends on several external packages that can be found in the roar_stack rosdep.yaml file. If these dependencies are satisfied ROAR should run fine on any distribution, but they currently remain untested.

Downloading ROAR

The proper way to aquire the ROAR software is to download the entire stack to the folder of your choosing (below we download to ~/ros):

svn co ~/ros/roar_stack

If ~/ros isn't already on your ROS_PACKAGE_PATH you will need to add it by typing the following before continuing with the installation:


Compiling ROAR

To compile the ROAR stack you should build the roar package. Make sure to use the --rosdep-install flag, which will install the external dependencies for Ubuntu (NOTE: You will need super-user permissions to install packages to the system properly!):

rosmake roar --rosdep-install

Running ROAR

There are two different parts to running ROAR. The trainer and the detector. You will use the trainer when you want to make a model of a new sound. You will use the detector when you want to detect that sound later in real-time. You can get detailed instructions on each step by following the tutorials below:

Trainer Tutorial

Detector Tutorial

Wiki: roar (last edited 2015-07-22 21:12:26 by JoeRomano)