其他章节:
    第二讲:初识SLAM

初识SLAM

SLAM(Simultaneous Localization and Mapping),同时定位与地图构建。它是指搭载特定传感器主体,在没有环境先验信息的情况下,于运动过程中建立环境模型,同时估计自己的运动。

相机介绍

单目相机:即一个摄像头,这种传感器结构简单,成本低;缺点是但是它以二维的形式反映了三维的世界,丢掉了深度,因此平移之后才能计算深度,但仍然无法确定真实尺度。
        双目相机:由两个单目相机组成,但两个相机之间的距离(基线)已知,因此我们通过基线来估计每个像素的空间位置。它的缺点是配置与标定均较为复杂,其深度量程和精度受基线和分辨率所限;并且视差的计算非常消耗计算资源。
        深度相机:通过红外结构光原理,测出物体与相机之间的距离,因此可以节省大量的计算;但目前多数深度相机还存在测量范围窄、噪声大、视野小、易受日光干扰、无法测量透射材质等诸多问题。

经典视觉SLAM框架

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

2.视觉里程计(Visual Odometry, VO)。估算相邻图像间相机的运动,以及局部地图的样子。
        VO能够通过相邻帧间的图像估计相机运动,并恢复场景的空间结构,它和实际的里程计一样,只计算相邻时刻的运动。但是由于里程计的工作方式,导师误差会传递,形成累计漂移。

3.后端优化(Optimization)。后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。
        主要指SLAM过程中噪声的问题。后端优化要考虑的,就是如何从有噪声的数据中估计整体系统的状态,以及这个状态估计的不确定性有多大(最大后验概率估计MAP)。

4.回环检测(Loop Closing) 。回环检测判断机器人是否到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。
        主要解决位置估计随时间漂移的问题。通过识别到过的场景,并把“A与B是同一个点”的信息告诉后端优化算法;然后后端根据这些新的信息,把轨迹和地图调整到符合回环检测结果的样子。这样,如果我们有充分而且正确的回环检测,就可以消除累积误差,得到全局一致的轨迹和地图。

5.建图(Mapping)。它根据估计的轨迹,建立与任务要求对应的地图。.
        大体分为度量地图和拓扑地图。度量地图强调精确地表示地图中物体的位置关系,通常用稀疏与稠密对其分类。稀疏地图并不需要表达所有的物体;稠密地图着重于建模所有看到的东西。拓扑地图更强调地图元素之间的关系。拓扑地图由节点和边组成,只考虑节点间的连通性。

SLAM问题的数学表述

若机器人在离散时刻t=1,...,kt=1,...,kt=1,...,k中的位置为x=x1,...,xkx=x_1,...,x_kx=x1​,...,xk​,那么从k−1k-1k−1时刻到kkk时刻,机器人的位置可以抽象成一个运动方程:xk=f(xk−1,uk,wk)x_k=f(x_{k-1},u_k,w_k)xk​=f(xk−1​,uk​,wk​)。其中,uku_kuk​是运动传感器读数(输入),wkw_kwk​为噪声
        假设地图中有NNN个路标y1,...,yNy_1,...,y_Ny1​,...,yN​,当机器人在xkx_kxk​位置上看到某个路标点yjy_jyj​,产生了一个观测数据zk,jz_{k,j}zk,j​,同样可以抽象成一个观测方程:zk,j=h(yj,xk,vk,j)z_{k,j}=h(y_j,x_k,v_{k,j})zk,j​=h(yj​,xk​,vk,j​)。其中,vk,jv_{k,j}vk,j​是这次观测里的噪声。

实践部分

使用的vm虚拟机,ubuntu20.04版本。

首先是基础的创建文件(vim记得要sudo权限,第一次没加没法写入。)

        书里示例程序:

        使用g++编译,并运行out文件:

        为了便捷管理未来的项目,书里介绍了cmake生成makefile

        使用命令sudo cmake .编译

        生成的Makefile可以用make命令进行

这一节都是基础,之前基本都用过学过,包括后面的库函数之类的,不多写了

【视觉SLAM十四讲】学习笔记-第二讲相关推荐

  1. 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 ​​​​​​​ lin ...

  2. 视觉SLAM十四讲学习笔记-第二讲-初识SLAM

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 "定位"和"建图",可以看成感知的"内外之分". ...

  3. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-三角测量和实践

     专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第 ...

  4. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵

    专栏系列文章如下:  专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLA ...

  5. 视觉SLAM十四讲学习笔记---前三讲学习笔记总结之SLAM的作用、变换和位姿表示

    经过半年学习SLAM相关知识,对SLAM系统有了一些新的认识,故回看以前的学习记录,做总结和校正. 前三讲学习笔记如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉S ...

  6. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-特征点法和特征提取和匹配实践

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  7. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的实践-高斯牛顿法和曲线拟合

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  8. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  9. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  10. 视觉SLAM十四讲学习笔记-第四讲-Sophus实践、相似变换群与李代数

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

最新文章

  1. Swift 中使用 SQLite——批量更新(事务处理)
  2. 计算机视觉顶会上的灌水文都有哪些特征?
  3. SAP Link Between Material Document and Accounting Document Table
  4. mysqld与mysqld_safe的区别
  5. IHostingEnvironment VS IHostEnvironment - .NET Core 3.0中的废弃类型
  6. apache+tomcat配置
  7. windows 弹shell_Windows系统常用免费软件“红黑榜”
  8. AI+BI,真的如想象中的那么美好吗?
  9. Halcon 一维码(条形码)
  10. watson语音识别下载
  11. MVI - 继续来凑个热闹
  12. JAVA中数组和集合的区别
  13. html中怎样设置邮件地址,我该如何为自己的域名设置邮箱地址呢?
  14. 机器学习系列文章:Apriori关联规则分析算法原理分析与代码实现
  15. c语言舍弃字符串的前一部分,C语言札记
  16. Theil-Sen Median斜率估计和Mann-Kendall趋势分析:以多年NPP数据为例
  17. poi 启用保护后取消_关于POI锁定保护Excel表格后的操作
  18. 《周志明的软件架构课》学习笔记 Day13
  19. android梅花形布局,技法介绍——画梅花时的布局
  20. 电脑diy配件产品导购,装机硬件资讯

热门文章

  1. android分享到微博客户端,开发一个Android微博客户端+Web后台
  2. 联想台式电脑计算机打不开,lenovo电脑开不了机的三种解决方法
  3. 运营商计算机笔试题库及答案,计算机笔试题库及答案
  4. 系统多个版本excel的切换
  5. 2022年度盘点:十大最佳开源SLAM算法
  6. 企业知识分享系统的设计与实现
  7. 5G NR QC-LDPC简介(一)
  8. 智慧监狱AI视频分析识别算法
  9. 信号处理--线性卷积与循环卷积
  10. 浏览器内核WebKit编年史