ROS学习(17):定位和地图绘制(1)

目录

0.前言

1.定位和建图

1.里程计(Odometry)

2.扫描匹配(Scan Matching)

3.结尾


0.前言

好久不见各位,前段时间忙着考试(6级和一些专业课)和摆烂断更了近30天,现在哥们回来更新了。前面讲了一大堆ROS和一些机器人理论知识,而这次我们将进入到SLAM(前面在小大小闹,现在正题开始)。

1.定位和建图

·确认机器人相对环境的状态(位姿——位置和姿态)。

·定位可以以全局框架来进行,也可以以相对一个任意起点来进行。

·定位是Slam的关键组成。

简单介绍一下经典Slam架构的主要5个部分:

1)传感器数据:指机器人中里程计、激光雷达、双目相机等传感器信息的读取。(下文的里程计里也有提及)

2)前端匹配:主要任务为对特征进行处理,估计相邻地图间的相对位姿,得到局部地图。

3)后端优化(Optimization):后端接收不同时刻前端测量的相对位姿,和回环检测的信息,对其进行优化,得到全局一致的轨迹和地图。

4)回环检测(Loop Closing):回环检测判断机器人是否曾经到达过该位姿,检测到回环则将信息传递给后端进行处理。

5)建图(Mapping):根据估计的轨迹来建立对应的地图。

同样也可以参看谷歌的SLAM算法Cartographer的结构:

1.里程计(Odometry)

里程计:从一个姿态开始,结合运动控制和测量来估计当前姿态。(传感器数据中的一种)

通常我们会使用一个速度控制器、轮式编码器、IMU等设备来动态集成可用的信息。

速度控制器理解成为加速度配比器被我认为是更优的理解方式,因为现实中速度并不可能瞬间获取到,而是经由加速度和时间的累积等来,同理的位移也是是由速度和时间的累积得来:

我们都希望一切的数据精准无误,但受限于上图的开环结构和现实中器件始终无法100%精准运行的限制导致上面的每一个环节都有可能被加入噪声(noise)干扰:

实际表现便是我们希望机器人位移3m但实际上却位移了3.1m。受限于开环控制没有反馈机制来对误差进行矫正,所以一旦噪声出现将会随着时间不断累积——表现为第二次位移位移了3.2m误差就来到了0.3m。

依旧是这张图,当噪声在加速度环节就产生了,那随着加速度和时间的不断积分变换下去,在子环节都将产生噪声累积,且噪声累积是几何关系的:

一旦噪声产生且不断累积,机器人的位置的不确定性就会不断增加,当时间无穷时,机器人就完全无法确认位置了。回归到本章的重点定位和建图,当机器人本体无法精准定位时,机器人的建图也就失去了精确性,设想实际地图的长度为6m但因为定位的噪声就导致了计算得到了5.7m或者6.3m。为了解决这种情况就出现了以后我们会讲到的回环检测。

2.扫描匹配(Scan Matching)

OK,获取到了传感器的可用数据后需要需要进行前端匹配,而扫描匹配自然就是其中一种方式。(其实扫描匹配和视觉上经常拼接是一样的,只是使用了专业名词。)

这里推荐查看:An ICP variant using a point-to-line metric这篇论文,是有关迭代最近点算法的。在ROS里面就是点云了。

·扫描匹配:跨时间收集的范围测量定位方式,扫描匹配。

在定位当中,我们需要参考世界框架来确定自己的位置,而扫描匹配大多就是使用激光雷达SLAM算法的关键模块。而在使用rgb和depth camera(rgb相机和深度相机)时又将会深度探讨最近点算法迭代的概念和一些实现机理。

扩展:刚巧的是,最近我在游玩鸣潮是经常受困于其索敌系统,于是打算在B站上看一下大佬们对这方面的解释,当我渐渐观看后巧妙的发现原来游戏的索敌系统竟和扫描匹配的思想极为类似。附上视频链接:我决定自己做一套索敌系统_单机游戏热门视频 (bilibili.com)

谷歌的slam算法Cartographer当中扫描匹配是一个相当重要的模块,扫描匹配在本地进行运作使地图本地的一致性。

3.结尾

OK,因为知识量确实很大就先到这里了,下一篇文章我们来重点扩展讲解扫描匹配,现在已经正式步入到了SLAM的领域,对于是自学的我来说也需要一点时间来思考如何才能将这些内容整理好、讲述出来。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

约课健身管理系统小程序源码

健身达人的智能助手 一款基于FastAdminThinkPHPUniapp开发的米扬约课健身管理系统,应用于健身房,健身工作室,运动会所,运动场馆,瑜伽馆,拳馆等泛健身行业的场馆中。米扬约课健身致力于为各种健身场馆打造真…

四川赤橙宏海商务信息咨询有限公司好不好?

在当今数字化浪潮下,电商行业正以前所未有的速度发展,而抖音作为短视频领域的佼佼者,其电商服务更是成为了众多品牌争相布局的热门领域。四川赤橙宏海商务信息咨询有限公司,正是这样一家专注于抖音电商服务的领军企业,…

快速阅读参考文献:kimi请求出战!

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 上篇文章,我们为大家演示了“如何使用kimi创建论文中的流程图”。今天继续为大家介绍“使用kimi快速阅读学术参考文献”。 在学术研究的海洋中,文献阅读是一项基…

解决chrome浏览器Console控制台无法粘贴代码

【问题】 浏览器调试的时候经常会用到console,粘贴内容进console控制台会报错,严重影响调试效率。 报错内容如下: Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yourself. Thi…

ZAP安全扫描工具

下载地址: 去官网下载:https://www.zaproxy.org/download/ 1.主动扫描 需要登录的网站建议使用主动扫描 也可以绕过登录进行手动扫描 再选择手动扫描后 获取到对应的token 2.自动扫描 3.查看报告 4.扫描策略的使用

Java版本Spring Cloud+SpringBoot b2b2c:Java商城实现一件代发设置及多商家直播带货商城搭建

一、产品简介 我们的JAVA版多商家入驻直播带货商城系统是一款全*面的电子商务平台,它允许商家和消费者在一个集成的环境中进行互动。系统采用先进的JAVA语言开发,提供多商家入驻、直播带货、B2B2C等多种功能,帮助用户实现线上线下的无缝对接…

【python】pop()函数

python pop() ,如何在Python的列表或数组中移除元素 使用 pop() 从列表中删除元素 pop() 语法概述 pop() 方法的语法如下: list_name.pop(index)list_name:列表变量名;内置的 pop() 方法仅需要一个可选参数;可选参…

浅谈逻辑控制器之交替控制器

浅谈逻辑控制器之交替控制器 本文档将详细介绍其中一种重要逻辑控制器——交替控制器 (Interleave Controller),并提供其使用方法和应用场景。 交替控制器概述 交替控制器 (Interleave Controller) 是 JMeter 中的一个高级逻辑控制器,它使你能够按照交…

【vue3】【vant】 移动本草纲目案例发布收藏项目源码

更多项目点击👆👆👆完整项目成品专栏 【vue3】【vant】 移动本草纲目案例发布收藏项目源码 获取源码方式项目说明:其中功能包括 项目包含:项目运行环境文件截图 获取源码方式 加Q群:632562109项目说明&am…

应用案例 | Panorama SCADA:开创性的铁路电气控制系统

案例概况 客户:英国铁路网运营商Network Rail 合作伙伴:Telent Technology Services Ltd 应用:实现对铁路牵引电网的高效管理与精准控制 应用产品:宏集Panorama E2 SCADA系统 一、应用背景 英国铁路网运营商Network Rail计划…

谈论Fail2ban+Nginx处理CC攻击和DDOS攻击

前言:Fail2ban 是一款开源的入侵防御软件,用于防止暴力破解和其他形式的恶意攻击。虽然它主要设计用于检测和阻止基于日志的暴力破解尝试,但也可以用于处理低强度的CC(Challenge Collapsar)和部分DDoS(分布…

Python高精度浮点运算库之mpmath使用详解

概要 在科学计算和工程应用中,精确的数学计算至关重要。Python 作为一种灵活而强大的编程语言,提供了多种数学库,其中 mpmath 库因其高精度浮点运算和丰富的数学函数支持而备受关注。mpmath 库不仅适用于基本的高精度计算,还支持复数运算、矩阵运算和特殊函数计算,广泛应…

Python第三方库GDAL 安装

安装GDAL的方式多种,包括pip、Anaconda、OSGeo4W等。笔者在安装过程中,唯独使用pip安装遇到问题。最终通过轮子文件(.whl)成功安装。 本文主要介绍如何下载和安装较新版本的GDAL轮子文件。 一、GDAL轮子文件下载 打开Github网站…

Swoole v6 能否让 PHP 再次伟大?

大家好,我是码农先森。 现状 传统的 PHP-FPM 也是多进程模型的的运行方式,但每个进程只能处理完当前请求,才能接收下一个请求。而且对于 PHP 脚本来说,只是接收请求和响应请求,并不参与网络通信。对数据库资源的操作…

创纪录!沃飞长空完成新一轮融资,实力获资方认可

作为全球竞逐的战略性新兴产业,今年首次写入政府工作报告的“低空经济”热度正持续提升,在政策、产业等多个层面均有重大突破。行业的飞速发展也吸引了投资界的目光,越来越多资本正投向低空经济。 近期,国内领先的低空出行企业吉…

zabbix 7.0 新增功能亮点(三)— 监控项支持SNMP Hex数据预处理

作者 乐维社区(forum.lwops.cn) 许远 勇敢的人先享受世界,好奇心促使你探索未知的世界。zabbix 7.0 LTS发布已经有一段时间了。不得不说zabbix7.0作为一款开源监控工具而言是真的强大又丝滑,其中不少新特性嘎嘎溜,让人…

互联网医院系统开发中的移动端应用设计

在现代医疗服务中,互联网医院系统逐渐成为提升患者体验和优化医疗资源的重要手段。而移动端应用作为互联网医院系统的关键组成部分,其设计和开发尤为重要。本文将从设计原则、技术架构和具体实现等方面探讨互联网医院系统中的移动端应用设计,…

06-27 周四 理解torch.squeeze和unsqueeze

简介 最近在看动手学深度学习这本书的注意力机制章节,理解起来很吃力,主要原因是一些底层api的具体执行不理解。 代码 unsqueeze xtorch.ones((2, 1, 4)) y torch.ones((2,4,6)) z torch.bmm(x, y) print(f"z.shpae: ", z.shape)weights …

5G赋能安防视频监控:EasyCVR视频汇聚融合创新技术,共筑多场景安全防线

随着科技的快速发展,第五代移动通信技术(5G)已逐渐成为我们生活中的重要组成部分。其中,5G技术以其超高速、低延迟、大连接数的特点,正在深刻改变着我们的生活方式和社会运行模式。安防监控领域作为社会安全的重要组成…

GIT 基于master分支创建hotfix分支的操作

基于master分支创建hotfix分支的操作通常遵循以下步骤: 切换到master分支: 首先,确保你的工作区是最新的,并且你在master分支上。如果不在master分支,你需要先切换过去。 Bash git checkout master 拉取最新的master…