-
2022-04-27 11:31:40
前言
在学习《视觉SLAM十四讲》第10讲中位姿图优化时,误差函数右乘形式的雅克比矩阵如何推导?小白尝试推导一下书上的最后一步,若有错误还请指出。
推导过程
最后附上如何从第二步推导出右乘形式雅克比矩阵的文章链接:SLAM14讲学习笔记(七)后端(BA与图优化,Pose Graph优化的理论与公式详解、因子图优化)更多相关内容 -
视觉slam十四讲.pdf
2021-12-18 20:16:56视觉slam、自动驾驶、导航、地图构建、机器人定位 -
视觉SLAM十四讲第十讲
2020-10-24 15:32:07第十讲:后端 1 本节目标 理解后端的概念。 理解以 EKF 为代表的滤波器后端工作原理。 理解非线性优化的后端,明白稀疏性是如何被利用的。 使用 g2o 和 Ceres 实际操作后端优化。 一、概述 1)状态估计的概率解释 ...第十讲:后端 1
本节目标
- 理解后端的概念。
- 理解以 EKF 为代表的滤波器后端工作原理。
- 理解非线性优化的后端,明白稀疏性是如何被利用的。
- 使用 g2o 和 Ceres 实际操作后端优化。
知识点整理
本讲主要是针对长时间内最优轨迹和地图的优化,减小累积误差对长时间运动带来的影响。
1、批量的处理方式:考虑在很长一段时间内的状态估计问题,而且不仅使用过去的信息更新自己的状态,也会用未来的信息来更新自己。
2、渐进的处理方式:当前状态只由过去的时刻决定,甚至只由前一时刻决定。
3、当没有运动方程时的处理方式:认为确实没有运动方程,或假设相机不动,或假设相机匀速运动。此时非常类似于SfM(即通过一组图像来恢复运动和结构,但是SfM中允许使用完全无关的图像),SLAM中的图像有时间上的先后顺序。
4、由于每个方程都受噪声的影响,所以把位姿x和路标y看成服从某种概率分布的随机变量,会随着运动和观测数据的到来进行更新。
5、当将状态量和噪声项以高斯分布来模拟时,均值可看作是对变量最优值的估计,而协方差矩阵则度量了它的不确定性。
6、对状态进行估计,可以得到当前状态的估计=似然*先验,其中似然由观测方程给定,先验表示当前状态是基于过去所有的状态估计得到的。当前状态估计至少会受到前一时刻状态的影响,所以,对此引出两种不同的方法。
1)马尔科夫性:即认为当前时刻状态仅与前一时刻状态有关,与之前时刻的状态无关。此时就可以得到以扩展卡尔曼滤波为代表的滤波器方法
2)当前时刻与之前所有状态都有关:非线性优化方法
7、线性系统的最优无偏估计——卡尔曼滤波:做的工作是“如何把k-1时刻的状态分布推导至k时刻”,即只需要维护一个状态量,对它不断的进行迭代和更新即可。根据贝叶斯定律可以得到下述等式,前一项表示似然函数,后一项表示根据k-1时刻的状态构成的先验
将步骤分为预测和更新两个阶段。其中,预测阶段显示了如何从上一时刻的状态,根据输入信息来推断当前时刻的状态分布
推导过程中使用到的一个小技巧是根据高斯分布的特点,针对指数部分比较其一次项和二次项的系数。
然后注意到,此时的卡尔曼增益,使用方差的先验分布计算得到,然后再使用该增益即可得到方差的后验估计。
8、非线性系统和扩展卡尔曼滤波器:在某点附近考虑运动方程及观测方程的一阶展开,只保留一阶项,即可将非线性系统转化为线性系统。此时给出的是单次线性近似下的最大后验估计。
9、当想在某段时间内估计某个不确定量时,可以尝试用EKF。
10、EKF的局限:
假设了马尔科夫性,当出现回环时,滤波器将会难以处理
在推导过程中,只在固定点上做一次Taylor展开,当具有强烈非线性时就会存在加大的非线性误差。而非线性优化会在迭代中,状态估计发生改变之后,会重新对新的估计点进行Taylor展开
由于EKF将非线性系统转化为线性系统,所以需要存储状态量的均值和方差,并对它们进行维护和更新,当路标数也放进去时存储量会很大。
11、BA:从视觉重建中提炼出最优的3D模型和相机参数。从每一个特征点反射出来的几束光线,在对相机姿态和特征点空间位置做出最优调整之后,最后收束到相机光心的过程。它类似于求解只有观测方程的SLAM问题。目前,BA不仅具有很高的精度,也开始具有良好的实时性,这一点借助于BA的稀疏性
从世界坐标系中的一个点P出发,把相机的内外参数和畸变都考虑进来,最后投影成像坐标。在这里,路标即为这里的三维点P,观测数据则像是像素坐标。如下图所示
当时用非线性优化思想时,需要不断求解增量方程的增量△x
注意,此时的E和F均为整体目标函数对整体变量的导数,将是由很多个小分块构成的大块矩阵,可以使用高斯牛顿法或列文伯格-马夸尔特方法求解,其中使用具体哪一种方法的差别为H是取JTJ还是JTJ+λI。F表示整个代价函数在当前状态下对相机姿态的偏导数,E表示该函数对路标点位置的偏导数
13、矩阵H的稀疏性可以使用图优化方法来实现运算的加速。误差项eij仅描述在位姿i状态下看到路标j这一件事,对其余部分的变量的导数为0.这体现了该误差项与其他路标和轨迹无关的特性。下图表示了图优化结构与增量方程的稀疏性之间的关系
14、Schur消元:将H△x=g变成下述形式,其中B和C都是对角块矩阵,而E是非对角。
所以,需要使用高斯消元,去掉右上角的矩阵E。即可得
如此一来,根据第一行的值,只需要求解C的逆矩阵,可以得到△xc,然后再带入△xc,即可得△xp。这一步也称为边缘化,即做条件概率展开
15、物理意义:S矩阵的非对角线上的非零矩阵快,表示了该出对应的两个相机变量之间存在着共同观测的路标点,称为共视(co-visibility)
16、鲁棒核函数:核函数保证每条边的误差不会大的没边而掩盖掉其他的边,即将原先的二范数度量变成一个光滑的、增长没有那么快的函数,这可以使得整个优化结果更为稳健 -
视觉SLAM十四讲配套代码
2020-12-02 10:21:02视觉SLAM十四讲配套代码 -
【视觉SLAM十四讲】李群与李代数.pdf
2021-08-27 14:15:44视觉SLAM十四讲; -
slam十四讲第二版ch12所需数据集
2021-12-27 23:03:56slam十四讲第二版ch12所需数据集 -
《视觉SLAM十四讲》程序中的3rdparty文件夹
2021-03-18 19:51:17《视觉SLAM十四讲》程序中的3rdparty文件夹,里面包含ceres、sophus、g2o等第三方库。设置的粉丝可下载,关注博主后即可获得,不需要积分 -
Tsai分享:资源分享(1)——视觉SLAM十四讲及视频-附件资源
2021-03-02 15:03:24Tsai分享:资源分享(1)——视觉SLAM十四讲及视频-附件资源 -
【视觉SLAM十四讲】 三维空间的刚体运动(第三章实践作业)
2021-06-19 17:33:51视觉SLAM十四讲;Eigen;QR和Cholesky矩阵分解 -
视觉slam十四讲 第二版 pdf_第二版SLAM上帝视角,它来啦!!!
2020-12-15 16:03:01致阅读过第一版论文的SLAM学习者不知道大家是否觉得第一版SLAM综述论文干货满满?现在来自原作者百川的第二版SLAM综述论文也出来了!!!(文末获取论文) V2版论文截图 ...致阅读过第一版论文的SLAM学习者
不知道大家是否觉得第一版SLAM综述论文干货满满?
现在来自原作者百川的第二版SLAM综述论文也出来了!!!
(文末获取论文)
V2版论文截图
文章结构简析
让我们快速回顾一下第一版论文
1.是否看完《视觉SLAM十四讲》,敲完例程代码,仍然不知道如何开始自己的SLAM研究第一步?
2.是否知道选择什么样的传感器来进行slam系统搭建?激光or相机?激光和相机分哪几种?又有哪些厂家可以推荐?
3.是否知道orb-slam, vins等各种slam系统以及各种改进版,和Elasticfusion, Bundle Fusion等各种fusion,以及稀疏,半稀疏,稠密slam却不知道如何从大局去分门别类?
4.是否看到关于单目深度估计,尺度恢复,识别分割,动态语义等方向的论文,不知如何把论文知识点归类?
5.是否知道单目,双目,深度相机,事件相机以及全景相机的构建原理,但是不知道其支持适配的slam系统?
6.是否知道如何快速标定不同传感器之间的参数,例如多相机,相机与惯导,激光雷达与惯导,相机与激光雷达,相机与深度传感器。
7.是否知道用人用声纳在水下,无线信号如wifi也可以构建slam系统?
8.是否各种微信软文,各种知乎专栏,各种github仓库收藏了一大堆,仍然搭建不起来自己的slam系统观?这篇综述性总结通通告诉你,作者耗时2个月精心打造且仍在不断更新,给你最直接的,最高效的SLAM领域上帝视角。不管你是slam新手,还是slam老手,你都将在这篇文章中得到满满的收获。
论文摘要截图
本论文主要讲述了3个大部分:激光slam,视觉slam和激光视觉等多传感器融合slam。1.激光slam涉及激光传感器的原理介绍,产品选型,开源激光slam系统的介绍,比较,分类。而后介绍了深度学习在激光slam中的应用,以及激光slam的挑战和未来。2.视觉slam涉及视觉传感器的原理介绍,产品选型,开源视觉slam系统和视觉惯性系统的介绍,比较,分类。而后介绍了深度学习在视觉slam中的应用,以及视觉slam的挑战和未来。3.激光视觉等多传感器slam系统涉及多传感器之间的内外参标定方法(v1版论文主要是激光和视觉两种传感器,v2涉及其余传感器比如声纳,无线wifi信号),以及从硬件层,数据层,任务层去介绍现在的多传感器融合工具和融合技术,融合产品,最后介绍了多传感器融合的挑战与未来。
部分逻辑xmind图
论文部分截图
最新版论文链接 请移步原作者公众号“百川录”(Baichuan_Share) 回复 "论文" 二字即可获得,且作者在不断更新中。
-
SLAM十四讲(第二版)所有第三方库库.zip
2020-03-31 10:33:35SLAM十四讲(第二版)所需库,包括:C e r e s,G 2 O,S o p h u s,D B O W 等等。 -
视觉SLAM十四讲第四讲
2020-10-14 22:07:07第四章 李群与李代数 主要目标 理解李群与李代数的概念,掌握 SO(3), SE(3) 与对应李代数的表示方式。 理解 BCH 近似的意义。 学会在李代数上的扰动模型。 使用 Sophus 对李代数进行运算。 旋转矩阵自身是带有约束...第四章 李群与李代数
主要目标
- 理解李群与李代数的概念,掌握 SO(3), SE(3) 与对应李代数的表示方式。
- 理解 BCH 近似的意义。
- 学会在李代数上的扰动模型。
- 使用 Sophus 对李代数进行运算。
旋转矩阵自身是带有约束的(正交且行列式为 1)。它们作为优化变量时,会引入额外的约束,使优化变得困难。通过李群—李代数间的转换关系,我们希望把位姿估计变成无约束的优化问题,简化求解方式。
一、李群与李代数基础
说三维旋转矩阵构成了特殊正交群 SO(3),而变换矩阵构成了特殊欧氏群 SE(3)。它们写起来像这样:
1)群
群(Group)是一种集合加上一种运算的代数结构。我们把集合记作 A,运算记作 ·,那么群可以记作 G = (A, ·)。群要求这个运算满足以下几个条件:
1.封闭性: ∀a1, a2 ∈ A, a1 · a2 ∈ A.
2.结合律: ∀a1, a2, a3 ∈ A, (a1 · a2) · a3 = a1 · (a2 · a3).
3.幺元: ∃a0 ∈ A, s.t. ∀a ∈ A, a0 · a = a · a0 = a.
4.逆: ∀a ∈ A, ∃a 1 ∈ A, s.t. a · a 1 = a0.
李群是指具有连续(光滑)性质的群。
2)李代数的引入
-
视觉SLAM十四讲第五讲
2020-10-14 22:08:33第五章 相机与图像 主要目标 理解针孔相机的模型、内参与径向畸变参数。 理解一个空间点是如何投影到相机成像平面的。 掌握 OpenCV 的图像存储与表达方式。 学会基本的摄像头标定方法。 在计算机中,一张照片由很多... -
视觉slam十四讲中第十一章libopencv_core问题:
2021-01-07 20:28:08在运行feature_training.cpp时,报错: ss/usr/bin/ld: warning: libopencv_core3.so.3.3, needed by /usr/local/lib/lib 搜寻了好久大致有以下几种解决方案: 1.把该文件所在的目录放到linux动态库链接文件中: ... -
《视觉SLAM十四讲 第二版》课后习题
2022-04-19 15:48:21视觉SLAM十四讲课后习题解答 -
视觉SLAM十四讲第十一讲
2020-10-24 15:49:47第十一讲 后端2 本节目标 理解 Pose Graph 优化。 理解因子图优化。 理解增量式图优化的工作原理。 通过实验掌握 g2o 的 Pose Graph 优化与 gtsam 的因子图优化。 一、位姿图 1)Pose Graph的意义 我们可以构建一个... -
视觉SLAM十四讲学习笔记-第七讲-视觉里程计-ICP和实践
2022-03-10 00:50:43视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建_goldqiu的博客-CSDN博客 视觉SLAM十四讲... -
视觉SLAM十四讲第七讲
2020-10-19 22:07:06第七章 视觉里程计 1 主要目标 理解图像特征点的意义, 并掌握在单幅图像中提取出特征点及多幅图像中匹配特征点的方法。 理解对极几何的原理,利用对极几何的约束,恢复出图像之间的摄像机的三维运动。 理解 PNP ... -
视觉SLAM十四讲
2022-01-25 11:11:581、激光SLAM 激光SLAM相对成熟,比如2005年出版的《概率机器人》中就介绍了很多关于激光SLAM的知识,在ROS里也能找到许多关于激光定位、激光建图的现成软件。 2、单目SLAM 在相机移动时,近处的物体移动快,远处... -
视觉SLAM十四讲 第9讲 后端1 贝叶斯法则 式9.5推导
2021-12-27 20:52:55视觉SLAM十四讲中的第9讲 式9.5的推导,下面我们来看如何对状态进行估计。按照贝叶斯法则,把zk和xk交换位置,有式9.5 -
Tsai分享:资源分享(1)——视觉SLAM十四讲及视频
2019-03-07 10:13:53Tsai分享:资源分享(1)——视觉SLAM十四讲及视频 一、视觉SLAM十四讲 如若转载请附上链接:https://blog.csdn.net/weixin_43338642/article/details/88287121 链接:... -
《视觉SLAM十四讲》ch13/第十三章 视觉里程计 实践章节学习详解
2021-12-27 21:55:05《视觉SLAM十四讲》 第二版 ch13/第十三章详解 -
视觉SLAM十四讲第二版踩坑总结
2021-02-05 21:42:47关于视觉SLAM14讲第二版中遇到的安装与编译问题 -
视觉SLAM十四讲--第13讲 实践:设计SLAM系统(最详细的代码调试运行步骤)
2021-12-03 15:42:40文章目录 一、 代码目录介绍及运行步骤 代码目录: 如何运行 二、 代码调试问题 1....继续加油~ 参考资料链接整理: 重读《视觉SLAM十四讲》ch13实践设计SLAM系统 一个基于深度学习回环检测模块的简单双目 SLAM 系统 -
视觉SLAM十四讲第六讲
2020-10-15 19:30:11第六章 非线性优化 主要目标 理解最小二乘法的含义和处理方式。 理解高斯牛顿法(Gauss-Newton)、列文伯格—马夸尔特方法(Levenburg Marquadt)等下降策略。 学习 Ceres 库和 g2o 库的基本使用方法。 一、状态... -
视觉SLAM十四讲第八讲
2020-10-20 20:07:02第 8 讲 视觉里程计 2 本节目标 理解光流法跟踪特征点的原理。 理解直接法是如何估计相机位姿的。 使用 g2o 进行直接法的计算。 一、直接法 直接法拥有如下的缺点: 1.、关键点的提取与描述子的计算非常耗时。 2、 ... -
视觉SLAM十四讲学习笔记-第七讲-视觉里程计-单应矩阵和实践
2022-02-19 21:35:02视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建_goldqiu的博客-CSDN博客 视觉SLAM十四讲... -
视觉SLAM十四讲 第13讲 建图
2020-06-17 15:12:38引言(地图的五个作用\color{red}{地图的五个作用}地图的五个作用)13.2 单目稠密重建1、立体视觉2、单目稠密重建技术3、实践-单目稠密重建4、实验3中存在的问题与解决13.5 更常用的稠密建图--RGBD1、点云地图2、... -
视觉SLAM十四讲第二讲
2020-10-13 21:46:51第二章 初识 SLAM 1、相机分类 相机可以分为单目相机(Monocular)、双目相机(Stereo)和深度相机(RGB-D)三大类。 1)单目相机 只使用一个摄像头进行 SLAM 的做法称为单目SLAM(Monocular SLAM)。这种传感器结构... -
视觉SLAM十四讲第一讲
2020-10-13 21:04:40第一讲 预备知识 SLAM 是 Simultaneous Localization and Mapping 的缩写,中文译作“同时定位与地图构建”。 它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己...