项目地址fast-livo2
代码测试环境:Ubuntu20.04
测试设备:Livox Avia雷达、MV-CA020-10UC相机、6mm镜头、Avia内置IMU
采集设备为JETSON开发板,Ubuntu18.04
1.安装环境包
1.Ubuntu20.04
2.ROS,使用鱼香ROS一键安装
3.PCL,作者要求>1.8,可以直接使用ros自带的1.10版本
4.Eigen,sudo apt-get install libeigen3-dev
5.OpenCV,下载源代码编译安装,4.2版本
6.Sophus,按照作者教程安装即可
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build && cd build && cmake ..
make
sudo make install
7.Vikit,使用作者提供的修改过的版本
# Different from the one used in fast-livo1
cd catkin_ws/src
git clone https://github.com/xuankuzcr/rpg_vikit.git
安装这些库的时候可能会出现一些报错,需要对源码进行部分修改,这部分内容网上有详细教程,请大家自行搜索,不再赘述。
2.编译代码
cd ~/catkin_ws/src
git clone https://github.com/hku-mars/FAST-LIVO2
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
3.运行官方提供的数据集
roslaunch fast_livo mapping_avia.launch
rosbag play YOUR_DOWNLOADED.bag
4.录制自己的数据集
1.实现硬件同步,参考作者给出的教程
相机分辨率设置为1280x1024,修改相机分辨率可以在海康的客户端中修改,并且需要在客户端中将相机设置为外部触发模式
2.标定传感器参数,参考这篇教程,
相机驱动使用作者提供的mvs_ros_driver包,yaml文件中默认的image_scale为0.5,在标定的时候,先改为1,所有标定都完成后可以改回0.5(这个因子实测在建图效果上差别不大,但是设置0.5可以大幅减少bag的体积,并且这个参数在fast-livo2中的yaml文件也需要对应填写,不然程序无法运行)
3.使用自己的设备录制数据集
先查看雷达与相机的数据是否同步触发,可以录制一个几秒钟的bag,查看雷达与相机的消息数量,如果相等,或者相差一帧,代表数据是同步触发的,否则需要检查硬件触发设备。
使用命令开始录制
roslaunch mvs_ros_driver mvs_camera_trigger.launch //启动相机节点
roslaunch livox_ros_driver livox_lidar_msg.launch//启动雷达节点
rosbag record /livox/lidar /livox/imu left_camera/image//录制ROS数据
4.将传感器参数:相机内参、畸变参数;雷达与相机的变换矩阵填入fast-livo2的yaml文件
5.播放自己录制的bag即可