Skip to content

Commit

Permalink
Ros2 migration (#82)
Browse files Browse the repository at this point in the history
* Get IntRoLab image from the website

* Migrate turtlebot3_beam_description

* Migrate opentera_webrtc_ros_msgs

* Refactor migration for turtlebot3_beam_description based on upstream to fix missing xacro find_package

* Migrate opentera_protobuf_messages

* Migrate map_image_generator to ROS2 and tf2

* Remove deprecated option in clang-format config making the config invalid with clang-format 18 (used by VSCode clangd)

* Use const& to shared ptrs in callbacks

* Migrate face_cropping to ROS2 (not yet tested)

* Fixes for face_cropping and map_image_generator

* Migrate opentera_webrtc_ros to ROS2

* Migrate opentera_client_ros

* Migrate robot_gui

* Migrate demos

* Migrate launch files and other fixes

* Fix bugs, support Humble and dedicated message packages

* Migrate remaining Python nodes, fix frontend installation

* Remove synchronous service calls in callbacks for Cpp nodes: could cause deadlocks

* Try adding a ros spin to a Qt Python node

* Remove synchronous service calls in callbacks in Python nodes

* Fix python nodes shutdown

* Update opentera-webrtc-teleop-frontend

* Fix ros spin in a thread

* Fix freeze in webrtc video stream due to integer overflow in timestamps

* Fix face_cropping

* Migrate URDF to ROS2, and cleanup unused copies of stuff from the original turtlebot3_description repo

* Fix launch files for simulation in ROS2

* Fix labels and goal managers, and their navigation system

* Fix robot status showing interface name and stuff instead of just network SSID

* Better robot gui Qt/ROS spinning

* Update opentera-webrtc and the teleop frontend. Support symlink-installs for the signaling server, and add missing WebRTC callbacks

* Fix model_viewer launch file and rviz config

* Fix odometry_source in Gazebo URDF being an integer now

* Move back to xml launch files: the set_parameter option exists in xml! Remove unused launch files, and remove shell scripts to start the signaling server (replace with new launch file facilities)

* Update opentera-webrtc for better Ctrl-C of signaling server

* Fix: remove start_signalling_server scripts from CMake installation

* Fix termination errors in map_image_generator

* Fix stuff

* Fix global path not displayed on web interface, and a few other problems

* Fix more launch file stuff and cleanup

* Partial fix for OpenTeraEvent not published in offline mode: rework GUI so that it works without these events

* Move OpenTeraEvent stuff to PeerStatus permanently

* More fixes in launch files and rtabmap services and stuff

* Try fix CI

* WIP CI

* WIP CI

* WIP CI

* WIP CI

* WIP CI

* Try CI without sequential executor

* WIP CI

* WIP CI

---------

Co-authored-by: Marc-Antoine Maheux <[email protected]>
  • Loading branch information
philippewarren and mamaheux authored Jul 19, 2024
1 parent 1df7ee0 commit 6fdffe1
Show file tree
Hide file tree
Showing 188 changed files with 4,447 additions and 265,006 deletions.
1 change: 0 additions & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -89,5 +89,4 @@ Standard: c++14
StatementAttributeLikeMacros: [emit]
StatementMacros: [Q_UNUSED, Q_OBJECT]
TabWidth: 4
UseCRLF: false
UseTab: Never
40 changes: 20 additions & 20 deletions .github/workflows/pull-request-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,19 @@ on:
branches: [main]

workflow_dispatch:
branches: [main]

jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v4
with:
submodules: recursive
path: catkin_ws/src/opentera-webrtc-ros
path: colcon_ws/src/opentera-webrtc-ros
- uses: ros-tooling/[email protected]
with:
required-ros-distributions: noetic
required-ros-distributions: humble

- uses: actions/setup-node@v4
with:
Expand All @@ -30,44 +29,45 @@ jobs:
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install ros-noetic-turtlebot3 ros-noetic-turtlebot3-gazebo ros-noetic-cv-camera ros-noetic-dwa-local-planner ros-noetic-rtabmap-ros
sudo apt-get install ros-humble-rtabmap-ros libunwind-dev
sudo apt-get install libglib2.0-dev libgtk-3-dev libpulse-dev libasound2-dev
sudo apt-get install python3-pip portaudio19-dev
sudo apt-get install build-essential gfortran texinfo libasound2-dev
sudo apt-get install libfftw3-dev libconfig-dev libasound2-dev pulseaudio
sudo apt-get install build-essential gfortran texinfo
sudo apt-get install libfftw3-dev libconfig-dev pulseaudio
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libqt5charts5-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base
sudo apt-get install libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base
sudo apt-get install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools
- name: Clone audio_utils in ROS workspace
working-directory: catkin_ws/src
working-directory: colcon_ws/src
run: |
source /opt/ros/noetic/setup.bash
source /opt/ros/humble/setup.bash
git clone https://github.com/introlab/audio_utils.git --recurse-submodules
- name: Clone odas_ros in ROS workspace
working-directory: catkin_ws/src
working-directory: colcon_ws/src
run: |
source /opt/ros/noetic/setup.bash
source /opt/ros/humble/setup.bash
git clone https://github.com/introlab/odas_ros.git --recurse-submodules
- name: Install Python requirements packaging and documentation
working-directory: catkin_ws/src/opentera-webrtc-ros/opentera_webrtc_ros/opentera-webrtc
working-directory: colcon_ws/src/opentera-webrtc-ros/opentera_webrtc_ros/opentera-webrtc
run: |
python3 -m pip install -r requirements.txt
- name: Install Python requirements for OpenTera client
working-directory: catkin_ws/src/opentera-webrtc-ros/opentera_client_ros
working-directory: colcon_ws/src/opentera-webrtc-ros/opentera_client_ros
run: |
python3 -m pip install -r requirements.txt
- name: Install Python requirements for Signaling server
working-directory: catkin_ws/src/opentera-webrtc-ros/opentera_webrtc_ros/opentera-webrtc/signaling-server
working-directory: colcon_ws/src/opentera-webrtc-ros/opentera_webrtc_ros/opentera-webrtc/signaling-server
run: |
python3 -m pip install -r requirements.txt
- name: Install the VUE.js frontend
working-directory: catkin_ws/src/opentera-webrtc-ros/opentera_webrtc_demos/opentera-webrtc-teleop-frontend/teleop-vue
working-directory: colcon_ws/src/opentera-webrtc-ros/opentera_webrtc_demos/opentera-webrtc-teleop-frontend/teleop-vue
run: |
npm --version
node --version
Expand All @@ -76,7 +76,7 @@ jobs:
npm run build
- name: Compile packages in ROS workspace
working-directory: catkin_ws
working-directory: colcon_ws
run: |
source /opt/ros/noetic/setup.bash
catkin_make -j1
source /opt/ros/humble/setup.bash
colcon build --cmake-args -Wno-dev
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,6 @@ Please see the [opentera_webrtc_demos package.](opentera_webrtc_demos/README.md)

## Sponsor

![IntRoLab](images/IntRoLab.png)
![IntRoLab](https://introlab.3it.usherbrooke.ca/IntRoLab.png)

[IntRoLab - Intelligent / Interactive / Integrated / Interdisciplinary Robot Lab](https://introlab.3it.usherbrooke.ca)
Loading

0 comments on commit 6fdffe1

Please sign in to comment.