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 : .. code-block:: bash cd ros2 colcon build source install/local_setup.bash Prérequis sur la Raspberry Pi : .. code-block:: bash 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 :doc:`topics`) et l'agent micro-ROS, le tout dans le namespace du robot : .. code-block:: bash ros2 launch ratbot_bringup robot.launch.py robot_id:=1 Arguments : .. list-table:: :header-rows: 1 :widths: 20 25 55 * - 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 :doc:`stm32_communication`) peut aussi être lancé isolément : .. code-block:: bash 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) : .. list-table:: :header-rows: 1 :widths: 30 30 40 * - 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 :doc:`topics`) ; - procédure d'installation d'une Pi (IP fixe nmcli, chrony client, ``ROS_DOMAIN_ID``).