SPM-SLAM(Squared Planar Marker SLAM)与传统SLAM的区别

更新,SPM-SLAM官方终于出论文啦!

SPM-SLAM: Simultaneous Localization and Mapping with Squared Planar Markers

  在ArUco的官方网页,SPM-SLAM(Squared Planar Marker SLAM)被解释为 Real time creation of marker maps;MarkerMapper被解释为 Cost-effective localization system using squared markers。SPM-SLAM是利用g2o(General Graph Optimization)做的 local BA + global BA,而MarkerMapper只有最后的 global BA(Bundle Adjustment)。MarkerMapper可以准确地构建出三维空间中的地图,SPM-SLAM在它的基础上实现了真正意义上的SLAM。这里所谓的地图只是未知环境中二维码的分布图,这也正是它相对于传统SLAM的局限性。现在,不知不觉中我们就由基于ArUco的室内视觉定位与导航问题演变成了SLAM问题。

  传统的SLAM(这里主要考虑特征点法)对环境是完全未知的,而用ArUco实现的SLAM则需要知道环境中的一个条件:那就是二维码的边长。所以,如果单纯利用ArUco做SLAM,局限性比较大,因为我们必须保证在运动过程中未知二维码要与任意已知二维码出现在同一帧图像中,不然会出现跟丢的情况(如果跟丢一个二维码则无所谓,是怕相机位姿跟丢了)。目的就是来确定二维码之间的相对位置关系(建图用),这样便可以推算出相机在当前环境(其实是针对二维码来说)中的位置以及它相对于初始位置的位姿。这对环境的要求应该说是蛮高的,因为受相机视野与焦距的影响,我们无法保证未知的二维码一定会与已知的二维码出现在同一帧,再加上有时相机移动速度较快,则很容易跟丢。

  理想情况下,SPM-SLAM与传统视觉SLAM是一样的原理,都需要个根据特征点来估计相机位姿。而对于前者来说,由于二维码的边长已知,根据三角形相似原理则很容易求出特征点(二维码角点)的深度。这样一来,SPM-SLAM更像是一个基于RGB-D相机的SLAM,所以它不像传统的单目SLAM一样需要初始化。总结来说,SPM-SLAM利用二维码实现SLAM,传统SLAM利用空间中任意的特征点实现SLAM,二者都可以在估计相机位姿的同时构建地图(SPM-SLAM以二维码的分布作为地图,传统视觉SLAM以稠密或稀疏的特征点云作为地图)。由于SPM-SLAM的局限性,考虑是否可以将ArUco与传统视觉SLAM相结合。我设想,在仅已知环境中二维码分布图的情况下进行SLAM,最后可以得到二维码分布图与视觉点云地图的融合地图,姑且称之为融合SLAM。这样在导航过程中以传统SLAM为主要视觉里程计信息,二维码在其中起一定的修正与补偿作用。

  实际上,利用MarkerMapper我们已经得到了比较准确的全局优化地图,并可以获得相机在地图中的位姿,接下来要做的就是如何利用地图进行导航并提高导航过程中相机定位的精度。导航问题就是机器人如何利用自身的传感器自主的由初始位置移动到目标位置,且过程中可以准确地避开障碍物。与传统的SLAM不同,由于我们的定位方式完全依赖二维码,对环境的依赖性较高,所以有必要加入一些其他的传感器,比如IMU(计算偏航角)和编码器(计算位移)。目的有二,一是在相机出现盲区时利用IMU和编码器进行短距离的位姿估计,二是利用多传感器信息融合在一定程度上提升机器人定位的精度。这种导航方法是以SPM-SLAM为主要里程计信息,辅以其他传感器进行修正与补偿,相对上面提到的融合SLAM成本较高。对于避障问题,在静态环境中可以利用轨迹规划,而在动态环境中可能还需要借助其他的避障传感器。

  IMU和编码器作里程计,视觉二维码作观测器,多传感器融合。视觉算出机器人在世界座标系的位姿后生效,但此时机器人的位姿不一定准确,后面需要优化。

以上纯属个人总结,未完待续。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章