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

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

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]⎣⎡a1a2a3⎦⎤=a1e1+a2e2+a3e3

  2. 向量的内积与外积

    • 向量的内积: 描述向量间的投影关系
      a ⋅ b = a T b = ∑ i = 1 3 a i b i = ∣ a ∣   ∣ b ∣ cos ⁡ ⟨ a , b ⟩ a \cdot b = a^T b = \sum_{i=1}^3 a_ib_i = |a|\,|b| \cos \langle a,b \rangle a⋅b=aTb=i=1∑3aibi=∣a∣∣b∣cos⟨a,b⟩

    • 向量的外积: 描述向量的旋转
      a × b = [ i j k a 1 a 2 a 3 b 1 b 2 b 3 ] = [ a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 ] = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] b ≜ a ∧ b a \times b = \left[\begin{array}{ccc} i & j & k \\ a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ \end{array}\right] = \left[\begin{array}{c} a_2b_3 - a_3b_2 \\ a_3b_1 - a_1b_3 \\ a_1b_2 - a_2b_1 \end{array}\right] = \left[\begin{array}{ccc} 0 & -a_3 & a_2\\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{array}\right] b \triangleq a ^\wedge b a×b=⎣⎡ia1b1ja2b2ka3b3⎦⎤=⎣⎡a2b3−a3b2a3b1−a1b3a1b2−a2b1⎦⎤=⎣⎡0a3−a2−a30a1a2−a10⎦⎤b≜a∧b

      其中 a ∧ a^\wedge a∧表示 a a a的反对称矩阵
      a ∧ = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] a ^\wedge = \left[\begin{array}{ccc} 0 & -a_3 & a_2\\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{array}\right] a∧=⎣⎡0a3−a2−a30a1a2−a10⎦⎤

坐标系间的欧氏变换

  1. 欧式变换:

    在欧式变换前后的两个坐标系下,同一个向量的模长和方向不发生改变,是为欧式变换.

    一个欧式变换由一个旋转和一个平移组成.

  2. 旋转矩阵 R R R:

    • 旋转矩阵 R R R的推导:

      设单位正交基 [ e 1 , e 2 , e 3 ] [e_1, e_2, e_3] [e1,e2,e3]经过一次旋转变成了 [ e 1 ′ , e 2 ′ , e 3 ′ ] [e_1’, e_2’, e_3’] [e1′,e2′,e3′],对于同一个向量 a a a,在两个坐标系下的坐标分别为 [ a 1 , a 2 , a 3 ] T [a_1, a_2, a_3]^T [a1,a2,a3]T和 [ a 1 ′ , a 2 ′ , a 3 ′ ] T [a_1’, a_2’, a_3’]^T [a1′,a2′,a3′]T.根据坐标的定义:
      [ e 1 , e 2 , e 3 ] [ a 1 a 2 a 3 ] = [ e 1 ′ , e 2 ′ , e 3 ′ ] [ a 1 ′ a 2 ′ a 3 ′ ] [e_1, e_2, e_3] \left[\begin{array}{c} a_1 \\ a_2 \\ a_3 \end{array}\right] = [e_1’, e_2’, e_3’] \left[\begin{array}{c} a_1’ \\ a_2’ \\ a_3’ \end{array}\right] [e1,e2,e3]⎣⎡a1a2a3⎦⎤=[e1′,e2′,e3′]⎣⎡a1′a2′a3′⎦⎤

      等式左右两边同时左乘 [ e 1 T , e 2 T ,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在《视觉SLAM十四》中,章节安排如下: 1. 数学基础部分:介绍这本书的基本信息,包括自测题。概述SLAM系统的组成和各模块的工作。介绍三维空间运动、李群和李代数、针孔相机模型以及非线性优化。完成一个曲线拟合的实验。 2. SLAM技术部分:解特征点法的视觉里程计,包括特征点的提取与匹配、对极几何约束的计算、PnP和ICP等方法。学习直接法的视觉里程计,包括光流和直接法的原理,并使用g2o实现一个简单的RGB-D直接法。构建一个视觉里程计框架,解决优化和关键帧选择的问题。深入讨论后端优化,包括Bundle Adjustment和位姿图的优化。介绍回环检测和地图构建的方法。最后,介绍当前的开源SLAM项目和未来的发展方向。 另外,对于四元数的学习,可以先了解复平面的概念。复平面是一个用来描述复数的平面,其中实部和虚部分别对应平面的横坐标和纵坐标。了解复平面后,可以开始学习四元数的概念和应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [视觉SLAM十四笔记](https://blog.csdn.net/dada19980122/article/details/111404967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【视觉SLAM十四笔记【逐行代码带你解析】【适合纯小白 ps:因为我就是】(持续更新中)](https://blog.csdn.net/R_ichun/article/details/131964588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值