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

nginx和gateway的关系和区别
在技术选型时,选择 Nginx 和 Spring Cloud Gateway(或简称为 Gateway)主要取决于具体应用场景和技术需求。下面是两者的一些关键差异和适用场景。 一、Nginx 概念 Nginx 是一个高性能的 Web 服务器和反向代理服务器,常被用作静…...

【算法笔记】滑动窗口算法原理深度剖析
【算法笔记】滑动窗口算法原理深度剖析 🔥个人主页:大白的编程日记 🔥专栏:算法笔记 文章目录 【算法笔记】滑动窗口算法原理深度剖析前言一.长度最小的子数组1.1题目1.2思路分析1.3算法流程1.4正确性证明1.5代码实现 二.无重复…...

4S店4S店客户管理系统小程序(lw+演示+源码+运行)
社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非…...

rabbitMq------连接管理模块
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言管理的字段连接内存管理对象 前言 我们的网络通信框架使用的muduo库,而在mudu库中是已经有了连接的概念,但是我们呢还有一个信道的概念…...

【部署项目】禹神:前端项目部署上线笔记
1.项目打包 ● 我们开发用的脚手架其实就是一个微型服务器,用于:支撑开发环境、运行代理服务器等。 ● 打包完的文件中不存在:.vue、.jsx、.less 等文件,而是:html、css、js等。 ● 打包后的文件,不再借助…...

力扣10.1
983. 最低票价 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。 火车票有 三种不同的销售方式 : 一张 为期一天 的通行证售…...

TypeScript 算法手册 - 【冒泡排序】
文章目录 TypeScript 算法手册 - 冒泡排序1. 冒泡排序简介1.1 冒泡排序定义1.2 冒泡排序特点 2. 冒泡排序步骤过程拆解2.1 比较相邻元素2.2 交换元素2.3 重复过程 3. 冒泡排序的优化3.1 提前退出3.2 记录最后交换位置案例代码和动态图 4. 冒泡排序的优点5. 冒泡排序的缺点总结 …...

计算机网络——http和web
无状态服务器——不维护客户端 怎么变成有状态连接 所以此时本地建立代理—— 若本地缓存了——但是服务器变了——怎么办?...

使用 Light Chaser 进行大屏数据可视化
引言 在当今数据驱动的世界中,数据可视化变得越来越重要。Light Chaser 是一款基于 React 技术栈的大屏数据可视化设计工具,通过简单的拖拽操作,你可以快速生成漂亮、美观的数据可视化大屏和看板。本文将介绍如何使用 Light Chaser 进行数据…...

Java中的异常概念
在Java编程中,异常(Exception)是一种特殊的情况,它在程序执行期间发生,会干扰程序正常的流程。 ## 一、异常的产生原因 1. **用户输入错误** - 例如,当一个程序期望用户输入一个整数,而用户…...