【视觉SLAM十四讲】ch2笔记【逐行代码带你解析】【适合纯小白 ps:因为我就是】(持续更新中)

前言

       大一大二东学学西学学了一大堆,这个暑假想往难一点的方向探索探索,以后想从事机器人行业,所以先从SLAM开始,希望这个暑假能把他更新完。
ps:对于这个方向我也只是初学者,大家看的时候一定要带辩证的思维看,因为我也不敢说我写的这个内容是正确的,同时我也希望大家对我做出一些建议和反馈。

       原书代码Github链接: link
       笔者代码Github链接: link

ch2 初识SLAM

2.1.什么是SLAM

       SLAM是指Simultaneous Localization and Mapping,翻译过来就是同时定位与地图构建模型,他解决了定位与地图构建的问题,说人话就是:
       1.我在什么地方——定位
       2.周围环境怎么样——建图

2.2经典视觉SLAM框架

经典的视觉SLAM框架
       视觉SLAM的流程分为以下步骤:

2.2.1.传感器信息读取

2.2.2.前端视觉里程计

       这个就是读取了前后两张(两张只是一个假设)图片的数据,然后根据图片信息的变化估计出运动的轨迹,但是仅仅通过这种视觉里程计来估计轨迹,不可避免的就会产生误差,这个误差我们这里叫他飘移,而这种误差是累计性的,也就是估计的越多,误差就会越大,这里我们称之为累积飘移(Accumulating Drift),这将导致我们定位也不准,建图也不准,于是,我们引入了下面两种东西:后端优化和回环检测。

2.2.3.后端非线性优化

        我们原始数据的读取来自于各式各样的传感器,但是传感器的数据不可能完全精确,会有误差,这里我们称之为噪声,后端优化要考虑的问题,就是如何从这些带有噪声的数据中去估计整个系统的状态,以及这个状态估计的不确定性有多大,这里的状态包括机器人自身的轨迹,也包含地图。

        在视觉SLAM中,前端负责图像的特征提取与匹配等等,后端则主要是滤波和非线性优化算法

2.2.4.回环检测

        回环检测,又称闭环检测,主要解决位置估计随时间漂移的问题。与后端优化任务目标相同,但是使用的方法有所差异。

        回环检测与“定位”和“建图”二者都有密切的关系。事实上,我们认为,地图存在的主要意义是让机器人知晓自己到过的地方。为了实现回环检测,我们需要让机器人具有识别到过的场景的能力。它的实现手段有很多。

        视觉回环检测实质上是一种计算图像数据相似性的算法。由于图像的信息非常丰富,使得正确检测回环的难度降低了不少。

        在检测到回环之后,我们会把“A与B 是同一个点”这样的信息告诉后端优化算法。然后后端根据这些新的信息,把轨迹和地图调整到符合回环检测结果的样子。这样,如果我们有充分而且正确的回环检测,则可以消除累积误差,得到全局一致的轨迹和地图。

2.2.5.建图

        建图是指构建地图的过程。地图的形式随SLAM的应用场合而定,大体上分为度量地图拓扑地图

        度量地图
        度量地图通常用稀疏和稠密分类,稀疏地图进行了一定程度上的抽象,稠密地图着重于建模所有看到的东西,定位时用稀疏路标地图就足够了,而导航往往需要稠密地图。

        拓扑地图
        相比于度量地图的精确性拓扑地图更强调地图元素之间的关系。拓扑地图是一个图(Graph).由节点和边组成,只考虑节点间的连通性,例如只关注 A、B 点是连通的,而不考虑如何从 A点到达 B点。它放松了地图对精确位置的需要,去掉了地图的细节,是一种更为紧凑的表达方式然而,拓扑地图不擅长表达具有复杂结构的地图。如何对地图进行分割,形成节点与边,又如何使用拓扑地图进行导航与路径规划,仍是有待研究的问题。

2.3.SLAM问题的数学表述

在这里插入图片描述
        第一个方程是运动方程,xk是当前位置,xk-1是前一时刻的位置,uk是当前输入的数据,wk是噪声。

        第二个方程是观测方程,zk,j是观测数据,观测方程描述的是,当机器人在xk位置上看到某个路标点yj时,产生了一个观测数据zk,j,vk,j是这次观测里的噪声。由于观测所用的传感器形式更多,这里的观测数据z及观测方程h也有许多不同的形式。

        有了这两个方程,我们就成功节=的将SLAM“问题建模成了一个状态估计问题

2.4.ch2的实践

        书里这部分讲了如何安装ubuntu,并配置c++环境,我对这部分比较熟悉,就不写了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值