正在加载图片...
·100· 智能系统学报 第13卷 差使得估计轨迹和真实轨迹相差很大。当前VSLAM 2.1基于滤波器的实现方法 系统多采用回环检测的方式减小这一误差。回环检 2.l.1基于扩展卡尔曼滤波器(extended kalman 测是指机器人识别出曾经到达过的场景的能力,当 filter,EKF)EKF-VSLAM 机器人看到两张相似图片时,计算图像数据的相似 21世纪之前,SLAM中的状态估计主要使用 性,如果回环检测成功,可以显著地减小累积误 滤波的方法。在SLAM中,系统的状态由机器人的 差。回环检测在VSLAM中意义重大,既关系到估 位姿和地图信息(路标)组成。用卡尔曼滤波器 计的地图和轨迹在长时间下的正确性,也可在跟丢 (KF)实现SLAM必须遵循运动方程和观测方程都 时进行重定位,大大增强了系统的鲁棒性。 符合线性高斯模型、系统的状态服从高斯分布这两 个假设。基于KF的SLAM由系统状态预测和更新 两步组成,与此同时,对地图进行加入新路标、删除 旧路标等操作。KF中,假设系统都是线性的,但是 现实中,机器人的运动模型与观测模型往往都是非 线性的。对此,通常采用一阶泰勒展开来近似表示 (a)真实轨迹 (b)出现累积误差的轨迹 非线性模型的扩展卡尔曼滤波器(extended Kalman 图4真实轨迹与出现累积误差的轨迹 filter,EKF)方法来实现SLAM。 Fig.4 Real track and track with accumulated error 卡尔曼滤波器是实现SLAM的基本方法之一网 2 VSLAM实现方法 其协方差矩阵描述了机器人的位置和地图的不确定 信息。当机器人连续观测到环境中的特征标志时, VSLAM的实现方法分为基于滤波器的方法和 所有协方差矩阵子阵的行列式呈单调递减。每一时 基于图优化的方法。其中,基于滤波器的方法只估 刻机器人能观测到路标不会很多,只有少数几个。 计当前时刻的位姿,是一种增量式算法:基于图优 基于卡尔曼滤波器的SLAM的时间复杂度为 化的方法根据所有观测到的信息,对整个机器人运 O(n,n表示地图中的特征标志数B0。为了达到降 动轨迹进行估计。前者又称为在线SLAM,后者又 低SLAM的时间复杂度的目的,Leonard等提出 称为全SLAM(FULL SLAM)。表1给出了常用的 了DSM(decoupled stochastic mapping)方法, 开源VSLAM方案,其中有使用滤波方法的,也有 DSM中机器人位置估计被各子地图分别保存,当机 使用优化方法的,本文2.1和2.2节将对典型方案 器人从1个子地图运动到另1个子地图时,将前 详述。 1个子地图的信息以EKF的方式传送给后1个子 表1常用开源VSLAM方案 地图。Williams等提出的基于CLSF(constrained Table 1 Commonly used open source VSLAM solutions local submap filter)的SLAM方法涉及全局坐标已 方案名称 传感器形式 地址 知的子地图,首先构建出这些子地图,然后机器人 MonoSLAM 单目 https://github.com/hanmekim/Sc 运动过程中只利用观测信息更新自身位置和局部子 eneLib2 地图中的特征标志,并且在时效范围内向全局地图 PTAM 单目 http://www.robots.ox.ac.uk/-gk/ 传递局部子地图信息。Guivant等提出了1种没 PTAM/ ORB-SLAM 单目为主htp://webdiis.unizar..es/-raulmu 有任何信息丢失的SLAM优化算法CEKF(com- r/orbslam/ pressed extended Kalman filter))。在CEKF中,已观 LSD-SLAM 单目为主http:/vision.in.tum.de/research/ 测到的地图路标一分为二分成A与B两部分,比较 vslam/Isdslam 特别的是,用A来记录活动子地图(机器人当前位 SVO 单目 https://github.com/uzh- rpg/rpg_svo 置的邻域)。当机器人在A中运动时,机器人的位 DTAM RGBD https://github.com/anuranbaka/ 置与地图A通过观测信息得到实时更新,与此同 OpenDTAM 时,地图B受到子观测信息的影响被递归地记录; DVO RGBD https://github.com/tum- vision/dvo slam 当机器人运动到A的区域之外时,观测信息被传送 RTAB-MAP 双目/RGBD https:/github.com/introlab/tab 给子地图B,地图B进行一次性更新,新的活动子 map 地图同时被创建。 RGBD-SLAM-V2 RGBD https://github.com/felixendres/rg bdslam v2 为了降低SLAM的时间复杂度,Thrun等也 Elastic Fusion 单目 https://github.com/mp3guy/Elast 提出去相关的方法,即基于稀疏信息滤波器(sparse icFusion extended information filter,.SElF)的SLAM方法,该差使得估计轨迹和真实轨迹相差很大。当前 VSLAM 系统多采用回环检测的方式减小这一误差。回环检 测是指机器人识别出曾经到达过的场景的能力,当 机器人看到两张相似图片时,计算图像数据的相似 性,如果回环检测成功,可以显著地减小累积误 差。回环检测在 VSLAM 中意义重大,既关系到估 计的地图和轨迹在长时间下的正确性,也可在跟丢 时进行重定位,大大增强了系统的鲁棒性。 2 VSLAM 实现方法 VSLAM 的实现方法分为基于滤波器的方法和 基于图优化的方法。其中,基于滤波器的方法只估 计当前时刻的位姿,是一种增量式算法;基于图优 化的方法根据所有观测到的信息,对整个机器人运 动轨迹进行估计。前者又称为在线 SLAM,后者又 称为全 SLAM(FULL SLAM)。表 1 给出了常用的 开源 VSLAM 方案,其中有使用滤波方法的,也有 使用优化方法的,本文 2.1 和 2.2 节将对典型方案 详述。 2.1 基于滤波器的实现方法 2.1.1 基于扩展卡尔曼滤波器(extended kalman filter, EKF)的 EKF-VSLAM 21 世纪之前, SLAM 中的状态估计主要使用 滤波的方法。在 SLAM 中,系统的状态由机器人的 位姿和地图信息 (路标) 组成。用卡尔曼滤波器 (KF) 实现 SLAM 必须遵循运动方程和观测方程都 符合线性高斯模型、系统的状态服从高斯分布这两 个假设。基于 KF 的 SLAM 由系统状态预测和更新 两步组成,与此同时,对地图进行加入新路标、删除 旧路标等操作。KF 中,假设系统都是线性的,但是 现实中,机器人的运动模型与观测模型往往都是非 线性的。对此,通常采用一阶泰勒展开来近似表示 非线性模型的扩展卡尔曼滤波器 (extended Kalman filter,EKF) 方法来实现 SLAM。 卡尔曼滤波器是实现 SLAM 的基本方法之一[29]。 其协方差矩阵描述了机器人的位置和地图的不确定 信息。当机器人连续观测到环境中的特征标志时, 所有协方差矩阵子阵的行列式呈单调递减。每一时 刻机器人能观测到路标不会很多,只有少数几个。 基于卡尔曼滤波器的 SLAM 的时间复杂度为 O(n 2 ),n 表示地图中的特征标志数[30]。为了达到降 低 SLAM 的时间复杂度的目的,Leonard 等 [31]提出 了 DSM (decoupled stochastic mapping) 方法。 DSM 中机器人位置估计被各子地图分别保存,当机 器人从 1 个子地图运动到另 1 个子地图时,将前 1 个子地图的信息以 EKF 的方式传送给后 1 个子 地图。Williams 等 [32]提出的基于 CLSF (constrained local submap filter) 的 SLAM 方法涉及全局坐标已 知的子地图,首先构建出这些子地图,然后机器人 运动过程中只利用观测信息更新自身位置和局部子 地图中的特征标志,并且在时效范围内向全局地图 传递局部子地图信息。Guivant 等 [33]提出了 1 种没 有任何信息丢失的 SLAM 优化算法 CEKF ( com￾pressed extended Kalman filter)。在 CEKF 中,已观 测到的地图路标一分为二分成 A 与 B 两部分,比较 特别的是,用 A 来记录活动子地图 (机器人当前位 置的邻域)。当机器人在 A 中运动时,机器人的位 置与地图 A 通过观测信息得到实时更新,与此同 时,地图 B 受到子观测信息的影响被递归地记录; 当机器人运动到 A 的区域之外时,观测信息被传送 给子地图 B,地图 B 进行一次性更新,新的活动子 地图同时被创建。 为了降低 SLAM 的时间复杂度,Thrun 等 [34]也 提出去相关的方法,即基于稀疏信息滤波器 (sparse extended information filter,SEIF) 的 SLAM 方法,该 表 1 常用开源 VSLAM 方案 Table 1 Commonly used open source VSLAM solutions 方案名称 传感器形式 地址 MonoSLAM 单目 https://github.com/hanmekim/Sc eneLib2 PTAM 单目 http://www.robots.ox.ac.uk/~gk/ PTAM/ ORB-SLAM 单目为主 http://webdiis.unizar.es/~raulmu r/orbslam/ LSD-SLAM 单目为主 http://vision.in.tum.de/research/ vslam/lsdslam SVO 单目 https://github.com/uzh￾rpg/rpg_svo DTAM RGBD https://github.com/anuranbaka/ OpenDTAM DVO RGBD https://github.com/tum￾vision/dvo_slam RTAB-MAP 双目/RGBD https://github.com/introlab/rtab map RGBD-SLAM-V2 RGBD https://github.com/felixendres/rg bdslam_v2 Elastic Fusion 单目 https://github.com/mp3guy/Elast icFusion (a) ⱋ჊䒔䔥 (b) ܦ⣜㉛⼛䄛ጚ⮰䒔䔥 图 4 真实轨迹与出现累积误差的轨迹 Fig. 4 Real track and track with accumulated error ·100· 智 能 系 统 学 报 第 13 卷
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有