cartographer中优化简析及相关优化资料总结

1.扫描匹配

CeresScanMatcher2D精匹配

位置和旋转的构建残差比较简单;

主要难点是论文中提到的那个点云匹配的最小二乘优化公式用的 (1 - M * T* hk)²

代码中实现的是用的空闲的概率求最小来构建残差的(占用最大,最好匹配位置)

Cartographer(10)CeresScanMatcher2D_ceres grid2d-CSDN博客

2.后端回环node与submaps;node与node; IMU;odom;

  核心思想:构建测量的相对位姿或位置 与 估计值(待优化值)构建残差的最小二乘问题(图优化中术语叫节点和边,节点对应每个激光node点的位姿,边对应这里的约束(constraint,相对位姿))。 所有求导方式构建为自动求导, 主要角度使用的轴角计算残差,中间的运算用到了四元数的插值和四元数的运算QuaternionParameterization

  landmark 优化的同时会优化附近的node节点

 ceres库解析:很详细,carto中的所有需要注意的东西都有提到,非常好的博客,可以作为主线研究一下最小二乘问题。

【SLAM】Ceres优化库超详细解析_ceres库-CSDN博客
 

重载()作用

 一文助你Ceres 入门——Ceres Solver新手向全攻略-CSDN博客

贴几个有用的链接

官网给出的代价函数

Cost functions — Cartographer documentation

Cartographer ROS Integration — Cartographer ROS documentation

Real-Time Loop Closure in 2D LIDAR SLAM

【论文阅读】【Cartographer】Real-Time Loop Closure in 2D LIDAR SLAM 二维激光SLAM中的实时闭环检测 - 知乎

https://storage.googleapis.com/pub-tools-public-publication-data/pdf/45466.pdf

Google Cartographer SLAM 原理 (Real-Time Loop Closure in 2D LIDAR SLAM 论文详细解读)_research of cartographer laser slam algorithm-CSDN博客

3.图优化

         将图有化用简单的例子讲解的通俗易懂:顶点(位姿)与边的约束(编码器推测或地标)的

关系,通过边的关系构建线性方程组,使用最小二乘法求解最优的解(构建残差平方和函数,

求偏导),最主要在于引入了边的信息矩阵。

小结:图有化实际为通过顶点之间的关系(边)构建最小误差函数,求解最佳位姿。图构建

好以后,如何调整机器人位姿使误差最小。3篇中的一篇,第3篇matlab的代码非常值得学习

        https://heyijia.blog.csdn.net/article/details/47686523

可以配合这个视屏的第6讲的讲解

https://www.bilibili.com/video/BV1YP4y1C7La/?spm_id_from=333.999.0.0

此文中需要用到的知识:

a. 矩阵求导

【矩阵的导数运算】1_标量向量方程对向量求导_分母布局_分子布局_哔哩哔哩_bilibili

b. 2d中约束的更细致分解

 第四篇:图优化理论slam - 知乎

c. cartographer中提到的一篇论文:

 Efficient_Sparse_Pose_Adjustment_for_2D_mapping

求解 H X = -b 的稀疏求解方法。提到的LM 介绍了一种λ的更新方法

d. 状态估计:

 两篇,感觉第二篇有点瑕疵,结论有点不好理解

《机器人学中的状态估计》笔记(1)——从简单的例子开始 - 知乎

  中间插播一个最大似然估计MLE(slam14讲中最小二乘的引出):

    个人理解:已知为一组观测数据,同时假定模型(通常某个概率分布,高斯或者其他概率分布函数,其实未定)已知;代入这个假定的模型求解出现 目前观测到的数据的最大概率(通常为多个独立事件的联合概率),然后得到 模型参数。 最可能的参数得到的最可能的 模型(概率分布函数等),使得出现 以上观测数据的可能性最大。

   以下为一个视频中对贝叶斯的理解

    贝叶斯的理解比较好视频:这里结合全概率公式理解。 后验(p(原因A|观测B):理解为如果是现在的观测结果B,可能是A引发的概率);似然P(B|A)理解为 在A的条件下B发生的概率(视频中说理解的传感器的精度,如果真实值为10度,测量为B的概率);先验 p(A), 今天的温度取值可能不同,A(10,11),数据或者经验值获得; 主要难理解的是分母的p(B),传感器的观测概率,与A的关系,可以理解为传感器的测量值概率分布由传感器的固有属性决定,与今天多少温度无关。

          贝叶斯滤波与卡尔曼滤波第三讲 贝叶斯滤波的三大概率_哔哩哔哩_bilibili

  详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解-CSDN博客

  贴两个高赞回答:

   答主:石溪  提到极大似然估计的思想  

   如何通俗地理解概率论中的「极大似然估计法」? - 知乎     

    聊一聊机器学习的MLE和MAP:最大似然估计和最大后验估计 - 知乎

e. 泰勒展开:

  多元泰勒展开
  https://zhuanlan.zhihu.com/p/110146436

  泰勒展
  脑路之清奇、操作之风骚、画风之诡异、场面之震撼
  https://www.zhihu.com/question/25627482

f. 数值优化小结:

 一阶导数二阶导数的意义:数学上标量函数一阶导数可以表达函数值变化快慢,二阶导数当然是表达一阶导数的函数值变化快慢(感觉废话实际有道理); 一阶导数图像上的物理意义是斜率;而二阶导数则为斜率的变化率。 

 f‘(x)一阶导数等于0,可以求出鞍点或极值点记为x0(可能多个值)。

 区别鞍点或极值点的方法:

法一:f’(x0 + d)*  f’(x0 - d)< 0 (d为微小变量)为极值点

         当f’(x0 - d)> 0, f’(x0 + d)< 0为极大值; 当f’(x0 - d)< 0, f’(x0 + d)> 0为极小值

   f'(x0 + d)*  f’(x0 - d)>0 (d为微小变量)为鞍点

法二:f“(x0) < 0 极大值,> 0为极小值,=0 为鞍点或无意义。 

呼应前面一堆废话:f”(x)的函数值可以判断极值点的类型,表征f(x)斜率变化;f'(x)表征f(x)斜率。 f’(x)的切线斜率可以很直观得出为哪种类型的拐点(极值点,鞍点)

用x平方,x立方,x四次方结合图像理解(懒,不画图了)

加上f(x)= x 3 + 3*x2图像理解

【manim】五分钟科普微积分系列:二阶导数的几何意义_哔哩哔哩_bilibilid

梯度的理解:

1.梯度其实就是各变量偏导数的向量,一个变量x则为沿着x方向的梯度
2.而我们所说的偏导数就是指的是多元函数沿坐标轴的变化率.
3.方向导数最大值的方向为梯度方向(函数值在该点变化率最大的方向)

为何名为梯度下降:梯度值在减小,但是迭代方向是梯度的反方向(一维)

如何通俗地理解梯度下降法 - 知乎
https://www.zhihu.com/question/305638940/answer/1639782992

为什么梯度反方向是函数值局部下降最快的方向
https://zhuanlan.zhihu.com/p/24913912

正定对比于自然数的大于0记忆(特征值)

        数值优化课程:龙强老师讲的比较通俗易懂(这一部分看视频好一些,看书太累)

个人了解了一下凸优化:p4~p6; 之后就是数值优化基础核心篇:p19~p27。 作者只讲到拟牛顿法,没有讲到GN 和LM。

龙强老师的个人空间-龙强老师个人主页-哔哩哔哩视频哔哩哔哩龙强老师的个人空间,提供龙强老师分享的视频、音频、文章、动态、收藏等内容,关注龙强老师账号,第一时间了解UP主动态。致力于推广最优化、机器学习、人工智能的理论、算法及应用。icon-default.png?t=N7T8https://space.bilibili.com/1904398473/?spm_id_from=333.999.0.0

   这个同学对slam14讲的第6章的讲解:非常全面且系统,有高斯牛顿(GN)和列文伯格-马夸尔特(LM),作者还给出了一些比较有用的技巧,有点丰富,可以考虑加速。

https://www.bilibili.com/video/BV1YP4y1C7La/?spm_id_from=333.999.0.0

补充:对slam14 第6讲的推导

视觉SLAM十四讲_6非线性优化_哔哩哔哩_bilibili

g. 高博的视觉slam14讲:

   6、9、10章比较系统的梳理了整个图优化相关理论(加第4章是为了解决姿态角的迭代),理论结构比较完整,但是有些理论还是需要延伸;如非线性优化相关的理论推导和李群李代数的知识推导(作者提到不希望过多的陷入数学推导,不过还是有很多推导(* ̄︶ ̄))。

结:

heyijia三篇图优化对于cartographer足够,框架结构看slam14;其余补充靠自己;上面贴了一些比较好的网络参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值