RHEL (source)

Configuration requise

Les plates-formes Red Hat cibles actuelles pour Rolling Ridley sont :

  • Niveau 2 : RHEL 8 64 bits

Tel que défini dans REP 2000

Installation du système

Set locale

Assurez-vous d’avoir une locale qui supporte UTF-8. Si vous êtes dans un environnement minimal (comme un conteneur docker), la locale peut être quelque chose de minimal comme C. Nous testons avec les paramètres suivants. Cependant, cela devrait convenir si vous utilisez un autre paramètre régional pris en charge par UTF-8.

locale  # check for UTF-8

sudo dnf install langpacks-en glibc-langpack-en
export LANG=en_US.UTF-8

locale  # verify settings

Activer les référentiels requis

La base de données rosdep contient des packages des référentiels EPEL et PowerTools, qui ne sont pas activés par défaut. Ils peuvent être activés en exécutant :

sudo dnf install 'dnf-command(config-manager)' epel-release -y
sudo dnf config-manager --set-enabled powertools

Note

Cette étape peut être légèrement différente selon la distribution que vous utilisez. Consultez la documentation EPEL : https://docs.fedoraproject.org/en-US/epel/#_quickstart

Installer les outils de développement et les outils ROS

sudo dnf install -y \
  cmake \
  gcc-c++ \
  git \
  make \
  patch \
  python3-colcon-common-extensions \
  python3-pip \
  python3-pydocstyle \
  python3-pytest \
  python3-pytest-repeat \
  python3-pytest-rerunfailures \
  python3-rosdep \
  python3-setuptools \
  python3-vcstool

# install some pip packages needed for testing and
# not available as RPMs
python3 -m pip install -U --user \
  flake8-blind-except==0.1.1 \
  flake8-builtins \
  flake8-class-newline \
  flake8-comprehensions \
  flake8-deprecated \
  flake8-docstrings \
  flake8-import-order \
  flake8-quotes \
  mypy==0.931

Obtenir le code ROS 2

Créez un espace de travail et clonez tous les dépôts :

mkdir -p ~/ros2_rolling/src
cd ~/ros2_rolling
vcs import --input https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos src

Installer les dépendances à l’aide de rosdep

Les packages ROS 2 sont construits sur des systèmes RHEL fréquemment mis à jour. Il est toujours recommandé de vous assurer que votre système est à jour avant d’installer de nouveaux packages.

sudo dnf update
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "asio cyclonedds fastcdr fastrtps ignition-cmake2 ignition-math6 python3-babeltrace python3-mypy rti-connext-dds-6.0.1 urdfdom_headers"

Installer des implémentations DDS supplémentaires (facultatif)

Si vous souhaitez utiliser un autre fournisseur DDS ou RTPS en plus du fournisseur par défaut, vous pouvez trouver des instructions ici.

Construire le code dans l’espace de travail

Si vous avez déjà installé ROS 2 d’une autre manière (via les RPM ou la distribution binaire), assurez-vous d’exécuter les commandes ci-dessous dans un nouvel environnement qui ne contient pas ces autres installations. Assurez-vous également que vous n’avez pas source /opt/ros/${ROS_DISTRO}/setup.bash dans votre .bashrc. Vous pouvez vous assurer que ROS 2 n’est pas sourcé avec la commande printenv | grep -i ROS. La sortie doit être vide.

Vous trouverez plus d’informations sur l’utilisation d’un espace de travail ROS dans ce tutoriel.

cd ~/ros2_rolling/
colcon build --symlink-install --cmake-args -DTHIRDPARTY_Asio=ON --no-warn-unused-cli

Remarque : si vous rencontrez des difficultés pour compiler tous les exemples et que cela vous empêche de terminer une construction réussie, vous pouvez utiliser COLCON_IGNORE de la même manière que CATKIN_IGNORE pour ignorer la sous-arborescence ou supprimer le dossier de l’espace de travail. Prenons par exemple : vous voudriez éviter d’installer la grande bibliothèque OpenCV. Eh bien, exécutez simplement touch COLCON_IGNORE dans le répertoire de démonstration cam2image pour le laisser en dehors du processus de construction.

Configuration de l’environnement

Source du script d’installation

Configurez votre environnement en vous procurant le fichier suivant.

# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
. ~/ros2_rolling/install/local_setup.bash

Essayez quelques exemples

Dans un terminal, sourcez le fichier de configuration, puis exécutez un talkerC++ :

. ~/ros2_rolling/install/local_setup.bash
ros2 run demo_nodes_cpp talker

Dans un autre terminal, sourcez le fichier de configuration, puis exécutez un Python listener:

. ~/ros2_rolling/install/local_setup.bash
ros2 run demo_nodes_py listener

Vous devriez voir le locuteur dire qu’il publie des messages et le auditeur dire J'ai entendu ces messages. Cela vérifie que les API C++ et Python fonctionnent correctement. Hourra !

Prochaines étapes après l’installation

Continuez avec les tutoriels et démos pour configurer votre environnement, créer votre propre espace de travail et vos packages, et apprendre les concepts de base de ROS 2.

Implémentations RMW supplémentaires (facultatif)

Le middleware par défaut utilisé par ROS 2 est Fast DDS, mais le middleware (RMW) peut être remplacé au moment de l’exécution. Consultez le guide pour savoir comment travailler avec plusieurs RMW.

Compilateurs alternatifs

Utiliser un compilateur différent de gcc pour compiler ROS 2 est facile. Si vous définissez les variables d’environnement CC et CXX sur des exécutables pour un compilateur C et C++ fonctionnel, respectivement, et que vous relancez la configuration de CMake (en utilisant --force-cmake-config ou en supprimant les packages que vous souhaitez affecter), CMake reconfigurera et utilisera le compilateur différent.

Bruit

Pour configurer CMake pour détecter et utiliser Clang :

sudo dnf install clang
export CC=clang
export CXX=clang++
colcon build --cmake-force-configure

Tiens-toi à jour

Voir Maintenir la vérification de la source pour actualiser périodiquement votre installation source.

Dépannage

Les techniques de dépannage peuvent être trouvées ici.

Désinstaller

  1. Si vous avez installé votre espace de travail avec colcon comme indiqué ci-dessus, la « désinstallation » pourrait consister simplement à ouvrir un nouveau terminal et à ne pas rechercher le fichier setup de l’espace de travail. De cette façon, votre environnement se comportera comme s’il n’y avait pas d’installation progressive sur votre système.

  2. Si vous essayez également de libérer de l’espace, vous pouvez supprimer tout le répertoire de l’espace de travail avec :

    rm -rf ~/ros2_rolling