ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

手把手教你编译 MULLS:Ubuntu 下 PCL、Glog、Ceres 等 8 大依赖库安装避坑全攻略

手把手教你编译 MULLS:Ubuntu 下 PCL、Glog、Ceres 等 8 大依赖库安装避坑全攻略 手把手教你编译 MULLSUbuntu 下 PCL、Glog、Ceres 等 8 大依赖库安装避坑全攻略【免费下载链接】MULLS MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square [ICRA 21]项目地址: https://gitcode.com/gh_mirrors/mu/MULLSMULLS 是 ICRA 2021 论文《Versatile LiDAR SLAM via Multi-metric Linear Least Square》的开源实现一款高效、低漂移、多场景适用的 LiDAR SLAM激光雷达同步定位与建图系统。不过编译 MULLS 之前必须先装好 PCL、Glog、Gflags、Eigen3、Ceres、OpenCV、HDF5、TEASER 这 8 大依赖库而这一步正是新手最容易踩坑的地方。本文整理了一份 Ubuntu 环境下的 MULLS 依赖库安装与编译完整攻略从零开始带你一次通过。MULLS 是什么为什么值得动手编译MULLSMulti-metric Linear Least Square由 ETH 团队提出核心思路是用多度量线性最小二乘完成点云特征提取、匹配与位姿解算让 LiDAR SLAM 在城区、高速、校园等不同场景下都能保持低漂移与实时性同时前后端回环检测、位姿图优化齐备。 前端多度量特征提取 线性最小二乘位姿估计 后端回环检测 位姿图优化支持 Ceres / g2o / GTSAM 支持 PCD、LAS、TXT、H5、BIN 等多种点云格式 官方在 Ubuntu 16.04 / 18.04 / 20.04 上测试通过编译 MULLS 前先认识 8 大依赖库打开项目根目录的 CMakeLists.txt 可以看到MULLS 的依赖分为「必需」与「可选默认开启」两类合计正好 8 个依赖库在 MULLS 中的作用类别Eigen3矩阵与线性代数运算基石必需PCL点云滤波、特征提取与可视化必需Glog日志系统必需Gflags命令行参数解析必需Ceres位姿图非线性优化官方推荐可选·默认开OpenCV二维地图、扫描图、BEV 图像生成可选·默认开HDF5H5 格式点云数据读写可选·默认开TEASER全局配准加速否则退化为 RANSAC可选·默认开此外编译还需要 Boost、OpenMP 与 CMake 作为基础支撑。下面我们分两步走先搭基础环境再逐个安装依赖。第一步搭建基础编译环境无论用哪种安装方式下面这些工具都是必须的一条命令全部搞定sudo apt-get update sudo apt-get install -y cmake cmake-curses-gui build-essential git wget checkinstallcheckinstall是 MULLS 官方安装脚本用来把源码打包成 .deb 再安装的工具必须安装否则 install_dep_lib.sh 会在编译源码型依赖Ceres、TEASER 等时报错。若 apt 里的 CMake 版本低于 3.10编译 TEASER 会失败建议通过官方 PPA 升级到新版本。第二步8 大依赖库逐个安装1. Eigen3一切矩阵运算的基石MULLS 的线性最小二乘解算重度依赖 Eigen直接安装系统包即可sudo apt-get install -y libeigen3-dev pkg-config --modversion eigen3 # 验证版本⚠️ 如果你同时装了 Anaconda注意 conda 环境里的 Eigen 可能干扰编译建议编译 MULLS 时切换到系统默认环境。2. PCL点云处理的核心库PCL 是 MULLS 最核心的依赖版本需 1.7安装时它的子依赖 Boost、FLANN、VTK 会一并装好sudo apt-get install -y libpcl-dev libproj-dev3. Glog日志库MULLS 大量使用 Glog 输出运行日志运行脚本中的-log_dir ./log/test就是 Glog 参数安装命令sudo apt-get install -y libgoogle-glog-dev4. Gflags命令行参数库Gflags 负责解析--flagfilexxx这类运行参数与 Glog 是黄金搭档常一起安装sudo apt-get install -y libgflags-dev5. Ceres位姿图优化首选Ceres 用于回环检测后的位姿图优化MULLS 官方明确推荐它g2o、GTSAM 三选一即可。先装好它的数学库依赖sudo apt-get install -y libatlas-base-dev libsuitesparse-devUbuntu 20.04 可直接sudo apt-get install -y libceres-dev若版本较老建议源码编译 2.0.0 版本编译命令可参考官方脚本 install_dep_lib.sh 中的 ceres 段落。6. OpenCV二维地图与 BEV 图像默认开启的BUILD_WITH_OPENCV选项需要 OpenCV 来生成二维地图和鸟瞰图一键安装sudo apt-get install -y libopencv-dev7. HDF5H5 点云数据读写若你打算用 H5 格式的点云数据pc_formath5需要 HDF5 及其 MPI 支持sudo apt-get install -y libhdf5-serial-dev libopenmpi-dev openmpi-bin libhdf5-openmpi-dev8. TEASER全局配准加速TEASER 用于 MULLS-Registration 的全局配准必须源码编译且CMake 3.10官方脚本中按以下流程处理clone 仓库 →mkdir build cd build→cmake .. -DBUILD_TESTSOFF→make→ 打包安装并sudo ldconfig。 不想手动折腾直接在 MULLS 目录下执行bash script/tools/install_dep_lib.sh脚本会自动完成上述 8 大依赖外加 Sophus、LibLAS 等可选库的安装全程已验证通过这是最省心的方式。MULLS 依赖库安装避坑指南这部分是无数人踩过的坑请务必收藏❌Anaconda 干扰 HDF5 查找CMakeLists 中特意注释了find_package(HDF5)就是因为容易误找到 Anaconda 里的错误版本最终硬编码为/usr/include/hdf5/serial。编译前建议屏蔽 conda 环境。❌CMake 版本过低TEASER 要求 CMake 3.10Ubuntu 16.04 自带的旧版会导致编译失败需先升级 CMake。❌Eigen 版本过低TEASER 需要较新的 Eigen官方 Dockerfile 中甚至专门手动安装了 Eigen 3.3.7遇到模板报错时可参考升级。❌g2o 版本过新如果选 g2o 而非 Ceres必须用 2016 年及以前版本新版 API 不兼容。❌Ceres / g2o / GTSAM 重复安装三者都用于位姿图优化装一个即可重复安装反而可能引发链接冲突。❌修改 CMake 选项后不删 build切换BUILD_WITH_*选项后若编译报错请删除build文件夹重新来过否则 CMake 缓存会赖着不走。三步完成 MULLS 编译依赖装齐后编译其实非常简单先获取源码git clone https://gitcode.com/gh_mirrors/mu/MULLS然后进入项目目录执行标准的三步编译cd MULLS mkdir build cd build cmake .. make -j$(nproc) cd ..编译成功后可执行文件会输出到bin目录mulls_slam、mulls_reg、replay_slam以及bin2pcd、txt2pcd等格式转换工具。若需要调整可选依赖可在build目录下用ccmake ..可视化勾选BUILD_WITH_*选项后重新编译。编译成功后如何快速验证项目自带 16 帧示例点云位于 demo_data/pcd无需任何修改即可验证编译成果# 验证 SLAM 模块 sh script/run_mulls_slam.sh # 验证点云配准模块 sh script/run_mulls_reg.sh运行后可在实时查看器中观察建图过程结果轨迹、地图、评估文件会输出到demo_data/result目录。想要量化评估精度可参考 python/kitti_eval.py 配合 python/requirements.txt 中的 evo 工具进行 APE / RPE 评测。MULLS 在 KITTI 上的整体表现可参考项目中的实验结果对比结语编译 MULLS 的难点从来不在编译本身而在 8 大依赖库的安装顺序与版本选择上。只要按照「基础环境 → Eigen3/PCL → Glog/Gflags → Ceres → OpenCV/HDF5 → TEASER」的顺序安装并避开 Anaconda、CMake 版本、build 缓存这几个经典大坑就能顺利编译出属于自己的 LiDAR SLAM 系统。快动手试试吧【免费下载链接】MULLS MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square [ICRA 21]项目地址: https://gitcode.com/gh_mirrors/mu/MULLS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表