Rtab-map

news2024/10/6 20:32:05

Rtab-map -- 开源 2014

about 如何实现闭环检测

可视化slam 应用于摄像头上

原理:数据结构,点中存储彩色图,深度图,和用来做odomtry得位置,可以认为图片,location和image都是点

将图片解析为一些features,可以用visual words表示,各图片之间相互联系,一部分图片相互连续,一部分图片相互闭环;

闭环检测方法分为三个步骤:

(1)闭环检测的方法:依据于两个图片的相似性,利用如下公式

similarity = Npair/max(Nzt,Nzc)

两个图片match到的features的数量/两个图片中最多的features的数量,使用Bayesian filter方法完善了设定至少环上有5个点(图片)之间的相似性,通过相似性检测得到成环的可能性probablity

(2)使用TORO的办法来进行一个图像的优化,将成环部分的area做全局性优化,该文章中使用到的内存管理的方法是一种online的成环检测,首先一个彩色图片(Node)节点,采集之后存储正在Short-Term Memory中,一共可以存储10个节点,如果达到10个节点数字的时候,最先的节点转移到Working Memory,进行闭环检测,储存的节点根据每个节点被访问到的数量来储存的

(3)working memory会储存以前地图的信息,根据他的访问量,优先选择经常被访问的地图信息存储在Working Memory里面,这个map-3为新地图,进来之后会和节点进行匹配,在匹配的过程中,一些旧的地图也会被返回到Working Memory里面,对于那些没有用的节点或者已经匹配完毕的节点,就会被送到long time memory之中,working memory不是一直可以延展的,可以用一个时间来限制他的memory size;

一个节点进行闭环检测的话,它是通过检测的时间,它这里设定的是0.7s,时间到达则闭环检测结束,同时有一些节点会送到LTM里,这个是memory的管理办法

实验:

使用一台机器人携带两个sensor,一个是Kinect sensor,一个是URG-04XL laser range finder

Kinect可以采样一个彩色图一个深度图,深度图是用于得到各个visual words的3D position

Laser sensor,只有4m的range,作用主要是在成环的时候,可以观察做可以匹配的五个点的位置,使用2D ICP的方法

激光的作用是:并非用于做slam,而是在成环的时候,使用五个或者五个点以上来成环,将扫描的数据用来和其进行ICP,Parameters这里一共有五个点才可以成环,short-Term memory size只有十个,成环的probability的限制要大于0.1控制成环,时间是0.7s,其中有较多的parameters需要控制;

该实验5个map,先是分别进行研究,然后5个map连续的进行采样,放到一起

实验一:其中纵坐标是每新增一个点需要的时间即进行成环检测需要的时间,有5个map,其中Map1/2/3的map是只有nodes,nodes的数量比较少,它的时间被限制在0.7s的限制,只有map4和map5达到了这个限制

图4是map 1.2.3的实验结果,其中蓝色的是运行的轨迹,红色是呈环检测到成环的地方,图4左边是没有经过全局优化的,右边是经过全局优化的结果;全局优化是使用TORO方法

图5是map4和map5的部分,其中蓝线的部分是已经传递到long-term Memory里面的部分,也即在WM的部分是有白色阴影的一块,(A)图是没有经过图像优化的,(B)图是经过图形优化,是在Working Memory里面进行了图像优化,C图是经过了全局的by Long-term memory和 working Memory里面点都结合在一起进行图像优化的结果。

这里提出在Long-Term里面,如果要得到C图,它必须是offline的,C图并不是即时的结果

​将五个图放在一起进行实验

连续从map12345进行的检测结果,结果较好,说明作图呈现效果较好

​一共做了两个实验:设定时间限制为0.7s,一个是没有时间限制,所以红线是没有时间限制的,而蓝线是设定0.7s的时间限制

​将5个图合在一起的话,它就能同时进行,不但是每个图自己内部的成环,还有一个图与图之间的成环,这是和真是结果的对比:在中间这个部分,成环检测之后的准确率是比较高的,但是map5这一块成环检测的量不够,eg:左上和右下都没有一幅图能和它成环的所以它的效果较差,对比蓝线和红线,两个颜色的轨迹都没有能够很好的体现这个真实的运动轨迹,所以如果在左上或者右下能够多增加一些实验,增加一些轨迹的测试话,可能整个图像的效果会更好。

图和图之间的成环,连续的地图,map1->map2->map3,但是这个过程中working memory里面的数据还是存在的,即map1得一些点还是留存在Working Memory里面,map2得时候可以再去访问map1得点,对于map5来讲由于在右下角所以对于前4个点来讲能够成环的点较少

​Slam的不足之处:

1.首先要确定什么样的点可以保存在Working Memory之中,在全局地图之下,哪些点是非常重要的,Hard,确保什么样的方法保证旧的地图不会被以往,如果被到long-term memory之中可能会被遗忘。

2.作者建议考虑一些新的方法,用一些比较robust(鲁棒性)一点的成环办法,来避免一些错误的成环被检测,可能会导致较大的误差

会议摘要:其中对比了三种slam方法

重点研究Rtab-Map和ROB-Slam2 的比较

ROB-Slam2可以很快的进行绘图,并且它的re-localize(重定位)是非常有效的

Rtab-Map优点:可以和ROS平台兼容,它生成的图易懂,同时Rtab-map有很多的parameters可以根据我们自己的硬件条件来改变它的参数控制得到的结果,改进绘图结果

使用Kinect2 在BCD这几个图中分别是早中晚,

​可以看到白天的图的效果较差,阳光的影响,对Kinect的影响较大,是同时两个图不能用Rtab-map进行slam

问题:short-term memory中存储新来的图片,达到10个以后转移到working memory,进行计算,匹配这个点有没有和之前的点有相似性

ORB-SLAM和词袋,也是用到SURF词袋,也是抽象成词库之后来寻找闭环

激光雷达没有提供features,深度比较小,只有4m的深度,只能用于做很小的闭环匹配,也是用到激光雷达的数据(辅助性质的)

运算速度可以限制时间,只是在macbook上运行的实验,如果硬件条件好,那么呈像的效果会更好

​判定这两个点是否形成闭环,用计算simulator的计算公式,如果两个图的相似的点featire的相似性的words达到0.45就可以认为是一样的,surf用于描述feature

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

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

相关文章

摄像头的调用和视频识别

CV_tutorial3 摄像头调用实时播放保存视频 运动目标识别帧差法背景减除法 摄像头调用 创建视频捕捉对象:cv2.VideoCapture() 参数为视频设备的索引号,就一个摄像投的话写0默认; 或者是指定要读取视频的路径。 实时播放 import cv2 import …

【算法】经典的八大排序算法

点击链接 可视化排序 动态演示各个排序算法来加深理解,大致如下 一,冒泡排序(Bubble Sort) 原理 冒泡排序(Bubble Sort)是一种简单的排序算法,它通过多次比较和交换相邻元素的方式,将…

实战 图书馆系统管理案例

config :敏感的配置一般都是在配置中心配置,比如consul或者阿波罗上面controller :写一些handler的,拿到参数要去调用service层的逻辑。(只负责接受参数,怎么绑定参数,要去调用哪个service的&am…

QT6修改程序图标和名字以及打包部署

首先确定已经编译成功无错误 修改窗口的名字 修改图标 当有pro工程文件时, 只需要将ico文件放在工程文件的同级文件夹中,然后在pro文件中加入RC_ICONSico文件的名字 当使用cmake建立工程时 参考:https://blog.csdn.net/chqaz123/article…

PowerBuilder调用外部VB6 ActiveX EXE公共对象

学习的同时习练PowerBuilder对VB6 ActiveX exe公共对象的调用,初步感觉PowerBuilder调用DLL还是要求比较严格的,APP和powerbuilder本身都比较脆弱、易崩溃,因此, 1. 直接调用外部DLL时,传递地址参数,尽量不…

音频接口电路的PCB设计注意事项

Audio接口是音频插孔,即音频接口,可分为Audio in接口和Audio out接口。音频接口是连接麦克风和其他声源与计算机的设备,其在模拟和数字信号之间起到了桥梁连接的作用。 其余走线要求如下: 1、所有CLK信号建议串接22ohm电阻&#…

【零基础算法】Vector动态数组

为什么开始先更新数据结构?博主其实一开始也不怎么喜欢调这些数据,觉得用C语言造轮子才是最好的。后面学习过程中学习的算法逐渐复杂,实际上会发现,了解和调用一些已经写好的库工具是很方便的一件事,我们需要做的是知道…

计算机竞赛 基于机器视觉的手势检测和识别算法

0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng…

伺服电机驱动器EMC处理方案

伺服驱动器内部也有低压单元, 很可能受到驱动器外围设备的噪音干扰,受到干扰的信号可能会引起设备做出意想不到的动作 为防止伺服驱动器和其外围设备之间的相互电磁干扰, 可根据采取以下的对策: ● 请务必使驱动器及电机良好的接…

USB与蓝牙通信原理图设计

蓝牙模块设计: USB2.0 ----ESD保护芯片---- USB转串口芯片(CP2104-F03-GMR)--------- PTR5618蓝牙模块 ---------- PTR5618的GPIO0\GPIO1作为IIC与EEPROM芯片通信 (AT24CS04-STUM-T) 磁珠的作用是一直EMI干扰。 一…

《Go 语言第一课》课程学习笔记(十二)

函数 Go 函数与函数声明 在 Go 语言中,函数是唯一一种基于特定输入,实现特定任务并可返回任务执行结果的代码块(Go 语言中的方法本质上也是函数)。在 Go 中,我们定义一个函数的最常用方式就是使用函数声明。 第一部…

虚拟直播从0到1全套解决方案,码住这个神器,小白也能轻松涨粉过万!

直播行业历经十余年生长,用户规模持续上升,成为平台经济领域的中流砥柱。同时,元宇宙的兴起也推动了虚拟现实等先进技术在直播行业的应用,越来越多的老板开始尝试使用虚拟直播完成各类形式的直播活动,与传统型的直播间…

Web核心基础总结

尚硅谷课程:293-尚硅谷-Filter-什么是Filter过滤器_哔哩哔哩_bilibili JavaWeb核心技术点: Servlet程序、Filter过滤器、Listener监听器、jsp页面、EL表达式、JSTL标签库、jQuery框架、Cookie技术、Session会话、JSON使用、Ajax请求, 第一…

独立服务编排逻辑引擎:jvs-logic服务原子组件介绍

逻辑引擎的本质是可视化的服务编排是指使用图形化工具、配置和管理原子服务间的工作步骤和调用关系。这种方法可以快速的实现业务功能,使非开发人员也能轻松地创建和管理服务的工作流程。 可视化服务编排工具提供了直观的界面和丰富的功能,以及便捷的执行…

【 ARMv9 Cluster BUS QoS 配置】

文章目录 ARM Cluster QoS ARM Cluster QoS QoS(Quality of Service,服务质量)在 ARM 架构中,主要指的是一种机制,它可以控制和管理系统资源(如内存、总线带宽等)的使用,以满足各种…

关于#include<bits/stdc++.h>的说明

关于#include<bits/stdc.h>的说明 在看C/C竞赛题时&#xff0c;经常看到#include<bits/stdc.h>。什么意思呢&#xff1f; 有人称<bits/stdc.h>为万能头文件。其 优点&#xff1a;   1、在竞赛中节约时间。   2、减少了编写所有必要头文件的工作量。  …

SSM - Springboot - MyBatis-Plus 全栈体系(二)

第一章 Maven 三、Maven 核心功能依赖和构建管理 1. 依赖管理和配置 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题&#xff0c;使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程…

安全帽人脸联动闸机开关算法

安全帽人脸联动闸机开关算法通过yolov7python网络模型深度学校框架 &#xff0c;安全帽人脸联动闸机开关算法能够判断人员是否穿戴规定的工装是不是现场人员&#xff0c;当穿戴合规且为现场人员&#xff0c;闸机门禁才打开。YOLO的结构非常简单&#xff0c;就是单纯的卷积、池化…

PostgreSQL中字符串与ASCII码互转

PostgreSQL中字符串与ASCII码互转 一、字符串转ASCII码&#xff1a;ascii ( text ) → integer二、ASCII码转字符串&#xff1a;chr ( integer ) → text 一、字符串转ASCII码&#xff1a;ascii ( text ) → integer 返回参数的第一个字符的数字代码。在UTF8编码中&#xff0c…

I IntelliJ IDEA 2023.2 最新解锁方式,支持java20

在 IntelliJ IDEA 2023.1 中&#xff0c;我们根据用户的宝贵反馈对新 UI 做出了大量改进。 我们还实现了性能增强&#xff0c;从而更快导入 Maven&#xff0c;以及在打开项目时更早提供 IDE 功能。 新版本通过后台提交检查提供了简化的提交流程。 IntelliJ IDEA Ultimate 现在支…