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

未完成…

在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)做的实时优化,而MarkerMapper是用BA(Bundle Adjustment)做的全局优化。两者都是广义上基于ArUco的视觉SLAM,前者是同步定位与地图构建,后者是非同步定位与地图构建(先定位,后建图),而这里所谓的地图只是未知环境中二维码的分布图,这也正是它相对于传统SLAM的局限性。现在,不知不觉中我们就由基于ArUco的室内视觉定位与导航问题演变成了SLAM问题。

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

理想情况下,SPM_SLAM与传统视觉SLAM是一样的原理,都同时具有深度信息和里程计信息,可以在估计相机位姿的同时构建地图(SPM_SLAM以二维码的分布作为地图,传统视觉SLAM以稠密或稀疏的特征点云作为地图)。由于SPM_SLAM的局限性,考虑是否可以将ArUco与传统视觉SLAM相结合。我设想,在仅已知环境中二维码分布图的情况下进行SLAM,最后可以得到二维码分布图与视觉点云地图的融合地图,姑且称之为融合SLAM。这样在导航过程中以传统SLAM为主要视觉里程计信息,二维码在其中起一定的修正与补偿作用。

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

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

猜你喜欢

转载自blog.csdn.net/lixujie666/article/details/80085365