LOAM-Livox是针对livox-LiDAR的一个激光里程计和建图(LOAM)的功能包 Loam-Livox是一个适用于 Livox LiDAR 强大的、低漂移实时的里程计和建图功能包 Livox LiDAR 是专为大量工业用途而设计的低成本,高性能LiDAR。 功能包解决了许多关键问题,特征提取和在有限FOV下提取,强大的异常值排除,运动物体过滤,运动失真补偿。 此集成了其他功能,例如可并行管道,使用单元和地图的点云管理,循环闭合,用于地图保存和重新加载的实用程序等。 论文1地址 主要写了Loam_livox的整体算法 论文2地址 主要就闭环优化这块进行分析
1、功能包所需环境
- Ubuntu 64-bit 16.04 或者 18.04.
- ROS Kinetic 或者 Melodic
- Ceres Solver 安装可参考网址 Ceres可以解决形式受限的鲁棒非线性最小二乘问题
- PCL 安装可参考网址
2、功能包下载和编译
cd ~/catkin_ws/src
git clone https://github.com/hku-mars/loam_livox.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
3、运行
3.1 Livox Mid-40
连接 PC 和 Livox LiDAR 然后先启动 Loam-Livox 算法
roslaunch loam_livox livox.launch
再启动 livox-ros-driver
roslaunch livox_ros_driver livox_lidar.launch
3.2 Livox Mid-100
Livox-ros-driver的默认配置将所有三个激光雷达点云混合在一起,这给特征提取和运动模糊补偿带来了一些困难。 所以对于这款激光雷达 启动功能包前要做些配置
4、公开数据集(Rosbag)进行验证
可以下载录制好的数据集进行测试 地址要翻 数据集已经下好传到百度网盘里了 百度网盘地址 提取码: sv9z
4.1 Mid-40小场景
执行指令
roslaunch loam_livox rosbag.launch
rosbag play YOUR_DOWNLOADED.bag
这个是小场景的,跑出来是这样
4.2 Mid-40大场景
大场景的 需要 launch 较大的线和平面的分辨率 的那个文件 ( 启动这个rosbag_largescale.launch) 大场景对应的数据集 可以用 HKUST_01.bag 执行指令
roslaunch loam_livox rosbag_largescale.launch
rosbag play YOUR_DOWNLOADED.bag
结果:
4.3 Mid-100
数据集地址 执行指令
roslaunch loam_livox rosbag_mid100.launch
rosbag play mid100_example.bag
4.4 带有回环 的 数据集
有个小的 rosbag,loop_loop_hku_zym.bag 可以验证 具体指令
roslaunch loam_livox rosbag_loop_simple.launch
rosbag play YOUR_PATH/loop_simple.bag
大场景的 回环数据 有loop_loop_hku_zym.bag, loop_hku_main.bag
roslaunch loam_livox rosbag_loop.launch
rosbag play YOUR_DOWNLOADED.bag
可以看到启动的launch文件并不相同 rosbag_loop_simple.launch 和 rosbag_loop.launch 仅有一点区别,最小关键帧的数量(minimum_keyframe_differen)不同