状态估计、定位和地图构建是实现智能移动机器人成功运行的基本先决条件,对于反馈控制、避障和规划等许多功能都是必需的
主要贡献
激光雷达里程计通常通过使用 ICP 和 GICP 等扫描匹配方法查找两个连续帧之间的相对变换来执行
A. 系统概述
将世界坐标系表示为
W
\mathbf{W}
W,将机器人本体坐标系表示为
B
\mathbf{B}
B。为了方便起见,z假设IMU坐标系与机器人本体坐标系重合。机器人状态
x
\mathbf{x}
x 可以写为
x
=
[
R
T
,
p
T
,
v
T
,
b
T
]
T
,
(1)
\mathbf{x}=[\mathbf{R}^{\mathbf{T}},\mathbf{p}^{\mathbf{T}},\mathbf{v}^{\mathbf{T}},\mathbf{b}^{\mathbf{T}}]^{\mathbf{T}},\tag{1}
x=[RT,pT,vT,bT]T,(1)
其中
R
∈
S
O
(
3
)
\mathbf{R}\in SO(3)
R∈SO(3) 是旋转矩阵,
p
∈
R
3
\mathbf{p}\in \mathbb{R}^3
p∈R3 是位置向量,
v
\mathbf{v}
v 是速度,
b
\mathbf{b}
b 是 IMU 偏差。从
B
\textbf{B}
B 到
W
\textbf{W}
W 的变换
T
∈
S
E
(
3
)
\textbf{T} ∈ SE(3)
T∈SE(3) 表示为
T
=
[
R
∣
p
]
\textbf{T} = [\textbf{R} | \textbf{p}]
T=[R∣p]
Fig. 1 LIO-SAM的系统结构。该系统接收来自 3D 激光雷达、IMU 和可选 GPS 的输入。引入四种类型的因子来构建因子图:(a) IMU 预积分因子、(b) 激光雷达里程计因子、? GPS 因子和 (d) 环路闭合因子
引入了四种类型的因子以及一种变量类型来构建因子图。该变量代表机器人在特定时间的状态,归因于图的节点
(a) IMU 预积分因子、(b) 激光雷达里程计因子、? GPS 因子和 (d) 环路闭合因子
B. IMU 预积分因子
IMU 的角速度和加速度测量值使用如下定义
ω
^
t
=
ω
t
+
b
t
ω
+
n
t
ω
(2)
\hat\omega_t=\mathbf{\omega}_t+\textbf{b}_t^\omega+\textbf{n}_t^{\omega}\tag{2}
ω^t?=ωt?+btω?+ntω?(2)
a ^ t = R t BW ( a t ? g ) + b t a + n t a (3) \hat{\mathbf{a}}_t=\textbf{R}_t^{\textbf{BW}}(\mathbf{a}_t-\mathbf{g})+\mathbf{b}_t^{\mathrm{a}}+\mathbf{n}_t^{\mathrm{a}} \tag{3} a^t?=RtBW?(at??g)+bta?+nta?(3)
其中 ω ^ t \hat\omega_t ω^t? 和 a ^ t \hat{\mathbf{a}}_t a^t? 是时间 t t t 时 B \mathbf{B} B 中的原始 IMU 测量值。 ω ^ t \hat\omega_t ω^t? 和 a ^ t \hat{\mathbf{a}}_t a^t? 受到缓慢变化的偏差 b t \textbf{b}_t bt? 和白噪声 n t \textbf{n}_t nt? 的影响。 R t BW \textbf{R}_t^{\textbf{BW}} RtBW? 是从 W \textbf{W} W 到 B \textbf{B} B 的旋转矩阵。 g \mathbf{g} g 是 W \mathbf{W} W 中的恒定重力矢量
使用 IMU 的测量值来推断机器人的运动。机器人在时间
t
+
Δ
t
t + \Delta t
t+Δt 时的速度、位置和旋转可以计算如下
v
t
+
Δ
t
=
v
t
+
g
Δ
t
+
R
t
(
a
^
t
?
b
t
a
?
n
t
a
)
Δ
t
(4)
\mathbf{v}_{t+\Delta t}=\mathbf{v}_t+\mathbf{g}\Delta t+\mathbf{R}_t(\hat{\mathbf{a}}_t-\mathbf{b}^{\mathbf{a}}_t-\mathbf{n}^{\mathbf{a}}_t)\Delta t\tag{4}
vt+Δt?=vt?+gΔt+Rt?(a^t??bta??nta?)Δt(4)
p t + Δ t = p t + v t Δ t + 1 2 g Δ t 2 + 1 2 R t ( a ^ t ? b t a ? n t a ) Δ t 2 (5) \mathbf{p}_{t+\Delta t}=\mathbf{p}_t+\mathbf{v}_t\Delta t+\frac{1}{2}\mathbf{g}\Delta t^2 +\frac{1}{2}\mathbf{R}_t(\hat{\mathbf{a}}_t-\mathbf{b}^{\mathbf{a}}_t-\mathbf{n}^{\mathbf{a}}_t)\Delta t^2\tag{5} pt+Δt?=pt?+vt?Δt+21?gΔt2+21?Rt?(a^t??bta??nta?)Δt2(5)
R t + Δ t = R t exp ? ( ( ω ^ t ? b t ω ? n t ω ) Δ t ) (6) \mathbf{R}_{t+\Delta t}=\mathbf{R}_t\exp((\hat\omega_t-\textbf{b}_t^\omega-\textbf{n}_t^{\omega})\Delta t)\tag{6} Rt+Δt?=Rt?exp((ω^t??btω??ntω?)Δt)(6)
其中 R t = R t W B = R t B W ? \mathbf{R}_t = \mathbf{R}_t^{WB} = \mathbf{R}_t^{BW^\top} Rt?=RtWB?=RtBW??。这里假设 B 的角速度和加速度在上述积分过程中保持恒定
应用IMU预积分方法来获得两个时间步之间的相对身体运动。时间
i
i
i 和
j
j
j 之间的预积分测量值
Δ
v
i
j
\Delta\mathbf{v}_{ij}
Δvij?、
Δ
p
i
j
\Delta\mathbf{p}_{ij}
Δpij? 和
Δ
R
i
j
\Delta\mathbf{R}_{ij}
ΔRij? 可以使用以下公式计算
Δ
v
i
j
=
R
i
?
(
v
j
?
v
i
?
g
Δ
t
i
j
)
Δ
p
i
j
=
R
i
?
(
p
j
?
p
i
?
v
i
Δ
t
i
j
?
1
2
g
Δ
t
i
j
2
)
Δ
R
i
j
=
R
i
?
R
j
\begin{align} \Delta\mathbf{v}_{ij}&=\mathbf{R}_i^{\top}(\mathbf{v}_j-\mathbf{v}_i-\mathbf{g}\Delta t_{ij}) \tag{7}\\ \Delta\mathbf{p}_{ij}&=\mathbf{R}_i^{\top}(\mathbf{p}_j-\mathbf{p}_i-\mathbf{v}_i\Delta t_{ij}-\frac{1}{2}\mathbf{g}\Delta t^2_{ij})\tag{8}\\ \Delta\mathbf{R}_{ij}&=\mathbf{R}_i^{\top}\mathbf{R}_j\tag{9} \end{align}
Δvij?Δpij?ΔRij??=Ri??(vj??vi??gΔtij?)=Ri??(pj??pi??vi?Δtij??21?gΔtij2?)=Ri??Rj??(7)(8)(9)?
C. 激光雷达里程计系数
当新的激光雷达扫描到达时,我们首先执行特征提取。通过评估局部区域上点的粗糙度来提取边缘和平面特征。具有较大粗糙度值的点被归类为边缘特征
将在时间 i i i 的激光雷达扫描中提取的边缘和平面特征分别表示为 F i e \textbf{F}^e_i Fie? 和 F i p \textbf{F}^p_i Fip?。在第 i 时刻提取的所有特征组成一个激光雷达帧 F i \textbf{F}_i Fi?,其中 F i = { F i e , F i p } \mathbb{F}_i = \{\textbf{F}^e_i , \textbf{F}^p_i\} Fi?={Fie?,Fip?} ,激光雷达框架 F \mathbb{F} F 在 B \mathbf{B} B 中表示
采用关键帧选择的概念
通过这种方式添加关键帧不仅可以实现地图密度和内存消耗之间的平衡,而且有助于保持相对稀疏的因子图,适合实时非线性优化。在本文工作中,添加新关键帧的位置和旋转变化阈值选择为 1m 和 10°
假设向因子图中添加一个新的状态节点 x i + 1 \textbf{x}_{i+1} xi+1?。与此状态关联的激光雷达关键帧是 F i + 1 \mathbb{F}_{i+1} Fi+1?。激光雷达里程计因子的生成描述如下步骤
体素地图的子关键帧:取
n
n
n 个最近的关键帧,我们称之为子关键帧,用于估计。子关键帧集合
{
F
i
?
n
,
.
.
.
,
F
i
}
\{\mathbb{F}_{i?n}, ..., \mathbb{F}_i\}
{Fi?n?,...,Fi?} 然后使用与它们相关联的变换
{
T
i
?
n
,
.
.
.
,
T
i
}
\{\mathbf{T}_{i?n}, ..., \mathbf{T}_i\}
{Ti?n?,...,Ti?} 转换为帧
W
\mathbf{W}
W。转换后的子关键帧被合并成一个体素地图
M
i
\mathbf{M}_i
Mi?。由于在先前的特征提取步骤中提取了两种类型的特征,
M
i
\mathbf{M}_i
Mi?由两个子体素地图组成,分别表示为
M
i
e
\mathbf{M}^e_i
Mie?,边缘特征体素地图,和
M
i
p
\mathbf{M}^p_i
Mip?,平面特征体素地图。激光雷达帧和体素图彼此相关,如下所示
M
i
=
{
M
i
e
,
M
i
p
}
w
h
e
r
e
:
?
M
i
e
=
?
′
F
i
e
∪
?
′
F
i
?
1
e
∪
.
.
.
∪
?
′
F
i
?
n
e
M
i
p
=
?
′
F
i
p
∪
?
′
F
i
?
1
p
∪
.
.
.
∪
?
′
F
i
?
n
p
\mathbf{M_i}=\{\mathbf{M}^e_i,\mathbf{M}^p_i\}\\ where:\ \mathbf{M}^e_i=\ '\mathbf{F}^e_i∪\ '\mathbf{F}^e_{i?1} ∪ ... ∪\ '\mathbf{F}^e_{i?n}\\ \mathbf{M}^p_i=\ '\mathbf{F}^p_i∪\ '\mathbf{F}^p_{i?1} ∪ ... ∪\ '\mathbf{F}^p_{i?n}
Mi?={Mie?,Mip?}where:?Mie?=?′Fie?∪?′Fi?1e?∪...∪?′Fi?ne?Mip?=?′Fip?∪?′Fi?1p?∪...∪?′Fi?np?
′ F i e '\mathbf{F}^e_i ′Fie? 和 ′ F i p '\mathbf{F}^p_i ′Fip? 是W 中变换后的边缘和平面特征。然后对 M i e \mathbf{M}^e_i Mie? 和 M i p \mathbf{M}^p_i Mip? 进行下采样以消除落在同一体素单元中的重复特征
扫描匹配:通过扫描匹配将新获得的激光雷达帧 F i + 1 \mathbb{F}_{i+1} Fi+1?(也是 { F i + 1 e , F i + 1 p } \{\mathbf{F}^e_{i+1},\mathbf{F}^p_{i+1}\} {Fi+1e?,Fi+1p?})与 M i \mathbf{M}_i Mi? 进行匹配
相对变换:特征与其边缘或平面块对应关系之间的距离可以使用以下方程计算
d
e
k
=
∣
(
p
i
+
1
,
k
e
?
p
i
,
u
e
)
×
(
p
i
+
1
,
k
e
?
p
i
,
v
e
)
∣
∣
p
i
,
u
e
?
p
i
,
v
e
∣
(10)
\mathbf{d}_{e_k}=\frac{\left| (\mathbf{p}^e_{i+1,k}-\mathbf{p}^e_{i,u})\times(\mathbf{p}^e_{i+1,k}-\mathbf{p}^e_{i,v}) \right|}{\left|\mathbf{p}^e_{i,u}-\mathbf{p}^e_{i,v}\right|}\tag{10}
dek??=
?pi,ue??pi,ve?
?
?(pi+1,ke??pi,ue?)×(pi+1,ke??pi,ve?)
??(10)
d p k = ∣ ( p i + 1 , k p ? p i , u p ) ( p i , u p ? p i , v p ) × ( p i , u p ? p i , w p ) ∣ ∣ ( p i , u p ? p i , v p ) × ( p i , u p ? p i , w p ) ∣ (11) \mathbf{d}_{p_k}=\frac{\begin{vmatrix} (\mathbf{p}^p_{i+1,k}-\mathbf{p}^p_{i,u})\\ (\mathbf{p}^p_{i,u}-\mathbf{p}^p_{i,v})\times(\mathbf{p}^p_{i,u}-\mathbf{p}^p_{i,w}) \end{vmatrix} } {\left| (\mathbf{p}^p_{i,u}-\mathbf{p}^p_{i,v})\times(\mathbf{p}^p_{i,u}-\mathbf{p}^p_{i,w}) \right|}\tag{11} dpk??= ?(pi,up??pi,vp?)×(pi,up??pi,wp?) ? ?(pi+1,kp??pi,up?)(pi,up??pi,vp?)×(pi,up??pi,wp?)? ??(11)
其中 k k k、 u u u、 v v v 和 w w w 是其对应集合中的特征索引。对于 ′ F i + 1 e '\mathbf{F}^e_{i+1} ′Fi+1e? 中的边缘特征 p i + 1 , k e \mathbf{p}^e_{i+1,k} pi+1,ke?, p i , u e \mathbf{p}^e_{i,u} pi,ue? 和 p i , v e \mathbf{p}^e_{i,v} pi,ve? 是形成 M i e \mathbf{M}^e_i Mie? 中相应边缘线的点。对于 ′ F i + 1 p '\mathbf{F}^p_{i+1} ′Fi+1p? 中的平面特征 p i + 1 , k p \mathbf{p}^p_{i+1,k} pi+1,kp? , p i , u p \mathbf{p}^p_{i,u} pi,up?, p i , v p \mathbf{p}^p_{i,v} pi,vp? 和 p i , w p \mathbf{p}^p_{i,w} pi,wp? 形成 M i p \mathbf{M}^p_i Mip? 中相应的平面块
然后使用高斯牛顿方法通过最小化来求解最优变换
m
i
n
T
i
+
1
=
{
∑
p
i
+
1
,
k
e
∈
′
F
i
+
1
e
d
e
k
+
∑
p
i
+
1
,
k
p
∈
′
F
i
+
1
p
d
p
k
}
\mathop{\mathrm{min}}\limits_{\mathbf{T}_{i+1}}= \left\{ \sum\limits_{\mathbf{p}^e_{i+1,k}\in'\mathbf{F}^e_{i+1}} \mathbf{d}_{e_k}+\sum\limits_{\mathbf{p}^p_{i+1,k}\in'\mathbf{F}^p_{i+1}}\mathbf{d}_{p_k} \right\}
Ti+1?min?=?
?
??pi+1,ke?∈′Fi+1e?∑?dek??+pi+1,kp?∈′Fi+1p?∑?dpk???
?
??
最后,可以得到
x
i
\textbf{x}_i
xi? 和
x
i
+
1
\textbf{x}_{i+1}
xi+1? 之间的相对变换
Δ
T
i
,
i
+
1
\Delta \mathbf{T}_{i,i+1}
ΔTi,i+1?,这是连接这两个位姿的激光雷达里程计因子
Δ
T
i
,
i
+
1
=
T
i
?
T
i
+
1
(12)
\Delta\mathbf{T}_{i,i+1}=\mathbf{T}_i^{\mathbf{\top}}\mathbf{T}_{i+1}\tag{12}
ΔTi,i+1?=Ti??Ti+1?(12)
D. GPS 因子
尽管可以仅利用 IMU 预积分和激光雷达里程计因子来获得可靠的状态估计和映射,但系统在长时间导航任务中仍然会出现漂移。为了解决这个问题,可以引入提供绝对测量的传感器以消除漂移,如 GPS
E. 环路闭合因子
实现了一种朴素但有效的基于欧几里德距离的闭环检测方法
在实践中发现当 GPS 是唯一可用的绝对传感器时,添加闭环因子对于纠正机器人高度的漂移特别有用
使用的传感器套件包括 Velodyne VLP16 激光雷达、MicroStrain 3DM-GX5-25 IMU 和 Reach M GPS
Fig. 2 数据集在 3 个平台上收集:(a) 定制手持设备,(b) 无人驾驶地面车辆 - Clearpath Jackal,? 电动船 - Duffy 21
数据集的详细信息如表 I 所示
A. 旋转数据集
在此测试中,重点评估仅将 IMU 预积分和激光雷达里程计因子添加到因子图中时框架的稳健性。旋转数据集是由用户手持传感器套件并在静止状态下执行一系列激进的旋转操作来收集的
Fig. 3 旋转测试中 LOAM 和 LIO-SAM 的绘图结果。 LIOM 未能产生有意义的结果
B. 步行数据集
该测试旨在评估当系统在 SE(3) 中经历剧烈平移和旋转时方法的性能。该数据集遇到的最大平移速度和旋转速度分别为 1.8 m/s 和 213.9 °/s
Fig. 4 使用 Walking 数据集的 LOAM、LIOM 和 LIO-SAM 的绘图结果。当遇到剧烈旋转时,(b) 中的 LOAM 地图会多次发散。 LIOM 优于 LOAM。然而,由于点云配准不准确,其地图显示出许多模糊的结构。 LIO-SAM 无需使用 GPS 即可生成与 Google Earth 图像一致的地图
C. 校园数据集
该测试旨在展示引入 GPS 和环路闭合因素的好处。为了做到这一点,特意禁止在图中插入 GPS 和闭环因子。当 GPS 和环路闭合因子均被禁用时,方法称为 LIO-odom,它仅利用 IMU 预积分和激光雷达里程计因子。当使用 GPS 因子时,方法被称为 LIO-GPS,它使用 IMU 预积分、激光雷达里程计和 GPS 因子来构建图形
Fig. 5 使用在麻省理工学院校园收集的校园数据集的各种方法的结果。红点表示开始和结束位置。轨迹方向为顺时针方向。 LIOM 未显示,因为它无法产生有意义的结果
Tab. 2 机器人返回起点时所有方法的相对平移误差
D. 公园数据集
在本次测试中,将传感器安装在 UGV 上,并沿着森林远足小径驾驶车辆。行驶40分钟后,机器人返回初始位置
Fig. 6 使用在新泽西州 Pleasant Valley Park 收集的 Park 数据集的各种方法的结果。红点表示开始和结束位置。轨迹方向为顺时针方向。
由于没有可靠的绝对高度测量,LIO-GPS 会出现高度漂移,并且在返回机器人初始位置时无法关闭环路。 LIO-SAM不存在这样的问题,因为它利用闭环因子来消除漂移
E. 阿姆斯特丹数据集
将传感器套件安装在船上,并沿着阿姆斯特丹运河航行了 3 个小时。尽管在本次测试中传感器的移动相对平稳,但由于多种原因,绘制运河图仍然具有挑战性
F. 基准测试结果
由于完整的 GPS 覆盖范围仅在 Park 数据集中可用,因此我们显示了与 GPS 测量历史记录相关的均方根误差 (RMSE) 结果,该结果被视为地面实况
Tab. 3 LIO-GPS 和 LIO-SAM 相对于 GPS 地面实况实现了类似的 RMSE 误差
Tab. 4 三种竞争方法在所有五个数据集中注册一个激光雷达帧的平均运行时间
LIO-SAM 的运行时间受特征图密度的影响更显着,而受因子图中节点和因子数量的影响较小