在 ROS 占据栅格地图上标注
经过几个小时的 SLAM 调优,你终于得到了一张清晰的占据栅格。现在需要把它放进论文、报告或演示文稿里,标上规划路径、目标位姿,标记出禁区。这正是 drawtonomy 的 ROS 地图导入功能要做的事。
drawtonomy 如何处理 .pgm + .yaml
Section titled “drawtonomy 如何处理 .pgm + .yaml”drawtonomy 读取 ROS 地图文件对(.pgm 图像 + .yaml 元数据)并:
- 以正确的度量比例在画布上放置占据栅格。
- 使用 YAML 中的
resolution和origin字段,确保世界坐标可以正确往返转换。 - 支持在栅格上绘制车道、路口、车辆、行人、交通灯,以及自由形式的箭头和文字。
绘制层是独立的形状集合;原始的 .pgm 文件保持不变。
为什么要标注栅格
Section titled “为什么要标注栅格”- 论文配图。 比如”图 3:nav2 在障碍物周围的规划”。单纯的占据栅格几乎看不清;加上规划路径和目标位姿才能把故事讲完整。
- 内部文档。 一张标注了禁区、充电桩位置和命名区域的 SLAM 地图,是在团队人员变动时能保留下来的重要资产。
- 教学材料。 讲授 nav2 或 AMCL 时,标注好的栅格让学生看到规划器眼中的世界。
- 问题复现。 比如”机器人卡在这个位置,这是栅格,这是失败的规划路径”。
drawtonomy 工作流
Section titled “drawtonomy 工作流”- 导入。 导入 → ROS 地图。同时选择
.pgm和.yaml(或把两个文件打包成 zip)。 - 验证比例尺。 YAML 中的
resolution和origin会自动应用。drawtonomy 的标尺以米为单位显示距离。 - 标注。 用 Lane、Vehicle、Path、Polygon 和 Text 等形状。低透明度的 Polygon 工具最适合标记禁区。
- 保存为
.drawtonomy.svg(drawtonomy 原生 SVG 格式)。SLAM 地图上的标注很少是一次性的——禁区会增加、区域名称会改变、地图本身有时也会重新采集。.drawtonomy.svg重新打开时所有标注都还在原位,下一次改动只需编辑而不需重新绘制。 - 导出用于分发。 从同一个场景,可以导出 PNG 供不需要矢量的文档使用,也可以导出平面 SVG 供论文和幻灯片使用(此时栅格是光栅背景,标注是矢量)。
几点渲染建议
Section titled “几点渲染建议”- 标注层用单一强调色。 在灰度栅格上叠加太多颜色会产生视觉混乱。
- 手动添加比例尺。 用 Linestring 配合 Text 形状——drawtonomy 不会自动渲染比例尺,但标尺工具会告诉你具体长度对应多少米。
- drawtonomy 不是
nav2的map_server编辑工具(后者是用于裁剪、膨胀、旋转栅格的命令行工具)的替代品。这类操作还是应该用 ROS 工具链。 - 标注层是 drawtonomy 原生的;请把
.drawtonomy.svg文件作为源版本,只在需要把标注几何导入其他工具时才导出平面 SVG。
详细的导入说明见 导入 ROS 占据栅格指南。