Pular para o conteúdo

Formato de mapa de grade de ocupação ROS

O mapa de grade de ocupação ROS é um par de arquivos — tipicamente map.pgm e map.yaml — que descreve uma visão 2D de cima para baixo do ambiente de um robô. É o formato de mapa canônico consumido por stacks de navegação ROS (nav1 map_server, nav2 map_server) e produzido por pacotes SLAM como gmapping, Cartographer e slam_toolbox.

O arquivo .pgm é uma imagem em tons de cinza no formato Portable Gray Map. Os valores de pixel codificam a ocupação:

  • Pixels escuros — ocupados (obstáculos, paredes).
  • Pixels claros — espaço livre.
  • Um cinza específico (frequentemente 205) — desconhecido.

O arquivo .yaml descreve como interpretar a imagem em coordenadas métricas:

image: map.pgm
resolution: 0.05 # metros por pixel
origin: [-12.2, -28.5, 0.0] # canto inferior esquerdo em (x, y, yaw)
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

resolution e origin juntos permitem que qualquer ferramenta converta coordenadas de pixel em coordenadas do mundo e vice-versa.

Os pipelines mais comuns:

  1. Dirigir o robô manualmente e alimentar odometria + lidar 2D para gmapping ou slam_toolbox; salvar o mapa resultante.
  2. Executar o Cartographer offline em um arquivo de bag e exportar a grade de ocupação.
  3. Converter de outro formato.bt, projeção OctoMap ou um formato personalizado.

A saída é então carregada pelo map_server para localização (AMCL) e planejamento (nav2).

O drawtonomy importa pares .pgm + .yaml e permite anotar a grade de ocupação no navegador:

  • O mapa é exibido em escala na tela usando os metadados de resolution e origin.
  • Você pode desenhar faixas, cruzamentos, veículos, pedestres e sinais de trânsito por cima do mapa.
  • As anotações são armazenadas separadamente como formas do drawtonomy — o .pgm original não é modificado.
  • Útil para figuras em artigos (um mapa SLAM com rotas planejadas desenhadas sobre ele), ensino (anotar o que o planejador vê) e rotulagem rápida de ground truth.

Esta é intencionalmente uma importação unidirecional: o drawtonomy não é uma substituição para as ferramentas de edição de mapas do nav2. É uma opção conveniente quando se quer uma anotação visualmente limpa e publicável de um mapa SLAM.

Veja Importar grade de ocupação ROS para o fluxo de trabalho de importação.