Explorer automatiquement

S’applique à : Simulation

Plutôt que de promener le robot à la manette (voir Faire une 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 Les paquets du RatBot).

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) :

./scripts/ratbot up rooms ground_truth_tf:=false

Puis, dans un second terminal, l’exploration :

./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.

./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.

_images/exploration-lisv.png

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.

Astuce

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.