Efficient Surfel-Based SLAM using 3D Laser Range Data in Urban Environments
摘要和引言
摘要
方法
提出了一种新的、稠密的激光建图方法,在由旋转激光传感器获得的3d点云上进行操作。
结果
- 构建了基于surfel的地图(基于surfel的地图第一次被用在激光SLAM中)
- 估计机器人位姿变换情况(通过利用在当前扫描和该surfel地图的渲染模型视图之间的投影数据关系)
- 对于回环的检测和确认,在潜在的回环之前在地图上组成了一个虚拟的视图(利用地图表示)(即使是扫描与已建图区域重叠很小的情况下,也有了较为鲁棒的检测)
- 可进行实时配准,检测回环并以在线的方式进行地图更新
结论
实验表明,只基于点云就可以建立大尺度下(户外)的全局一致性地图。
引言
较室内环境的挑战
- 传感器移动较快,导致扫描间位移较大
- 相对稀疏的点云
- 大尺度环境
提出SuMa
- 建立了全局一致性的地图(通过追踪位姿、所谓的里程计、使用位姿图的回环)
- 使用surfel地图高效地生成投影数据关联和额外的回环检测(随后验证回环)的合成视图
- 用surfel可以高效地表示大场景
- 可在回环检测上更新地图(利用整合里程计和回环限制条件的图优化)
关键工作
- 提出了一种SLAM系统,该系统可以用三维激光测距数据进行高效建图,从而获得全局一致的地图
- 提出了一种新的基于地图的回环检测标准,即使在扫描之间重叠很小的情况下也能够检测到回环
特点
首个基于3D激光的建图方法(使用surfel进行带回环的建图),产生全局一致的地图
结果和讨论
结果
- 提出了一种基于激光的里程计和建图的稠密方法,该方法可以在线执行所有的计算并生成全局一致的地图
- 利用一种基于surfel的地图表示法,在每次迭代时将当前扫描与surfel地图的投影数据关联
- 实验评估表明,这将产生准确的配准结果以及与最新技术相当的全局一致地图
下一步
- 融合色彩信息,以改进在投影数据关联时的对应项的选择
- 融合全局回环搜索,若里程计估计值漂移很大,也可以找到回环
- 对动态对象的检测和跟踪(例如Moosmann和Stiller的方法)有可能提高配准结果的鲁棒性和质量,因为它可以可靠地删除动态对象
方法和实验
方法
七步
六部分
A.Preprocessing
数据预处理。
输入是三维点云数据,输出是
V
D
(
(
u
,
v
)
)
V_D((u,v))
VD((u,v)),
N
D
(
(
u
,
v
)
)
N_D((u,v))
ND((u,v))两个映射关系。
投影,将三维映射为二维:
V
D
(
(
u
,
v
)
)
V_D((u,v))
VD((u,v))将二维坐标
(
u
,
v
)
(u,v)
(u,v)映射为三维点。
N
D
(
(
u
,
v
)
)
N_D((u,v))
ND((u,v))将二维坐标
(
u
,
v
)
(u,v)
(u,v)映射为三维法向量。
B.Map Representation
地图表示。
surfel组成
- 一个三维位置向量 v s v_s vs
- 一个三维法向量 n s n_s ns
- 一个常数半径 r s r_s rs
- 两个时间戳(创建时的时间戳 t c t_c tc,上次更新的时间戳 t u t_u tu)
地图 M M M组成
- 许多surfel组成的无序集合,分为
- M a c t i v e M_{active} Mactive–由最近更新的surfel组成(用于里程计估计位姿)
- M i n a c t i v e M_{inactive} Minactive–由非最近创建的surfel组成(进行回环搜索)
⚠️surfel与位姿通过 t c t_c tc联系起来, v s v_s vs和 n s n_s ns是局部坐标系 C t c C_{t_c} Ctc中的,对于相应位姿 T W C t c T_{WC_{t_c}} TWCtc的简单改动即可实现对surfel地图的改动。
C.Odometry Estimation
里程计估计两帧间(当前时刻
t
t
t到上一时刻
t
−
1
t-1
t−1)的相对位姿
用所谓的frame-to-model ICP进行位姿估计。
所谓的model概念及位姿关系
即
- data–于时刻 t t t在坐标系 C t C_t Ct中的观测数据
- model–在给定坐标系 C k C_k Ck处的地图对应的渲染
ICP
-
误差项 E o d o m E_{odom} Eodom
-
初始值为 T ( t − 2 ) ( t − 1 ) T_{{(t-2)}{(t-1)}} T(t−2)(t−1)(t-1时刻到t-2时刻的位姿)
-
迭代方法–高斯牛顿
-
核函数–huber核
D.Map Update
地图更新。
data surfel和model surfel。
data surfel
- 通过A.Preprocessing可由点算得data surfel s ( 包 含 v s , n s , r s ) s(包含v_s,n_s,r_s) s(包含vs,ns,rs) 中的 v s , n s v_s,n_s vs,ns
- r s r_s rs的计算如下
过程
- 通过A.Preprocessing中的投影将三维点 p p p映射为二维坐标 ( u , v ) (u,v) (u,v)到 I M I_M IM中找到对应的model surfel s ′ ( 包 含 v s ′ , n s ′ , r s ′ ) s'(包含v_s',n_s',r_s') s′(包含vs′,ns′,rs′)
- 若
则data surfel s s s与model surfel s ′ s' s′兼容,
否则data surfel s s s与model surfel s ′ s' s′不兼容。 - 地图更新之后,移除所有稳定值过低同时太旧的surfel
⚠️
I
M
I_M
IM是索引映射,包含相对于传感器原点和最终位姿
T
W
C
t
T_{W{C_t}}
TWCt最近的surfels的索引。
data surfel
s
s
s与model surfel
s
′
s'
s′兼容
- 提升model surfel s ′ s' s′的稳定性
- 若测量值更准确,即 r s r_s rs < r s ′ r_s' rs′,则用测量值更新model surfel s ′ s' s′
data surfel s s s与model surfel s ′ s' s′不兼容
- 降低model surfel s ′ s' s′的稳定性和初始化一个新surfel
- 若测量值无法分配给任意已存在的surfel,则初始化一个新surfel
E.Loop Closures
回环检测(过程类似于里程计,主要是点云配准)。
Detection
-
在不活跃的地图 M i n a c t i v e M_{inactive} Minactive里找
-
对于j*,用frame-to-model ICP将对应位姿 T W C j ∗ T_{W{C_j*}} TWCj∗处的渲染视图与当前点云对齐
虚拟视图
为了解决扫描间重叠率低的情况,我们使用里程计估计和上述候选方法的转换,在潜在的回环之后绘制了地图的虚拟视图。
- 虚拟视图由 M i n a c t i v e M_{inactive} Minactive中渲染模型视图组成
- 误差项(
E
m
a
p
E_{map}
Emap)
如果 E o d o m E_{odom} Eodom的残差和 E m a p E_{map} Emap的残差相对较小,则说明对齐方式是一致的;
当 E m a p E_{map} Emap的残差最小时,可以区分有效和无效的候选回环。
⚠️对于重叠率低的情况,不能只简单地评估当前测量值相对于渲染的不活跃的地图 M i n a c t i v e M_{inactive} Minactive的残差
Verification
即使我们尝试通过渲染虚拟地图来排除无效的回环,该标准仍可能导致无效的回环,因此我们需要验证回环(通过追踪active map和inactive map中的位置)。
如何验证回环?
怎样才算验证通过?
Pose graph optimization
- 当回环验证通过后,就把回环约束加入位姿图中
- 在独立线程中进行实际位姿图优化
- 位姿图优化完成后,将优化的位姿整合到地图中,并相应地更新当前位姿估计
F.Implementation Details
使用OpenGL 4.0实现。
位姿图优化迭代方法用的LM。