经典文献阅读之--Multi S-Graphs(一种高效的实时分布式语义关系协同SLAM)

news2024/11/16 19:35:45

0. 简介

协作同时定位与建图(CSLAM)对于使多个机器人能够在复杂环境中操作至关重要。大多数CSLAM技术依赖于原始传感器测量或低级特征,如关键帧描述符,这可能由于缺乏对环境的深入理解而导致错误的闭环。此外,这些测量和低级特征在机器人之间的交换需要传输大量数据,这限制了系统的可扩展性。为了克服这些限制,《Multi S-Graphs: an Efficient Real-time Distributed Semantic-Relational Collaborative SLAM》提出了Multi S-Graphs,一个去中心化的CSLAM系统,利用嵌入在四层分层和可优化情境图中的高级语义关系信息,进行协作地图生成和定位,同时最小化机器人之间交换的信息量。为此,我们提出了一种新颖的基于房间的描述符,连同其连接的墙壁,用于执行机器人间的闭环,解决多机器人绑架问题初始化的挑战。在模拟和真实环境中的多次实验验证了所提方法在提高精度和鲁棒性方面的改进,同时与其他最先进方法相比,减少了机器人之间交换的数据量。相关软件可以在Github中找到。

1. 主要贡献

因此,在本项工作中,我们提出了Multi S-Graphs,一个基于LiDAR的分布式CSLAM系统,利用多层情境图(S-Graphs)的潜力,这是一个单一的可优化因子图,结合了位姿图(即关键帧)和带有语义关系概念的3D场景图,以生成精确的环境地图并定位这一地图中的不同机器人,同时在机器人之间交换最少的信息。据我们所知,我们提出了第一个基于可优化情境图的实时分布式协作SLAM系统。图1展示了在真实实验中执行的Multi S-Graphs。

我们系统的主要贡献如下:

  1. 一个基于四层可优化分层S-Graphs的新颖的分布式多机器人框架,Multi S-Graphs,利用语义关系信息进行地图合并,同时最小化机器人之间的信息交换。
  2. 一个混合的基于房间的描述符,结合了细粒度的点云信息和语义知识,以识别机器人间的闭环。
  3. 在模拟和真实环境中对所提方法进行了实验验证,与最先进的多机器人方法相比,获得了改进的精度。

在这里插入图片描述

图1:三个机器人(分别用橙色、灰色和蓝色代表机器人1、2和3)绘制建筑楼层的协作图。协作图是从机器人1的视角生成的。其他机器人收集的语义信息,如房间或墙壁,在图层中以透明颜色显示。其他机器人的坐标系统原点被一个圆圈包围。下方是合并每个机器人获得的点云的结果。这个点云是为了可视化目的而显示的,并未用于机器人间通信

2. 系统架构

在Multi S-Graphs中,每个机器人运行完全去中心化的Multi S-Graphs系统,如图2所示。我们的系统架构围绕情境图(S-Graphs)构建,这是一个单一的多层可优化因子图,结合了位姿图和场景图以及语义关系概念。这张图包含了所有用于提取交换所需关键信息的知识,并整合了其他代理的信息,形成了多机器人情境图。代理间共享的信息被广播到一个共同的通信频道中,这个频道在它们之间交换最小量的数据。在我们的系统中,我们考虑了多机器人被绑架问题,即每个机器人不知道自己在地图上的位置以及其他机器人的位置,因此每个机器人都会以其起点(原点)为参考创建环境地图,并将其余代理定位到相对于它的位置。我们提出的系统由四个主要模块组成:

  1. 本地S-Graphs生成(第三节)。为了生成每个机器人的本地S-Graphs,我们使用[8],它在每个机器人上运行,使用机器人的里程计和3D LiDAR测量。它还估计了机器人生成地图时所遵循的位置和轨迹。
  2. S-Graphs精简(第四节)。我们将每个机器人生成的本地S-Graphs边缘化,只传输语义关系信息,而不是存储在每个关键帧上的低级信息。每个精简的图包括一个参考节点,代表每个机器人的本地坐标系统的原点。这个精简的S-Graphs被传输给其他机器人。
  3. 基于房间的机器人间闭环(第五节)。仅依靠生成的语义图进行闭环可能会在环境中存在对称性时产生对齐错误。为了结合点云的细粒度信息并利用每个房间包含的高级语义信息,我们为每个房间生成了一个混合描述符,即房间描述符。这个模块负责两项任务:生成描述符和找到合适的房间匹配。
  4. 协作S-Graphs生成和优化(第六节)。这个模块将从其他代理收到的精简S-图与自己的本地S-Graphs整合。不同的图通过前一个模块生成的闭环连接在一起。连接的图被全局优化,以生成最终的协作情境图。

在这里插入图片描述

图2:从Roboti视角看的Multi S-Graphs架构。里程测量和3D激光雷达数据是机器人平台提供的输入。每个机器人执行自己的本地 S-GraphsS-图系统,并生成用于与机器人网络其余部分交换的房间描述符和精炼S-Graphs。机器人之间交换的消息用灰色表示。从Roboti的视角看,其余代理提供的精炼图和房间描述符被用来生成协作S-Graphs。其余机器人提供的信息以绿色显示。

3. 本地情境图生成

在我们的系统中,每个机器人的情境感知被封装在一个情境图中,这个情境图的实体被设计为代表构成建筑布局的不同元素。在这项工作中,我们依赖于SGraphs+ [8]算法来生成这个情境图,这基于机器人的激光雷达和里程测量,估计机器人的定位。这些SGraphs是四层可优化的分层图,包含了关于建筑结构的相关信息:

  1. 关键帧层。它由机器人位姿构成,作为代理地图框架Ai中的SE(3)节点,通过成对的里程测量约束它们。
  2. 墙壁层。它由从3D激光雷达测量中提取的平面墙面构成,并使用最小平面参数化因子化。通过其各自的关键帧观察到的平面使用位姿-平面约束进行因子化。
  3. 房间层。它由两面墙的房间(走廊)或四面墙的房间组成,分别约束两面或四面检测到的墙壁。
  4. 楼层层。它由一个位于当前楼层中心的楼层节点组成。

4. 情境图的精炼

为了减少机器人之间需要交换的数据量,我们从本地S-Graphs中提取最有意义的信息。这个图编码了S-Graphs的更高级别层,并将它们定位于每个机器人的原点节点相对应的位置,这使得关于建筑结构的最小但有意义的信息交换成为可能。精炼后的S-图按以下层组织:

…详情请参照古月居

  1. 起点层。每个精炼S-Graphs的原点节点,它代表每个机器人协调系统的原点。图中其余所有元素都相对于这个节点定位。
  2. 墙壁层。从每个代理的S-Graphs中提取的墙壁估计及其协方差。连接平面与其对应关键帧节点的边被替换为指向原点顶点的边。
  3. 房间层。每个代理检测到的四墙房间顶点的估计,以及连接房间与其四个相应墙节点的边
  4. 楼层层。它由位于当前楼层中心的楼层节点组成。

5. 基于房间的机器人间闭环

为了将本地S-Graphs与外部精炼S-Graphs连接起来,需要一个闭环方法。为了避免在非常对称的情况下,如多个房间位于一条走廊的一侧时,对机器人位置进行对齐的错误,我们不能仅依赖于存储在精炼S-Graphs中的结构信息,可能需要更细粒度的信息来打破对称性并决定两个房间是否相同。##

5.1 房间描述符生成器

我们提出了一种混合描述符,即房间描述符,它将每个房间的语义信息与以房间为中心的点云基描述符整合在一起,这通过增加一小部分传输数据量,提高了闭环算法的鲁棒性和准确性。图3展示了一个房间描述符的例子

在这里插入图片描述

图3:通过使用扫描上下文(Scan Context),从以房间为中心的点云(左图)中获得的房间描述符(右图)。描述符中每个单元格的值是相应容器中点的最大高度。

为了生成这些描述符,我们依赖于扫描上下文描述符(Scan Context)[27]。这是一个以自我为中心的、偏航不变的点云描述符,鉴于其简单性和快速收敛时间,它展示了最先进的结果。这个描述符的主要缺点是它对线性运动敏感。为了解决这个问题,我们利用房间中的语义信息,通过从每个房间的中心生成扫描上下文描述符,避免了平移误差。为了生成房间描述符,我们需要一个以房间为中心的点云,这是通过结合房间内所有关键帧的点云构建的点云。每个房间关键帧 R k i R_{k_i} Rki可以表示为:

R k i = ⋃ R i k j ; ∀ j ∣ K j ∈ R i ( 1 ) R_{k_i} = \bigcup {^{R_i}{k_j}} \quad ; \quad \forall j \mid K_j \in R_i \quad (1) Rki=Rikj;jKjRi(1)

在这里, R i K j ^{R_i}K_j RiKj表示与关键帧 K j K_j Kj相关的点云,在 R i R_i Ri框架中(一个位于房间 i i i中心的框架)。

为了从房间关键帧 R k i R_{k_i} Rki获得房间描述符 R d i R_{d_i} Rdi,我们首先使用固定体素大小对 R k i R_{k_i} Rki进行下采样,以使每个房间的点数统一化。最后,计算每个房间关键帧 R k i R_{k_i} Rki扫描上下文描述符,以创建房间描述符 R d i R_{d_i} Rdi

R d i = S C ( ϕ ( R k i ) ) ( 2 ) R_{d_i} = SC(\phi(R_{k_i})) \quad (2) Rdi=SC(ϕ(Rki))(2)

其中, ϕ ( R k i ) ϕ(R_{k_i}) ϕ(Rki)代表了下采样后的房间关键帧点云,而 S C ( X ⃗ ) : R n × 3 → R n s × n r SC(\vec{X}) : {R}^{n \times 3} \rightarrow {R}^{n_{s} \times n_{r}} SC(X ):Rn×3Rns×nr是扫描上下文函数,用于获得给定点云的描述符。

5.2 闭环检测

为了生成对齐的良好候选者,我们利用房间描述符来匹配用于将本地S-图Graphs外部精炼图连接的房间,从而生成每个机器人坐标系统的全球对齐。房间匹配分为两步过程进行:

  1. 扫描上下文匹配:每个机器人接收并存储其余代理的房间描述符,试图使用扫描上下文距离[21]找到合适的匹配
  2. 精确对齐:每当在机器人和其他代理的房间之间找到匹配时,它试图使用产生扫描上下文的以房间为中心的点云获得改进的变换。为此,机器人请求下采样点云并使用VGICP [28]登记算法。相对变换的有效性由对齐距离和匹配阈值 t d t_{d} td确定。

如果找到匹配,房间匹配及房间之间的相对变换就被发送到下一个模块(第4V节),以连接不同的图。

6. 协作情境图

最终模块整合了本地S-Graphs与精炼S-Graphs,使用前一模块提供的闭环,生成协作S-Graphs。在这个协作S-Graphs的生成过程中,可以找到两个不同的阶段:

  1. 孤立图:在启动时,该模块存储来自本地S-Graphs和其他机器人接收到的精炼S-Graphs的信息,但由于机器人不知道每个机器人在哪里开始,它不能合并不同的图。在这个阶段,每个外部精炼S-Graphs的起点层连接到墙壁和房间层,但这个起点层是“自由”的,因为它没有与机器人的本地S-Graphs连接,导致多个断开的图。只要收到新信息,这些图就会被更新。

  2. 协作图:如果使用房间匹配步骤(第5节)找到房间匹配,我们就会在2步中制定本地s-Graphs和精炼s-Graphs之间的因子。在第一步中,为匹配的房间创建房间到房间的因子。对于给定的匹配房间,建立较低级别的墙到墙的因子,这增强了图的对齐。每当本地S-Graphs和外部精炼S-Graphs通过适当的因子连接时,就会执行类似于[8]的常见优化。经过这个优化后,外部图与机器人的本地坐标框架对齐,使得其他机器人提供的信息集成到协作SGraphs中,使用与本地机器人相同的坐标框架来表示外部精炼图的不同实体,如图1所示。



7. 结论与未来工作

在本项工作中,我们提出了一个分布式CSLAM系统,利用由S-Graphs[7]、[8]提取的语义关系特征,以减少机器人之间需要传输的数据量,同时在结构化环境中实现超越最先进的地图制作和定位精度。

我们在多种情景下测试了我们的算法,包括模拟和真实场景,在精确度和带宽方面超越了其他最先进的基于激光雷达的协作SLAM算法,将轨迹和地图重建误差减少了90%以上,同时节省了95%的机器人之间交换的数据。由于我们的方法减少了代理之间交换的数据量,它适合于低带宽场景,以及使用相同通信频道的大量机器人。


8. 参考链接

https://mp.weixin.qq.com/s/z3BsztMALVoskSn6QYsjFw

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

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

相关文章

[SDK]-菜单 和 树控件

前言 各位师傅大家好,我是qmx_07,今天给大家讲解菜单和树控件的相关知识 菜单 认识菜单 及 创建自定义菜单栏 资源文件 -> 项目名.rc ->Menu 这是系统提供的默认菜单,也可以往里面添加修改内容 以下是 自定义菜单栏: 创…

如何通过Autoscaler实现Kubernetes的伸缩?

本文将介绍如何在流量高峰之前使用KEDA和Cron scaler主动调整工作负载规模。 在设计Kubernetes集群时,我们可能经常需要回答以下问题: 集群伸缩需要多长时间?在新Pod创建之前需要等待多长时间? 有四个主要因素会影响集群的伸缩…

Windows环境下 VS2022 编译 OGG 源码

OGG OGG音频编码格式,全称为Ogg Vorbis,是一种开源且无专利限制的音频压缩格式。它被设计用来提供高质量的音频存储和传输,同时保持较小的文件大小。OGG Vorbis支持多声道音频,并且可以处理可变比特率,这意味着它可以根…

分享从零开始学习网络设备配置--任务6.3 使用基本ACL限制网络访问

任务描述 某公司构建了互联互通的办公网,为保护公司内网用户数据的安全,该公司实施内网安全防范措施。公司分为经理部、财务部和销售部,分属3个不同的网段,3个部门之间用路由器进行信息传递。为了安全起见,公司领导要求…

npm 清除缓存

npm cache clean --forcenpm cache verify# 安装依赖 npm install# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 npm install --registryhttps://registry.npmmirror.com npm彻底清理缓存_npm cache verify-CSD…

OpenCV仿射变换和透视变换函数(C++)

文章目录 引言图像仿射变换 warpAffine()图像的旋转仿射变换 透视变换 warpPerspective()透视变换例子参考文献 **仿射变换相关函数** cv::transform():对一组点进行仿射变换 cv::warpAffine():对整幅图像进行仿射变换 cv::getAffineTransform()&#xf…

[基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 01 安装 nodejs 环境

文章目录 下载安装测试 这里让我们去看看如何安装一下 nodejs 的环境 下载 通过官网进行下载安装包 官网 https://nodejs.org/zh-cn点击 下载 Node.js (LTS) 开始下载 安装 下载完成之后,双击进行安装 开始进行安装了 这样,node.js 就安装好了 测试 …

Ubuntu下使用Cron定时任务

Ubuntu下使用Cron定时任务 文章目录 Ubuntu下使用Cron定时任务概述Cron 工作原理crontab的基本指令使用Cron 定时任务语法用户的crontab 文件系统的crontab 文件cron 任务设置环境变量1. 直接在 crontab 中声明变量2. 将变量声明为命令的一部分3. 从文件加载变量使用环境变量控…

网络基础入门指南(二)

一、什么是交换机 交换机,Switch 用于将多台计算机/交换机连接到一起,组建网络 交换机负责为其中任意两台计算机提供独享线路进行通信类型: 非网管(即插即用),便宜,不可管理 网管&#xff0…

CCF推荐C类会议和期刊总结:(计算机体系结构/并行与分布计算/存储系统领域)

中国计算机学会(CCF)在计算机体系结构、并行与分布计算、存储系统领域推荐了一系列C类会议和期刊。此汇总涵盖了各期刊和会议的全称、出版社、dblp文献网址及研究领域,为学者和研究人员提供了重要的学术交流资源。列表包括《ACM Journal on E…

Javase复习day21算法、arrays、Lamdba表达式

常见算法 查找算法 基本查找 package search;public class BasicSearchDemo1 {public static void main(String[] args) {//基本算法(顺序查找)int[] arr {131,23,57,37,95,48,57,43};System.out.println(basicSearch(arr, 43));}public static boo…

基于PINN 进行混合流体中的热量与质量扩散预测

近年来,物理信息神经网络(PINN,Physics-Informed Neural Networks)成为解决复杂物理问题的一种强大工具。PINN 的核心在于结合物理定律和机器学习的能力,直接从偏微分方程(PDEs)出发&#xff0c…

LDtk to Unity 大致流程和一些注意点

因为自己也还在探索中,所以有点杂乱,后续有其他的东西还会继续更。 制作 先套用这个模板,确定基础的循环。再去丰富。 LDtk一小时完全入门教程_哔哩哔哩_bilibili To Unity 安装包 LDtk To Unity 输出 图集 在Run after saving运行 ../../Lib…

Arch - 架构安全性_凭证(Credentials)

文章目录 OverView凭证(Credentials)1. 传统认证授权方式:Cookie-Session 机制2. OAuth2 令牌概述什么是 JWTJWT 令牌 结构HeaderPayloadSignature JWT的优劣势无状态架构的挑战 3. JWT 与 Cookie-Session 的对比 OverView 即使只限定在“软…

rustDesk远程软件,强的可怕

背景 最近在做一个机房的远程运维,对面系统都是windows的,远程本来采用的向日葵,开两三个窗口就不能再多开了,没办法冲了年费瓜子会员,开通会员之后,确实好很多。 随后又增加了一个值班人员,我…

HarmonyOs 应用基础--ArkTS-核心-基础

目录 八. ArkTS-语句-类型进阶与渲染控制 1. 对象进阶 1.1. 定义对象数组 1.2. 使用对象数组 2. 渲染控制 - ForEach 2.1. ForEach语法 2.2. ForEach使用优化代码 2.3. 案例-学生档案 实现思路 3. Math对象 4. 综合案例 -- 抽奖卡案例 4.1. 初始页面布局(静…

手机到了外地ip地址就变了吗

手机到了外地IP地址就变了吗?随着智能手机的普及,人们越来越频繁地使用手机进行各种网络活动。然而,关于手机IP地址是否会随着地理位置的变化而改变,许多用户仍心存疑惑。本文将深入探讨这一问题,揭示IP地址变化的奥秘…

【C++ 09】继承

文章目录 🌈 一、继承的概念及定义⭐ 1. 继承的概念⭐ 2. 继承的定义🌙 2.1 定义格式🌙 2.2 继承方式和访问限定符🌙 2.3 继承父类成员访问方式的变化🌙 2.4 默认继承方式 🌈 二、父类和子类对象赋值转换⭐…

分布式通信:多计算平台的任务分配

目录 1. 分布式通信 1.1 树莓派配置流程​编辑 1.2 树莓派和laptop处于同一网络​编辑 1.3 laptop配置 1.4 通信测试 1.5 分组通信 ​编辑 1.6 分布式通信测试 ​编辑参考资料 1. 分布式通信 机器人体积较小,采用树莓派作为控制器,实现传感器处…

仿某皮影狸app官网源码 不错的APP下载官网单页源码 HTML源码

分享一款不错的APP下载官网单页源码,直接修改index.html即可 源码下载:https://download.csdn.net/download/m0_66047725/89731228 更多资源下载:关注我。