系统版本:Ubuntu20.04
ROS版本:Noetic
前提条件,安装以下内容:
System dependencies:
In ROS workspce:
- livox_ros_driver (v2.5.0) (ROS driver for Livox Horizon)
安装livox_ros_driver(v2.5.0),需要首先安装Livox SDK,执行以下命令:
git clone https://github.com/Livox-SDK/Livox-SDK.git
cd Livox-SDK
cd build && cmake ..
make
sudo make install
小技巧:根据自己电脑的线程可选择编译的速度 ,make时可选择
make make -j4 make -j12
原理:3D激光雷达(例如Livox Horizon)以10 Hz的典型频率流出点云,并与六轴IMU同步,以更高的频率提供陀螺仪和加速度计读数(例如,Xsens MTi-670 5的200 Hz)。希望估计激光雷达框架的六自由度自运动,同时获得全局一致的地图。首先使用陀螺仪数据对激光雷达扫描的原始点云进行下采样和旋转去偏。然后,提取代表平面和边缘的特征点。给定预处理的扫描,基于轻量扫描匹配的配准模块以帧到模型的方式运行,用于快速运动估计,并利用点到边缘和点到平面的度量。获得的自运动估计进一步用于消除当前扫描的平移失真,以及根据场景变换自适应选择关键帧。与预处理和激光雷达测程仪并行,通过拟议的基于关键帧的滑动窗口优化,激光雷达和IMU测量在后端以统一的方式融合。
这是LiLi OM的代码库,LiLi OM是一个实时紧密耦合的激光雷达惯性测程和映射系统,用于固态激光雷达(Livox Horizon)和传统激光雷达(例如Velodyne)。它有两种变体,如文件夹中所示:
LiLi OM,对于具有新提出的特征提取模块的Livox Horizon,
LiLi OM ROT,用于旋转机构的传统激光雷达,具有类似于壤土的特征提取模块。
执行以下指令,进行编译:
git clone https://ghproxy.com/https://github.com/Livox-SDK/livox_ros_driver.git lidar-imu-fusion/src
#lidar-imu-fusion可更改名字
cd lidar-imu-fusion/src
git clone https://ghproxy.com/https://github.com/KIT-ISAS/lili-om
cd ..
catkin build livox_ros_driver
catkin build lili_om
catkin build lili_om_rot
source ./devel/setup.bash
注意:此处是使用catkin build而不是catkin_make,自己开始编译的时候按照catkin_make来做,然后报错,无法编译成功。
如果输入carkin build时,报错指令未发现,原因为:catkin build缺少catkin_tools导致失败。执行下面这条指令进行安装:
sudo apt-get install python3-catkin-tools
注意:catkin_make和catkin build的使用和区别。
catkin_make是几行Cmake和make指令的简写,会将工作空间里面的多个功能包会同时编译。
catkin_build会将工作空间里所有的包同时单独(isolated)编译,编译过程互不影响,同时可设置编译的先后顺序。
编译成功,过程如下图:
catkin build livox_ros_driver
catkin build lili_om
catkin build lili_om_rot
之后进行演示的操作,执行以下命令:
cd ~/lidar-imu-fusion
source ./devel/setup.bash
# 配置环境,每次运行roslaunch命令均需要
roslaunch lili_om run_fr_iosb.launch
打开新的终端:
cd ~/lidar-imu-fusion
source ./devel/setup.bash
# 配置环境,每次运行roslauch命令均需要
roslaunch livox_ros_driver livox_lidar_msg.launch
#运行livox_lidar_msg.launch文件
rosbag play FR_IOSB_Tree.bag
#需进入到bag数据包所在目录下进行操作
结果如下图所示:
补充:另外一个数据集的结果:
如需数据集请私信。