标注 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 标尺显示以米为单位的距离。 - 标注。 使用车道、车辆、路径、多边形和文字形状。低透明度的多边形工具非常适合标注禁区。
- 保存为
.drawtonomy.svg(drawtonomy 原生 SVG 格式)。SLAM 地图上的标注几乎从不是一次性的——禁区会增加、命名子区域会变化、地图本身有时会重新录制。.drawtonomy.svg重新打开时所有标注都在原位,迭代是编辑而非重绘。 - 导出用于分发。 从同一场景,对于不需要可缩放矢量的文档导出 PNG;对于论文和幻灯片导出平面 SVG(栅格作为光栅背景,标注作为矢量)。
几点渲染技巧
Section titled “几点渲染技巧”- 标注图层使用单一强调色。 在灰度栅格上叠加多种颜色会产生视觉噪音。
- 手动添加比例尺。 用一条线串加文字形状——drawtonomy 不自动渲染比例尺,但标尺会告诉你具体长度对应多少米。
- drawtonomy 不是
nav2map_server编辑工具(用于裁剪/膨胀/旋转栅格的 CLI 工具)的替代品。这类操作请留在 ROS 工具链中。 - 标注图层是 drawtonomy 原生的;将
.drawtonomy.svg文件作为真值来源,仅在需要将标注几何用于其他工具时导出平面 SVG。
导入细节参见 导入 ROS 占用栅格指南。