动态SLAM总结一
文章目录
- 方法分类:
- OctoMap:(2013)
- UFOMap:(2020)
- Removert:(2020)
- ERASOR:(2021)
- DynamicFilter:(2022)
- Dynablox:(2023)下层建图方案Voxblox
- DUFOMap:(2024)基于UFOMap
- BeautyMap:(2024)
汇总自己最近看到的有关动态SLAM的论文,虽然大部分都没有看懂。
方法分类:
- learning-based:
- visibility-based:Removert、ERASOR
a. 入射角问题:比如入射角模糊。
b. 障碍物出现时不能正确过滤掉动态点。 - occupancy map-based:OctoMap(建图)、UFOMap(建图)、DUFOMap、Dynablox
a. 基于占据的方式在3D环境中是计算昂贵的。
上面三种分类也可以称为如下: - apperance-based segmentation:
- scan-to-scan change detection:
- map-based change detection:
OctoMap:(2013)
● 八叉树结构允许网格结构延迟初始化。
● 信息能够存储在八叉树中以不同的分辨率。
Voxblox:(2016)
● SDF(signed distance field)表示每个体素的点到距离最近的障碍物的距离,从而加速轨迹优化。
● 不同于事先分配体素大小,Voxblox分配块固定大小当需要的时候。
UFOMap:(2020)
这篇文章主要针对的是环境中的未知区域过多,从而引入未知区域的映射,和OctoMap相比在建图性能方面有所提升,但不是动态SLAM。(主要是为了和下面的DUFOMap联合理解)
● 创新点:
○ 地图中所有状态的显示表示:occupied、free、unknown。
○ 引入不同方式融合数据进八叉树,提高了效率;
○ OctoMap在插入/删除地图的同时不允许迭代操作,UFOMap克服这个缺陷。允许迭代。
○ OctoMap函数的八叉树的分辨率参数不可变的,UFOMap的八叉树分辨率参数可以改变。
● 占有率如何存储的:占有率存储在八叉树对应的节点中(log-adds occupancy value is stored in the nodes)。
● 一个节点(node)的占有率如何划分的:
free、 unknown occupied:
occ(n) < tf < occ(n) < to < occ(n)
● Morton codes使用去加速这个树的遍历。一种空间点编码方式。
● 集成传感器测量的点云:Simple integrator、Discrete integrator、Fast Discrete integrator,第三个方法暂时没有看懂。
离线方式:Removert、EARSOR、ERASOR2
Removert:(2020)
主要思想:在查询到的帧(scan)投影进地图(range images),随后在可见性约束下比较查询扫描的scan的范围图像,并且使用投票的方式预测动态点。同时为了减少错误位置,在退化的分辨率的场景下range images 被用于将动态点恢复为静态点,这也是为什么被称为Removert(移除并重建)。
ERASOR:(2021)
前提:假设动态对象是和地面相关联的。这篇文章暂时也不是很理解,动态对象和地面点相关联这个思想在 A Dynamic那篇文章中也提到过。后续可以结合起来看一下。
主要思想:比较查询scan和地图map的z轴最小和最大的比例。如果这个比例查过阈值,那么这个区域包含动态点,随后移除这个区域的bin。
缺点:对应不同的场景需要分别指定z轴范围的最小值和最大值。同时对于个别过高的区域可能超过z轴最大范围。
DynamicFilter:(2022)
scac-to-map前端 和 map-to-map后端 Visibility-based和map-based方法
the front end :
积累几帧后,基于可视化方法进行动态点移除:在大入射角或障碍物的情况下,静态点移除可能会发生退化,错误的将静态点识别为动态点,所以在移除后需要进行静态点重建。这里这个前端静态点重建方法比较新,可以看论文学习。
the back end:
文章中说明,由于只包含前端的系统在移除短序列时有效,但在移除长序列时表现效果较差,所以为了弥补这个缺陷,设计了后端移除方法。
这个文章后端模块中有一个大入射角的处理,通过计算每个点的入射角,将大于阈值的点云标计为伪占用点。将最近的伪占用点作为可视化边界,任何点超过这个可视化边界都不考虑。由于那些点的光线投影是不正确的。(这个思想和另一篇文章非常相近)
Dynablox:(2023)下层建图方案Voxblox
- 主要思想:通过在线机器人操作过程中的感知、状态估计、映射限制增量的估计高置信度的free-sapce:核心思想是通过对每个限制进行建模来增量估计减少但高置信度的自由空间区域。然后使用这些高置信度区域来播种动态对象集群并消除低置信度区域中的点的歧义。
- 创新点:增量高置信度估计方法考虑的因素有:输入点云、建模传感器噪声(重点看下这个和下面的DUFOMap方法使用的进行对比)、测量稀疏性、动态环境、状态估计漂移(这个也可以和下面的方式进行对比)。
- 误差来源:传感器噪声、状态漂移、未探索空间边界地图的不准确性。
这篇文章看得是真的头大,好多概念都不是很清楚。
DUFOMap:(2024)基于UFOMap
关联:UFPMap中点云处理后生成的体素结构被用于DUFOMap的点云操作。光投影被用于识别void regions(后续用于区分静态点和动态点)。
文章中有一句话:The truncated signed distance field (TSDF) is an alternative to occupancy。 TDSF的值超过阈值的点被划分为"ever-free区域",随后点落到这个区域就被称为动态点,思想和基于占据的方式差不多。
● 创新点:如何识别动态点:
○ 基于已经标识的void regions,如果再次被观测到。同时考虑了传感器噪声和定位误差。如何考虑位姿位差和传感器噪声,通过缩小或者扩大void regions的范围。
○ 与最先进的实现方式的对比,基于多场景以及多传感器类型。
● 标识void regions:本文中提到:
○ 基于占据(Occupancy grids)的方式标识每个voxel的probalilistic,基于所有观测者对这个region的观测,也就是说这个regions可能在free和occupied之间进行切换。
○ 在本文提出的方式中,使用基于雷达单帧点云的观测,使用到一种新的光照投影的扩展方式去标记void region。不需要对观测进行积累才判断void region,直接基于单个观测快速判断。
● 位资和噪声补偿方法:
○ 对于位资采用一种切比雪夫距离,根据首次划分的void region使用,设置dp = 2。
○ 对于噪声补偿:设置一个距离ds = 0.2m,被集中的体素前方0.2米的位置对应的体素也被称为击中。对于这个自己理解的不是很准确,有兴趣学习的建议参考原文。
BeautyMap:(2024)
- 将点云表示为3D二进制网格,并进一步将他们编码进2D矩阵去提高效率。通过逐bit比较当前frame和global point cloud map去标记潜在的动态点。
- 动态点移除。
- 静态点重建:
相关文章:
动态SLAM总结一
文章目录 方法分类:OctoMap:(2013)UFOMap:(2020)Removert:(2020)ERASOR:(2021)DynamicFilter:(202…...

HTB:Mongod[WriteUP]
连接至HTB服务器并启动靶机 靶机IP:10.129.99.33 分配IP:10.10.16.12 1.How many TCP ports are open on the machine? 使用nmap对靶机进行全端口TCP脚本、服务扫描: nmap -sC -sV -T4 -p- {TARGET_IP} 可以看到靶机共开放TCP端口2个&…...

DenseNet算法:口腔癌识别
本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 DenseNet算法结构 其基本思路与ResNet一致,但是它建立的是前面所有层和后面层的密集连接,它的另一大特色是通过特征在channel上的连接来实现特征重用。 二 设计理念 三…...

828华为云征文 | 利用FIO工具测试Flexus云服务器X实例存储性能
目录 一、Flexus云服务器X实例概要 1.1 Flexus云服务器X实例摘要 1.2 产品特点 1.3 存储方面性能 1.4 测评服务器规格 二、FIO工具 2.1 安装部署FIO 2.2 主要性能指标概要 三、进行压测 3.1 测试全盘随机读IO延迟 3.2 测试全盘随机写IO延迟 3.3 测试随机读IOPS 3.4…...

Pikachu-File Inclusion- 本地文件包含
前端每次挑选篮球明星,都会通过get请求,传了文件名,把页面展示出来,由于文件名时前端传给后台;并且查看源码,没有对参数做限制; 尝试直接从前端修改filename 参数; filename../../../../../../…...

linux基础 超级笔记
1.Linux系统的组成 Linux系统内核:提供系统最核心的功能,如软硬件和资源调度。 系统及应用程序:文件、任务管理器。 2.Linux发行版 通过修改内核代码自行集成系统程序,即封装。比如Ubuntu和centos这种。不过基础命令是完全相…...

Python——异常处理机制
Python 异常处理机制 Python异常与异常处理机制针对 Traceback 的解读try-except-else-finallyexcept语句except语句的机制在 except 语句中引用当前被处理的 Python 异常 finally语句finally语句执行后才能抛出未被处理的异常finally中执行return会导致异常丢失 raise 语句rai…...

社群团购中的用户黏性价值:以开源小程序多商户AI智能名片商城源码为例
摘要:本文探讨社群团购中的用户黏性价值,分析其与传统团购网站的区别,并阐述开源小程序多商户AI智能名片商城源码在增强社群团购用户黏性方面可能发挥的作用。 一、引言 在当今的商业环境中,社群团购逐渐成为一种重要的营销模式。…...

基于php的民宿预订管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...
java 从基础到入门 到架构师所需要学习的路线
java是一种广泛使用的编程语言,可以应用于多种平台和应用程序。下面是一个从基础到入门,再到架构师所要掌握的Java学习路线的详细列举: 学习Java基础知识: 理解面向对象编程的概念,如类、对象、继承、多态等。 学习Ja…...

【吊打面试官系列-MySQL面试题】什么叫视图?游标是什么?
大家好,我是锋哥。今天分享关于【什么叫视图?游标是什么?】面试题,希望对大家有帮助; 什么叫视图?游标是什么? 视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增&#…...
项目管理-信息技术发展
1、计算机软硬件 2、计算机网络 1)定义 2)分类:PAN LAN MAN WAN 公用网 专用网 3)网络协议 语法 语义 时许 4)网络标准协议 7层 5)IEEE 802 规范 6)TCP/IP 协议 7) SDN 软件定义网…...

异常处理【C++提升】(基本思想,重要概念,异常处理的函数机制、异常机制,栈解旋......你想要的全都有)
更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 本文所在专栏: C系列语法知识_Stark、的博客-CSDN博客 座右铭:梦想是一盏明灯,照亮我们前行的路,无论风雨多大,我们都要坚持不懈。 异…...

基于springboot vue 电影推荐系统
博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…...

八、特殊类型异常机制
特殊类型&异常机制 数据类型枚举类型匿名类、单例类和伴生对象匿名类单例类伴生对象 委托模式密封类型异常机制异常的使用异常的处理 数据类型 对于那些只需要保存数据的类型,我们常常需要为其重写toString、equals等函数,针对于这种情况下…...
虾皮Shopee Android面试题及参考答案
HTTP 状态码有哪些? HTTP 状态码是用以表示网页服务器超文本传输协议响应状态的 3 位数字代码。主要分为五大类: 1xx 信息性状态码:表示服务器正在处理请求,这些状态码是临时的响应,主要用于告诉客户端请求已经被接收,正在处理中。例如,100 Continue 表示客户端应当继续…...
Docker Compose 部署大模型GPU集群:高效分配与管理算力资源
Docker Compose 部署大模型GPU集群:高效分配与管理算力资源 文章目录 Docker Compose 部署大模型GPU集群:高效分配与管理算力资源一 Dockerfile 编写二 Dockerfile 示例三 分配GPU资源1)GPU分配:指定count2)GPU分配&am…...

直立行走机器人技术概述
直立行走机器人技术作为现代机器人领域的重要分支,结合了机械工程、计算机科学、人工智能、传感技术和动态控制等领域的最新研究成果。随着技术的不断发展,直立行走机器人在救灾、医疗、家庭辅助等领域开始发挥重要作用。本文旨在对直立行走机器人的相关…...
【Linux】wsl虚拟机时间和实际时间不符合
本文首发于 ❄️慕雪的寒舍 偶然遇到了这个问题,触发原因是电脑在开启wsl的情况下进入了 休眠 模式,且在无网络情况下几天不使用。 然后开启wsl,发现git log显示最新commit的提交时间是明天,给我吓一跳,然后才发现原来…...

初识算法 · 滑动窗口(1)
目录 前言: 长度最小的子数组 题目解析 算法原理 算法编写 无重复长度的最小字符串 题目解析 算法原理 算法编写 前言: 本文开始,介绍的是滑动窗口算法类型的题目,滑动窗口本质上其实也是双指针,但是呢&#…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...