传感器观测误差与机器人控制误差的积累使得建图算法得到的环境模型总是和实际模型存在不一致并难以消除。
视觉数据优化的过程就是在观测的数据中筛选出更为有效的数据,从而降低计算量以及减小误差。
SLAM算法本质上是一类状态估计问题,但它需要同时估计连续量状态和离散量状态:
连续状态,为机器人位姿和环境中特征的位姿;离散状态量,为在当前观察数据中检测到的物体和已检测物体之间的对应关系。SLAM问题可以分为在线SLAM问题和全SLAM问题:
在线SLAM问题:仅包括当前时刻的位姿,不需要一直保存之前所有时刻的观察数据和控制指令;全SLAM问题:需要计算机器人的整个轨迹和地图路标的所有数据。SLAM按照传感器来分,分为视觉SLAM(VSLAM)和激光SLAM,视觉SLAM基于摄像头返回的图像信息,激光SLAM基于激光雷达返回的点云信息。
激光SLAM 与 视觉SLAM 优劣对比表 优点/缺点激光SLAM视觉SLAM优点可靠性高,实时性高,技术成熟结构简单,安装方式多元化建图直观,精度高,不存在累计误差无传感器距离限制成本低地图可用于路径规划可提取语义信息缺点受Lidar探测范围限制环境光影响大,暗处(无纹理)区域无法工作安装有结构要求运算负荷大,构建的地图本身难以直接用于路径规划与导航地图缺乏语义信息传感器动态性能还需提高,地图构建时存在累计误差SLAM领域主要涉及到的五个关键问题:
地图的表示方法;不确定信息处理;数据的关联;机器人的自定位;探索规划。针对SLAM问题,前人提出了很多解决方法,其中基于概率的SLAM方法得到了广泛的应用,它主要包括马尔可夫定位法、蒙特卡洛定位法(粒子滤波法)、稀疏扩展滤波算法、卡尔曼滤波法。
马尔可夫定位法:可以在初始位姿不确定的情况下确定机器人的位置,解决机器人的“绑架”问题。计算量非常大、实时性差,不能用于大规模的位置环境。
粒子滤波算法:可以应用在非线性和非高斯的系统中,而且精度很高,但同时也存在着粒子退化耗尽的问题。
卡尔曼滤波法:解决离散数据线性滤波的方法。