ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

MULLS-Registration 点云配准实战:TEASER++ 加持的成对配准从入门到上手

MULLS-Registration 点云配准实战:TEASER++ 加持的成对配准从入门到上手 MULLS-Registration 点云配准实战TEASER 加持的成对配准从入门到上手【免费下载链接】MULLS MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square [ICRA 21]项目地址: https://gitcode.com/gh_mirrors/mu/MULLS点云配准是激光雷达建图、三维重建和无人驾驶定位的核心技术而 MULLSVersatile LiDAR SLAM via Multi-metric Linear Least SquareICRA 2021 论文开源项目中的 MULLS-Registration 模块通过 TEASER 全局粗配准 MMLLS-ICP 局部精配准的组合让你用一条命令就能完成两片点云的高精度对齐。本文面向新手从原理、安装到参数调优带你快速上手这套点云配准实战方案。什么是 MULLS 点云配准MULLS 是苏黎世联邦理工学院ETH开源的 LiDAR SLAM 系统采用多度量线性最小二乘Multi-metric Linear Least Square求解点云配准问题。它的成对配准模块 MULLS-Registration 由 test/mulls_reg.cpp 实现核心思路是分而治之先把点云按几何语义分类为地面、柱子、墙面、梁、屋顶、顶点六类特征点再通过 NCC 特征编码寻找两片点云之间的对应关系用 TEASER 做全局粗配准抗外点能力强即使初始位姿完全未知也能收敛最后用 MMLLS-ICP 做局部精配准达到毫米级精度。这套流程被封装为一条独立可执行程序mulls_reg输入两片点云输出变换后的对齐结果非常适合用来做成对点云配准入门学习和工程实践。MULLS-Registration 完整配准流程整个配准流水线可以分为四个步骤在 include/common/cregistration.hpp 中均有对应实现步骤功能关键实现1. 语义特征提取将点云划分为地面/柱/墙/梁/屋顶/顶点extract_semantic_ptsPCA 特征2. 对应关系查找用 NCC 特征编码匹配特征点find_feature_correspondence_ncc3. 全局粗配准无初始位姿时快速对齐coarse_reg_teaserTEASER4. 局部精配准在高精度初始值上迭代优化mm_lls_icp多度量 ICP为什么需要 TEASER传统 ICP 对初始位姿敏感两片点云相差太大时容易陷入局部最优。TEASER 采用截断最小二乘Truncated Least Squares和图理论求解在外点比例高达 90%时依然能给出可靠解。MULLS 在 coarse_reg_teaser 中直接调用它实测粗配准通常只需几十毫秒。环境准备依赖库安装与编译MULLS-Registration 的必选依赖不多PCL1.7、Glog、Gflags、Eigen3以及支持 OpenMP 的编译器。TEASER 是可选的——如果没装程序会自动回退到 RANSAC 粗配准在 CMakeLists.txt 中通过BUILD_WITH_TEASER开关控制。先获取代码git clone https://gitcode.com/gh_mirrors/mu/MULLS然后编译README 中提供了完整的 install_dep_lib.sh 一键安装脚本cd MULLS mkdir build cd build cmake .. make编译完成后bin/目录下会生成mulls_reg、mulls_slam等可执行文件。想开启 TEASER确保 cmake 时BUILD_WITH_TEASER为 ON 且系统已安装 teaserpp 库即可。最快上手一条命令跑通成对点云配准项目自带 16 帧 KITTI 演示点云demo_data/pcd/无需准备任何数据即可体验。打开 script/run_mulls_reg.sh脚本默认用第 0 帧作为目标点云、第 15 帧作为源点云进行配准sh script/run_mulls_reg.sh运行后你会看到特征提取窗口两片点云的语义特征点被实时展示即文章开头动图的效果TEASER 粗配准日志输出 inlier 数量与变换矩阵精配准结果变换后的源点云与目标点云完美贴合输出文件保存到demo_data/result/000015_reg.pcd。整个过程约 10 秒即可完成是体验点云配准流程的最佳起点。换成自己的数据只需改三个路径使用自己的点云非常简单在 run_mulls_reg.sh 中修改三个路径变量tpc_path你的目标点云路径 # 如 *.pcd, *.las, *.ply, *.txt, *.h5, *.bin spc_path你的源点云路径 opc_path输出变换后点云路径MULLS 的数据读取层 dataio.hpp 原生支持 pcd、ply、txt、las、csv、h5、bin 七种格式基本覆盖了主流传感器与公开数据集省去格式转换的烦恼。关键参数速查新手最常用的 8 个开关点云配准效果好不好参数调优很关键。以下是最常用的参数全部通过 gflags 命令行传入默认值可直接在 mulls_reg.cpp 中查看参数作用建议值--teaser_on是否启用 TEASER 粗配准true--realtime_viewer_on是否开启实时可视化窗口true--corr_dis_thre对应点距离阈值米2.0~3.0--reg_max_iter_numICP 最大迭代次数10~25--converge_tran平移收敛阈值米0.001--converge_rot_d旋转收敛阈值度0.01--gf_grid_size地面分割网格大小米2.0--pca_neighbor_radiusPCA 邻域搜索半径米1.0例如关闭可视化、提高精度./bin/mulls_reg --point_cloud_1_patha.pcd --point_cloud_2_pathb.pcd \ --output_point_cloud_pathout.pcd --realtime_viewer_onfalse \ --teaser_ontrue --converge_tran0.0005效果验证KITTI 基准上的精度表现MULLS 在 KITTI Odometry 基准上的表现非常亮眼。下图是论文中的性能对比assets/MULLS-on-KITTI.png可以看到 MULLS-SLAM 在城市Urban、高速公路Highway等不同场景下轨迹精度ATE/ARE与运算耗时都优于 LOAM、IMLS-SLAM 等主流方案且在 CPU 上即可实时运行。如果你还想更进一步MULLS 的完整 SLAM 模块前端里程计 后端闭环优化也一并开源一条命令即可体验从原始点云到全局地图的完整建图流程sh script/run_mulls_slam.sh结语MULLS-Registration 把语义特征提取 TEASER 全局配准 MMLLS-ICP 精配准这条业界成熟的点云配准链路封装得开箱即用新手十分钟就能跑通第一个成对配准示例研究者则可以直接阅读 cregistration.hpp 中的算法源码深入学习。无论你是刚接触激光点云配准的初学者还是需要高效配准工具进行工程开发的工程师这套方案都值得一试。动手跑起来感受一下毫米级点云配准的威力吧【免费下载链接】MULLS MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square [ICRA 21]项目地址: https://gitcode.com/gh_mirrors/mu/MULLS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表