目录
1 R3LIVE数据采集运行步骤
1.1 录制数据集
1.2 修改config下对应的配置文件
1.3 启动相机和雷达节点
1.4 运行R3LIVE与播包
2 R3LIVE在线运行
1 R3LIVE数据采集运行步骤
1.1 录制数据集
采集数据需要注意的一点是,不同传感器之间的时间同步问题,因为LIVOX默认是从开始启动激光雷达开始算时间的并不是ROS系统时间,如果直接记录数据,是跑不起来的。下面给出对应的解决方案。可以通过如下的命令录制数据:
rosbag record -O test.bag 节点1 节点2 ...
录制好数据集后,通过如下命令查看bag的详细信息,包括时间戳是否对齐
rqt_bag test.bag
接着在节点名右键鼠标 -> View -> Raw查看时间戳信息,发现时间戳没有对齐,可以通过下面的方法解决。
方法1:直接用R3LIVE作者提供的LIVOX驱动
https://github.com/ziv-lin/livox_ros_driver_for_R2LIVE
作者之间将时间戳再源码中更改了,所以用这个驱动启动直接记录数据是可行的。再记录之前需要打开livox_lidar_config.json文件中的时间同步功能。并选择一个接口名称,我这里选择的是相机的接口。
方法2: PTP时间同步的方法
下面是PTP时间同步的方法,是相对容易的一种。
首先ifconfig确认一下网卡情况:
通过下面的指令来检查网卡是否支持软件/硬件时间戳功能(本机有线网卡“eth0”)。
ethtool -T eth0
以下情况说明是可以通过软件同步的方法来实现的。
出现下面的则不能通过PTP进行时间同步
然后安装PTP时间同步工具。
sudo apt install ptpd
执行时间同步命令
sudo ptpd -M -i enp3s0 -C
输出:Now in state: PTP_MASTER, Best master说明同步成功。最后重新录制数据集,检查是否对齐。
1.2 修改config下对应的配置文件
具体修改标定的内参和外参、图像的尺寸。在R3LIVE中设置外参时,要对此处的得到的外参结果求逆,不然得不到最后的点云着色效果。具体操作是将R按对角线反转,T取负号。
1.3 启动相机和雷达节点
roslaunch zed_wrapper zed2i.launch #启动相机
roslaunch livox_ros_driver livox_lidar_msg.launch # 启动雷达
sudo ptpd -M -i enp3s0 -C #启动时间同步
1.4 运行R3LIVE与播包
修改并运行R3LIVE的r3live_bag.launch节点,修改对应的话题名
robag play录制的数据集,最后得到正确的结果,如果没有时间戳同步,则接受不到对应的图像,激光点云也没有颜色。
2 R3LIVE在线运行
在线运行时,与提前录制数据集方法相同,修改相应的雷达和相机的话题名称,启动相机和雷达的节点,同时要注意启动时间同步的功能。
总结:
- 因为LIVOX默认是从开始启动激光雷达开始算时间的并不是系统时间,而相机是基于系统时间,要做时间同步。
- 修改标定的内参和外参,之前标定的是相机到雷达的,R3live下面配置的雷达到相机的,所以要把得到外参旋转矩阵求逆,再填入,平移矩阵则取负。