POINT-LIO论文阅读

Catalogue
  1. 1. Point-LIO: Robust High-Bandwidth Light Detection and Ranging Inertial Odometry
  2. 2. 摘要
  3. 3. 介绍
    1. 3.1. 现有畸变矫正方法以及局限性
  4. 4. 系统概览
  5. 5. 状态估计
    1. 5.1. 符号约定
    2. 5.2. 动态模型
      1. 5.2.1. 状态转移模型
      2. 5.2.2. 测量模型
    3. 5.3. 扩展卡尔曼滤波器
      1. 5.3.1. 状态传播
      2. 5.3.2. 残差计算
      3. 5.3.3. 状态更新

Point-LIO: Robust High-Bandwidth Light Detection and Ranging Inertial Odometry

Clipboard 2023年6月14日 22.15

摘要

一种鲁棒、高带宽的光探测和测距(LiDAR)惯性里程计,具有估计极激进的机器人运动的能力。Point-LIO有两个关键的新颖之处,第一个是逐点LIO框架,更新与每个LiDAR点测量对应的状态,该框架允许极高频率的里程表输出,显著增加了里程表带宽,并从根本上消除了人为的帧内运动畸变;第二个是随机过程增强的运动学模型,将IMU测量作为输出建模。这种新的建模方法即使在惯性测量单元(IMU)测量在运动中间饱和的情况下,也能对猛烈运动进行准确的定位和可靠的建图。

各种现实世界的实验进行了性能评估。总体而言,Point-LIO能够在超出IMU测量范围的剧烈振动和高角速度(75 rad/s)的剧烈运动下提供准确的高频里程计(4-8 kHz)和可靠的测绘。此外,还进行了详尽的基准比较。Point-LIO始终如一地达到相当的精度和时间消耗。最后,给出了Point-LIO的两种应用实例,一种是竞速无人机,另一种是自旋无人机,两者都具有激进的运动。

介绍

现有畸变矫正方法以及局限性

系统概览

我们的设计理念是真实地认识到:1)LiDAR点是在各自时间按顺序采样的,而不是同时采样的帧;2)IMU数据是系统的测量数据,而不是系统的输入。一旦接收到各自的测量值(每个LiDAR点或IMU数据),我们将这两个测量值融合在一个流形EKF框架[55]中。

我们设计的系统的概述如图1所示;顺序采样的LiDAR点和IMU数据都用于在各自的时间戳更新状态,从而导致极高速率的里程计输出,即在实践中为4-8 kHz。特别是,对于接收到的每个LiDAR点,从地图中搜索相应的平面。

Clipboard 2023年6月14日 22.29

如果点与地图中的平面匹配,将计算残差使用流形卡尔曼滤波器来更新系统状态。优化后的姿态最终将LiDAR点注册到全局坐标系中,并合并到地图上,然后进行下一个测量(LiDAR点或IMU数据)。否则,如果点没有匹配的平面,则通过卡尔曼滤波器预测的姿态直接添加到地图中。为了在允许新配准点的同时实现快速平面对应搜索,我们使用了最初在fast - lio2中开发的增量k-d树结构ikd-Tree。[29]对于每次IMU测量,IMU的每个通道的饱和度检查是单独进行的,具有饱和值的通道不会被用于状态更新。

状态估计

Point-LIO的状态估计是一个紧耦合的流形卡尔曼滤波器。在这里,我们简要地解释滤波器的基本公式和工作流程,并参考[55]对流形上卡尔曼滤波器进行更详细的理论解释。

符号约定

为了便于解释,我们采用如下符号

Clipboard 2023年6月15日 00.27

动态模型

状态转移模型

以IMU框架(记为I)为机体系,第一帧IMU坐标系为全局坐标系(记为G),连续运动模型为:

Clipboard 2023年6月15日 00.39

其中,

  • \({ }^G \mathbf{R}_I,{ }^G \mathbf{p}_I\), and \({ }^G \mathbf{v}_I\)分别表示imu的姿态、位置和速度在全局坐标系的表示
  • \({ }^G \mathbf{g}\)表示重力向量在全局坐标系的表示(第一帧IMU坐标系)
  • \(b_g\) and \(b_a\)建模为受高斯噪声\(\mathbf{n}_{\mathrm{b}_{\mathrm{g}}} \approx \mathcal{N}\left(\mathbf{0}, \mathcal{Q}_{\mathrm{b}_{\mathrm{g}}}\right)\) and \(\mathbf{n}_{\mathrm{b}_{\mathrm{a}}} \approx \mathcal{N}\left(\mathbf{0}, \mathcal{Q}_{\mathrm{b}_{\mathrm{a}}}\right)\)影响的imu bias,具有随机游走的性质
  • \(\lfloor\mathbf{a}\rfloor\)记号表示关于向量\(a \in \mathbb{R}^3\)的反对称矩阵
  • \({ }^I \boldsymbol{\omega}\) and \({ }^I \mathbf{a}\)分别表示imu在body系的测量值。

如文献[14]所提出的,机器人的某个运动(角速度\({ }^I \boldsymbol{\omega}\)和线加速度\({ }^I \mathbf{a}\))总是可以被视为信号集合或集合的一个样本,这使我们能够通过随机过程统计地描述机器人的运动。

此外,如文献[14]所述,由于机器人系统的运动通常具有一定的平滑性(例如,由于执行器的延迟),角速度和加速度的快速变化相对不太可能,并且n阶积分器随机过程通常足以满足实际使用。

特别地,我们选择了由高斯噪声\(\mathbf{w}_{\mathrm{g}} \approx \mathcal{N}\left(\mathbf{0}, \mathcal{Q}_{\mathrm{g}}\right)\)\(\mathbf{w}_{\mathrm{a}} \approx \mathcal{N}\left(\mathbf{0}, \mathcal{Q}_{\mathrm{a}}\right)\)驱动的一阶积分器模型来分别模拟角速度\({ }^I \boldsymbol{\omega}\)和线性加速度\({ }^I \mathbf{a}\)

然后将连续时间模型(2)在每个测量步骤k处离散化。表示\(\Delta t_k\)为当前测量间隔,即之前测量(IMU数据或LiDAR点)与当前测量(IMU数据或LiDAR点)之间的时间差。对连续模型(2)进行离散化,假设输入在区间\(\Delta t_k\)内保持恒定(加速度、角速度),得到:

Clipboard 2023年6月15日 00.59

其中,流形\(\mathcal{M}\),函数\(\mathbf{f}\),状态\(\mathbf{x}\)以及过程噪声\(\mathbf{w}\)定义为:

Clipboard 2023年6月15日 01.01

其中,\(\mathcal{Q}=\operatorname{diag}\left(\mathcal{Q}_{\mathrm{b}_{\mathrm{g}}}, \mathcal{Q}_{\mathrm{b}_{\mathrm{a}}}, \mathcal{Q}_{\mathrm{g}}, \mathcal{Q}_{\mathrm{a}}\right)\)是过程噪声\(\mathbf{w}\)的协方差矩阵。

测量模型

该系统有两个测量,一个激光雷达点或IMU数据(由角速度和加速度组成)。这两个测量通常是系统在不同时间采样和接收的,因此我们分别对它们进行建模。

假设 LiDAR 系与Body(即 IMU)系重合,或者具有预先标定的外参,一个雷达点\({ }^I \mathbf{p}_{\mathrm{m}_k}\)等于局部IMU坐标系的真实位置\({ }^I \mathbf{p}_k^{\mathrm{gt}}\),但是,实际上我们并不知道对应局部IMU坐标系的点的真实位置,我们假设该值受高斯噪声\(\mathbf{n}_{\mathrm{L}_k} \approx \mathcal{N}\left(\mathbf{0}, \mathscr{R}_{\mathrm{L}_k}\right)\)的影响,因此有:

这个真正的点,在使用真实(但未知)IMU位姿\({ }^G \mathbf{T}_{I_k}=\left({ }^G \mathbf{R}_{I_k},{ }^G \mathbf{p}_{I_k}\right)\)投影到全局坐标系后,应该恰好位于地图中的局部小平面补丁上(见图2),即有:

其中,

  • \({ }^G \mathbf{u}_k\)是关联平面的法向量
  • \({ }^G \mathbf{q}_k\)是平面上任意点
  • 注意,\({ }^G \mathbf{T}_{I_k}\)被包含在状态向量\(\mathbf{X}_k\)中,式(6)对状态向量\(\mathbf{X}_k\)施加隐式测量模型

IMU测量由角速度测量(\({ }^I \mathbf{\omega}_{\mathrm{m}}\))和加速度测量(\({ }^I \mathbf{a}_{\mathrm{m}}\))组成:

其中,

  • \(\mathbf{n}_{\mathrm{g}} \approx \mathcal{N}\left(\mathbf{0}, \mathscr{R}_{\mathrm{g}}\right) \quad\)\(\quad \mathbf{n}_{\mathrm{a}} \approx \mathcal{N}\left(\mathbf{0}, \mathscr{R}_{\mathrm{a}}\right)\)是高斯噪声
  • 那么,记\(\mathbf{n}_I=\left[\begin{array}{ll}\mathbf{n}_{\mathrm{g}}^T & \mathbf{n}_{\mathrm{a}}^T\end{array}\right]^T \approx \mathcal{N}\left(\mathbf{0}, \mathscr{R}_I\right) = \mathcal{N}\left(\mathbf{0}, \operatorname{diag}\left(\mathscr{R}_{\mathrm{g}}, \mathscr{R}_{\mathrm{a}}\right)\right)\)表示为IMU的测量噪声

因此,状态方程 (2) 中分开的两个状态 \(\omega\)\(b_g\)(类似地 \(a\)\(b_a\))现在在角速度测量\(\boldsymbol{\omega}_{\mathrm{m}}\)(或加速度测量 \(\mathbf{a}\))中相关,综上所述,系统的测量模型可以用以下紧凑形式呈现:

扩展卡尔曼滤波器

紧密耦合EKF用于Point-LIO的状态估计。本节将介绍EKF的工作流程

状态传播

假设我们已经收到了最多步骤 k 的测量,并且该时间步的更新状态是\(\overline{\mathbf{X}}_k\)以及更新的协方差矩阵 \(\overline{\mathbf{P}}_k\)。通过设置\(\mathbf{w}_k=\mathbf{0}\),根据公式(3)中的状态转换模型,可以得到从时间步k到下一次观测时间步k+1的状态传播,即:

协方差传播如下:

其中\(\mathcal{Q}_k\)为过程噪声\(\mathbf{W}_k\)的协方差,矩阵\(\mathbf{F}_{\mathbf{x}_k}, \mathbf{F}_{\mathbf{w}_k}\)计算如下:

其中,

  • \(\mathbf{x}_{k+1}\)是时间步k+1的真实状态向量
  • \(\mathbf{F}_{11}=\operatorname{Exp}\left(-{ }^I \overline{\boldsymbol{\omega}}_k \Delta t_k\right)\)
  • \(\mathbf{F}_{38}={}^G \overline{\mathbf{R}}_{I_k} \Delta t_k\)

残差计算

激光测量

利用卡尔曼滤波(9)预测的位姿\({ }^G \hat{\mathbf{T}}_{I_{k+1}}=\left({ }^G \hat{\mathbf{R}}_{I_{k+1}},{ }^G \hat{\mathbf{p}}_{I_{k+1}}\right)\),我们将测量的LiDAR点\({ }^I \mathbf{p}_{\mathrm{m}_{k+1}}\)投影到全局坐标系,得到\({ }^G \hat{\mathbf{p}}_{k+1}={ }^G \hat{\mathbf{R}}_{I_{k+1}}{ }^I \mathbf{p}_{\mathrm{m}_{k+1}}+{ }^G \hat{\mathbf{p}}_{I_{k+1}}\),并在由ikd-tree构造的地图结构中搜索其最近的5个点(距离\({ }^G \hat{\mathbf{p}}_{k+1}\) 5米以内)

然后使用找到的最近邻点拟合具有法向量\({ }^G \mathbf{u}_{k+1}\)和质心\({ }^G \mathbf{q}_{k+1}\)的局部小平面块,如测量模型所示(参见公式(6)和图 2)。

如果最近的五个点不位于拟合平面路径上(即任何点到平面的距离大于0.1 m),则当前LiDAR点\({ }^G \hat{\mathbf{p}}_{k+1}\)的测量直接合并到地图中,而不需要残差计算或状态更新。 【????】

否则,如果局部平面成功拟合,则根据式(8)计算残差\(\left(\mathbf{r}_{\mathrm{L}_{k+1}}\right)\)如下:

其中,

  • \(\delta \mathbf{x}_{k+1}=\mathbf{x}_{k+1} \boxminus \hat{\mathbf{x}}_{k+1}\)
  • \(\mathbf{x}_{k+1}\)是时间步K+1的真值状态向量

并且,

IMU测量

对于IMU测量,我们首先通过检查当前测量与额定测量范围之间的差距来评估IMU的任何通道是否饱和,如果差值太小,则IMU测量通道的测量值被丢弃而不用于更新状态。然后,收集不饱和IMU通道的加速度和角速度测量,根据式(7)计算IMU残差\(\left(\mathbf{r}_{I_{k+1}}\right)\),为了简化符号,我们在这里使用所有6个通道测量):

其中,

  • \(\delta \mathbf{x}_{k+1}=\mathbf{x}_{k+1} \boxminus \hat{\mathbf{x}}_{k+1}\)
  • \(\mathbf{x}_{k+1}\)是时间步K+1的真值状态向量

并且,

综上所述,从激光雷达点测量(12)或IMU测量(14)的残差与状态\(\mathbf{x}_{k+1}\)相关,通过以下关系,各自的测量噪声为:

其中,

对于激光点测量,我们有:

  • \(\mathbf{r}_{k+1}=\mathbf{r}_{L_{k+1}}\)
  • \(\mathbf{H}_{k+1}=\mathbf{H}_{\mathrm{L}_{k+1}}\)
  • \(\mathbf{D}_{k+1}=\mathbf{D}_{\mathrm{L}_{k+1}}\)
  • \(\mathscr{R}_{k+1}=\mathscr{R}_{L_{k+1}}\)

对于IMU测量,我们有:

  • \(\mathbf{r}_{k+1}=\mathbf{r}_{I_{k+1}}\)
  • \(\mathbf{H}_{k+1}=\mathbf{H}_{\mathrm{I}_{k+1}}\)
  • \(\mathbf{D}_{k+1}=\mathbf{D}_{\mathrm{I}_{k+1}}\)
  • \(\mathscr{R}_{k+1}=\mathscr{R}_{I_{k+1}}\)

状态更新

式(9) 中的传播状态\(\hat{\mathbf{x}}_{k+1}\) 和 (10) 中的协方差\(\hat{\mathbf{P}}_{k+1}\) 对未知状态\(\mathbf{x}_{k+1}\) 施加先验高斯分布,如下所示:

这里的意思是:误差状态向量服从高斯分布

另外的,观测模型(16)给出了\(\mathbf{x}_{k+1}\)的另一个高斯分布形式:

然后将(17)中的先验分布与来自(18)的测量模型相结合,得到状态\(\mathbf{x}_{k+1}\)的后验分布(等价地用\(\delta \mathbf{x}_{k+1}\)表示):

其中,

  • \(\|\mathbf{x}\|_{\mathbf{A}}^2=\mathbf{x}^T \mathbf{A}^{-1} \mathbf{x}\)

式(19)的优化问题是一个标准的二次规划,可以很容易地得到最优解\(\delta \mathbf{x}_{k+1}^0\),这本质上是卡尔曼更新[56]:

然后,更新状态\(\mathbf{x}_{k+1}\)如下:

更新后的状态将用于下一步传播,为此,我们还需要估计状态的协方差(上面的是误差状态的协方差),用\(\overline{\mathbf{P}}_{k+1}\)表示,最优状态与状态真值之间的误差表示如下: