ROS 占用栅格地图格式
ROS 占用栅格地图是一对文件——通常为 map.pgm 和 map.yaml——用于描述机器人环境的 2D 俯视图。这是 ROS 导航栈(nav1 map_server、nav2 map_server)消费的标准地图格式,也是 gmapping、Cartographer 和 slam_toolbox 等 SLAM 工具包产出的格式。
两个文件分别包含什么
Section titled “两个文件分别包含什么”.pgm 文件是灰度 Portable Gray Map 图像,像素值编码占用情况:
- 深色像素 — 已占用(障碍物、墙壁)。
- 浅色像素 — 自由空间。
- 特定灰度值(通常为 205)— 未知区域。
.yaml 文件描述如何在度量坐标系中解释该图像:
image: map.pgmresolution: 0.05 # 每像素对应的米数origin: [-12.2, -28.5, 0.0] # 左下角在 (x, y, yaw) 中的坐标negate: 0occupied_thresh: 0.65free_thresh: 0.196resolution 和 origin 共同使下游工具能够在像素坐标和世界坐标之间双向转换。
这种格式在实际中如何产生
Section titled “这种格式在实际中如何产生”最常见的几种流程:
- 手动驾驶机器人,将里程计 + 2D 激光雷达输入 gmapping 或 slam_toolbox,然后保存生成的地图。
- 离线运行 Cartographer 处理 bag 文件,并导出占用栅格。
- 从其他格式转换——
.bt、OctoMap 投影或自定义格式。
生成的地图随后由 map_server 加载,供定位(AMCL)和规划(nav2)使用。
drawtonomy 的定位
Section titled “drawtonomy 的定位”drawtonomy 可导入 .pgm + .yaml 对,并在浏览器中对占用栅格进行标注:
- 地图根据
resolution和origin元数据按比例显示在画布上。 - 可在地图上绘制车道、路口、车辆、行人和交通标志。
- 标注内容以 drawtonomy 图形的形式单独存储——原始
.pgm文件不会被修改。 - 适合论文配图(带规划路线标注的 SLAM 地图)、教学(标注规划器所见内容)以及快速真值标注。
这是有意设计为单向导入:drawtonomy 不是 nav2 地图编辑工具的替代品,而是当你需要对 SLAM 地图进行视觉清晰、可发表的标注时的便捷选择。
导入流程参见:导入 ROS 占用栅格地图。
- 用例:标注 ROS 占用栅格地图 — 典型工作流。