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

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...