Tauri v2 + React + Vite + bun 的地图编辑器,双模式:
2D 栅格模式
- 可视化
map.yaml/map.pgm(黑白灰占用栅格,滚轮缩放 / 右键拖拽平移) - 调整地图:擦除/补画格点,一键清除连通噪块(建图残留的临时元素)
- 打标签:在地图上标记货架位、目标点、充电位等,拖动/改字/变色,存成
labels.json - 保存回导航兼容的
map.pgm+map.yaml(保持 origin/resolution 不变)
3D 点云模式(PCD)
- 加载
.pcd点云(支持ascii/binary/binary_compressed,含强度字段),Three.js/WebGL 渲染,按 Z 高度/强度/白色着色,旋转缩放平移(右键平移,滚轮缩放)。 若点云朝向不对(部分数据源坐标轴方向不同),点工具栏 X反转 / Y反转 / Z反转 一键镜像对应轴(Z 反转即高度反向),保存时写回修正后的数据 - 编辑
- 擦除/恢复:笔刷刷掉或恢复笔刷球内的点(支持撤销重做 Ctrl+Z / Ctrl+Y)
- 删除蒙版:工具栏「蒙版」展开后,勾选 X/Y/Z 轴并填 min~max 范围,场景中出现半透明蓝色限制盒;蒙版开启时擦除/恢复变为竖直擦除柱(只删盒内、光标水平半径内的点),配合「删除蒙版内」可一键删除盒内所有点(例如:圈住建图时走动的人、车身边缘水平噪层等)
- Z 过滤:只显示指定高度范围的点(显示层过滤,不删点)
- 框删:屏幕拉框删除框内所有点(从当前视角投影选取)
- 标签:点击点云放置 3D 标签(精灵文本,可拖动/双击改字/Delete 删除/换色,存成
pcd_labels.json)
- 保存:写回
.pcd,保留原始编码格式(ascii/binary/binary_compressed)和强度字段
Ubuntu 需要 WebKit2GTK 等系统库:
sudo apt update
sudo apt install -y libwebkit2gtk-4.1-dev build-essential curl wget file \
libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-devRust(≥1.77)、bun 已装则跳过。装 tauri-cli(可选,用于 tauri dev):
cargo install tauri-cli --lockedbun run tauri dev首次会编译 Rust 后端(几分钟)。弹窗打开后:
- 顶部切换 2D栅格 / 3D点云 模式。
- 点 打开地图… → 系统文件对话框选
map.yaml,地图显示在画布(黑=占用/白=空闲/灰=未知) - 选工具编辑:
- 橡皮:把占用格刷成空闲(左键拖动)
- 画笔:把空闲格刷成占用
- 清噪块:点击一个黑色连通块,整个连通区域清成空闲(去掉建图残留的临时元素)
- 标签:点击地图加标签(弹窗输入文字)
- 选择:点标签可拖动,双击改文字,Delete 删除,右下角色块改颜色
- 笔刷滑块调橡皮/画笔粗细
- 保存:写回当前路径(
map.pgm+map.yaml);另存地图为… 选新路径。 标签用 打开标签…/另存标签为…/保存(labels.json)
快捷键:Ctrl+Z 撤销,Ctrl+Y 重做;滚轮缩放,右键/Shift 拖拽平移。
- 点 打开PCD… 选
.pcd文件,点云自动居中显示(按 Z 高度着色,左下网格为地面参考) - 选工具编辑:
- 浏览:左键旋转,右键平移,滚轮缩放
- 擦除:左键拖动,把笔刷圆内的点删掉(笔刷大小滑块调节)
- 恢复:左键拖动,把之前擦除的点按圆内区域补回来
- 删除蒙版:点「蒙版」→ 勾选轴填范围(蓝色半透明盒实时预览)→ 擦除/恢复自动变为竖直柱状(只作用于盒内)→ 或点「删除蒙版内」一键清空盒内点(删除走动的人、车体边缘噪层很好用),Ctrl+Z 可撤销
- 框删:左键拉框,删除框内所有点(从当前视角投影)
- 测量:点击点云依次取点(自动吸附到点),显示相邻点间 3D 距离与水平距离,Esc 或「清除测量」清空
- 建图过程动画:点「动画」→ 打开Bag… 直接加载 ROS1 bag(纯文件解析,无需 ROS):自动列出点云话题(支持
sensor_msgs/PointCloud2与livox_ros_driver2/CustomMsg),按 bag 真实时间戳回放——MID-360 逐点时间戳驱动的花瓣扫描、倍速/进度条/暂停。- 位姿来源(机器人标记 + 地图累积):bag 内的 /tf、GPS+航向(NavSatFix+Float64 自动推轨迹,带尖峰过滤)、或外部 FAST-LIO2 位姿日志(
Log/mat_out.txt,按时间对齐,最准确) - PCD 模式可加载 PCD 位姿日志做索引/轨迹回放;打开 PCD 时会自动探测同目录的
mat_out.txt
- 位姿来源(机器人标记 + 地图累积):bag 内的 /tf、GPS+航向(NavSatFix+Float64 自动推轨迹,带尖峰过滤)、或外部 FAST-LIO2 位姿日志(
- 标签:点击点云上的点添加 3D 标签(自动贴在点上)
- 选择:点标签可拖动(吸附到点云),Delete 删除;右侧列表双击改字、色块改颜色
- Z过滤:填 min/max 高度后点 过滤,只显示该范围内的点(不删点,随时可调回)
- 点大小滑块调点云渲染尺寸
- 保存:写回当前路径(保留原编码格式);另存PCD为… 选新路径。
标签用 打开标签…/另存标签为…/保存(
pcd_labels.json,含 x/y/z)
快捷键:Ctrl+Z 撤销/Ctrl+Y 重做(仅擦除/恢复/框删),Delete 删选中标签,Esc 取消框选。
bun run tauri build产物在 src-tauri/target/release/bundle/。
标签存成 labels.json([{id,x,y,text,color}],坐标为地图世界系米),后续可以让
nav 读取标签作为目标点,或导出点位做抓取/巡检。