Architecture générale
Le robot en bref
Le RatBot est un robot mobile à entraînement différentiel conçu au laboratoire. Quatre exemplaires sont prévus dans un premier temps, d’autres pourront suivre. Chaque robot est autonome : il embarque sa propre intelligence et communique avec le reste du monde par WiFi.
Le RatBot est pensé comme un robot indépendant : il ne dépend d’aucun
projet hôte. Il expose son matériel sous forme de topics ROS 2 standards
(cmd_vel, odom, TF), et c’est au projet qui l’utilise de construire
sa propre couche au-dessus. Il peut ainsi recevoir une carte d’un système
extérieur, partager la sienne, ou intégrer de nouveaux capteurs sans
remettre en cause son architecture.
Les deux étages
┌──────────────────────────────────────────────────────────┐
│ RatBot │
│ │
│ ┌────────────────────┐ série ┌────────────────────┐ │
│ │ Carte STM32H750 │ 1 Mbaud │ Raspberry Pi 4 │ │ WiFi
│ │ (conception labo) │◄────────►│ ROS 2 Humble │◄─┼──────────►
│ │ FreeRTOS │ │ agent micro-ROS │ │ réseau
│ │ micro-ROS │ │ haut niveau │ │ global
│ └─────────┬──────────┘ └────────────────────┘ │
│ │ │
│ moteurs dynamixel │
│ (encodeurs → odométrie) │
└──────────────────────────────────────────────────────────┘
Répartition des rôles :
Carte STM32H750 — le temps réel. Elle pilote les moteurs dynamixel, lit les encodeurs et calcule l’odométrie. Elle exécute FreeRTOS et un client micro-ROS : les données remontent nativement sous forme de topics ROS 2 (voir Communication avec la carte STM32).
Raspberry Pi 4 — le haut niveau. Elle exécute ROS 2 Humble, fait tourner l’agent micro-ROS (pont vers la carte), publie la description du robot, et accueille les briques de plus haut niveau (navigation, carte, capteurs additionnels, couche d’intégration d’un projet hôte).
Organisation du dépôt
ratbot/
├── conception/ conception matérielle
│ ├── kicad/ électronique (voir chapitre dédié)
│ ├── 2d/ plans 2D : châssis, découpe laser, logo (DXF)
│ └── 3d/ modèles 3D (à venir)
├── firmware/ firmware STM32 (FreeRTOS + micro-ROS)
├── ros2/ workspace ROS 2 de la Raspberry Pi
│ └── src/
│ ├── ratbot_description/ URDF du robot
│ └── ratbot_bringup/ fichiers de lancement
├── docs/ cette documentation (Sphinx)
└── scripts/ scripts utilitaires
Exemple d’intégration : Ubimap
Dans le projet Ubimap (perception distribuée multi-robots), les RatBots
évoluent sous des caméras fixes : leur pose dérive à l’odométrie et n’est
recalée que lorsqu’une caméra aperçoit le marqueur ArUco fixé sur leur
sommet (dictionnaire DICT_4X4_50, 150 × 150 mm, convention
ratbot_N porte l’identifiant N). Aucun paquet spécifique à Ubimap ne
vit dans ce dépôt : l’intégration se fait entièrement côté Ubimap, au-dessus
des topics standards du robot.