Démarrage Avec ROS2 Humble : Installation, Configuration Et Compilation Sur Raspberry Pi 4

by mbarkkabous999 in Circuits > Robots

10 Views, 0 Favorites, 0 Comments

Démarrage Avec ROS2 Humble : Installation, Configuration Et Compilation Sur Raspberry Pi 4

humb.png

ROS 2 (Robot Operating System 2) s’impose aujourd’hui comme la référence pour le développement d’applications robotiques modernes, grâce à son architecture flexible, ses performances optimisées et son écosystème riche. La version Humble Hawksbill (LTS), conçue pour Ubuntu 22.04, offre des avantages clés pour les projets embarqués et distribués, notamment sur des plateformes comme le Raspberry Pi 4.

ROS 2 Humble est la solution idéale pour développer des applications robotiques robustes, sécurisées et évolutives, que ce soit pour un prototype sur RPi4 ou un système industriel complexe. Son adoption croissante par les universités et l’industrie en fait un standard d’avenir.

Supplies

mat.jpeg

Matériel Utilisé

  1. Raspberry Pi 4 Modèle B (8GB) → Cœur du système embarqué
  2. Écran + Souris + Clavier → Configuration initiale, débogage avec rqt_graph et visualisation RViz2
  3. Carte SD (32GB+) → Installation du système (Ubuntu 22.04 / ROS 2 Humble)
  4. Alimentation stable (5V/3A)

Installation Du Système D'exploitation Via RPi Imager

ubuntu.png

Téléchargez Ubuntu 22.04 LTS 64-bit Server depuis le site officiel et utilisez Raspberry Pi Imager pour flasher l’image sur la carte SD ou optez pour Ubuntu 22.04 LTS 64-bit Server, disponible en téléchargement officiel, ou utilisez directement l'option d'installation via Raspberry Pi Imager.

Ce choix technique s'impose pour trois raisons majeures : sa stabilité éprouvée pour les déploiements ROS 2, son empreinte système minimale (moins de 500MB de mémoire au boot), et sa compatibilité native avec l'écosystème ROS Humble. La version sans interface graphique, spécialement adaptée aux contraintes du Raspberry Pi 4, maximise les ressources disponibles pour les tâches robotiques tout en permettant une gestion distante via SSH

Démarrage Et Obtention De L’adresse IP

ip.png

Mise en service du Raspberry Pi :

  1. Insertion de la carte SD
  2. Alimentation de la RPi.
  3. Connectez un écran, un clavier et une souris pour :
  4. Effectuer le premier login
  5. Vérifier le bon démarrage du système
  6. Configuration initiale
  7. Connexion au terminal :
hostname -I

Connexion À VS Code Via SSH

conf.png
image.png

VS Code constitue une solution de développement puissante et bien organisée, offrant une expérience stable et efficace pour la programmation robotique sous ROS 2. Son principal atout réside dans la connexion SSH au Raspberry Pi, permettant un développement à distance fluide:

  1. Installez VS Code sur votre PC
  2. Ajoutez l'extension "Remote - SSH"
  3. Configurez le fichier SSH (~/.ssh/config) avec l'adresse IP de votre RPi4

Configuration De L’environnement Sous VS Code

ver1.png

Installation des dépendances C++ et CMake :

sudo apt update && sudo apt install g++ cmake

La vérification des versions est essentielle pour garantir la compatibilité avec les fichiers CMake ultérieurs.

Installation Et Configuration Initiale De ROS2 Humble

  1. Avant toute installation, il est crucial de mettre à jour votre système Ubuntu via la commande :
sudo apt update && sudo apt upgrade -y
  1. Installation de ROS 2 Desktop pour une expérience complète incluant RViz, les démos et tutoriels via la commande:
sudo apt install ros-humble-desktop
  1. Installation de ROS 2 Base (option minimaliste) pour les systèmes embarqués ou serveurs sans interface graphique (notre cas) via la commande :
sudo apt install ros-humble-ros-base
  1. Outils de développement essentiels sont des outils indispensables pour le développement ROS 2, l installation est via la commande:
sudo apt install ros-dev-tools

Avantages ROS2 Humble Et Activation Du Terminal

act.png

ROS 2 révolutionne le développement robotique avec :

  1. DDS : Communication temps réel et fiable
  2. Sécurité intégrée (chiffrement, authentification)
  3. Optimisé RPi4 pour l'embarqué low-cost
  4. Multi-langage (C++/Python) et API stable
  5. Scalable : Du prototype simple aux essaims de robots
  6. Ecosystème complet : Gazebo, RViz2, ros2_control
  7. LTS : Support long terme jusqu'en 2027

Pour activer le terminal ROS2, il faut activer par la commande suivant:

source /opt/ros/humble/setup.bash

Pour simplifier l'initialisation de votre environnement ROS2, ajoutez ces lignes à la fin de votre fichier ~/.bashrc

Comprendre Les Topics Et Services ROS2

Dans ROS 2, la communication entre les nœuds repose sur deux mécanismes principaux :

  1. Les Topics (flux de données asynchrones)
  2. Mode Publisher/Subscriber
  3. Les Services (communication synchrone)
  4. Mode Client/Serveur

Nous utilisons des topics (Publisher/Subscriber) dans la suite de notre tutoriel.

Configuration De L'espace De Travail ROS2 Et Initiation D Un Package Python

ttt.png

Créez un workspace pour le processus de compilqtion:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Puis nous creons un package Python (rclpy):

ros2 pkg create test --build-type ament_python --dependencies rclpy

Création De Nœuds C++ (rclcpp) Et Configuration De CMake

c.png

Nous illustrons ce concept avec un exemple concret utilisant un package C++ pour capturer des images et les publier sur un topic ROS2 :

  1. Création du node:
ros2 pkg create video_cpp --build-type ament_cmake --dependencies rclcpp OpenCV cv_bridge
  1. Developement du code (src/video_node.cpp)
  2. Configuration CMakeLists.txt
  3. Adaptation du fichier package.xml

Le fichier complet sera fourni dans une repo github par la commande:

git clone https://github.com/Mbarek999/ros2_tuto.git

Compilation Avec Colcon

ccc.png

Compilation du workspace avec la commande:

cd ~/ros2_ws
colcon build --symlink-install
source install/setup.bash

Débogage du système avec les fonctionnalités ROS2, telles que :

ros 2 topic list
ros 2 pkg list
ros 2 servic list
ros 2 topic info
...

Visualisation Avec Rqt_graph Et Rviz2

11.jpg
rqt.jpeg

On note qu Il est indispensable de sourcer l’environnement ROS après la compilation avec colcon, en exécutant la commande suivante dans l’espace de travail ros_ws:

source install setup.bash

Pour la visualisation graphique avec des outils comme rqt_graph ou Rviz2, il est nécessaire d’activer un environnement graphique minimal, tel que Openbox, afin de permettre l’exécution de ces interfaces sur une machine sans bureau complet (comme Ubuntu Server):

sudo apt update && sudo apt install xserver-xorg xinit openbox x11-xserver-utils qt5-default

Et lancer via:

startx

Une fois l’environnement graphique lancé, les visualiseurs peuvent être démarrés avec les commandes suivantes : rqt_graph et rviz2