Advertisement

视觉SLAM十四讲笔记---02初始SLAM

阅读量:

第二次看高翔博士的《视觉SLAM十四讲》,把一些觉得重要的笔记或者一些自己的想法写下来。
之前第一次主要读完之后没有留下深刻的印象,代码也就只是简单地跑了一下,希望这次能够沉淀下自己的东西,也能学会自己写一些代码。
代码都是在kdevelop中跑的,比直接gedit下调试方便。
欢迎志同道合的朋友们一起交流!


1、相机的分类

(1)单目Monocular

优势:结构简单、成本低。

局限:

深度信息的缺失==>通过平移可以计算深度
但仍然是一个相对的值(将相机的运动和场景大小同时放大,单目看到的像是一样的)==>尺度不确定性
==>双目、深度相机或融合激光雷达等其他传感器

(2)双目Stereo

由两个单目相机组成,两个相机之间的距离(基线)已知。

优势:可以获得深度信息。

缺点:配置与标定均较为复杂,其深度量程和精度受双目的基线与分辨力的限制,且视差的计算非常消耗计算资源。

(3)深度RGB-D

利用红外结构光或Time-of-Flight原理,主动向物体发射光并接受返回的光,测出物体距离相机的距离,

优势:可以获得深度信息;利用物理手段,可节省大量的计算量。

缺陷:测量范围窄、噪声大、视野小、易受到日光干扰等,适用于室内。

2、经典视觉SLAM框架

SLAM框架
当把工作环境限制在静态、刚体、光照变化不明显、没有人为干扰 的场景下,这个系统相当成熟。

(1)视觉里程计
  • 计算机如何通过图像确定相机的运动?==>了解相机与空间点的几何关系
  • 视觉里程计仅利用相邻两帧图像来估计两帧图像间的相机运动,如此累计可以得到机器人的轨迹,即解决了定位 问题。同样可以根据每个时刻的相机位置,计算出各像素对应的空间点的位置,即得到地图
  • 但是每次估计会有误差产生,如此累计会导致累计漂移 问题,最终无法建立一致的地图。
  • 故,在视觉里程计的基础上需要加入后端优化和回环检测技术。
(2)后端优化
  • 目标:处理前端传来的带噪声的数据,以此估计整个系统的状态以及这个状态估计的不确定性有多大(最大后验概率估计)。
  • 主要是滤波与非线性优化算法。
(3)回环检测
  • 目标:解决位置估计随时间漂移的问题。实质上是计算图像数据相似性的算法。
  • 需要让机器人具有识别曾到达过的场景的能力。可以判断图像间的相似性来完成回环检测。
  • 回环检测的信息会使后端优化得到的结果更加的正确。
(4)建图
  • 度量地图Metric Map
    强调精确地表示地图中的物体的位置关系。
    有时也会出现一致性问题。

    • 稀疏Sparse
      选择具有代表意义的东西,即路标Landmark,其余可忽略;可以用于定位。

    • 稠密Dense
      二维格子(grid)或三维方块(voxel)都存储着该位置是否可以通过的信息;消耗大量存储空间;可以用于导航。

  • 拓扑地图
    强调地图元素之间的关系。 只考虑节点间的连通性,放送了地图对精确位置的需要,去掉地图的细节问题。
    不擅长表达具有结构结构的地图。
    导航与路径规划的实现还在研究中。

总结:传感器数据为输入,仅用视觉里程计也能完成定位和建图,但是为了解决漂移累计得到全局一致的地图,可以采用后端优化的问题更正确地得到最终的结果,而回环检测则可以理解为一种特殊情况的数据输入。

3、SLAM问题的数学表述

(1)数学模型

时刻:t = 1, …, K
位置:x 1,…,x K
路标:y 1,…,y N 假设有N个路标点

  • 数学模型:

运动方程:x k = f(x k-1, u k, w k)

u k为运动传感器的读数(或输入),w k为噪声。
反映从k-1时刻到k时刻,位置x 如何变化。

观测方程:z k,j = h(y j, x k, v k,j)

v k,j为噪声。
反映在x k位置上看到某个路标点y j,产生了一个观测数据z k,j。

(2)参数化
根据真实运动和传感器的种类,存在着若干种参数化的方式。

  • 例:位姿由两个位置和一个转角描述,即x k = [x, y, θ]Tk
    运动传感器能够测量到在每两个时间间隔位置和转角的变化量u k = [△x, △y, △θ]Tk
    且假设线性关系,则运动方程可以为:
    在这里插入图片描述

  • 例:假设使用二维激光传感器获得一个2D路标点,测得到路标点的距离r和夹角φ。
    记路标点为y = [px, py]T,观测数据为z = [r, φ]T
    则观测方程可以有:
    在这里插入图片描述
    (3)状态估计问题
    由两个方程描述了最基本的SLAM问题:已知运动测量的读数u ,及传感器读数z ,求解定位问题(x )和建图问题(y )==>状态估计问题

  • 根据运动和观测方程是否为线性,噪声是否服从高斯分布可以分类:

    • 线性高斯:卡尔曼滤波器。
    • 非线性非高斯:扩展卡尔曼滤波器+非线性优化。
    • 线性非高斯
    • 非线性高斯

全部评论 (0)

还没有任何评论哟~