激光SLAM:LOAM-Livox 算法研究(1) -- 功能包编译与验证

517 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情

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)不同

在这里插入图片描述 在这里插入图片描述