论文阅读:Distributed Initialization for VIRO with Position-Unknown UWB Network

前言

Distributed Initialization for Visual-Inertial-Ranging Odometry with Position-Unknown UWB Network这篇论文是发表在ICRA 2023上的一篇文章,本文提出了一种基于位置未知UWB网络的一致性视觉惯性紧耦合优化测距算法( DC-VIRO )的分布式初始化方法。

对于位置未知的UWB锚节点,我们通过求解一个机器人辅助的分布式定位算法( Robot-aided Distributed Localization,RaDL )来初始化它们的位置。

对于机器人状态估计,我们将初始化锚点的测距测量值和视觉惯性测量值融合在一个一致滤波器中。将RaDL建模为基于一致性的优化问题,并采用分布式交替方向乘子法( Distributed Alternating Direction Method of Multipliers,D-ADM )算法进行求解。

为了识别不可观测的条件,我们提出了一种基于自包含Fisher信息矩阵( Fisher Information Matrix,FIM )的准则,该准则可以由每个锚节点直接使用本地保留的测距测量值进行评估。

我们使用协方差交集( Covariance Intersection,CI )来估计初始化锚点位置的协方差,以进行一致性数据融合。

一、问题背景

问题可以分为两个阶段:

1 .机器人辅助的UWB传感器网络定位问题;

2 .带有机载视觉惯性传感器和外部初始化UWB锚点的机器人状态估计问题

主要问题:

由于缺乏全局信息,VIO方法在长轨迹上存在定位漂移问题。

当UWB锚节点众多时,集中式方法容易导致整个网络严重的通信拥塞和中心节点的高计算复杂度。

在机器人辅助分布式定位( Radl )中存在两个主要的挑战:

1 .以分布式的方式求解优化问题;

现有的方法[ 22 ] [ 23 ]使用锚点的位置来评估FIM,这需要在评估FIM之前解决计算密集型的优化问题。

2 .识别不可观测条件,避免求解器发散。

由于与测距测量相对应的历史姿态被保存在状态的长窗口中[ 5 ],状态向量及其协方差随着UWB锚点数量的增加而膨胀,导致在应用于大规模UWB网络时面临挑战。

二、主要假设

未知位置UWB网络

基于滤波器的估计器

三、理论流程

RaLD方法

UWB网络被设计成对等结构,其中UWB锚点在簇中充当节点( Opt。图2中的节点)。UWB网络中的每个节点利用其本地保存的测距测量值(图2中的局部测距)来估计Fisher信息矩阵( FIM )的行列式,然后决定是否准备初始化(图2中的FIM基判据)。我们使用集中式的Levenberg - Marquard算法进行单锚点初始化。

VIRO估计器

如图2所示,机器人平台在多状态约束卡尔曼滤波( MSCKF )框架(图2中FEJ - VIRO)中融合视觉惯性测距测量。算法2给出了机器人平台上运行的程序,可以看作是两部分:第2行9机器人状态估计,第10行13将初始化的UWB锚点增强为CI状态。如果对应的UWB锚点没有被增强到机器人状态(线3⋅7),则在机器人平台上放弃测距测量。

基于FIM的判据

Fisher信息是一种度量一组测量携带的关于未知状态的信息量的方法。

高斯假设下的Fisher定义:

如( 5 )所示,如果我们用Ha估计det ( F ),锚点的位置Gpa需要估计,这需要求解一个计算密集型的优化问题。因此,我们利用Cauchy - Binet公式对det ( F )进行了几何解释,它具有如下形式:

其中( rj1 × rj2) · rj3等于如图3所示的平行六面体的体积.然后我们计算了四面体的体积| VOABC |,如图3 ( b )所示,其中( rj1 × rj2) · rj3是它的六倍。逆着图3 ( b )中{ rj1,rj2,rj3 }的方向,A,B,C三点对应图3 ( a )中的{ GpIj1,GpIj2,GpIj3 } .因此我们可以利用Heron型公式和Cayley - Menger行列式计算| VOABC |:

考虑到det( [ uj1 uj2 uj3 ]⊤) = 6 | VOABC |如图3 ( b )所示,我们可以用( 6 )计算det ( F )。此外,det ( F )可以随着新接收到的测距测量值进行增量更新。假设锚节点在tk时刻接收到一个新的测距量dk,用Υ k - 1计算det ( Fk - 1 ),其中Υ k - 1包含所有收集到的测距量,直到tk - 1。将dk和测距对{ di,dj }∈Υ k - 1以及对应的机器人位姿结合起来,利用式( 8 )计算det( [ uk uj ui ]⊤)2。然后将结果与det ( Fk-1 )相加,得到当前的FIM估计值det ( Fk )。由于det ( F )量化了已有的n个测距测量值所携带的信息,当det ( F ) > τ F时,我们可以设置一个阈值τ F来初始化UWB锚点的位置。

分布式优化

我们通过求解一个非线性优化问题来初始化UWB锚节点的位置,该问题是在基于一致性的优化框架中重新制定的。求解器的初始值由文献[ 27 ]给出,如文献[ 5 ]。

我们假设一个UWB锚点在时间步长tk (见图1中的Ready UWB Anchor)满足基于FIM的准则,并且存在n - 1个初始化的UWB锚点(见初始化UWB锚点图1)。对于这些n个UWB锚点,我们有det ( Fi ) > τF ( i = 1,2 , · · · , n)。优化问题:

在[ 19 ]的基础上,我们用分布式交替方向乘子法( D-ADMM )求解( 10 ) .在D - ADMM算法中,我们将一个对偶变量λ ij与每个约束xci = xcj( i , j = 1 , · · · , n)相关联。每个Opt。图2中的节点保留一个局部决策估计xci和一个对偶变量的向量λ ji,其中j < i .每个Opt。图2中的节点交替更新本地状态和对偶变量:

节点由UWB锚节点的ID进行排序。在每次迭代中,选择.节点更新分两步进行。首先,他们用利文贝格-马夸德( LM )求解( 12 ),以更新局部决策估计,并进一步用( 13 )更新对偶变量。其次,他们将新的决策估计值xci,k + 1和新的对偶变量λ k + 1ji发送给他们的后继者进行下一次迭代.

一致性VIRO滤波器

在这一部分中详细描述了在机器人上运行的基于滤波器的第一估计雅克比视觉惯性测距( FEJVIRO ),它在MSCKF框架中融合了UWB、相机和IMU的测量。我们只介绍[ 5 ]中的不同部分,读者可以参考我们先前的工作[ 5 ]来获得更多的细节。

[5]S. Jia, Y. Jiao, Z. Zhang, R. Xiong, and Y. Wang, “Fej-viro: A consistent first-estimate jacobian visual-inertial-ranging odometry,” arXiv preprint arXiv:2207.08214, 2022.

向量情况:

距离测量及其雅可比:

带CI的协方差

尽管带CI的协方差恢复运行在新初始化的UWB锚点上,但我们在这个模块中描述它,因为它的目标是在机器人状态中增加初始化的锚点位置时保持VIRO滤波器的一致性。通过恢复锚点位置的协方差Paa的上界来保证一致性。

锚点协方差:

注意到Ω = { P1 · · · PM }是Pxx的6 × 6对角子矩阵。由( 24 )式,我们需要Pxx的上界来计算Paa的上界。根据协方差交集理论[ 25 ],Pxx的上界由下式给出

通过上述两式可以得到锚点协方差的上界。如果{ G ( pai,( Paa ) }在机器人状态中没有被增广,我们只将其增广到状态和协方差。如果状态已经包含了它的估计位置Gpai,s和协方差Paa,s,我们用CI融合现有的值和新的估计值:

四、实验方案

基于OpenVINS [ 1 ]实现了Consistent VIRO Filter它是目前最先进的基于滤波器的视觉惯性估计器。基于机器人操作系统( Robot Operating System,ROS )实现了分布式UWB初始化方法。

仿真实验

真实环境实验

五、创新总结

方法:

第一阶段:

对于第一个挑战,我们通过共识形成( [ 18 ] )来重新表述集中式问题,并使用一种流行的称为分布式ADMM [ 19 ] [ 20 ]的对偶方法来解决。

对于第二个挑战,传感器位置的可观测性通常由Fisher信息矩阵( Fisher Information Matrix,FIM )进行分析。通过利用几何解释,我们提出了一种增量方法,直接利用锚点的局部测量来评估FIM的行列式,从而产生基于FIM的在线准则启动优化。

第二阶段:

在这项工作中,我们用协方差交叉( CI )恢复优化锚点的协方差[ 24 ] [ 25 ],这是一致融合和协方差恢复的有用技术[ 26 ]。我们将机器人关键帧的位姿和小的边缘协方差广播到UWB网络中,然后用CI计算全协方差的上界。因此,每个锚点可以在优化后恢复其协方差,然后将位置和协方差传输给机器人以进行一致的状态增强。在机器人状态中增加一个锚点i后,机器人通过机器人与锚点i之间的距离测量来更新状态。

综上所述,本文的主要贡献如下:

·提出了一种基于位置未知UWB网络的视觉-惯性-测距一致性里程计分布式初始化方法DC - VIRO;

·将UWB初始化问题重新纳入一致性优化框架,并采用D - ADMM算法进行求解。我们还提出了一种基于FIM的准则来识别不可观测的情况,该准则是自容式的,并且只需要局部测距测量。

·我们使用CI技术有效地恢复了锚点位置的协方差。在机器人状态下,将恢复的协方差和优化的锚点位置进行增广,从而得到准确和一致的VIRO滤波器。

本文提出了一个分布式系统,它将来自相机、IMU和UWB的测量进行一致融合,以估计机器人的位姿和UWB锚点的位置。机器人平台和所有装有机载计算机的UWB锚点都是集群中的计算节点,它们之间只传输状态值和边缘协方差。机器人运行一个轻量级且一致的VIRO滤波器来估计机器人位姿。而UWB网络一旦满足基于FIM的准则,就用D - ADMM估计锚节点的位置。将估计的锚点位置发送给机器人,并与CI技术一致地增强到VIRO滤波器中。在未来的工作中,将尝试将DC - VIRO扩展到多机器人系统。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java毕业设计源码—vue+SpringBoot图书借阅管理图书馆管理系统

主要技术 SpringBoot、Mybatis-Plus、MySQL、Vue3、ElementPlus等 主要功能 管理员模块&#xff1a;注册、登录、书籍管理、读者管理、借阅管理、借阅状态、修改个人信息、修改密码 读者模块&#xff1a;注册、登录、查询图书信息、借阅和归还图书、查看个人借阅记录、修改…

GUI菜单栏

菜单栏 菜单栏组件: 构造方法:JMenuBar(); 方法:add(menu); 向菜单栏添加菜单 菜单组件: 构造方法:JMenu(“菜单名称"); 方法:add(menuItem); 向菜单添加菜单选项 菜单项组件: 构造方法:JMenuItem(“菜单项名称"); 将菜单栏添加到窗口 setJMenuBar(menuBar); 输出 …

Java网络编程——Socket用法解析

在客户/服务器通信模式中&#xff0c;客户端需要主动创建与服务器连接的Socket&#xff0c;服务器端收到了客户的连接请求&#xff0c;也会创建与客户连接的Socket。Socket可以被看作是通信连接两端的收发器&#xff0c;服务器与客户都通过套接字来收发数据。 1、构造Socket …

毕业设计全流程!

先看一眼时间线&#xff1a; 1

nodejs+vue+elementui+express青少年编程课程在线考试系统

针对传统线下考试存在的老师阅卷工作量较大&#xff0c;统计成绩数据时间长等问题&#xff0c;实现一套高效、灵活、功能强大的管理系统是非常必要的。该系统可以迅速完成随机组卷&#xff0c;及时阅卷、统计考试成绩排名的效果。该考试系统要求&#xff1a;该系统将采用B/S结构…

【数电笔记】53-与非门构成的基本RS触发器

目录 说明&#xff1a; 1. 电路组成 2. 逻辑功能 3. 特性表 4. 特性方程 5. 状态转换图 6. 驱动表 7. 例题 例1 例2 说明&#xff1a; 笔记配套视频来源&#xff1a;B站&#xff1b;本系列笔记并未记录所有章节&#xff0c;只对个人认为重要章节做了笔记&#xff1b…

高中教师工资多少钱一个月

身为一个高中老师&#xff0c;经常被问到的问题就是&#xff1a;“老师&#xff0c;你一个月到底挣多少钱&#xff1f;”今天就为大家揭秘一下&#xff01; 其实&#xff0c;教师工资并不是一成不变的&#xff0c;它会受到多种因素的影响&#xff0c;比如地区、学校类型、教龄、…

使用ApexSQLLog工具恢复数据库

目录 前言 一、ApexSQLLog是什么&#xff1f; 二、使用步骤 1.连接你要恢复的数据库 2.选择你要恢复的时间点的数据 3.恢复指定操作的数据 4.恢复指定的表 5.输出结果方式 6.输出结果方式 7.生成还原的sql语句 总结 前言 我们在操作数据库的时候可能误操作把数据修…

Maven-高效的Java项目构建与管理工具(含Maven详细安装与配置过程)

Maven 什么是Maven&#xff1f; 正如题目所说&#xff0c;Maven就是一款高效的Java项目构建与管理工具&#xff0c;基于项目对象模型&#xff08;POM&#xff09;概念&#xff0c;利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。是Apache软件基金会的一个开源…

JavaScript基础(23)_DOM增删改

DOM增加对象 createElement(): 含义&#xff1a;创建一个元素节点对象。 用法&#xff1a;它需要一个标签名作为参数&#xff0c;将会根据该标签名创建元素节点对象&#xff0c;并将创建好的对象作为返回值返回。比如&#xff1a;var li document.createElement("li&quo…

时间序列预测实战(二十五)PyTorch实现Seq2Seq进行多元和单元预测(附代码+数据集+完整解析)

一、本文介绍 本文给大家带来的时间序列模型是Seq2Seq&#xff0c;这个概念相信大家都不陌生了&#xff0c;网上的讲解已经满天飞了&#xff0c;但是本文给大家带来的是我在Seq2Seq思想上开发的一个模型和新的架构&#xff0c;架构前面的文章已经说过很多次了&#xff0c;其是…

基于LSTM和N-gram序列的英文文本生成(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

opencv的图像直方图处理

1 opencv的直方图 1.1 什么是直方图 直方图是对数据进行统计的一种方法&#xff0c;用于显示数据中各个数值或数值范围的分布情况。它将数据划分为一系列的区间&#xff08;也称为“箱子”或“bin”&#xff09;&#xff0c;然后统计每个区间中数据出现的频次&#xff08;或频…

Jvm常见问题

1. 为什么用元空间替换永久代 避免OOM异常&#xff1a;永久代中存放了很多JVM需要的类信息&#xff0c;这些数据大多数是不会被清理的&#xff0c;所以Full GC往往无法回收多少空间。而永久代的空间是有限的&#xff0c;如果经常加载新的类进来或者频繁的创建和删除类&#xf…

1-2算法基础-常用库函数

1.排序 sort(first,last,cmp) first指向要排序范围的第一个元素&#xff0c;从0起 last指向要排序范围的最后一个元素的下一个位置 cmp&#xff08;可选&#xff09;&#xff0c;自定义函数&#xff0c;默认从小到大 评测系统 #include <iostream> #include<algorith…

数据库备份脚本

#!/bin/bash #数据库备份 #工具&#xff1a;xtrabackupif [ ! -d /xtrabackup/ ];thenmkdir /xtrabackup/{full,inter,diff} -p fito_mail15191876750163.com db_userroot db_passwdAren123 basedir/xtrabackup/full/ baseinter/xtrabackup/inter/ basediff/xtrabackup/diff/ f…

Java程序员,你掌握了多线程吗?(文末送书)

目录 01、多线程对于Java的意义02、为什么Java工程师必须掌握多线程03、Java多线程使用方式04、如何学好Java多线程送书规则 摘要&#xff1a;互联网的每一个角落&#xff0c;无论是大型电商平台的秒杀活动&#xff0c;社交平台的实时消息推送&#xff0c;还是在线视频平台的流…

房产报备小程序开发方案详解

房产客户报备小程序&#xff0c;php语言&#xff0c;uniapp前端。 房产公司合作的一些渠道商&#xff0c;渠道商在报备端报备客户&#xff0c;房产公司的人在确客端确认报备。报备的客户是以手机号为判断&#xff0c;已经报备过的手机号无法再次报备&#xff0c;有效时间到期后…

Python-基本的输入和输出(input函数和print函数用法)

输入 输出 控制台:一种人和计算机交互最基础的方式 什么是控制台&#xff1f;下面这个东西就是控制台。 但是生活中常用的是图形化界面&#xff0c;最初始的计算机使用的就是这样的控制台进行输入和输出的。 所以原来会使用计算机的都是科学家或者高级知识分子。 直到图形化界…

动手学深度学习笔记

1. 深度学习基础与MLP 1.1 框架&#xff1a; 线性回归&#xff1b; Softmax回归&#xff08;实际上用于分类问题&#xff09;&#xff1b; 感知机与多层感知机&#xff1b; 模型选择&#xff1b; 权重衰退&#xff08;weight decay&#xff09;&#xff1b; 丢弃法&…