fast-livo2复现-录制自己的数据集

项目地址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即可

在Gazebo中使用FAST-LIVO2进行激光惯性视觉里程计的仿真,需要将FAST-LIVO2算法与Gazebo仿真环境进行集成,并配置相应的传感器数据流。FAST-LIVO2是一种结合激光雷达、惯性测量单元(IMU)和视觉信息的里程计算法,适用于多传感器融合的SLAM应用。以下是一些关键步骤和注意事项: ### 3.1 传感器数据采集与发布 在Gazebo中,需要模拟激光雷达、IMU和相机传感器的数据,并通过ROS(Robot Operating System)发布这些数据。具体步骤如下: - **激光雷达**:在Gazebo中添加一个激光雷达传感器,通常使用`hokuyo`或`velodyne`等插件。配置传感器参数(如扫描频率、角度范围等),并通过`gazebo_ros_laser`插件将数据发布到ROS话题(如`/scan`)。 - **IMU**:在Gazebo中添加IMU传感器,通常使用`imu_sensor`插件。配置IMU参数(如加速度计和陀螺仪的噪声水平),并通过`gazebo_ros_imu`插件将数据发布到ROS话题(如`/imu/data`)。 - **相机**:在Gazebo中添加单目或双目相机传感器,通常使用`camera`插件。配置相机参数(如分辨率、帧率等),并通过`gazebo_ros_camera`插件将图像数据发布到ROS话题(如`/camera/image_raw`)。 ### 3.2 FAST-LIVO2算法的集成 FAST-LIVO2算法通常以ROS节点的形式实现。为了在Gazebo中运行FAST-LIVO2,需要将算法的ROS包与Gazebo仿真环境集成。具体步骤如下: - **安装FAST-LIVO2**:首先,确保已经安装了FAST-LIVO2的ROS包。可以通过GitHub仓库获取源代码,并使用`catkin_make`或`catkin build`进行编译。 - **订阅传感器数据**:FAST-LIVO2节点需要订阅Gazebo发布的传感器数据(如激光雷达、IMU和相机数据)。确保FAST-LIVO2的配置文件中正确指定了这些话题名称。 - **发布里程计信息**:FAST-LIVO2会计算并发布里程计信息(如位置、姿态等),通常发布到`/odom`话题。可以通过RVIZ等工具可视化这些信息。 ### 3.3 Gazebo仿真环境的配置 为了确保FAST-LIVO2能够在Gazebo中正确运行,需要对仿真环境进行适当配置: - **时间同步**:由于FAST-LIVO2依赖于多传感器数据的时间戳,确保所有传感器数据的时间戳同步非常重要。可以通过`clock`话题和`use_sim_time`参数来实现时间同步。 - **坐标系对齐**:确保所有传感器数据的坐标系一致。可以通过`tf`变换来调整传感器的坐标系。 - **仿真速度与实时性**:Gazebo仿真速度可能会影响FAST-LIVO2的性能。可以通过调整Gazebo的仿真速率(`real_time_factor`)和物理引擎参数(如`max_step_size`)来优化仿真效果。 ### 3.4 示例代码 以下是一个简单的Gazebo模型配置文件示例,展示了如何添加激光雷达、IMU和相机传感器: ```xml <model name="sensor_model"> <!-- Laser Sensor --> <link name="laser"> <sensor name="laser_sensor" type="ray"> <plugin name="gazebo_ros_laser" filename="libgazebo_ros_laser.so"> <topicName>/scan</topicName> <frameId>laser_link</frameId> </plugin> </sensor> </link> <!-- IMU Sensor --> <link name="imu"> <sensor name="imu_sensor" type="imu"> <plugin name="gazebo_ros_imu" filename="libgazebo_ros_imu.so"> <topicName>/imu/data</topicName> <frameId>imu_link</frameId> </plugin> </sensor> </link> <!-- Camera Sensor --> <link name="camera"> <sensor name="camera_sensor" type="camera"> <plugin name="gazebo_ros_camera" filename="libgazebo_ros_camera.so"> <topicName>/camera/image_raw</topicName> <frameId>camera_link</frameId> </plugin> </sensor> </link> </model> ``` ### 3.5 调试与优化 在仿真过程中,可能会遇到一些问题,例如传感器数据不同步、FAST-LIVO2算法性能不佳等。可以通过以下方式进行调试和优化: - **日志记录**:启用FAST-LIVO2的日志记录功能,检查传感器数据是否正常接收,以及算法的输出是否符合预期。 - **参数调整**:根据实际场景调整FAST-LIVO2的参数,例如激光雷达的扫描频率、IMU的噪声水平等。 - **可视化工具**:使用RVIZ等工具可视化FAST-LIVO2的输出,检查里程计的轨迹是否平滑,是否存在漂移等问题。 通过以上步骤,可以成功在Gazebo中集成FAST-LIVO2算法,并实现激光惯性视觉里程计的仿真。确保所有传感器数据的正确性和同步性是成功的关键因素之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值