我们使用 6 轴惯性测量单元 (IMU) 来传播惯性导航系统 (INS),它提供局部旋转速度 (角速率)和局部平移加速度的测量:
其中和分别是IMU局部坐标系{}中的真实旋转速度和平移加速度,和是陀螺仪和加速度计偏差,和是高斯白噪声,是在全局坐标系{}中表达的重力(注意,地球不同位置的重力略有不同),是从全局坐标系到IMU局部坐标系的旋转矩阵。
我们将时间的INS状态向量定义为:
其中是表示 IMU 坐标系全局旋转的单位四元数,是IMU在全局坐标系中的位置,是IMU在全局坐标系中的速度。为了便于表示,我们通常会将时间写为的下标,以描述 IMU 当时的状态(例如,)。为了定义 IMU 误差状态,对位置、速度和偏差采用标准的加性误差定义,而我们使用具有左四元数乘性误差的四元数误差状态:
其中是旋转轴,是旋转角度。对于小旋转,误差角度向量近似为三个方向轴的误差向量。因此,总IMU误差状态定义为以下15x1(不是16x1)向量:
其中,
我们将陀螺仪和加速度计的偏差建模为随机游走,因此它们的时间导数为白高斯分布。请注意,上述运动学是根据真实加速度和角速度定义的,它们可以根据传感器测量值和状态计算出来。
给定在时间间隔()内连续时间和 ,以及它们的估计值和,我们可以定义上述IMU运动学微分方程的解。
其中,,,是的矩阵指数,向量在它们的下标时间步骤(例如,)处进行评估。偏差受到随机游走噪声和的影响,它们是零均值的白高斯噪声。我们有以下的积分组成部分:
离散时间IMU状态误差传播(详细推导过程见附录):
其中,为右雅可比矩阵
离散IMU误差状态传播矩阵:
离散噪声传播矩阵:
协方差更新:
线性观测模型:
卡尔曼增益计算:
误差状态更新:
协方差矩阵更新:
卡方检验:
其中,为噪声放大系数。
在GPS数据到来时我们首先对其进行坐标系转换,将原始的WGS-84坐标系转换到ENU(东北天)坐标系当中。并且我们还对GPS数据进行处理使用两克隆帧之间的相对GPS位置变换作为观测:
这是因为我们在实验中,发现将GPS数据直接作为观测当轨迹发生漂移时,后续的GPS观测难以进行更新。
GPS误差状态定义:
观测模型:
其中,为在时间间隔内的GPS相对位置变换。
将(35)式对状态进行求导可计算出雅可比矩阵:
我们获取的轮速数据是由轮式编码器发出的原始数据,因此我们要对原始数据进行结算,并且找到两个克隆帧之间的数据进行积分,获得时间内的相对位置和旋转变换作为观测。
轮速状态定义:
其中, 分别表示左右轮的半径和基准连接点的长度,,表示IMU和轮速的外参。
车轮编码器测量模型:
地面车辆由两个差动轮驱动,安装在共同的轴上,每个轮子都配备有编码器,提供局部角速率读数:
其中,和分别表示每个轮子的真实角速度,和表示对应的白噪声。编码器读数组合起来可以提供车辆主体坐标系的2D线性和角速度,坐标系位于基准连接点的中心:
车轮里程计预积分:
在两个克隆时间点和之间对轮式里程计测量进行预积分。连续时间下的2D运动学模型在时间区间内给定为:
其中,是局部偏航角,和是在起始积分坐标系中的二维位置。请注意,使用和是因为遵循全局到局部的方向表示。
将从时间步到的所有轮式里程计测量局部组合,执行以下测量的积分(详细推导过程见附录):
其中,。请注意,假设和是恒定的,但考虑了和之间的航向角变化。
从积分到,并得到如下的2D相对姿态测量:
其中,表示从到所有轮式测量值的积分。
观测模型:
雅可比矩阵(详细推导过程见附录):
其中,
我们对前端已经成功匹配的特征点进行三角化,投影到全局坐标系{}中生成作为观测,我们将测量模型概括为一系列嵌套函数,以涵盖不同的特征参数化,如 3D 位置和逆深度等。假设一个视觉特征已经在随机克隆的滑动窗口上被追踪 ,我们可以将视觉承载测量值(即像素坐标)写成以下一系列嵌套函数:
观测模型:
:将归一化坐标映射到畸变的UV坐标的畸变函数
:将图像中的3D点投影到归一化UV坐标的投影函数
:将全局坐标系中的特征位置转换为当前相机坐标系
:将特征的表示形式转换为全局坐标系中的三维特征
其中,是原始UV像素坐标;是原始像素噪声,通常假设为零均值白色高斯;是归一化的未失真UV测量值;是当前相机帧中的地标位置;是特征的表示;并且{}表示全局坐标系中的当前相机姿势(位置和方向)。
雅可比矩阵:
考虑到上述的嵌套函数,我们可以利用链式法则来找到总状态雅可比矩阵。由于我们的特征表示函数可能还依赖于状态,即一个锚定姿势,我们需要仔细考虑它的额外导数。请考虑以下关于状态雅可比矩阵的测量示例:
在全局特征表示中,参见点特征表示部分,第二项将为零,而对于锚定表示,需要进行计算。
其中,
此外,如果进行在线外部标定,还需要相对于IMU-相机外部参数的雅可比矩阵:
点特征表示:
3D点特征有两种主要的参数化方式:3D位置(xyz)和具有方向的逆深度。这两种方式都可以在全局坐标系中表示,也可以在参考锚定坐标系中表示,这样就需要依赖于观测到特征的“锚定”姿势。为了在我们的代码库中统一处理不同的特征参数化,我们详细推导了通用函数(详细推导过程见附录),将不同的表示形式映射到全局位置。
全局XYZ
作为标准参数化,3D点特征的全局位置简单地由其在全局参考坐标系中的xyz坐标给出:
其中,
很明显,相对于特征参数的雅可比矩阵是:
全局逆深度
3D点特征的全局逆深度表示形式类似于球坐标系,具体表达为:
其中:
相对于特征参数的雅可比矩阵可以计算为:
锚定XYZ
我们可以将3D点特征表示为某个“锚定”框架中(比如某个IMU本地框架,),通常这个框架对应于检测到该特征的第一个相机帧对应的IMU姿势。
其中,
相对于特征状态的雅可比矩阵为:
由于锚定姿态涉及到这种表示,其雅可比矩阵被计算为:
此外,如果进行外部标定,还需要计算相对于IMU-相机外参数的以下雅可比矩阵:
锚定逆深度
类似于全局逆深度情况,我们可以在锚定框架中,,使用具有方位角的逆深度(类似于球面坐标),来表示一个3D点特征:
其中:
对于特征状态的雅可比矩阵为:
相对于锚定姿态的雅可比矩阵为:
相对于IMU-相机外部参数的雅可比矩阵为: