Utilisation de ros1_bridge avec ROS en amont sur Ubuntu 22.04

La sortie de ROS 2 Humble (et Rolling) sur Ubuntu 22.04 Jammy Jellyfish marque la première version de ROS 2 sur une plate-forme sans version officielle de ROS 1. Alors que ROS 1 Noetic continuera d’être pris en charge pendant toute la durée de sa « fenêtre de support à long terme » <https://www.ros.org/reps/rep-0003.html#noetic-ninjemys-may-2020-may-2025> __, il ne ciblera que Ubuntu 20.04. Alternativement, il existe des `variantes en amont des packages ROS 1 dans Debian et Ubuntu qui ne sont pas maintenues en tant que distribution officielle par les responsables du ROS.

Ce guide décrit le mécanisme actuel de pontage des versions de ROS 2 avec ces packages en amont sur Ubuntu 22.04 Jammy Jellyfish. Cela fournit un chemin de migration pour les utilisateurs qui dépendent toujours de ROS 1, mais qui souhaitent passer aux nouvelles versions de ROS 2 et d’Ubuntu.

ROS 2 via les paquets Debian

L’installation de ROS 2 à partir des packages Debian ne fonctionne actuellement pas pour ROS 2 sur Ubuntu Jammy. La version de catkin-pkg-modules disponible dans le référentiel Ubuntu est en conflit avec celle du référentiel de packages ROS 2.

Si le référentiel apt ROS 2 se trouve dans les référentiels apt disponibles (/etc/apt/sources.list.d), aucun package ROS 1 ne pourra être installé. L’erreur sera :

$ apt install ros-core-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ros-core-dev : Depends: catkin but it is not installable
E: Unable to correct problems, you have held broken packages.

Pour corriger cela, supprimez packages.ros.org de votre sources.list. Si vous suiviez le guide d’installation de ROS 2, supprimez simplement /etc/apt/sources.list.d/ros-2-latest.list

Pour l’instant, pour prendre en charge ros1_bridge, suivez les instructions ci-dessous pour construire ROS 2 à partir des sources.

ROS 2 depuis la source

L’installation de ROS 2 à partir de la source est la seule configuration qui fonctionne pour ROS 2 sur Ubuntu Jammy.

Vous trouverez ci-dessous un résumé des instructions nécessaires à partir des instructions de construction source. L’écart substantiel est que nous n’utilisons pas les référentiels ROS 2 apt en raison de packages en conflit.

Installer les outils de développement et les outils ROS

Comme nous n’utilisons pas les dépôts apt de ROS 2, colcon doit être installé via pip.

sudo apt update && sudo apt install -y \
  build-essential \
  cmake \
  git \
  python3-flake8 \
  python3-flake8-blind-except \
  python3-flake8-builtins \
  python3-flake8-class-newline \
  python3-flake8-comprehensions \
  python3-flake8-deprecated \
  python3-flake8-docstrings \
  python3-flake8-import-order \
  python3-flake8-quotes \
  python3-pip \
  python3-pytest \
  python3-pytest-cov \
  python3-pytest-repeat \
  python3-pytest-rerunfailures \
  python3-rosdep \
  python3-setuptools \
  wget

# Install colcon from PyPI, rather than apt packages
python3 -m pip install -U colcon-common-extensions vcstool

À partir de là, continuez avec le guide d’installation source pour compiler ROS 2.

Installer ROS 1 à partir des packages Ubuntu

sudo apt update && sudo apt install -y ros-core-dev

Construire ros1_bridge

# Create a workspace for the ros1_bridge
mkdir -p ~/ros1_bridge/src
cd ~/ros1_bridge/src
git clone https://github.com/ros2/ros1_bridge
cd ~/ros1_bridge

# Source the ROS 2 workspace
. ~/ros2_humble/install/local_setup.bash

# Build
colcon build

Après avoir construit tout ros1_bridge, le reste des exemples ros1_bridge devrait fonctionner avec votre nouvelle installation