La commande ``ratbot`` ====================== **S'applique à :** :bdg-info-line:`Simulation` :bdg-warning-line:`Robot réel` Tout ce qu'on fait avec un robot passe par **une seule commande**, ``./scripts/ratbot``, à lancer depuis le dossier du dépôt (``~/ratbot_ws``). C'est la même sur le PC et sur le Raspberry Pi des robots : c'est la machine qui décide de ce qu'elle fait. .. code-block:: bash cd ~/ratbot_ws ./scripts/ratbot help # la liste des commandes ./scripts/ratbot role # ce que la machine croit être **Le numéro du robot se donne en premier** : ``slam 1``, ``log 2``, ``bench 3 off``. Depuis le PC, il est **obligatoire** — avec plusieurs robots sur le réseau, un numéro deviné viserait le mauvais. Sur le Raspberry Pi d'un robot, il est facultatif : c'est alors ce robot-là. Depuis le PC ------------ .. list-table:: :header-rows: 1 :widths: 38 62 * - Commande - Pour quoi faire * - ``slam 1`` - faire la carte d'une pièce avec le robot 1 — :doc:`carte` * - ``map save 1 salon`` - enregistrer la carte du robot 1 — :doc:`carte` * - ``nav 1 salon`` - faire naviguer le robot 1 sur une carte — :doc:`navigation` * - ``joy`` - piloter les robots 1 à 4 à la manette — :doc:`pilotage` * - ``key 1`` - piloter le robot 1 au clavier — :doc:`pilotage` * - ``route record 1 cuisine`` - apprendre un trajet en conduisant le robot 1 — :doc:`trajets` * - ``route follow 1 cuisine`` - le faire refaire au robot 1 — :doc:`trajets` * - ``explore 1`` - laisser le robot 1 cartographier seul — :doc:`exploration` * - ``rviz 1`` - regarder le robot 1 dans RViz, sans carte — :doc:`rviz` * - ``log 1`` - lire le journal de bord de la carte du robot 1 — :doc:`journal` * - ``bench 1 on`` / ``bench 1 off`` - mode banc : suspendre la sécurité inertielle pour un essai sur la boîte — :doc:`arrets` * - ``config 1 save fichier.yaml`` - sauvegarder les réglages de la carte — :doc:`parametres` * - ``up rooms 2`` - lancer la **simulation** : le décor « rooms », avec deux robots — :doc:`simulation` * - ``up rooms 2 rviz:=true`` - la même, avec RViz ; ``gui:=false`` retire la fenêtre de Gazebo, ``ground_truth_tf:=false`` prépare la cartographie et la navigation * - ``up --list`` - les décors disponibles Sur le Raspberry Pi d'un robot ------------------------------ .. list-table:: :header-rows: 1 :widths: 38 62 * - Commande - Pour quoi faire * - ``install fiche.yaml`` - mettre en service un Raspberry Pi neuf ou cloné — :doc:`installation_robot` * - ``build`` - recompiler après une mise à jour du dépôt * - ``log``, ``bench on|off``, ``config …`` - les mêmes que depuis le PC, pour ce robot-ci La pile du robot démarre **toute seule** à l'allumage, par le service ``ratbot`` : rien à lancer à la main. Pour la relancer : ``sudo systemctl restart ratbot``. Toutes les commandes -------------------- ``./scripts/ratbot help`` affiche la liste complète. Les commandes marquées **maintenance** sont lancées par l'installation ou par le service du robot : on ne les tape pas en usage normal. .. list-table:: :header-rows: 1 :widths: 24 12 64 * - Commande - Machine - Rôle * - ``role`` - les deux - affiche ce que la machine croit être : rôle, numéro du robot, domaine ROS. **À lancer en premier** quand quelque chose surprend * - ``deps`` - les deux - installe les paquets ROS 2 qui manquent à la machine, sans mettre à jour ceux déjà installés (voir :ref:`mises-a-jour-robot`) * - ``build`` - les deux - compile le workspace ; à la première compilation, récupère aussi les paquets externes (voir :doc:`paquets`) * - ``up [DECOR] [N] [OPTIONS]`` - PC - lance la simulation : décor (``ratbot_lab`` par défaut), nombre de robots de 1 à 4 (1 par défaut), options ``nom:=valeur`` en fin de commande (``rviz:=true``, ``gui:=false``, ``screen:=true``, ``ground_truth_tf:=false``) ; ``--list`` donne les décors (voir :doc:`simulation`) * - ``slam N`` - PC - cartographie du robot ``N`` (voir :doc:`carte`) * - ``map save N CARTE`` - PC - enregistre la carte du robot ``N`` ; sans ``N``, celle de l'exploration. Un simple nom la range avec les cartes du dépôt (voir :doc:`carte`) * - ``map list`` - PC - les cartes du dépôt, utilisables par leur nom * - ``nav N [CARTE]`` - PC - navigation du robot ``N`` sur une carte, donnée par son nom ou son chemin ; en simulation, par défaut, celle du décor en cours (voir :doc:`navigation`) * - ``explore N`` - PC - exploration autonome du robot ``N`` ; sa carte s'enregistre avec ``map save CARTE``, sans numéro (voir :doc:`exploration`) * - ``rviz N`` - PC - ouvre RViz pour regarder le robot ``N``, sans cartographie ni navigation (voir :doc:`rviz`) * - ``joy`` - PC - la manette, branchée sur le PC, pour les robots 1 à 4 ; vérifie d'abord qu'elle est branchée (voir :doc:`pilotage`) * - ``key N`` - PC - le clavier, pour conduire le robot ``N`` (voir :doc:`pilotage`) * - ``route record N NOM`` - PC - apprend un trajet : enregistre la position du robot ``N`` dans la carte pendant qu'on le conduit ; Ctrl-C l'écrit (voir :doc:`trajets`) * - ``route follow N NOM [exact]`` - PC - le fait refaire par la navigation, par points ou sur la ligne exacte (voir :doc:`trajets`) * - ``route list`` - PC - les trajets appris * - ``fleet [show|status]`` - PC - le parc, décrit dans ``deploy/fleet.yaml`` : qui répond, version du logiciel, horloge, batterie et dernière calibration de chaque robot en service (voir :doc:`flotte`) * - ``fleet battery|time|diag|who`` - PC - la batterie, les horloges, les diagnostics qui ne sont pas OK, ce qui tourne pour chaque robot et sur quelle machine (voir :doc:`flotte`) * - ``fleet identify N`` - PC - le robot N clignote en blanc et bipe, pour le reconnaître * - ``navtest [EPREUVE] [-n N]`` - PC - banc de navigation, en simulation : rejoue des épreuves fixes (porte, tables) ``N`` fois chacune et mesure réussites, contacts et erreur de localisation ; ``--list`` : les épreuves ; le labyrinthe, test final, ne passe que nommé. Outil de mise au point de la navigation, documenté côté développeurs * - ``log [N]`` - les deux - journal de bord de la carte du robot ; ``--clear`` l'efface (voir :doc:`journal`) * - ``bench [N] on|off`` - les deux - mode banc (voir :doc:`arrets`) * - ``config [N] show|save|load`` - les deux - réglages de la carte du robot (voir :doc:`parametres`) * - ``install fiche.yaml`` - robot - met en service un Raspberry Pi (voir :doc:`installation_robot`) * - ``services`` - robot - **maintenance** — installe les services du robot ; appelée par ``install`` * - ``network`` - robot - **maintenance** — fixe l'adresse réseau du robot ; appelée par ``install`` * - ``boot`` - robot - **maintenance** — démarre toute la pile du robot ; lancée par son service à la mise sous tension * - ``time`` - robot - **maintenance** — remet l'heure du Raspberry Pi d'après l'horloge de la carte ; lancée au démarrage (voir :doc:`heure`) * - ``signals`` - robot - **maintenance** — voyant et sons seuls, pour la mise au point ; le service les lance déjà * - ``agent`` - robot - **maintenance** — pont avec la carte du robot seul, pour la mise au point ; service arrêté Le détail de chaque commande, et les variables qui en modifient le comportement, sont dans la documentation développeur (page « ``ratbot`` : le point d'entrée unique »).