1205论文会
在公式e⊤AI0xe⊤b中,AI0x这一项实际上应该拆解为A乘以I0x。这来自于物理学中最基础的运动学公式(位移 = 速度×时间 +21加速度×时间平方)。
这个公式 e⊤AI0x=e⊤be^{\top} A ^{I_0}x = e^{\top} be⊤AI0x=e⊤b 是这篇论文中无特征初始化 (Feature-less Initialization) 的核心灵魂。
它的作用是:在不知道运动尺度(即不知道走了几米)且不计算 3D 特征点的情况下,通过“对齐”视觉方向和 IMU 物理规律,强行解算出初始速度和重力。
以下是该公式的详细拆解:
1. 公式的来源:视觉与 IMU 的“罗生门”
为了理解这个公式,我们需要看它是由哪个等式变形而来的。
机器人的运动可以被两种传感器分别描述:
- 视觉 (Camera) 说:“我看到我向 ttt 方向移动了,但我不知道移动了多远(尺度 sss 未知)。”
- 数学表达:位移 =s⋅t= s \cdot t=s⋅t
- 惯性 (IMU) 说:“根据我的加速度计和物理公式,我的位移应该是初速度、重力和测量值的累积。”
- 数学表达:位移 =vΔT+12gΔT2+IMU预积分= v\Delta T + \frac{1}{2}g\Delta T^2 + \text{IMU预积分}=vΔT+21gΔT2+IMU预积分
[cite_start]将两者画等号,就得到了基础方程(论文公式 59 [cite: 491]):
s⋅t=AI0x⏟待求的物理项−b⏟已知的测量项s \cdot t = \underbrace{A ^{I_0}x}_{\text{待求的物理项}} - \underbrace{b}_{\text{已知的测量项}}s⋅t=待求的物理项
AI0x−已知的测量项
b
(注:为了方便理解,这里对符号进行了逻辑简化,原论文中 bbb 包含预积分项)
2. 变量详细拆解
这个公式 e⊤AI0x=e⊤be^{\top} A ^{I_0}x = e^{\top} be⊤AI0x=e⊤b 里的每一个字母都有明确的物理含义:
A. xxx (或者 I0x^{I_0}xI0x):我们要找的答案
[cite_start]这是初始时刻的状态向量,包含两个 3 维向量 [cite: 441]:
I0x=[I0vI0I0g]^{I_0}x = \begin{bmatrix} ^{I_0}v_{I_0} \\ ^{I_0}g \end{bmatrix}I0x=[I0vI0I0g]
- I0vI0^{I_0}v_{I_0}I0vI0:初始速度。
- I0g^{I_0}gI0g:重力加速度向量(用于后续对齐水平面)。
B. AAA:时间系数矩阵
[cite_start]这个矩阵描述了时间是如何把速度和重力转化成位移的。根据论文公式 (59),它由两个时间戳 ΔT1\Delta T_1ΔT1 和 ΔT2\Delta T_2ΔT2 决定 [cite: 491]:
A=[(ΔT2−ΔT1)I12(ΔT22−ΔT12)I]A = \begin{bmatrix} (\Delta T_2 - \Delta T_1)I & \frac{1}{2}(\Delta T_2^2 - \Delta T_1^2)I \end{bmatrix}A=[(ΔT2−ΔT1)I21(ΔT22−ΔT12)I]
- 第一项对应 v⋅tv \cdot tv⋅t(速度对位移的贡献)。
- 第二项对应 12at2\frac{1}{2} a t^221at2(重力对位移的贡献)。
C. bbb:传感器观测到的“已知量”
[cite_start]这是由 IMU 预积分(Pre-integration)和相机外参计算出来的部分。它代表了**“如果不考虑初速度和重力,光靠 IMU 读数推算出的位移”** [cite: 491]。
D. e⊤e^{\top}e⊤:消去尺度的“魔法棒”
这是该公式最巧妙的地方。
- ttt 是视觉计算出的位移方向。
- sss 是未知的尺度(我们不知道走了 1 米还是 10 米)。
- [cite_start]eee 是与 ttt 垂直的向量(即零空间向量,满足 e⊤t=0e^{\top}t = 0e⊤t=0)[cite: 499]。
3. 数学推导逻辑
为什么最后变成了 e⊤AI0x=e⊤be^{\top} A ^{I_0}x = e^{\top} be⊤AI0x=e⊤b?推导过程如下:
-
原始方程:我们将视觉观测(左边)和 IMU 物理推导(右边)建立联系:
视觉位移(st)≈IMU物理位移(b−AI0x)\text{视觉位移}(st) \approx \text{IMU物理位移}(b - A ^{I_0}x)视觉位移(st)≈IMU物理位移(b−AI0x)
(注:这里调整了 AAA 和 bbb 的正负号以符合通用的线性系统 Ax=bAx=bAx=b 形式,论文中具体重排见公式 61) -
遇到困难:方程左边的 sss(尺度)是未知的。如果有这个未知数,方程就解不出来速度 xxx。
-
投影消元:我们在等式两边同时左乘 e⊤e^{\top}e⊤。
e⊤(st)=e⊤(b−AI0x)e^{\top} (st) = e^{\top} (b - A ^{I_0}x)e⊤(st)=e⊤(b−AI0x) -
奇迹发生:因为 eee 和 ttt 垂直,所以 e⊤t=0e^{\top} t = 0e⊤t=0,导致左边整项变成 0:
0=e⊤b−e⊤AI0x0 = e^{\top}b - e^{\top} A ^{I_0}x0=e⊤b−e⊤AI0x -
[cite_start]最终形式:移项后得到论文公式 (62) [cite: 498]:
e⊤AI0x=e⊤be^{\top} A ^{I_0}x = e^{\top} be⊤AI0x=e⊤b
4. 总结:这个公式解决了什么问题?
通过构建这个线性系统,论文实现了以下突破:
- [cite_start]不需要解算 3D 特征点:方程里完全没有特征点的位置信息,只用了相机的位移方向 ttt [cite: 503]。
- [cite_start]无视尺度模糊:通过 e⊤e^{\top}e⊤ 投影,直接绕过了单目相机无法观测尺度的缺陷 [cite: 498]。
- [cite_start]极速求解:这是一个常数大小的线性方程组(通常 6×66 \times 66×6),计算非常快,使得系统能在 100ms 窗口内完成初始化 [cite: 505]。
更多推荐


所有评论(0)