9.基于轨迹相似性理论进行自动驾驶车辆IMU和车身的外参标定

本文介绍了自动驾驶车辆中组合导航的原理,通过Novatel等产品的高精度定位信息进行车体坐标系和IMU坐标系的标定。讨论了轨迹相似性、航位推算及车速源选择,重点分析了标定效果,特别是pitch角的标定挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 说明

本文部分参考这篇文章,本文相关公式不清晰可以去看这篇博客。

1. 组合导航产品介绍

自动驾驶车辆一般会装有有GNSS/INS组合导航器件,比如NOVATEL,导远这些公司的产品。它可以提供高精度的车辆定位信息。组合定位系统的相关知识可以参考组合定位系统
在这里插入图片描述
我们这里IMU和车体坐标系的标定,就用到了组合导航给出的高精度位姿信息。注意:不同的组合导航产品可能输出位置的参考坐标系不同,在编程的时候也要注意坐标系统一。比如我使用的novatel产品输出的位置信息是在WGS84坐标系下,应该把它转换到ENU导航坐标系。相应坐标系转换可以参考这里

2. 标定原理

一方面,我们通过novatel得到厘米级定位信息,可以获得车辆的运行轨迹“真值”。另一方面,我们也可以通过车速,IMU和车体之间的安装角误差以及novatel得到的IMU到导航系的位姿得到车辆运行轨迹在导航系下的表示。
显然,在各项系数都标定完毕,且忽略一些误差的情况下,两个轨迹应该是重合的。详细情况会在后面讲到。

3. 轨迹相似性原理

假设车体坐标系为m系,IMU系为b系,两者之间有较小的安装角误差。两者之间的外参可以如下表示:
在这里插入图片描述
另外,里程计的测量中还可能存在刻度系数误差 δ K D \delta K_D δKD,其输出速度大小 v ~ \tilde{v} v~与理论速度大小 υ \upsilon υ之间的关系为:在这里插入图片描述
所以,在导航坐标系中里程计的实际速度输出应该为:
在这里插入图片描述
由于车辆只有前向速度,所以 υ D m \upsilon^m_D υDm = 0, υ D \upsilon_D υD, 0,重新整理公式得:
在这里插入图片描述
从上式可以得出,翻滚角不影响里程计的测量值。

3.1 航位推算

假设车辆在行驶中水平的姿态角很小。
在这里插入图片描述
对上式进行积分,可以得到位置方程:
在这里插入图片描述
可以看到,上式包含里程计的刻度因子,组合导航的姿态失准角,IMU到车身的安装角(pitch和yaw),理论上可以标定这几个参数。我们忽略组合导航的姿态失准角,便可以标定IMU到车身的安装角以及里程计的刻度因子。

3.2 轨迹相似的可视化

在这里插入图片描述
可见,真实轨迹和解算轨迹相差一个旋转以及缩放因子。
两点说明:

  1. 缩放是有里程计刻度因子导致;
  2. 相对旋转有导航姿态失准角以及IMU和车身安装角导致;

4. 选择车速源

那我们的车辆速度选择什么来源呢?一个是轮速计,但是他会有刻度因子标定的问题,会把误差引入到我们安装角估计当中来;再就是可以使用NHC(车辆约束假设),这里参考了武汉大学多源智能导航实验室的一篇论文。论文在这
在这里插入图片描述
基于NHC假设,我们可以将GNSS观测的速度(GNSS处于固定解状态时)取模,当做车辆的前向速度,这样就不用估计里程计的刻度因子了。
这样的话,我们就可以用novatel给出的轨迹“真值”和DR轨迹作差,得到误差方程了。
在这里插入图片描述

5. 标定效果

在这里插入图片描述
上图是高程上反应pitch角标定的效果。


下面是分别给pitch和yaw角添加了5度的偏差,看能否标回来。可以看到yaw角能标定回来,pitch角标定效果较差。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后一张放大图表明车辆频繁上下坡会显著降低pitch的标定精度。

### IMU标定方法与教程 IMU(惯性测量单元)的标定是指确定IMU相对于其他传感器(如相机、LiDAR等)的空间位置姿态关系的过程。这一过程对于多传感器融合至关重要。 #### 使用`lidar_align`工具进行激光雷达与IMU之间标定 为了实现精确的标定,可以采用专门设计用于此目的的软件包,比如`lidar_align`。该工具提供了详细的命令行指导来完成整个流程[^2]。具体操作如下: 1. 首先克隆项目仓库到本地环境: ```bash git clone https://github.com/ethz-asl/lidar_align.git ``` 2. 接下来按照官方文档指示编译并运行程序,期间可能涉及到调整配置文件以适应特定硬件设置的情况。 通过上述步骤能够有效地获取两者间的相对变换矩阵,从而达到良好的同步效果。 #### Camera-IMU联合标定方案 除了单独考虑不同类型的设备之,在某些应用场景下还需要同时校准多个感知器官间的关系。例如摄像头加IMU组合就非常常见于机器人导航领域内。此时可借助开源框架提供的功能来进行综合性的内估计工作[^1]。 ```python import cv2 as cv from opencv_extra_modules import calibrateCameraIMU # 假设已经准备好图像序列以及对应的IMU数据记录 image_sequence = ... imu_data_log = ... calibrated_params = calibrateCameraIMU(image_sequence, imu_data_log) print(f"Calibration results:\n{calibrated_params}") ``` 以上代码片段展示了如何利用假设存在的`opencv_extra_modules`库中的函数接口执行camera-imu系统的整体优化计算任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宛如新生

转发即鼓励,打赏价更高!哈哈。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值