几种SLAM算法跑出的效果比较

在这里插入图片描述
以下所有的SLAM算法均使用此辆ROS小车跑。

文章目录

  • 1.Gmapping SLAM算法构建地图
  • 2.Hector SLAM算法构建地图
  • 3.Karto SLAM算法构建地图
  • 4.Cartographer SLAM算法构建地图
  • 5.深度摄像头的建图
  • 6.rtab-map(深度双目与激光雷达构建三维建图)
  • 7.ORB-SLAM
  • 8.无奖竞猜


1.Gmapping SLAM算法构建地图

算法简介:

Gmapping是一种基于激光的SLAM算法,它已经集成在ROS中,是移动机器人中使用最多的SLAM算法。这个算法已经由Grisetti等人提出是一种基于Rao-Blackwellized的粒子滤波的SLAM方法。基于粒子滤波的算法用许多加权粒子表示路径的后验概率,每个粒子都给出一个重要性因子。但是,它们通常需要大量的粒子才能获得比较好的的结果,从而增加该算法的的计算复杂性。此外,与PF重采样过程相关的粒子退化耗尽问题也降低了算法的准确性。粒子退化问题包括在重采样阶段从样本集粒子中消除大量的粒子。发生这种情况是因为它们的重要性权重可能变得微不足道。因此,这意味着有一定的小概率时间会消除正确的假设的粒子。为了避免粒子的退化问题,已经开发了自适应重采样技术。作者还提出了一种计算精确分布的方法,不仅考虑机器人平台的运动,还考虑最近的观察。提出了在使用测距运动模型时结合观测值提出建议分布。然而,当一个移动机器人装备一个非常精确的传感器LRF时,可以使用该传感器的模型,因为它可以实现了极高的似然函数。基于此,作者整合了最近的传感器观测zt,并且他们计算高斯分布近似有效地获得下一代粒子分布。

算法效果:
在这里插入图片描述

2.Hector SLAM算法构建地图

算法简介:

HectorSLAM是一种结合了鲁棒性较好的扫描匹方法2D SLAM方法和使用惯性传感系统的导航技术。传感器的要求:高更新频率小测量噪声的激光扫描仪.不需要里程计,使空中无人机与地面小车在不平坦区域运行存在运用的可能性.作者利用现代激光雷达的高更新率和低距离测量噪声,通过扫描匹配实时地对机器人运动进行估计。所以当只有低更新率的激光传感器时,即便测距估计很精确,对该系统都会出现一 定的问题。

算法效果:
在这里插入图片描述

3.Karto SLAM算法构建地图

算法简介:

KartoSLAM是基于图优化的方法,用高度优化和非迭代 cholesky矩阵进行稀疏系统解耦作为解.图优化方法利用图的均值表示地图,每个节点表示机器人轨迹的一个位置点和传感器测量数据集,箭头的指向的连接表示连续机器人位置点的运动,每个新节点加入,地图就会依据空间中的节点箭头的约束进 行计算更新.
KartoSLAM的ROS版本,其中采用的稀疏点调整(the Spare Pose Adjustment(SPA))与扫描匹配和闭环检测相关.landmark越多,内存需求越大,然而图优化方式相比其他方法在大环境下制图优势更大.在某些情况下KartoSLAM更有效,因为他仅包含点的图(robot pose),求得位置后再求map.

算法效果:
在这里插入图片描述

4.Cartographer SLAM算法构建地图

算法简介:

cartographer是Google的实时室内建图项目,传感器安装在背包上面,可以生成分辨率为5cm的2D格网地图。获得的每一帧laser scan数据,利用scan match在最佳估计位置处插入子图(submap)中,且 scanmatching只跟当前submap有关。在生成一个submap后,会进行一次局部的回环(loop close),利用分支定位和预先计算的网格,所有submap完成后,会进行全局的回环。

算法效果:
在这里插入图片描述

5.深度摄像头的建图

算法简介:

提取深度图像获得障碍物地图,需要进行三维图像-伪激光图的转换。

在这里插入图片描述

算法效果:
在这里插入图片描述

6.rtab-map(深度双目与激光雷达构建三维建图)

算法简介:

RTAB-Map是具有实时约束的RGB-DSLAM方法,它是一种基于增量基于外观的闭环检测器的RGB-D,基于立体声和激光雷达图的SLAM方法。闭环检测器使用词袋方法来确定新图像来自先前位置或新位置的可能性。当接受循环闭合假设时,新约束将添加到地图的图形中,然后图形优化器将地图中的错误最小化。使用内存管理方法来限制用于闭环检测和图形优化的位置数量,以便始终遵守对大型环境的实时约束。
rtab-map的思想是:假设更频繁的被访问的定位点比其他的定位点更易于形成闭环。这样一个定位点被连续访问的次数就可以用来衡量其易于形成闭环的权重。当需要从WM转移定位点到LTM中时,优先选择具有最低权重的定位点。如果具有最低权重的定位点又有多个时,优先选择被存储时间最长的那一个。

算法效果:
在这里插入图片描述

7.ORB-SLAM

算法简介:

ORB-SLAM 是视觉 SLAM 系统。 它是一个完整的 SLAM 系统,包括视觉里程计、跟踪、回环检测,是一种完全基于稀疏特征点的单目SLAM 系统,同时还有单目、双目、RGBD 相机的接口。 其核心是使用 ORB (Orinted FAST and BRIEF)作为整个视觉 SLAM 中的核心特征。

算法效果:
链接: 自学SLAM(3)—保姆教程教你如何使用摄像头运行ORB-SLAM2

8.无奖竞猜

根据前面的建图,猜我家是几室几厅?

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

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

相关文章

OpenAI Sora视频生成机制:时空补丁

AI如何将静态图像转化为动态、逼真的视频?OpenAI 的 Sora 通过时空补丁(spacetime patches)的创新使用给出了答案。 独特的视频生成方法 在生成模型的世界中,我们看到了从 GAN 到自回归和扩散模型的许多方法,它们都有…

华纳云:Nginx的内存池如何实现,有哪些特点

Nginx是一个高性能的开源反向代理服务器和 Web 服务器,它采用了内存池(Memory Pool)的概念来管理内存,以提高性能和降低内存碎片化。Nginx的内存池实现主要基于以下两个核心组件: ngx_pool_t 结构体: Nginx中的内存池由 ngx_pool_…

AI 改造计划进度汇报 2402

AI已经大大提升了我的效率,正好这几天放假没事干,总结出这篇汇报。 AI 技术自媒体 首先是 AI开发和文创的所有路都自动化了。技术文章的翻译已经过半,不出两个月,我就能把我见到的所有技术文章都翻译一遍。 然后我觉得AI不应当…

【C++初阶】值得一刷的字符串string相关oj题

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

go-zero/grpc的rpc服务间传递额外数据

go-zero/grpc的rpc服务间传递额外数据 2024/02/18 客户端: md : metadata.New(map[string]string{"signature": "0123456789", "timestamp": "2021-07-01 00:00:00"}) ctx : metadata.NewOutgoingContext(ctx, md) addR…

【每天学习一点点 day04】工程化 npm create 脚手架 create-vue, vue-cli 执行原理① - npm cli

希望我们每个人都能找到属于自己的花期,不急不躁,静等风来。 今天打算用 Docusaurus 开始搭建自己的知识库,之前早已有此想法,遗憾的是没有坚持下来。 这次借助这个机会,也计划将自己【每天学习一点点】系列整理在自己…

java面试多线程篇

文章说明 在文档中对所有的面试题都进行了难易程度和出现频率的等级说明 星数越多代表权重越大,最多五颗星(☆☆☆☆☆) 最少一颗星(☆) 1.线程的基础知识 1.1 线程和进程的区别? 难易程度:☆☆…

外贸技巧:怎么挖掘老客户的潜在订单?

做外贸的方法千千万,但是要想让客户重复下单,就需要多花点心思,研究一下策略,采取一些独特措施去再次挖掘他们的潜在订单。来看看这些外贸销售精英都是怎么做的? 01 主动向客户推荐其他产品 Top Sales:新…

代码随想录刷题笔记 DAY 29 | 非递减子序列 No.491 | 全排列 No.46 | 全排列 II No. 47

文章目录 Day 2901. 非递减子序列(No. 491)1.1 题目1.2 笔记1.3 代码 02. 全排列(No. 46)2.1 题目2.2 笔记2.3 代码 03. 全排列 II(No. 47)3.1 题目3.2 笔记3.3 代码 Day 29 01. 非递减子序列(…

UEditorPlus v3.8.0 文档导入支持直接粘贴 Markdown 格式,已知问题修复

UEditor 是由百度开发的所见即所得的开源富文本编辑器,基于MIT开源协议,该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器,主要做了样式的定制,更…

大模型LLM训练显存消耗详解

参考论文:ZeRO: Memory Optimizations Toward Training Trillion Parameter Models 大模型的显存消耗一直都是面试常见的问题,这次我就彻彻底底的根据论文ZeRO中的调研和分析做一次分析 显存消耗的两个部分:Model States(跟模型的…

离线数仓(三)【业务日志采集平台搭建】

前言 上一篇我们搭建完了用户行为日志数据的采集平台,其实也就是用两个 flume 采集数据到Kafka 中(这种结构只有 source 和 channel 没有 sink) 。离线数仓中的数据除了用户日志,还有就是业务数据了。 1、电商业务简介 1.1 电商…

Mac软件打开提示:已损坏,无法打开。您应该将它移到废纸娄 怎么解决?

新入手的苹果电脑打开软件出现:“已损坏,无法打开。您应该将它移到废纸娄” 或 “已损坏,打不开。推出磁盘映像”。这个怎么解决? 第一部分:(注意:任何来源打开过了的,就直接去看下…

如何管理好一个小团队?

⒈ 团队中的4种人 一个团队里要管好的其实就四种人 ① 千里马型 千里马需要的是草原,而不是草料。这样的人有能力做事,也愿意做事。这种人需要的是授权,授权就是你当老板的要学会当这种人的下属,支援他做事,看他表演…

PYTHON 120道题目详解(85-87)

85.Python中如何使用enumerate()函数获取序列的索引和值? enumerate()函数是Python的内置函数,它可以将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。 以下是一个…

第三百五十三回

文章目录 1. 概念介绍2. 使用方法2.1 获取所有时区2.2 转换时区时间 3. 示例代码4. 内容总结 我们在上一章回中介绍了"分享一些好的Flutter站点"相关的内容,本章回中将介绍timezone包.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在…

宠物赛道都卷出了哪些花样?媒介盒子分享

如今的宠物市场,已经从让宠物吃饱喝足的基本生理需求,拓展到五花八门的精神需求,与“马斯洛需求定理”高度一致。商家们看到宠物经济的潜力,不再满足于给人类造节,给毛孩子造节也是重中之重,今天媒介盒子就…

AJAX——HTTP协议

1 HTTP协议-请求报文 HTTP协议:规定了浏览器发送及服务器返回内容的格式 请求报文:浏览器按照HTTP协议要求的格式,发送给服务器的内容 1.1 请求报文的格式 请求报文的组成部分有: 请求行:请求方法,URL…

巨量广告测素材方法分享,如何拿到起量参考数据

测素材,测的是什么? 测素材只有两个目的: 1:测出跑量素材—方向 2:测出跑量素材—数据 方向对投手来说不是核心,从系统和投放的角度把结果数据给做素材的人讲到位就OK 数据是重点,投手一定…

Maven配置ojdbc14-10.2.0.4.0.jar

之前maven工程没什么问题,现在oracle无法加载缺少oracle的jar,选择重新加载 下载对应版本的jar包 下载地址:http://www.pc6.com/softview/SoftView_497161.html 下载后随便放入一个盘,然后改名字 一定要改名字 我的是改成 …