11. Odin1 重定位地图获取手册
📄 Download English PDF: Odin1 Relocalization Map Acquisition Guide
11.1 说明
Odin1提供重定位功能,已实现与MANIFOLD手持扫描仪的数据联动。目前我们提供3个方案:
- 1.使用Odin采集olx数据,通过Mindcloud处理后使用“导出地图”功能导出bin文件用于Odin的重定位;
- 2.使用留形手持扫描仪(留形机,如:Q9000)采集lx数据,通过Mindcloud处理后使用“导出地图”功能导出bin文件用于Odin的重定位;
- 3.使用Odin SLAM模式生成bin文件用于Odin的重定位。
11.2 使用教程
11.2.1 方案1:使用Odin采集olx数据,导出地图
Odin录制olx文件(Odin固件版本要求0.10.0以上,驱动版本0.9.0以上)
- 使用ubuntu系统,驱动设置recorddata: 1
- 使用windows系统,运行OdinViewer,录制数据
- 使用Mindcloud处理olx文件,在后处理中点击“导出地图”按钮,获取重定位bin文件
11.2.2 方案2:使用留形手持扫描仪采集lx数据(如您手上无留形手持扫描仪,请选择其他方案),导出地图
留形手持扫描仪录制lx文件
- Q9000连接手机,使用Mindcloud Go进行数据扫描
- 扫描结束后将工程文件导出到本地
- 使用Mindcloud处理lx文件,在后处理中点击“导出地图”按钮,获取重定位bin文件
11.2.3 方案3:使用Odin SLAM模式生成bin文件
Odin录制slam数据
- 使用ubuntu系统,驱动设置recorddata: 0,同时将map mode设置为1
- 录制解释后请勿C掉驱动进程,另起终端进入/catkin_ws/src/odin_ros_driver路径下运行“./set_param.sh save_map 1”等待驱动运行终端提示地图保存完成并在对应文件夹中生成bin文件后方可停止
- 设置map mode: 2进入重定位模式
- 重新运行驱动开始重定位
11.3 重定位地图显示
olx文件导入Mindcloud后,除了可以导出重定位的地图,也可以直接点击左上角的保存,保存pcd格式的点云地图。此地图可用于rviz的显示,需要对其进行发布,可以对pcd进行抽稀后自定义发布节点发布到ros中,可参阅如下python代码:
最终结果显示如下: 
11.4 使用 map_to_ply 工具直接将重定位 bin 转成 PLY(无需 Mindcloud)
如果您只是想快速可视化已经导出的重定位地图(loop_map.bin),不希望再走一遍 Mindcloud 后处理流程,可以使用我们提供的 map_to_ply 工具将 bin 文件直接转换为 PLY 点云文件,然后用 CloudCompare、MeshLab、Open3D 等常见工具打开即可。
该工具适用于 11.2.1 / 11.2.2 / 11.2.3 三种方式导出的所有
loop_map.bin(MAPV0001 格式)。
11.4.1 下载
根据您运行环境的 CPU 架构选择对应版本:
| 文件 | 适用平台 |
|---|---|
| map_to_ply_amd64 | x86_64(Intel / AMD) |
| map_to_ply_arm64 | ARM aarch64(Jetson / 鲲鹏 等) |
基于 Ubuntu 20.04(glibc 2.31)编译,兼容 Ubuntu 20.04 / 22.04 / 24.04。
11.4.2 使用方法
下载后先给可执行权限:
chmod +x map_to_ply_amd64 # 或 map_to_ply_arm64
基本用法:
./map_to_ply_amd64 <input.bin> [output.ply]
input.bin— 输入的loop_map.binoutput.ply— 输出的 PLY 文件(可选,默认与输入同名,扩展名改为.ply)
示例:
# 自动命名输出文件,会生成 loop_map.ply
./map_to_ply_amd64 loop_map.bin
# 指定输出文件名
./map_to_ply_amd64 loop_map.bin my_map.ply
11.4.3 输出说明
默认输出 binary little-endian PLY,包含每个点的 x / y / z 坐标(float32)。生成的 .ply 可以直接拖入以下工具查看:
- CloudCompare(推荐,跨平台,支持大点云)
- MeshLab
- Open3D(Python:
o3d.io.read_point_cloud("loop_map.ply")) - Blender(导入 → PLY)