目录

一、前言        

二、LIDAR设备

三、IMU设备

        1.亚博智能的JY901B

        2.英特尔的d435i相机内置的imu

四、IMU_LIDAR设备安装

五、IMU内参标定

六、IMU_LIDAR外参标定

        1.浙江大学开发的 lidar_imu_calib 工具

        2.苏黎世联邦理工的 lidar_align 工具


一、前言        

        写在前面:本文源于IMU+激光雷达融合使用LIO-SAM建图学习笔记——详细、长文、多图、全流程_liosam-CSDN博客

         本人认为这篇博客写的非常好,很多编译上的问题全都可看教程直接解决,非常赞,但我在照着这个教程复现的时候还是遇到了一些问题,便有了这个博客,作为一个记录,学习过程的一个思考,仅供参考,如有侵权联系删除。

(如果有学习需求请一定要看先下面这个博客,本文仅供参考,希望能解决一些其他的问题,让您少走弯路。IMU+激光雷达融合使用LIO-SAM建图学习笔记——详细、长文、多图、全流程_liosam-CSDN博客

二、LIDAR设备

        我使用的是velodyne的VLP16雷达,使用雷达的时候会有些警告,但是不影响使用。

教程请看这篇博客SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化_velodyn 16线-CSDN博客

        下图表明了lidar坐标系,安装设备的时候请注意。

velodyne VLP16 雷达 坐标系

三、IMU设备

        我一共使用了四个imu(取两个有代表性的讲一下):

        1.亚博智能的JY901B

        这个imu在静止不动的时候它的陀螺仪没有数值,因此最后标定的结果也是没有数值的,但是内参的影响好像并不是很大。

JY901B 陀螺仪数据

        这里有个关键点是,imu的频率要远大于lidar的频率(10HZ),大概200HZ,实测发现imu频率为100HZ都满足不了算法的要求,由于亚博智能官方给的上位机驱动提到200HZ的时候只能输出3个数据,所以一直用的100HZ,在这个频率下只要转弯,建图就会出现漂移;后续我将它频率改为200HZ,波特率设为115200,选择了加速度、角速度、四元数三个信息,在Ubuntu下面他的驱动却无法正常运行(需要欧拉角的数据),但是当我又多勾选一个欧拉角,它驱动又可以正常运行而且并没有数据丢失的情况。

        还有imu必须使用9轴imu,在算法的imu预积分部分会提到。但是我在使用六轴的时候它有时候会报错,有时候又不报错。

JY901B 官方文档
JY901B 配置

        注意一下imu坐标系:

JY901B imu 坐标系

        2.英特尔的d435i相机内置的imu

        这个imu输出的imu数据里面没有四元数,最后在跑lio_sam的时候会有报错,无法检测到四元数,它需要imu的四元数信息。修改d435i的驱动后无法准确输出四元数,这个问题没有解决。

d435i imu 无四元数

四、IMU_LIDAR设备安装

        这里我专门提一下imu和lidar设备的安装,框架要自己搭好,我这边是自己用木头搭的一个两层的台子,上层放设备,下层放电源等等,要保证雷达和imu都固定死,且相对位置不会发生变化,线头这些也需要固定住,避免拉扯导致设备移动。

(①雷达;②imu;③雷达盒子;④网线;⑤雷达电源开关;⑥12V雷达电源;⑦木板载体)

(d435i相机后续其他算法会用到,也一并装上了,这里不用管它)

设备整体框架

        首先要保证lidar和imu都水平安装,然后因为雷达会震动,所以最好用减震材料垫底(我这里使用的5mm厚的桌椅角垫);电池会干扰磁场,所以imu要远离电池;因为雷达坐标系绕y轴旋转180°就是imu的坐标系,所以我们最好保证lidair坐标系和imu坐标系的坐标系的y轴平行,如图所示:

imu_lidar 安装

五、IMU内参标定

        这个只要保证静止2h就行了,问题就是上面提到的:亚博智能的imu在静止不动的时候它的陀螺仪没有数值,因此最后标定的结果也是没有数值的,但是内参的影响好像并不是很大。

亚博智能的imu 内参标定

六、IMU_LIDAR外参标定

        我用了原博主提到的两个标定包:

        1.浙江大学开发的 lidar_imu_calib 工具

        原博主提到的这点“VLP-16雷达的话题必须使用 velodyne_packets”很关键 ,但是在使用这个工具的过程中我迭代很多次之后都无法达到博主所说的“直至每次出来的数据不再变化(具体表现是后续每次迭代,终端弹出的字段都完全一样),即视为标定成功”,完全不变在我这里的尝试中似乎永远无法达到,遂放弃。(这个工具录包需要将设备的三轴平动和旋转都要充分的激励到。)

永远无法到达的不变

        2.苏黎世联邦理工的 lidar_align 工具

        原博主提到“作者提到不能用于纯imu与雷达的标定”,但是修改imu接口后就可以使用了,具体操作请看这个博客使用lidar_align联合标定lidar与imu的外参_lidar-align-CSDN博客。这个运行不需要手动迭代,等待就能出结果,非常好用。(这个工具录包需要在室外录制两分钟的来回转向和直行运动。)我一直标定出来有问题是因为我用了这个工具,但是录包方法却用的上面那个。

好用

七、总结

        由于本人学习的周期跨度太长(中间有各种事情影响),遇到各种问题,每次都没能很好的解决,一直以为是imu有问题,当然imu一定要配置好,比如安装位置,imu频率(很关键),输出信息这些,但其实还有个原因是标定的工具和录制的包的方法不匹配出现的问题,还有不应该在室内(特别是我小小的工位这种障碍物很近的场景)进行测试(最开始被这个困扰 )。最后在师门的帮助下,不断解决问题,终于成功复现,如图所示:

学校老设备楼  建图成功

        最后,写给读者,也是写给笔者自己。希望大家在学习的时候认真对待,并将遇到的问题做好记录,理清思路,坚持解决,不放弃,最后一定会有结果。

        谢谢您能看到最后,希望对您有所帮助!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐