声明 / Credits 本项目代码及文档由 Google Gemini (Model 2.0 Flash Experimental) 协助生成与维护。
ros_map_tool 是一个基于浏览器的 ROS 2 地图处理与航点规划工具。单文件 HTML 运行,无需安装环境,用于快速处理 PCD 点云、编辑栅格地图及生成航点参数。
-
☁️ PCD 点云转栅格 (PCD to Grid)
-
直读解析:前端直接加载
.pcd点云文件,利用 Three.js 进行解析。 -
高度过滤:支持自定义 Min Z 和 Max Z,精准截取雷达扫描平面的障碍物信息,剔除地面或天花板噪点。
-
自动光栅化:将三维坐标实时投影为二维占用栅格图,支持自定义分辨率 (Resolution)。
-
🎨 像素级地图编辑器 (Map Editor)
-
修图工具:提供 ✏️ 补墙 (Draw) 和 ⬜ 擦除 (Erase) 笔刷,轻松修复建图时的孔洞或移除动态障碍物残影。
-
无损缩放:支持以鼠标为中心的 20 倍高清缩放,实现像素级别的精细编辑。
-
兼容性:既可以编辑由 PCD 生成的地图,也可以导入现有的
.yaml+.pgm地图文件。 -
🚩 航点可视化规划 (Waypoint Planner)
-
交互式标点:左键点击确定位置
(x, y),拖拽鼠标确定车头朝向(yaw),所见即所得。 -
自动转换:内置坐标系转换逻辑,自动将 Canvas 像素坐标映射为 ROS 世界坐标(处理 Y 轴翻转)。
-
一键导出:自动生成符合 Nav2 规范的
ros__parameters配置文件,包含num_waypoints及[x, y, yaw]数据列表。 -
🔄 无缝工作流 (Seamless Workflow)
-
数据共享:编辑器与规划器共享同一张底图和参数,修完图后无需保存即可直接切换到规划模式进行打点。
必须使用支持 WebGL 和 Canvas API 的现代浏览器:
- ✅ Google Chrome
- ✅ Microsoft Edge
- ✅ Firefox
- 下载与运行:直接下载本仓库的
ros_map_tool.html文件,并在浏览器中双击打开。 - Step 1: 准备地图
- 方案 A (PCD 转图):切换到“地图编辑器” -> 选择
.pcd文件 -> 设置高度范围 -> 点击“⚡ 生成地图”。 - 方案 B (加载旧图):切换到“地图编辑器” -> 选择
.yaml和.pgm文件 -> 点击“📂 加载地图”。
- Step 2: 修整地图
- 使用右侧工具栏的 “✏️ 补墙” 或 “⬜ 擦除” 工具,修补地图中的瑕疵。
- (可选) 点击 “💾 导出 PGM & YAML” 保存修好的地图。
- Step 3: 规划航点
- 点击顶部 “🚩 路径规划器” 标签(自动沿用当前底图)。
- 在地图上点击并拖拽,标记一系列巡逻点。
- 右侧文本框会自动生成 YAML 配置代码,点击 “📋 复制” 即可。
| 鼠标动作 | 编辑器模式 (Editor) | 规划器模式 (Planner) |
|---|---|---|
| 左键拖拽 | 🖊️ 绘画 (绘制/擦除像素) | 📍 标点 (确定位置+方向) |
| 右键拖拽 | ✋ 平移 (移动画布视图) | ✋ 平移 (移动画布视图) |
| 滚轮滚动 | 🔍 缩放 (以光标为中心) | 🔍 缩放 (以光标为中心) |
- 零后端架构:本工具是纯静态 HTML/JS 页面,没有后台服务器。
- 本地处理:您的 PCD 点云数据、地图图片和生成的路径数据仅在本地浏览器内存中处理,绝不会上传至任何云端服务器。
- Core: Vanilla JavaScript (ES6+)
- Rendering: HTML5 Canvas API (2D Context)
- 3D Engine: Three.js (用于 PCD 解析)
- Architecture: Single-Page Application (SPA)
MIT License (开源免费,随意修改)