跳到內容

ROS 佔據網格地圖格式

ROS 佔據網格地圖由一對檔案組成——通常是 map.pgmmap.yaml——描述機器人環境的二維俯視圖。這是 ROS 導航堆疊(nav1 map_servernav2 map_server)所消費的標準地圖格式,由 gmappingCartographerslam_toolbox 等 SLAM 套件產生。

.pgm 檔案是一張灰階的 Portable Gray Map 影像。像素值編碼佔用狀態:

  • 深色像素 — 已佔用(障礙物、牆壁)。
  • 淺色像素 — 自由空間。
  • 特定灰度(通常為 205)— 未知。

.yaml 檔案描述如何在公制座標中解讀影像:

image: map.pgm
resolution: 0.05 # 每像素代表的公尺數
origin: [-12.2, -28.5, 0.0] # 左下角 (x, y, yaw)
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

resolutionorigin 共同讓下游工具能在像素座標與世界座標之間相互轉換。

最常見的處理流程:

  1. 手動駕駛機器人,並將里程計與二維雷射資料輸入 gmapping 或 slam_toolbox,然後儲存產生的地圖。
  2. 離線執行 Cartographer,處理 bag 檔案並匯出佔據網格。
  3. 從其他格式轉換.bt、OctoMap 投影,或自訂格式。

輸出結果由 map_server 載入,用於定位(AMCL)與規劃(nav2)。

drawtonomy 可匯入 .pgm + .yaml 配對,讓您在瀏覽器中對佔據網格進行標註:

  • 地圖依 resolutionorigin 元資料以正確比例顯示在畫布上。
  • 您可以在地圖上方繪製車道、路口、車輛、行人與交通標誌。
  • 標註以獨立的 drawtonomy 形狀儲存;原始 .pgm 不會被修改。
  • 適合論文配圖(帶有規劃路徑的 SLAM 地圖)、教學(標註規劃器所見的內容)與快速基準標記

這刻意設計為單向匯入:drawtonomy 不是 nav2 地圖編輯工具的替代品。當您需要製作視覺上整潔、可發表的 SLAM 地圖標註時,它是一個方便的選擇。

詳見匯入 ROS 佔據網格了解匯入流程。