首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自动驾驶多传感器融合之相机与IMU的同步

在自动驾驶中,往往认为IMU所在的位置为车体坐标系的原点(不绝对),所以需要计算相机到IMU之间的时空同步。相机与IMU具有互补性:相机在高速运动、光照改变情况下容易失效,但能够获得丰富的环境信息;而IMU能够获得车辆的运动信息,并且不受周围环境的影响,从而弥补相机的不足。可以通过视觉匹配完成回环检测与回环校正,有效的修正IMU的累计漂移误差,即所谓的相机与IMU的相对位姿。

1)相机与IMU的相对位姿:

相机与IMU之间的相对位姿,就是相机坐标系与IMU坐标系之间的变换,包括相对旋转角和相对平移量。其变换关系满足如下:

其中wc表示相机坐标系,wb表示IMU坐标系,cb表示相对坐标系。将上式展开可以得到相机坐标系与IMU坐标系之间旋转角和平移量的变换关系:

2)相机与IMU的时间同步:

由于触发、传输等延时的存在,相机与IMU采样的时间和时间戳的时间并不匹配,如下图,这会导致相机与IMU之间存在时间差。

这里时间差的计算为:

即将相机的时间戳平移td后,相机与IMU之间实现了同步。

相机与IMU的时空同步目前有很多开源的框架,如熟知的VINS就是集合了相机与IMU状态估计和标定的系统框架,也是目前个人比较推荐的一个应用框架。首先给出VINS的系统图。

首先进行相机与IMU之间相对旋转角的标定,标定完成之后进行初始化和相机与IMU之间相对平移量的标定。标定和初始化完成后进行视觉惯性联合的状态估计,并且把标定量也当做待估计的状态放入联合优化中。VINS除了可以标定相对姿态,还能够进行时间标定。原理如下:假设在较短时间内相机从匀速运动到,特征点在像素平面上的投影也从匀速运动至,像素匀速运动的速度为。如下图:

通过平移像素坐标,将时间差作为优化变量加入投影误差的表达式中,如下式:

此投影误差项与IMU误差项和初始值误差项相加进行联合非线性优化。每一次优化结束后对时间差进行补偿,最终时间差的标定量逐渐趋于0。

当然,为了获取更精确的标定结果,还可以将时间差加入到IMU预积分表达式中,作为优化变量参与联合非线性优化。

关于VINS的其他应用,后续有机会再来介绍,这里再来介绍另外一种方法,即基于basis-functions来估计时间偏移的方法,用于统计相机与IMU之间固定延迟timeoffset的统一框架,然后将离散的数据在时间上连续化,最后基于最大似然估计得出矫正后的结果。并由此衍生的camera-imu的外参标定和时间同步方法。

1)基于basis-functions的时间偏移估计

使用一组基函数加权和来表示随时间变换的状态量,如D维度状态量可以表示为:

其中,每个是D维时间函数,是DxB的矩阵。为了估计,只需要估计D维向量C即可。

当从测量数据估计时间差时,令误差项如下:

其中,是时刻的测量值,是由状态量计算测量值的模型,d为待估计的时间差。将前面提到的状态变量代入上式可得:

通过优化误差结果可以得到最优时间差d的结果。为了求解上式的最小二乘问题,需要知道相应的jacobian矩阵,对于给定的初值,对应的变化量为,那么上式可以表示为:

其中:‍

这样做有两个好处,首先可以将时间差估计问题转换为最大似然估计问题来处理,其次将离散的量变为连续的,可以很容易得到timeoffsets的jacobian矩阵。所以,多传感器之间的估计问题就可以统一了,也就形成了统一的处理框架。

2)camera-imu的时空标定

这里来介绍一下camera-imu的实际应用。收集一到两分钟的数据,时间为,这里有三个坐标系,分别为:世界坐标系用于状态估计,imu系下进行加速度和角速度估计,以及图像坐标系。假设设备在标签前运动,那么有如下几个估计量:世界坐标系下的重力加速度,imu到camera的外参,以及camera与imu时间戳之间的时间偏差d。

这里IMU的位姿是一个6维向量函数,包含转向姿态和平移向量,是随时间变化的状态量。使用B-spline函数来表示状态量,如下:

其中,表示转向姿态参数,表示从参数化函数到旋转矩阵的映射。表示位移,速度和加速度在世界坐标系中的表示如下:

那么角速度可以表示成:

其中表示旋转向量到旋转角的映射。

将IMU数据与相机数据结合得到如下模型:

其中和分别是时刻的加速度和角速度的测量值,是世界坐标系下的m个观测点,其对应图像上的像素坐标为,是图像时间戳,是需要估计的时间偏差,并假设相互独立,表示相机投影模型。

上述模型中误差项考虑了图像相对IMU数据的时间延迟d,这个时间延迟可正可负,假设IMU零偏满足随机游走,那么模型如下:

并假设彼此独立,即(由于高斯分布是独立性和不相干性等价,所以可以使用不相关性条件来表示)。

那么对上述的几个变量构建估计模型,根据测量值和估计值之间建立误差项,那么IMU的bias模型给出积分误差项,如下:

最后,使用LM算法(Levenberg-Marquardt)进行最小化下式即可:

这里给出整体的标定流程图:

其整个位姿标定的效果图如下:

写在最后的话:其实关于相机与IMU,最难的还是如何进行时间的同步。这里通过姿态的校正来同步两个传感器:

1)通过视觉匹配完成回环检测与回环校正;

2)修正IMU的累计漂移误差。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OitkyL5eV0solnrR1IWzJIcA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券