论文阅读:C2VIR-SLAM: Centralized Collaborative Visual-Inertial-Range SLAM
前言
论文全程为C2VIR-SLAM: Centralized Collaborative Visual-Inertial-Range Simultaneous Localization and Mapping,是发表在MDPI drones(二区,IF=4.8)上的一篇论文。这篇文章使用单目相机、惯性测量单元( IMU )和UWB设备作为每个智能体上的机载传感器,以构建准确高效的集中式协同SLAM系统,并设计了一个全局优化算法,利用视觉位置技术检测到的跨智能体地图匹配信息,以及智能体到智能体的距离信息来优化所有参与者的运动参数,并将局部地图合并成一个全局地图。
一、问题背景
未知静态UWB锚点虽然去除了位置校准过程的要求,但仍然需要进行分布式处理;在大规模应用中,由于UWB设备的有效作用范围有限,也需要不同区域的锚点。UWB信号也会受到干扰。这些因素限制了UWB辅助协同SLAM系统的应用。
与基于UWB的系统相比,基于视觉的协同SLAM需要更少的基础设施建设,并且不受测距测量块的限制。然而,智能体之间需要有共同的视图区域并具有条件不变的位置识别能力才能进行协作,这限制了任务执行的效率。共享的视觉地图也给多智能体系统带来了巨大的通信负担。
虽然基于UWB和基于视觉的协同SLAM各有优劣,但研究者们已经提出了几种同时使用UWB和视觉来相互增强[ 4、5]的系统。然而,这些系统主要侧重于利用机载视觉系统来估计未标定的静态UWB锚点的运动和位置,严重依赖锚点进行协作。
二、主要假设
1、多无人机集中式协同架构的基本假设
2、VIO、UWB的应用假设条件
三、理论流程
本文提出了一种新颖的集中式协同视觉/惯性/测距SLAM系统( C2VIR-SLAM ),仅依靠机载视觉、惯性和UWB测距设备即可实现精确高效的集中式协同SLAM。对于每个智能体,采用视觉-惯性里程计( VIO )估计运动参数并重建局部地图。同时,VIO估计的参数、本地地图和代理到代理的UWB距离信息被发布到中央服务器。然后服务器对运动参数进行优化,将局部地图合并为全局地图。
提出的C2VIR - SLAM包括四个主要部分:( i )单智能体视觉惯性里程计,它估计智能体的运动并重建被探索局部区域的地图;( ii )智能体之间的距离测量,使用机载UWB设备;( iii )位置识别,它检测所有智能体共享的地图中的回环,并估计参与者之间的相对运动;( iv )协作定位与地图构建,它优化所有智能体的运动参数并构建全局地图。
1、单机器人视觉惯性里程计
(使用VINS-mono)
2、位姿图协同定位
在中心服务器中执行协同定位,并将其建模为位姿图优化问题(结合板载UWB和视觉):
第i个智能体的t个关键帧数据,包含位置向量和四元数。
上述问题包含三个待优化残差。序列残差是指每个智能体内部VIO的相对运动约束。地图匹配残差描述了来自视觉位置识别组件的重定位约束。智能体间测距约束的UWB测距残差。
(1)来自里程计的序列约束
序列残差代表一个智能体的两个连续关键帧之间的变换:
(2)视觉位置识别的地图匹配约束
具体来说,对于一个新的查询关键帧,我们使用DBOW2外观相似度[ 20 ]将其与所有现有的关键帧进行比较。一旦相似度超过一定阈值,则尝试检测两个相似帧之间的循环。查询关键帧上的3D特征点与候选关键帧上的2D特征进行匹配,其中的特征被描述为BRIEF描述符[ 21 ]。然后,使用RANSAC算法通过求解透视N点( Perspective-N-Points,PNP )问题来评估3D - 2D连接[ 22 ]。一旦内点数量超过一定阈值,则被认为是有效的地图匹配约束。通过求解PNP问题,可以得到两个匹配关键帧之间对应的相对位姿,地图匹配残差为:
通过比较( 5 )和( 7 ),我们可以注意到,当顺序约束使用智能体内部的VIO状态时,地图匹配残差可以使用来自不同智能体的运动信息。现有的一些研究表明,将地图匹配残差引入到协同SLAM系统中,可以极大地提高[ 6、7 ]的精度;然而,这要求协作参与者具有共同的浏览地点和识别重叠的视图,这降低了效率,并给视觉识别组件带来了挑战。
(3)板载UWB的相对范围约束
当地图匹配残差需要共同访问的地点时,UWB可以直接测量两个设备之间的距离信息。在这里我们提出将UWB设备刚性地安装在协作代理上,这去除了锚点分布过程,更适合在未探索环境中的应用。
UWB测距模型:
在我们的系统中,UWB设备与代理一起安装在载体上。因此,得到的测距为两个对应智能体之间的距离;该测距信息可以作为观测量,通过定义残差项为,对里程计测量的运动参数进行修正
需要注意的是,位姿图优化可能是耗时的,只有在( 4 )式中加入地图匹配残差或UWB测距残差项时才有效。为了提高效率,我们在一个恒定的时间间隔内检查是否存在有效的地图匹配和UWB测量值,只有当在该时间间隔内存在地图匹配残差或UWB测距残差时才进行优化。
3、结合全局光束法平差的地图精化
计算协作代理共享的所有关键帧中所有特征的重投影,并优化状态χ和特征的3D位置,以最小化整体重投影误差。global bundle adjustment (GBA)的目标函数可以表示为:
重投影因子遍历所有关键帧和所有地图点。为了提高效率,GBA仅在有效的位姿图优化后执行。
四、实验方案
1、使用公开的EuRoC数据集(UWB数据模拟得到)
我们使用两个和三个智能体设置不同的序列组合对所提出的系统进行了测试,并将结果与CVI - SLAM [ 6 ]进行了比较,CVI - SLAM是一种最先进的使用视觉和惯性传感器的集中式协作SLAM系统。
2、使用自建的多无人机数据集Testing Zone数据集
Test Zone数据集包含两个实验,每个实验包含一个双智能体飞行。在国家智能网联汽车(中国长沙)试验区,利用两架DJI铸字用的铜字模600Pro无人机在300 m × 200 m的室外区域同时飞行采集数据。
五、创新总结
这篇文章从相比于VIR-SLAM,深挖了协同估计中单独使用UWB的不足(信号直线传播),将无人机群估计的知识与UWB-VIO相结合,总体属于组合创新,但也解决了实际问题。
- 我们提出在所提出的C2VIR - SLAM系统中使用机载UWB设备,而不是校准或未校准的静态UWB锚点,这就消除了先验锚点分布过程的要求,并随着设备随智能体移动而扩大了UWB的有效范围;
- 我们设计了一个能够单独或组合使用视觉或机载UWB的系统来进行协作定位和建图;
- 我们在不同的数据集和不同的系统设置中进行了系统的实验,并全面分析了单独使用视觉、单独使用UWB以及它们的组合在协作中带来的性能改进。
相关文章:

论文阅读:C2VIR-SLAM: Centralized Collaborative Visual-Inertial-Range SLAM
前言 论文全程为C2VIR-SLAM: Centralized Collaborative Visual-Inertial-Range Simultaneous Localization and Mapping,是发表在MDPI drones(二区,IF4.8)上的一篇论文。这篇文章使用单目相机、惯性测量单元( IMU )和UWB设备作为…...

蓝桥杯刷题day01——字符串中的单词反转
题目描述 你在与一位习惯从右往左阅读的朋友发消息,他发出的文字顺序都与正常相反但单词内容正确,为了和他顺利交流你决定写一个转换程序,把他所发的消息 message 转换为正常语序。 注意:输入字符串 message 中可能会存在前导空…...

Python---引用变量与可变、非可变类型
引用变量 在大多数编程语言中,值的传递通常可以分为两种形式“ 值 传递 与 引用 传递”,但是在Python中变量的传递基本上都是引用传递。 变量在内存底层的存储形式 a 10 第一步:首先在计算机内存中创建一个数值10(占用一块…...

GDOUCTF2023-Reverse WP
文章目录 [GDOUCTF 2023]Check_Your_Luck[GDOUCTF 2023]Tea[GDOUCTF 2023]easy_pyc[GDOUCTF 2023]doublegame[GDOUCTF 2023]L!s![GDOUCTF 2023]润!附 [GDOUCTF 2023]Check_Your_Luck 根据 if 使用z3约束求解器。 EXP: from z3 i…...

Day43力扣打卡
打卡记录 子数组的最小值之和(乘法原理 单调栈) 大佬的题解 class Solution:def sumSubarrayMins(self, arr: List[int]) -> int:n len(arr)# 左边界 left[i] 为左侧严格小于 arr[i] 的最近元素位置(不存在时为 -1)left, s…...

elementui的table合并列,三个一组
<el-table :span-method"objectSpanMethod" :cell-style"iCellStyle" :data"tableData" height"63vh" border style"width: 100%; margin-top: 6px"><el-table-column type"index" label"序号"…...

HarmonyOS-Service服务开发(一)
文章目录 创建新项目启动Serviceets获取service的bundleName DataAbility开发指导开发Data步骤创建Data 创建新项目 ServiceAbility开发指导 在config.json中也有配置出现 启动Service ets获取service的bundleName 项目的bundleName service的bundleName 这里serviceAbil…...

FLASK博客系列4——再谈路由
最近好像拖更有点久了。抱歉抱歉~ 今天我们继续来聊聊路由(其实就是我上次偷懒剩下一点没讲完)。 通过上次的文章,我们基本了解了Flask中的路由,是不是比较简单呢?别急,今天来点猛料。 一、路由之HTTP方法绑…...
sql之left join、right join、inner join的区别
sql之left join、right join、inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下࿱…...

京东秒杀之秒杀详情
1 编写前端页面(商品详情) <!DOCTYPE html> <head><title>商品详情</title><meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /><script type"text/javascript" src&…...

mobaxterm 下载、安装、使用
下载 官网 MobaXterm free Xserver and tabbed SSH client for Windows 下载页面 MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Download 点击下载 安装 双击安装 勾选协议 修改安装路径 ,等待安装完成 使用 启动 新建连接 输入主机用户名和密…...

办公技巧:Word中插入图片、形状、文本框排版技巧
目录 一、插入图片排版技巧 二、添加形状排版技巧 三、插入“文本框”排版技巧 我们平常在制作word时候经常会遇到插入选项卡下的图片、形状和文本框这三种情况下,那么如何使得Word文档当中添加这三个元素的同时,又能保证样式美观呢,今天小…...

apple macbook M系列芯片安装 openJDK17
文章目录 1. 查找openjdk版本2. 安装openjdk3. 多jdk之间的切换 在这里我们使用 brew 命令查找并安装。 1. 查找openjdk版本 执行:brew search openjdk,注意:执行命令后,如果得到的结果中没有红框内容,则需要更新一下…...

C语言——打印出所有的“水仙花数”
所谓水仙花数,是指一个3位数,其各位数字立方和等于该数本身。水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。例如,153是一个水仙花数,因为1^3 5^3 3^3 153。 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>…...
<HarmonyOS第一课>应用程序框架 【课后考核】
【习题】应用程序框架 判断题 一个应用只能有一个UIAbility。错误(False)创建的Empty Ability模板工程,初始会生成一个UIAbility文件。正确(True)每调用一次router.pushUrl()方法,页面路由栈数量均会加1。错误(False) 单选题 API9及以上,r…...

自动驾驶学习笔记(十一)——高精地图
#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 高精地图 地图采集 底图制作 地图…...

HCIA-H12-811题目解析(2)
1、【单选题】 在以太网这种多点访问网络上PPPOE服务器可以通过一个以太网端口与很多PPPOE客户端建立起PPP连接,因此服务器必须为每个PPP会话建立唯一的会话标识符以区分不同的连接PPPOE会使用什么参数建立会话标识符? 2、【单选题】PPP协议定义的是OSI参考模型中…...

Docker-简介、基本操作
目录 Docker理解 1、Docker本质 2、Docker与虚拟机的区别 3、Docker和JVM虚拟化的区别 4、容器、镜像的理解 5、Docker架构 Docker客户端 Docker服务器 Docker镜像 Docker容器 镜像仓库 Docker基本操作 1、Docker镜像仓库 镜像仓库分类 镜像仓库命令 docker lo…...
Codeforces Round 911 (Div. 2)(C dp D gcd 分解+容斥 E tarjan+dp)
A.手玩题: 可以通过最后一个样例,如果是长度为3的连续O,直接在两边放就行,然后一直用中间的水填到其他地方 #include<bits/stdc.h> using namespace std; const int N 3e510,mod 998244353; #define int long long int n…...

给csgo游戏搬砖新手的十大建议
1、不要参与赌博性质的开箱和炼金,因为真的会上瘾,赚了还好,亏了你得哭。 2、实在想要玩饰品,直接去悠悠有品或者网易buff看价格,底价再砍10元,总会有人愿意卖的。 3、在steam上不要接受陌生人的好友申请…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...

C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...
书籍“之“字形打印矩阵(8)0609
题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...