跳转到内容

标注 ROS 占用栅格地图

经过几个小时的 SLAM 调整,你终于得到了一张漂亮的占用栅格。现在你需要将它放入论文、报告或演示文稿中,上面标注着规划路径目标位姿禁区。这正是 drawtonomy 的 ROS 地图导入功能的用武之地。

drawtonomy 读取一对 ROS 地图文件(.pgm 图像 + .yaml 元数据)并:

  • 以正确的度量比例将占用栅格放置在画布上。
  • 使用 YAML 中的 resolutionorigin 字段,使世界坐标可以往返转换。
  • 允许在上方绘制车道、路口、车辆、行人、交通灯以及自由箭头/文字。

绘图图层是独立的形状集合;原始 .pgm 文件不会被修改。

  • 论文配图。 “图 3:nav2 在障碍物周围的规划。“一张裸栅格几乎难以辨认;加上规划路径和目标位姿后才能讲述完整故事。
  • 内部文档。 标注了禁区、充电桩位置和命名子区域的 SLAM 地图,是能经受团队人员更迭的可靠资产。
  • 课件。 讲授 nav2 或 AMCL 时,标注后的栅格让学生看到规划器所见的内容。
  • 问题复现。 “机器人在这里卡住了,这是栅格,这是失败的规划路径。“
  1. 导入。 导入 → ROS 地图。同时放入 .pgm.yaml(或将两者压缩为 zip)。
  2. 验证比例尺。 yaml 中的 resolutionorigin 会自动应用。drawtonomy 标尺显示以米为单位的距离。
  3. 标注。 使用车道、车辆、路径、多边形和文字形状。低透明度的多边形工具非常适合标注禁区。
  4. 保存为 .drawtonomy.svg(drawtonomy 原生 SVG 格式)。SLAM 地图上的标注几乎从不是一次性的——禁区会增加、命名子区域会变化、地图本身有时会重新录制。.drawtonomy.svg 重新打开时所有标注都在原位,迭代是编辑而非重绘。
  5. 导出用于分发。 从同一场景,对于不需要可缩放矢量的文档导出 PNG;对于论文和幻灯片导出平面 SVG(栅格作为光栅背景,标注作为矢量)。
  • 标注图层使用单一强调色。 在灰度栅格上叠加多种颜色会产生视觉噪音。
  • 手动添加比例尺。 用一条线串加文字形状——drawtonomy 不自动渲染比例尺,但标尺会告诉你具体长度对应多少米。
  • drawtonomy 不是 nav2 map_server 编辑工具(用于裁剪/膨胀/旋转栅格的 CLI 工具)的替代品。这类操作请留在 ROS 工具链中。
  • 标注图层是 drawtonomy 原生的;将 .drawtonomy.svg 文件作为真值来源,仅在需要将标注几何用于其他工具时导出平面 SVG。

导入细节参见 导入 ROS 占用栅格指南