opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

Repository Summary

Description ROS package for OpenTera WebRTC signaling server.
Checkout URI https://github.com/introlab/opentera-webrtc-ros.git
VCS Type git
VCS Version ros2
Last Updated 2025-02-14
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags robotics webrtc ros teleoperation opentera
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

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.

IntRoLab

IntRoLab - Intelligent / Interactive / Integrated / Interdisciplinary Robot Lab

CONTRIBUTING

No CONTRIBUTING.md found.

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera

opentera-webrtc-ros repository

robotics webrtc ros teleoperation opentera