Explorer automatiquement ======================== **S'applique à :** :bdg-info-line:`Simulation` Plutôt que de promener le robot à la manette (voir :doc:`carte`), on peut le laisser **cartographier seul** un lieu inconnu. .. note:: Essayée sur le vrai robot le 2026-10-19 : ratbot-1 a cartographié seul un couloir en L et une pièce (5,3 × 4,7 m), puis il est revenu à son point de départ. C'était un premier essai, dans un lieu simple : gardez la main sur l'arrêt de la manette. Le principe ----------- Le programme d'exploration (``explore_lite``) repère les **frontières** de la carte en construction — les limites entre ce qui est connu et ce qui ne l'est pas encore. Il choisit la plus intéressante, y envoie le robot grâce à la navigation, et recommence. Il cherche les frontières sur la carte elle-même, sans la marge de 50 cm que la navigation garde autour des murs : il voit ainsi celles qui se trouvent derrière une porte, et le robot entre dans les pièces. Lorsqu'il ne reste plus de frontière, le lieu est entièrement cartographié et l'exploration s'arrête d'elle-même. L'exploration combine donc la cartographie et la navigation : un seul lancement démarre les deux. Lancer ------ ``explore_lite`` fait partie des paquets externes, récupérés par ``./scripts/ratbot build`` à la première compilation (voir :doc:`paquets`). Depuis la racine du dépôt, lancer la simulation sans vérité terrain, de préférence dans le décor ``rooms`` (voir l'encadré plus bas) : .. code-block:: bash ./scripts/ratbot up rooms ground_truth_tf:=false Puis, dans un second terminal, l'exploration : .. code-block:: bash ./scripts/ratbot explore 1 La commande vérifie que le robot est visible, et refuse si la simulation tourne avec la vérité terrain. Elle lance la cartographie, la navigation, l'exploration et RViz. Le robot part seul. Le message *No frontiers found, stopping*, dans le terminal de l'exploration, signale la fin : dans le décor ``rooms``, au bout de cinq minutes environ. .. note:: Dans un grand lieu, l'exploration peut ne pas s'arrêter seule : quelques frontières restent parfois en attente alors que la carte est complète. Quand la carte, dans RViz, ne grandit plus, l'exploration est finie : enregistrer la carte comme ci-dessous, **avant** d'arrêter l'exploration par Ctrl-C (l'arrêt ferme aussi la cartographie, et la carte non enregistrée est perdue). Les ouvertures étroites, de moins de 75 cm environ, peuvent être ignorées : l'exploration ne retient que les frontières assez longues, pour ne pas envoyer le robot vers chaque petit trou de la carte. Enregistrer alors la carte, depuis la racine du dépôt, **sans numéro de robot** : l'exploration publie sa carte sur ``/map``, et non sur ``/ratbot_N/map`` comme la cartographie à la manette. .. code-block:: bash ./scripts/ratbot map save rooms_exploree Une seule exploration peut tourner à la fois. Pour voir les frontières visées, ajouter dans RViz un affichage **MarkerArray** sur le topic ``/ratbot_1/explore/frontiers``. .. figure:: _static/exploration/exploration-lisv.png :width: 100% Exploration en cours dans le décor du laboratoire (``lisv``), vue de dessus dans RViz. En gris clair, la zone déjà cartographiée ; autour des murs, la marge de la navigation (violet et bleu clair) ; en vert, les frontières repérées par l'exploration. Le robot est entré dans les pièces. Une exploration complète du décor du laboratoire, accélérée 60 fois : le robot part du couloir central, entre dans les pièces, et l'exploration s'arrête d'elle-même, 97 % du plan cartographié en 49 minutes simulées. .. raw:: html .. tip:: **Le décor** ``rooms.sdf`` **est recommandé.** Les labyrinthes de Hampton sont très symétriques : deux couloirs que le lidar ne sait pas distinguer provoquent de fausses fermetures de boucle, et une carte déformée. C'est une limite de la cartographie au lidar, pas un défaut du logiciel.