Skip to content

wendwosenbb/opentera-webrtc-ros

This branch is 1 commit behind introlab/opentera-webrtc-ros:ros2.

Folders and files

NameName
Last commit message
Last commit date
Oct 13, 2024
Mar 25, 2022
Jan 13, 2025
Jan 13, 2025
Jul 19, 2024
Jul 19, 2024
Jan 13, 2025
Jan 13, 2025
Jan 13, 2025
Jul 25, 2024
Jul 19, 2024
Jul 19, 2024
Jan 28, 2022
Apr 11, 2022
Jul 12, 2022
Jul 25, 2024

Repository files navigation

opentera-webrtc-ros

Welcome to the opentera-webrtc-ros project. The goal of the project is to provide useful ROS nodes to stream audio/video/data through Google's WebRTC library wrapped in opentera-webrtc. Wrappers are written in C++ and Python and are compatible with ROS2 (Humble) at the moment. Support for ROS1 (Noetic) is in the ros1 branch. We use the signaling server implementation provided by opentera-webrtc.

Here are the key features:

Note: This project is under developement. Any contribution or suggestion is welcome. Please use GitHub's Issues system for questions or bug reports.

License

By default, libwebrtc is built with non-free codecs. See opentera-webrtc to build without them.

The project is licensed with:

Authors

  • Cédric Godin (@godced)
  • Marc-Antoine Maheux (@mamaheux)
  • Dominic Létourneau (@doumdi)
  • Gabriel Lauzier (@G-Lauz)
  • Jérémie Bourque (@JeremieBourque1)
  • Philippe Warren (@philippewarren)
  • Ian-Mathieu Joly (@joli-1801)

Dependencies / Requirements

The procedure is written for Ubuntu 22.04 using ROS2 Humble. We assume ROS is already installed. If not, follow the ROS2 Humble Installation Instructions first. A more recent CMake than the default on Ubunuttu 22.04 is required. If the installed CMake version is 3.22, follow the CMake Installation Instructions. The following packages must also be installed :

# utilities
sudo apt install unzip rsync ros-dev-tools

# opentera-webrtc-ros packages
sudo apt install ros-humble-camera-info-manager ros-humble-rtabmap-ros ros-humble-rqt-tf-tree ros-humble-turtlebot3-gazebo ros-humble-turtlebot3-description ros-humble-turtlebot3-navigation2 ros-humble-joint-state-publisher-gui

# protobuf
sudo apt install libprotobuf-dev protobuf-compiler python3-protobuf

# python dependencies
sudo apt install python3-pip portaudio19-dev

# nodejs dependencies
sudo apt install nodejs npm

# audio_utils packages
sudo apt install cmake build-essential gfortran texinfo libasound2-dev libpulse-dev 'libgfortran-*-dev'

# odas_ros packages
sudo apt install libfftw3-dev libconfig-dev

# gstreamer for hardware acceleration
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools

# qt submodules
sudo apt install libqt5charts5-dev

Installation

1 - Create a colcon workspace (if not already done)

# Create the workspace
mkdir -p ~/teleop_ws/src

2 - Get all the required ROS packages

cd ~/teleop_ws/src
# cv_camera
git clone https://github.com/Kapernikov/cv_camera.git
# audio_utils
git clone https://github.com/introlab/audio_utils.git --recurse-submodules
# odas_ros
git clone https://github.com/introlab/odas_ros.git --recurse-submodules
# opentera-webrtc-ros
git clone https://github.com/introlab/opentera-webrtc-ros.git --recurse-submodules

3 - Install the Python requirements

cd ~/teleop_ws/src/opentera-webrtc-ros/opentera_client_ros
python3 -m pip install -r requirements.txt
cd ~/teleop_ws/src/opentera-webrtc-ros/opentera_webrtc_ros
python3 -m pip install -r requirements.txt
cd ~/teleop_ws/src/opentera-webrtc-ros/opentera_webrtc_ros/opentera-webrtc
python3 -m pip install -r requirements.txt

4 - Build all the ROS packages

cd ~/teleop_ws
colcon build --symlink-install --cmake-args -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCMAKE_BUILD_TYPE=Debug --no-warn-unused-cli

Running the demos

Please see the opentera_webrtc_demos package.

Sponsor

IntRoLab

IntRoLab - Intelligent / Interactive / Integrated / Interdisciplinary Robot Lab

About

ROS package for OpenTera WebRTC signaling server.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 84.0%
  • Python 14.0%
  • CMake 2.0%