Repo symbol

odas_ros repository

Repo symbol

odas_ros repository

Repo symbol

odas_ros repository

Repo symbol

odas_ros repository

Repository Summary

Description ODAS ROS package
Checkout URI https://github.com/introlab/odas_ros.git
VCS Type git
VCS Version ros2
Last Updated 2024-12-05
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
odas_ros 0.0.0
odas_ros_msgs 0.0.0

README

odas_ros

This package is a ROS2 package for ODAS.

For ROS1, please see the ros1 branch.

IntRoLab - Université de Sherbrooke

ODAS Demonstration

Authors

  • Marc-Antoine Maheux
  • Cédric Godin
  • Simon Michaud
  • Samuel Faucher
  • Olivier Roy
  • Vincent Pelletier
  • Philippe Warren
  • François Grondin

License

GPLv3

Prerequisites

You will need CMake, GCC and the following external libraries:

sudo apt-get install cmake gcc build-essential libfftw3-dev libconfig-dev libasound2-dev libpulse-dev libgfortran-*-dev perl

ODAS ROS uses the audio utilities from AudioUtils so it should be installed in your catkin workspace. If it is not already, here is how to do so:

Clone AudioUtils in your catkin workspace:

git clone https://github.com/introlab/audio_utils.git

Install dependencies:

sudo apt-get install gfortran texinfo
sudo pip install libconf

In the cloned directory of audio_utils, run this line to install all submodules:

git submodule update --init --recursive

If you get errors when building with catkin_make, you can modify the cmake file of audio_utils to add C++ 14 compiler option.

add_compile_options(-std=c++14)

Installation

First, you need to clone the repository in your catkin workspace.

git clone https://github.com/introlab/odas_ros.git

In the cloned directory of odas_ros, run this line to install all submodules:

git submodule update --init --recursive

Hardware configuration

For ODAS to locate and track sound sources, it needs to be configured. There is a file (configuration.cfg) that is used to provide ODAS with all the information it needs. You will need the position and direction of each microphones. See ODAS Configuration for details.

Here are the important steps:

Input configuration

Source configuration using pulseaudio

At this part of the configuration file, you need to set the correct pulseaudio device and channel mapping.

# Input with raw signal from microphones
    interface: {
        type = "pulseaudio";
        #"pacmd list-sources | grep 'name:' && pacmd list-sources | grep 'channel map:'" to see the sources and their channel mapping, in the same order
        source = "alsa_input.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.multichannel-input";
        channelmap = ("front-left", "front-right", "rear-left", "rear-right", "front-center", "lfe");

To know your source name and channel mapping, the easiest way it to use pacmd list-sources | grep 'name:' && pacmd list-sources | grep 'channel map:' in a terminal. The output should look something like this:

	name: <alsa_output.pci-0000_00_1f.3.analog-stereo.monitor>
	name: <alsa_input.pci-0000_00_1f.3.analog-stereo>
	name: <alsa_input.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.multichannel-input>
	channel map: front-left,front-right
	channel map: front-left,front-right
	channel map: front-left,front-right,rear-left,rear-right,front-center,lfe

Note that the names and channel maps are in the same order. In this case, the source name is alsa_input.usb-SEEED_ReSpeaker_4_Mic_Array__UAC1.0_-00.multichannel-input and the mapping is front-left,front-right,rear-left,rear-right,front-center,lfe. The mapping will need to be formated in a list: front-left,front-right,rear-left,rear-right,front-center,lfe will become channelmap = ("front-left", "front-right", "rear-left", "rear-right", "front-center", "lfe");

Alternative: sound card configuration using ALSA

At this part of the configuration file, you need to set the correct card and device number.

# Input with raw signal from microphones
    interface: {    #"arecord -l" OR "aplay --list-devices" to see the devices
        type = "soundcard_name";
        devicename = "hw:CARD=1,DEV=0";

To know what is your card number, plug it in your computer and run arecord -l in a terminal. The output should look something like this:

```

File truncated at 100 lines see the full file

Repo symbol

odas_ros repository

Repo symbol

odas_ros repository

Repo symbol

odas_ros repository

Repo symbol

odas_ros repository