Les paquets du RatBot
Cette page décrit l’organisation du logiciel du robot. Elle n’est pas nécessaire pour l’utiliser : elle sert à comprendre ce que lancent les commandes, et où chercher pour aller plus loin.
Le workspace ROS 2 (ros2_ws/src/) est découpé en paquets à responsabilité
unique, ce qui permet de ne lancer que les couches nécessaires à un usage
donné : un robot téléopéré ne fait pas tourner la cartographie.
On ne lance pas ces paquets un par un : sur le robot, la pile démarre seule à la mise sous tension, et les commandes de La commande ratbot lancent le reste.
Organisation en couches
Les couches. Celle du bas est interchangeable ; les autres ne voient pas la différence.
La couche inférieure est interchangeable : simulation Gazebo, robot réel ou simulateur cinématique léger. Les couches supérieures s’abonnent aux mêmes topics dans les trois cas et ne font pas la différence : les mêmes procédures s’appliquent en simulation et sur le robot.
Note
Une exception, à corriger : ratbot_slam dépend aujourd’hui de
ratbot_gazebo. La cartographie ne peut donc pas être compilée sur le
Raspberry Pi du robot, où la simulation n’est pas installée ; elle
s’exécute sur le PC.
ratbot_bringup — la base
Toujours lancé, en simulation comme sur le robot. Il publie la description du
robot et les transformations associées, fusionne l’odométrie des roues avec la
centrale inertielle (EKF), assure la liaison micro-ROS avec la carte du robot,
gère le lidar, et arbitre les commandes de vitesse. Sur le robot, c’est lui que
lance le service ratbot à la mise sous tension.
Cet arbitrage est nécessaire dès que plusieurs sources peuvent commander le robot — téléopération, navigation autonome, programme. Les commandes sont départagées par priorité, plafonnées en vitesse, puis soumises à l’arrêt d’urgence. La chaîne est détaillée dans Interface ROS 2.
Couches optionnelles
ratbot_slam produit des cartes (SLAM, exploration autonome) ;
ratbot_nav les consomme (localisation, planification). Les deux
communiquent par ratbot_maps, paquet de données sans code contenant les
cartes enregistrées.
ratbot_status assure l’interface homme-machine : voyant, écran, sons et
diagnostics. Il démarre avec le robot.
ratbot_mission exécute les commandes choisies dans le menu de l’écran :
relancer l’exploration, sauvegarder la carte, retourner à la base, mettre en
pause. Il ne démarre pas avec le robot : il se lance à part, avec la
navigation ou l’exploration dont il pilote les actions, et ignore une commande
dont la pile n’est pas lancée.
Inventaire
Paquet |
Rôle |
|---|---|
|
Modèle du robot (URDF/xacro, maillages) : dimensions, articulations, position des capteurs. Utilisé par RViz, la simulation et le robot réel. |
|
Base commune : arbitrage |
|
Simulation physique : décors, spawn du robot, capteurs simulés (lidar, IMU, batterie). |
|
Simulateurs légers sans moteur physique : base cinématique et émulateur de l’écran OLED et de ses boutons. |
|
Cartographie ( |
|
Navigation ( |
|
Cartes enregistrées ( |
|
État du robot : voyant, batterie, températures, sons, diagnostics, écran et menu. |
|
Coordinateur de missions : exploration, sauvegarde de carte, retour à la base, pause. Lancé à part. |
|
Messages spécifiques au RatBot (actuellement : commande d’écran). |
|
Outils de calibration et de vérification : odométrie (méthode UMBmark, Calibrer l’odométrie), échelle du gyroscope (Calibrer le gyroscope), montage du lidar (Le lidar). Ce sont des outils et non une couche : ils ne servent qu’à la mise en service d’un robot ou après une intervention, et ne tournent pas pendant que le robot travaille. |
Paquets externes
Trois dépendances, absentes des paquets de Humble, sont intégrées au
workspace à partir de leurs sources (fichier ros2_ws/ratbot.repos) :
Paquet |
Rôle |
|---|---|
|
Pont entre la carte du robot et ROS 2, sur le Raspberry Pi. |
|
Messages internes de l’agent micro-ROS. |
|
Exploration autonome par frontières. Il vient de la copie de RatBot
(fork) du dépôt |
Ils sont récupérés automatiquement : sur le PC par ratbot build, à la
première compilation (voir Installer le PC), sur le robot par
ratbot install (voir Installer le Raspberry Pi).
Note
Workspace installé avant le 2026-10-27. Il contient encore le dépôt
d’origine d”explore_lite, sans la correction : une source déjà présente
n’est jamais remplacée. ratbot build le signale par un avertissement.
Pour récupérer la bonne version, depuis la racine du dépôt :
rm -rf ros2_ws/src/m-explore-ros2
./scripts/ratbot build
La commande retélécharge le dépôt (accès à Internet requis), puis compile.
Lancement
Sur le robot réel, la pile de base démarre seule à la mise sous tension ; la cartographie et la navigation se lancent depuis le PC (Faire une carte, Navigation autonome). En simulation, l’ordre de lancement est décrit dans Démarrer.