(02)Cartographer源码无死角解析-(53) 2D后端优化→位姿图优化理论讲解、

news2024/11/20 23:19:53

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

一、前言

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

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

 

二、理论分析

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

1、什么是图

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

2、什么是位姿图

SPA 论文中对位姿图的定义: 位姿图是一组通过非线性约束连接的机器人位姿, 这些非线性约束是从对附近位姿共有的特征的观察中获得的。位姿图是一种图, 节点代表位姿, 边代表 2 个位姿间的相对坐标变换(也叫约束),如下三角形表示机器人位姿, 三角形之间的连线表示约束(坐标变换):
在这里插入图片描述
如果对于图优化比较陌生的朋友可以参考本人博客:史上最简SLAM零基础解读(10.1) - g2o(图优化)→简介环境搭建(slam十四讲第二版为例)

3.什么是优化

由于前端里程计会有累计误差, 那有没有一种方法可以将这种累计误差减小甚至消除掉呢?这就是优化的目的与作用。
在这里插入图片描述
左边表示没有优化之前、中间表示优化之后、右边表示真实地图。可以明显看到优化之后的精度提升较大。

 

五、结语

 
 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/191143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ardunio+sx1268】与【esp32+sx1268】实现不同主控单片机lora通讯

2023.21 在前文 esp32 sx1268 的 spi 驱动调通之后,又尝试 ardunio sx1268 驱动,实现不同主控对于lora模块 sx1268 的控制 文章目录1. 实验结果2.硬件描述2.1 sx12682.2 ardunio ATmega3283.接线实物图5.开发环境6.代码实现关于esp32sx1268 的驱动以及代…

爆款制作获1200w播放,B站UP主+品牌如何迈入2023

1月13日,bilibili 2022年度百大UP主已经揭开帷幕,今年延续2021年的评审标准,依然从专业性、影响力、创新性三个维度进行评选。来源-B站这套评审标准已经实施两年,早期的百大评选上榜的更多是来自知名度高、影响力广的UP主&#xf…

2.关系数据库

学习过程参考(后续章节同) 【公开课】数据库系统概论(王珊老师)(完结) 《数据库系统概论》思维导图 【专栏必读】数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详…

中国电子学会2021年09月份青少年软件编程Scratch图形化等级考试试卷三级真题(含答案)

2021-09 Scratch三级真题 分数:100 题数:38 一、单选题(共25题,每题2分,共50分) 1. 程序中要使用不确定的数值,这时要用到的是?(D ) A、图章 …

Github如何使用详细介绍(保姆级教学)

前言 📜 “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等,IT技术干货、学习经验、面试资料、刷题记录,以及遇到的问题和解决方案,记录自己成长的点滴 目录 一、Github如何搜索 二、如何判断一个项目好不好呢&#xff1f…

yolov5 模型输出的格式解析

工作需要, 又需要对yolov5 输出的模型进行转onnx 再用c进行后续处理。 两个问题。 yolov5 的模型输出的是个啥啊?转成onnx后输出的和yolov5输出的处理是否一样呢? 关于第一个问题,yolov5 的模型输出的是个啥啊? 以前…

【Rust】14. Rust 中的函数式语言功能:迭代器与闭包

14.1 闭包:捕获环境的匿名函数 14.1.1 闭包会捕获其环境 14.1.2 闭包类型推断和注解 闭包并不总是要求像 fn 函数那样在参数和返回值上注明类型闭包通常很短,并只关联于小范围的上下文而非任意情境如果尝试对同一闭包使用不同类型则就会得到类型错误&am…

selenium自动化测试框架

一、Selenium自动化测试(基于python) 1、Selenium简介: 1.1 Selenium是一款主要用于Web应用程序自动化测试的工具集合。Selenium测试直接运行在浏览器中,本质是通过驱动浏览器,模拟浏览器的操作,比如跳转…

测试碎碎念(基础篇_2)

一、软件测试的基础概念1.1 需求在企业中,需求 主要分为 用户需求 和 软件需求~用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务;用户需求 一般是比较简略的&#xf…

Flink官方例子解析:带窗口的WordCount

1. 简介 本篇介绍的是带窗口的WordCount,使用窗口函数countWindow。 countWindow是一种计数窗口,有固定窗口和滑动窗口两种用法。 1.1 固定窗口 countWindow(windowSize) , windowSize指的是窗口大小。 例如countWindow(5), 说明一个窗口可…

零基础机器学习做游戏辅助第七课--模型的保存与加载

一、保存模型 当我们训练好模型后将它保存下来,这样下次使用时就可以直接加载模型进行工作了。 常见的保存模型有三种: 只保存权重文件:model.save_weights(num_weights) 当我们使用save_weights保存权重文件时,没有指定后缀名,则会保存三个文件在指定目录下

linux 下ARC的中断机制

linux 下ARC的中断机制 一、Idu 中断控制器初始化 Idu 是arc 处理器内部中断控制模块, 类似于arm 内部的gic 中断控制模块 首先,Idu中断控制器在初始化时, 会解析DTS信息中定义了几个idu控制器,每个Idu控制器注册一个struct irq_domain数据…

嵌入式Linux系统开发笔记(十三)

U-Boot烧写验证测试 正点原子专门编写了一个软件来将编译出来的.bin 文件烧写到 SD 卡中,这个软件叫做“imxdownload” 【1】将 imxdownload 拷贝到工程根目录下 【2】给予 imxdownload 可执行权限 我们直接将软件 imxdownload 从 Windows 下复制到 Ubuntu 中以…

【干货】Windows下cmd中cd命令的使用方法

【干货】Windows下cmd中cd命令的使用方法什么是cd命令cd命令的使用打开cmdcd命令的常用方法进入某个盘进入某个目录返回上一级目录返回至当前工作目录下的根目录参考什么是cd命令 此处介绍两个概念: cmd:命令提示符cd:全称change directory…

model.train()与model.val()

一、问题描述 需要将mmpose框架下训练的模型单独保存出来,做后续处理。用torch.save()直接保存模型mmpose_model.pt,然后重新搭建模型,把保存的模型参数加载进去,得到scratch_model.pt使用scratch_model.pt进行推理,与…

基于Jmeter的百万级tps性能测试实践

【CSDN 编者按】如何对系统的承载能力和响应时间做出准确的评估,为资源的合理配置及优化提供依据,性能测试就成了必不可少的测试手段,本文会给读者推荐一款业界占有率最高的一款性能测试工具——Jmeter。 本文作者朱凯是环信测试主管&#x…

TCP实现回显服务器及客户端

目录 前言: Socket API SeverSocket API TCP中的长短连接 TCP实现回显服务器 代码实现(有详细解释) TCP实现回显客户端 代码实现(有详细注释) 小结: 前言: 上篇文章介绍了TCP的特点。由…

195136-58-4,2‘,7‘-Difluorofluorescein,2,7-二氟荧光素

产品描述:2,7-二氟荧光素中Fluorescein (Uranine) 生物应用中的荧光示踪剂,Fluorescein (Uranine) 是一种具有代表性的绿色荧光团,已被广泛用作实用绿色荧光探针的支架。结构式:理论分析:中文名&#xff1a…

1608_PC汇编语言_first例程分析

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 这一次的笔记主要是梳理一个例程以及部分辅助信息。 为什么要学习汇编语言呢?现在的高级语言开发效率高,而且有着不错的效率,是…

Compose之跨平台Activity页面

前言 Compose(Jetpackjb)是可以跨平台的 目前跨平台主流的页面导航方式一般有两种 一种是都在同一个页面内进行页面替换类型的导航,类似于单Activity,多Fragment 另一种是不同的页面在不同的页面载体上,类似多Activity 两种页面导航方式都可以使用,但我比较偏向于使用多Ac…