Travailler sur RatBot ===================== **S'applique à :** :bdg-info-line:`Simulation` :bdg-warning-line:`Robot réel` Modifier un réglage de navigation, ajouter un décor, corriger un programme : le chemin est toujours le même. On travaille **sur le PC**, on essaie **en simulation**, puis on met le **robot** à jour. Le cycle d'une modification --------------------------- .. code-block:: text 1. modifier sur le PC, dans le dépôt 2. compiler ./scripts/ratbot build 3. essayer en simulation : ./scripts/ratbot up … 4. enregistrer git commit, puis git push 5. mettre à jour sur le robot : git pull, compiler, relancer **1. Modifier, sur le PC.** Toutes les modifications se font sur le PC, dans le dépôt (voir :doc:`depot`). Jamais directement sur le robot. **2. Compiler.** Depuis la racine du dépôt : .. code-block:: bash ./scripts/ratbot build # tout ./scripts/ratbot build --packages-select ratbot_nav # un seul paquet, plus rapide Puis, dans les terminaux déjà ouverts : ``source ros2_ws/install/setup.bash``. **3. Essayer en simulation.** Les mêmes commandes qu'avec le robot réel (voir :doc:`simulation`). Un problème trouvé ici ne coûte rien. **4. Enregistrer.** ``git commit`` puis ``git push`` : c'est ainsi que la modification atteindra le robot. **5. Mettre le robot à jour.** Robot **au repos**, depuis le PC : .. code-block:: bash ssh ratbot@192.168.1.171 # le robot 1 cd ~/ratbot_ws git pull --ff-only ./scripts/ratbot build --packages-select ratbot_nav sudo systemctl restart ratbot.service Le redémarrage du service relance toute la pile du robot : il cesse de répondre quelques secondes. Ne le faites pas pendant qu'il roule. .. note:: ``git pull --ff-only`` refuse de mélanger des modifications : c'est voulu. S'il refuse, quelqu'un a modifié le dépôt du robot directement. Ne forcez pas : demandez-vous d'abord pourquoi. La carte du robot ----------------- Le programme de la carte (le *firmware*) se compile et se flashe **depuis le PC**, sonde ST-Link branchée. C'est une opération de développeur, décrite dans la `documentation développeur `_. Une règle à retenir, même sans la faire soi-même : .. danger:: **Sauvegardez les réglages de la carte avant de la flasher**, et rechargez-les après : une nouvelle version peut les effacer sans prévenir. .. code-block:: bash ./scripts/ratbot config 1 save avant_flash.yaml # ... flash ... ./scripts/ratbot config 1 load avant_flash.yaml Voir :doc:`parametres`. Débranchez ensuite la sonde avant de faire rouler le robot. Garder la trace --------------- - **Une mesure** — calibration, essai, panne : notez-la dans le cahier de labo, avec la date, le robot et les conditions (sol, batterie). - **Un changement de comportement** : mettez la documentation à jour en même temps que le code. - **Les réglages d'un robot** : sauvegardez-les dans ``cahier_de_labo/config/`` après chaque calibration.