资讯详情

《视觉SLAM十四讲》笔记摘抄

《视觉SLAM十四讲笔记摘录

  • ch02 初识SLAM
    • 经典视觉SLAM框架
    • SLAM数学表达问题
  • ch03 三维空间刚体运动
    • 旋转矩阵
      • 点与向量,坐标系
      • 欧氏变换坐标系
      • 转换矩阵和齐次坐标
    • 齐次坐标(Homogeneous Coordinate)的优势
        • 优势1:方便判断是否在直线或平面上
        • 优点2:方便表示线路交点和点共线
        • 优点3:能区分向量和点
        • 优点4:能表达无限的远点
        • 优点5:可以简单地表示变化
    • 旋转向量和欧拉角
      • 旋转向量
      • 欧拉角
    • 四元数
      • 定义四元数
      • 用单位四元数表示旋转
  • ch04 李群和李代数
    • 李群和李代数基础
      • 群的定义
      • 定义李代数
      • 李代数 s o ( 3 ) \mathfrak{so}(3) so(3)
      • 李代数 s e ( 3 ) \mathfrak{se}(3) se(3)
    • 李群与李代数的转换关系:指数映射和对数映射
      • S O ( 3 ) SO(3) SO(3)和 s o ( 3 ) \mathfrak{so}(3) so(3)转换关系
      • S E ( 3 ) SE(3) SE(3)和 s e ( 3 ) \mathfrak{se}(3) se(3)转换关系
    • 李代求导: 引入李代数的主要动机之一是方便求导和优化
      • 李群乘法与李代数加法的关系
      • S O ( 3 ) SO(3) SO(3)上李代数求导
        • 李代数求导
        • 扰动模型(左乘)
      • S E ( 3 ) SE(3) SE(3)上的李代数求导
  • ch05 相机与图像
    • 针孔相机模型
    • 畸变模型
    • 单目相机的成像过程
  • ch06 非线性优化
    • 状态估计问题
      • 最大后验与最大似然
      • 最小二乘
        • 基于观测数据 z z z的最小二乘
        • 基于观测数据 z z z和输入数据 u u u的最小二乘
    • 非线性最小二乘
      • 一阶和二阶梯度法
      • 高斯牛顿法
      • 列文伯格-马夸尔特方法
  • ch07 视觉里程计01
    • 特征点匹配
      • 特征点
    • 根据特征点匹配计算相机运动
      • 2D-2D匹配: 对极几何
        • 对极约束
        • 本质矩阵 E E E的求解
        • 对极几何的讨论
      • 3D-2D匹配: PnP(Perspective-n-Point)
        • 直接线性变换(DLT): 先求解相机位姿,再求解空间点位置
        • P3P: 先求解空间点位置,再求解相机位姿
        • Bundle Adjustment: 最小化重投影误差,同时求解空间点位置和相机位姿
      • 3D-3D匹配: ICP
        • SVD方法
        • 非线性优化方法

ch02 初识SLAM

经典视觉SLAM框架

在这里插入图片描述

视觉SLAM流程包括以下步骤:

  1. 传感器信息读取: 在视觉SLAM中主要为相机图像信息的读取和预处理.如果是在机器人中,还可能有码盘、惯性传感器等信息的读取和同步.

  2. 视觉里程计(Visual Odometry,VO): 视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图的样子.VO又称为前端(Front End).

    视觉里程计不可避免地会出现累积漂移(Accumulating Drift)问题.

  3. 后端优化 (Optimization): 后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图.由于接在VO之后,又称为后端(Back End).

    在视觉 SLAM中,前端和计算机视觉研究领域更为相关,比如图像的特征提取与匹配等,后端则主要是滤波与非线性优化算法.

  4. 回环检测 (Loop Closing): 回环检测判断机器人是否到达过先前的位置.如果检测到回环,它会把信息提供给后端进行处理.

  5. 建图 (Mapping): 它根据估计的轨迹,建立与任务要求对应的地图.

    地图的形式包括度量地图(精确表示地图物体的位置关系)与拓扑地图(更强调地图元素之间的关 系)两种.

SLAM问题的数学表述

“小萝卜携带着传感器在环境中运动”,由如下两件事情描述:

  1. 什么是运动 ?我们要考虑从 k − 1 k-1 k−1时刻到 k k k时刻,小萝卜的位置 x x x是如何变化的.

    运动方程:

    x k = f ( x k − 1 , u k , w k ) x_k = f(x_{k-1}, u_k, w_k) xk​=f(xk−1​,uk​,wk​)

    • x k , x k − 1 x_k, x_{k-1} xk​,xk−1​表示小萝卜在 k k k和 k − 1 k-1 k−1时刻的位置
    • u k u_k uk​表示运动传感器的读数(有时也叫输入)
    • w k w_k wk​表示噪声
  2. 什么是观测 ?假设小萝卜在 k k k时刻于 x k x_k xk​处探测到了某一个路标 y j y_j yj​,我们要考虑这件事情是如何用数学语言来描述的.

    观测方程:

    z k , j = h ( y j , x k , v k , j ) z_{k,j} = h(y_j, x_k, v_{k,j}) zk,j​=h(yj​,xk​,vk,j​)

    • z k , j z_{k,j} zk,j​表示小萝卜在 x k x_k xk​位置上看到路标点 y j y_j yj​,产生的观测数据
    • y j y_j yj​表示第 j j j个路标点
    • v k , j v_{k,j} vk,j​表示噪声

这两个方程描述了最基本的SLAM问题:当知道运动测量的读数 u u u ,以及传感器的读数 z z z 时,如何求解定位问题(估计 x x x )和建图问题(估计 y y y)?这时,我们就把SLAM问题建模成了一个状态估计问题:如何通过带有噪声的测量数据,估计内部的、隐藏着的状态变量?

ch03 三维空间刚体运动

旋转矩阵

点和向量,坐标系

  1. 向量 a a a在线性空间的基 [ e 1 , e 2 , e 3 ] [e_1, e_2, e_3] [e1​,e2​,e3​]下的坐标为 [ a 1 , a 2 , a 3 ] T [a_1, a_2, a_3]^T [a1​,a2​,a3​]T.

    a = [ e 1 , e 2 , e 3 ] [ a 1 a 2 a 3 ] = a 1 e 1 + a 2 e 2 + a 3 e 3 a = [e_1, e_2, e_3] \left[\begin{array}{c} a_1 \\ a_2 \\ a_3 \end{array}\right] = a_1e_1 + a_2e_2 + a_3e_3 a=[e1​,e2​,e3​]⎣⎡​a1​a2​a3​​⎦⎤​=a1​e1​+a2​e2​+a3​e3​

  2. 向量的内积与外积

锐单商城 - 一站式电子元器件采购平台