Les principes ============= **S'applique à :** :bdg-info-line:`Simulation` :bdg-warning-line:`Robot réel` Quelques choix guident tout le projet. Les connaître évite de chercher au mauvais endroit, et explique pourquoi les choses sont faites ainsi. Une seule commande pour tout ---------------------------- Tout passe par ``./scripts/ratbot``, lancé depuis la racine du dépôt : compiler, lancer la simulation, cartographier, naviguer, piloter, régler la carte du robot. C'est **la même commande sur le PC et sur le Raspberry Pi** : elle reconnaît la machine à son nom (``ratbot-N`` pour le robot ``N``, sinon le PC) et s'adapte. .. code-block:: bash ./scripts/ratbot help # toutes les commandes ./scripts/ratbot role # ce que cette machine croit être En cas de doute, partez de là (voir :doc:`commande_ratbot`). Une exception : la **calibration guidée**, que l'on ne fait qu'à la mise en service d'un robot, a son propre script, ``./scripts/ratbot-calibrate``, pour ne pas encombrer la commande de tous les jours (voir :doc:`lidar`). Chaque machine a son rôle ------------------------- La **carte du robot** fait le temps réel et la sécurité, le **Raspberry Pi** fait tourner ROS 2 sur le robot, le **PC** fait le calcul lourd : cartographie, navigation, RViz, simulation. Rien de lourd ne tourne sur le robot (voir :doc:`introduction`, section *Architecture*). La carte du robot fait foi -------------------------- Ce qui protège le robot et ce qui le décrit vit **dans sa carte**, pas sur un ordinateur : - **ses réglages** — taille des roues, entraxe, vitesses maximales — sont gardés dans sa mémoire (voir :doc:`parametres`) ; - **ses sécurités** — arrêt d'urgence, arrêt en cas de choc ou de renversement, vitesses bornées — fonctionnent même Raspberry Pi éteint. Aucun programme ne peut les contourner (voir :doc:`arrets`). Les mêmes commandes en simulation et en vrai -------------------------------------------- La simulation reproduit le robot et publie les mêmes topics. Les commandes sont les mêmes : ``slam 1``, ``nav 1``, ``joy`` fonctionnent dans les deux cas. On apprend et on essaie en simulation, puis on passe au robot réel. Le robot démarre seul, mais ne change pas seul ---------------------------------------------- À la mise sous tension, le robot lance lui-même tout ce dont il a besoin : rien à démarrer à la main. En revanche, **rien ne s'y met à jour tout seul** : ni le système, ni le logiciel. Une mise à jour est toujours une décision, prise robot au repos (voir :doc:`travailler`). Mesurer plutôt que supposer --------------------------- Chaque robot a ses petits défauts : roues de diamètres légèrement différents, gyroscope un peu optimiste. On ne les devine pas, **on les mesure**, avec les outils de calibration fournis (voir :doc:`calibration`), et l'on garde la trace de chaque mesure dans le cahier de labo. La documentation fait foi ------------------------- Quand le comportement du robot change, la documentation change avec lui. Si elle contredit ce que vous observez, c'est un défaut à signaler.