Salta ai contenuti

Formato mappa a griglia di occupazione ROS

La mappa a griglia di occupazione ROS è una coppia di file — tipicamente map.pgm e map.yaml — che descrive una vista 2D dall’alto dell’ambiente di un robot. È il formato di mappa canonico consumato dagli stack di navigazione ROS (nav1 map_server, nav2 map_server) e prodotto dai pacchetti SLAM come gmapping, Cartographer e slam_toolbox.

Il file .pgm è un’immagine in scala di grigi Portable Gray Map. I valori dei pixel codificano l’occupazione:

  • Pixel scuri — occupato (ostacoli, pareti).
  • Pixel chiari — spazio libero.
  • Un grigio specifico (spesso 205) — sconosciuto.

Il file .yaml descrive come interpretare l’immagine in coordinate metriche:

image: map.pgm
resolution: 0.05 # metri per pixel
origin: [-12.2, -28.5, 0.0] # angolo in basso a sinistra in (x, y, yaw)
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

resolution e origin insieme permettono a qualsiasi strumento a valle di convertire le coordinate pixel in coordinate mondo e viceversa.

Le pipeline più comuni:

  1. Guidare il robot manualmente e fornire odometria + lidar 2D a gmapping o slam_toolbox; salvare la mappa risultante.
  2. Eseguire Cartographer offline su un file bag ed esportare la griglia di occupazione.
  3. Convertire da un altro formato.bt, proiezione OctoMap, o un formato personalizzato.

L’output viene poi caricato da map_server per la localizzazione (AMCL) e la pianificazione (nav2).

drawtonomy importa coppie .pgm + .yaml e permette di annotare la griglia di occupazione nel browser:

  • La mappa viene mostrata in scala sulla tela usando i metadati resolution e origin.
  • Puoi disegnare corsie, incroci, veicoli, pedoni e segnali stradali sopra la mappa.
  • Le annotazioni sono memorizzate separatamente come forme drawtonomy — il .pgm originale non viene modificato.
  • Utile per figure di paper (una mappa SLAM con percorsi pianificati disegnati sopra), didattica (annotare cosa vede il pianificatore) e etichettatura rapida del ground truth.

Questo è intenzionalmente un import unidirezionale: drawtonomy non è un sostituto degli strumenti di editing mappe di nav2. È un’opzione conveniente quando vuoi un’annotazione visivamente pulita e pubblicabile di una mappa SLAM.

Vedi Importa griglia di occupazione ROS per il flusso di lavoro di import.