讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下:
(02)Cartographer源码无死角解析- (00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/127350885
 
文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→官方认证{\color{blue}{文末正下方中心}提供了本人 \color{red} 联系方式,\color{blue}点击本人照片即可显示WX→官方认证}文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→官方认证

一、前言

通过前面的一系列博客,已经完成了2D点云扫描匹配:含相关性暴力搜索匹配以及ceres扫描匹配的讲解。总得来说,关于Cartographer前端数据处理以及前端位姿优化的相关代码已经深入解析。那么接下来,就是对后端部分代码讲解,这里暂时还是以2D后端优化为例,后续再向3D扩展。后端优化的的代码主要集中在如下文件:

src/cartographer/cartographer/mapping/internal/2d/pose_graph_2d.cc

源码中的实现,主要参考SPA论文:Efficient Sparse Pose Adjustment for 2D Mapping
论文翻译:https://blog.csdn.net/u014527548/article/details/106238658

二、位姿图理论

Cartographer 后端优化是使用位姿图的方式,如果了解g2o的朋友应该知道,图的核心在于点(节点)与边的建立,边主要起到约束作用,Cartographer 位姿图中包含了两种约束:子图内\color{red}子图内子图内 与 子图间\color{red}子图间子图间 约束,另外在回环检测中会计算子图间约束。

1、什么是图

由节点和边组成的一种数据结构, 节点之间的关系可以是任意的, 图中任意两节点之间都可能相关(存在边)。

2、什么是位姿图

SPA 论文中对位姿图的定义: 位姿图是一组通过非线性约束连接的机器人位姿, 这些非线性约束是从对附近位姿共有的特征的观察中获得的。位姿图是一种图, 节点代表位姿, 边代表 2 个位姿间的相对坐标变换(也叫约束),如下三角形表示机器人位姿, 三角形之间的连线表示约束(坐标变换):

如果对于图优化比较陌生的朋友可以参考本人博客:史上最简SLAM零基础解读(10.1) - g2o(图优化)→简介环境搭建(slam十四讲第二版为例)

3.什么是优化

由于前端里程计会有累计误差, 那有没有一种方法可以将这种累计误差减小甚至消除掉呢?这就是优化的目的与作用。

左边表示没有优化之前、中间表示优化之后、右边表示真实地图。可以明显看到优化之后的精度提升较大。

三、残差项构建

通过前面博客的了解,可以知道优化问题核心就是在于残差项的构建,这里粘贴一下源码中的图示:

总的来说,可以分为如下几个步骤

第一步:\color{blue} 第一步:第一步: 确定 2 个节点在 global 坐标系下的相对位姿变换。
第二步:\color{blue} 第二步:第二步: 通过其他方式再次获取这 2 个节点的相对位姿变换
第三步:\color{blue} 第三步:第三步: 对这 2 个相对位姿变换的差 的最小二乘问题进行求解
第四步:\color{blue} 第四步:第四步: 进行求解之后会得到一个增量

(02)Cartographer源码无死角解析-(53) 2D后端优化→位姿图优化理论(SPA)讲解、核型函数调用流程相关推荐

  1. (02)Cartographer源码无死角解析-(48) 2D点云扫描匹配→扫描匹配基本原理讲解,代码总体框架梳理AddAccumulatedRangeData()

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录 ...

  2. (02)Cartographer源码无死角解析-(52) 2D点云扫描匹配→ceres扫描匹配:CeresScanMatcher2D→栅格地图残差

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录 ...

  3. (02)Cartographer源码无死角解析-(50) 2D点云扫描匹配→相关性暴力匹配2:RealTimeCorrelativeScanMatcher2D

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录 ...

  4. (02)Cartographer源码无死角解析-(49) 2D点云扫描匹配→相关性暴力匹配1:SearchParameters

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录 ...

  5. (02)Cartographer源码无死角解析-(32) LocalTrajectoryBuilder2D::AddRangeData()→点云的体素滤波

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录 ...

  6. (02)Cartographer源码无死角解析-(05) 程序运行常见错误与解决→模拟错误

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-接如下: (02)Cartographer源码无死角解析- (00)目录_ ...

  7. (02)Cartographer源码无死角解析-(04) 熟悉bag文件,配置.launch与.lua文件,初步调参

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录 ...

  8. (02)Cartographer源码无死角解析-(01) 环境搭建,demo运行,ROS一键安装_清除各种疑难杂症

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析链接如下: (02)Cartographer源码无死角解析-(00)目录_最 ...

  9. (01)ORB-SLAM2源码无死角解析-(65) BA优化(g2o)→闭环线程:Optimizer::OptimizeEssentialGraph→本质图优化

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的(01)ORB-SLAM2源码无死角解析链接如下(本文内容来自计算机视觉life ORB-SLAM2 课程课件): (0 ...

最新文章

  1. DNA复制体结构和工作原理首次被揭示
  2. 如何用jlink+jflash烧写stm32f103CB的option bytes 和程序
  3. springsecurity sessionregistry session共享_不用 Spring Security 可否?试试这个小而美的安全框架...
  4. 网页 php pdf文件怎么打开是乱码,打开php文件乱码的解决方法
  5. 转 最小凸包算法(Convex Hull)(1)-Graham扫描法 -计算几何-算法导论
  6. SpringBoot+Vue.js实现大文件分片上传、断点续传与极速秒传
  7. Bzoj4542--Hnoi2016大数
  8. OpenCV C++ 常用功能
  9. Building libmesh with Petsc support
  10. python判断是不是整数_在Python中确定值是否为整数
  11. 游戏编程之路 -- 《Windows游戏编程大师技巧》第一章 笔记
  12. 常用cmd操作Redis的命令
  13. 第二届上汽零束SOA平台开发者大会揭幕,智能汽车生态加速落地
  14. 帖子—评论的数据库设计和代码实现(思路记录)
  15. Enterprise Architect安装使用
  16. hp 服务器主板如何查看型号,hp台式电脑主板型号怎么查看
  17. 东子破解的quartz7月2号找到的很好这个
  18. 如何编写android ANE
  19. 耳机插入电脑没反应找不到realtek音频管理器
  20. MedianFlow跟踪算法

热门文章

  1. 理论+实验:MySQL高级SQL语句
  2. 利用wget批量下载http目录下文件
  3. 绿之韵人民日报,张秀蓉创业事迹
  4. 中小企业信息化咨询方案
  5. 6S大气传输模型修改源码添加、自定义卫星光谱响应(以HJ-1B CCD为例)
  6. 计算机专业毕业设计题目python-全新计算机专业毕业设计选题(毕业论文题目)...
  7. 郑正中:中国商业智能的应用特点
  8. 图形视图界面 图形效果
  9. 上海德卡实验室浅谈实验室建设
  10. Python3 SyntaxError: Non-UTF-8 code starting with ‘\xe3‘ in file xxx.py