Bringup

Le paquet ratbot_bringup (dans ros2/src/) rassemble les fichiers de lancement du robot : tout ce que la Raspberry Pi doit démarrer pour que le RatBot soit opérationnel.

Le workspace

Le workspace ROS 2 du robot est le dossier ros2/ du dépôt :

cd ros2
colcon build
source install/local_setup.bash

Prérequis sur la Raspberry Pi :

sudo apt install ros-humble-micro-ros-agent

Démarrer le robot

robot.launch.py démarre tout ce qu’une Pi doit lancer : le robot_state_publisher (URDF, frames TF préfixées), le garde-barrière cmd_vel_gate (arrêt d’urgence global, voir Les topics du robot) et l’agent micro-ROS, le tout dans le namespace du robot :

ros2 launch ratbot_bringup robot.launch.py robot_id:=1

Arguments :

Argument

Défaut

Rôle

robot_id

1

Numéro N du robot : namespace ratbot_N et frames TF préfixées ratbot_N/.

agent

true

Mettre à false pour travailler sans la carte STM32 (ne lance pas l’agent micro-ROS).

dev

/dev/ttyACM0

Périphérique série relié à la carte STM32.

baudrate

1000000

Débit de la liaison série Pi ↔ STM32 (1 Mbaud). Ignoré si le transport est l’USB CDC.

L’agent micro-ROS seul (pont carte ↔ graphe ROS 2, voir Communication avec la carte STM32) peut aussi être lancé isolément :

ros2 launch ratbot_bringup micro_ros_agent.launch.py

Réseau

Plan d’adressage des Raspberry Pi des robots (réseau 192.168.1.0/24, partagé avec le testbed Ubimap) :

Robot

Hostname

IP fixe

ratbot_1

ratbot-1

192.168.1.171

ratbot_2

ratbot-2

192.168.1.172

ratbot_3

ratbot-3

192.168.1.173

ratbot_4

ratbot-4

192.168.1.174

  • Synchronisation du temps : chaque Pi est client chrony du serveur NTP du testbed (ubimap-ntp-server, 192.168.1.190) — indispensable dès qu’on compare des timestamps entre machines.

  • ROS_DOMAIN_ID : la même valeur sur toutes les machines qui doivent se voir (robots, caméras, centrale).

TODO

  • démarrage automatique au boot de la Pi (service systemd), avec robot_id dérivé du hostname (ratbot-N) ;

  • namespace du nœud micro-ROS côté firmware (la carte doit connaître son numéro — voir Les topics du robot) ;

  • procédure d’installation d’une Pi (IP fixe nmcli, chrony client, ROS_DOMAIN_ID).