The goal of this project is to create a system able to reduce easily the egonoise of a robot using the Minimum Variance Distortionless Response (MVDR) algorithm. This branch is the new version of the project. The data is process faster. Last version is available on the other branch.
Author(s): Pierre-Olivier Lagacé
- Follow the instructions on the offical website (ROS Installation)
- If you are not familiar with ROS, we strongly recommend that you do the tutorials (ROS Tutorials)
- Make shure that the end of your
.bashrc
file in yourhome
folder has the following lines
source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash
- Install Python 3.10.5
- Clone this repo in your catkin_ws/src
- Install the requirement.txt
pip3 install -r requirement.txt
- Install kissdsp from https://github.com/FrancoisGrondin/kissdsp on your computer (not in the catkin_ws).
- Install https://github.com/introlab/audio_utils in your catkin_ws/src
Expication: This node allow to train de database with a rosbag using the command roslaunch egonoise egonoise.launch calibration_run:=true
.
Parameters:
- input_format
- database_path
- bag_calibration
- bag_calibration_path
- sampling_frequency
- frame_size
- frame_sample_count
- hop_length
- overlap
- calibration_step
- n_frame_scm
- n_batch
Expication: This node allow to train de database with live input using the command roslaunch egonoise egonoise.launch calibration_node:=true
.
Parameters:
- input_format
- database_path
- sampling_frequency
- frame_sample_count
- frame_size
- channel_count
- overlap
- hop_length
- calibration_duration
- step
- n_frame_scm
Topics (Sub and Pub)
- Sub: audio_out
Expication: This node allow to use the framework to filtered the signal from subscriber using the command roslaunch egonoise egonoise.launch egonoise_node:=true
Parameters:
- input_format
- output_format
- database_path
- frame_size
- sampling_frequency
- channel_count
- overlap
- hop_length
- n_frame_scm
- n_batch
Topics (Sub and Pub)
- Sub: audio_out
- Pub: audio_in
username: ubuntu password: egonoise
- Flash SD card with ubuntu 20.04 server 64bits using RaspberryPi imager
- Launch RaspberryPi with SD card
- Setup Wifi -> https://linuxconfig.org/ubuntu-20-04-connect-to-wifi-from-command-line
- sudo apt-get update (and upgrade?)
- Install Python: Pyenv -> https://k0nze.dev/posts/install-pyenv-venv-vscode
- Tests with microphones array:
- Install pulse_audio utils
- if
pactl list
dopa_context_connect() failed: Connection refused
trysudo apt-get --purge --reinstall install pulseaudio
- sudo apt-get install libportaudio2
- Test a python script to make a test record
- Install Ros Noetic
- Use
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
for the first catkin_make
- Install KissDsp
- Install audio_utils
- Install this project in catkin_ws/src/
- Test with:
roslaunch egonoise egonoise.launch audio_capture:=true
with the good parameter. - Follow the guide https://husarion.com/tutorials/ros-tutorials/5-running-ros-on-multiple-machines/ if you want to record the rosbag on another machine.