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