当前位置: 首页 > news >正文

广州做网络服装的网站建设/谷歌推广怎么操作

广州做网络服装的网站建设,谷歌推广怎么操作,深圳网站建设 东毅虎,做计算机题的网站前言 最近看到一篇ICRA2024上的新文章,是关于多传感器融合SLAM的,好像使用了最近几年文章中较火的轮式里程计。感觉这篇文章成果不错,代码和数据集都是开源的,今天仔细读并且翻译一下,理解创新点、感悟研究方向、指导…

前言

最近看到一篇ICRA2024上的新文章,是关于多传感器融合SLAM的,好像使用了最近几年文章中较火的轮式里程计。感觉这篇文章成果不错,代码和数据集都是开源的,今天仔细读并且翻译一下,理解创新点、感悟研究方向、指导自己的研究。这篇文章通篇略读,主要做了工作做了一个紧耦合的RGBD - Wheel - IMUGNSS SLAM系统,然后加了两个创新点工作,一个是初始化,一个是传感器退化检测

一、问题背景

室内外定位可靠性不足;基于激光雷达的SLAM成本高,基于VIO的引入不可观测自由度,并且有累计漂移误差。现有SLAM系统在具有挑战性场景中鲁棒性有待提高。总结以前的研究成果,GNSS - RGBD - IMU - Wheel融合SLAM可以充分利用各传感器的互补优势,这篇文章关注系统初始化问题和coner case addressing问题(传感器病态检测)。

多传感器融合SLAM系统初始化方面,以前的各种SLAM系统已经有了很多关于系统初始化的成果。多传感器SLAM系统,特别是那些紧耦合的系统,由于其对系统鲁棒性和精度的深刻影响,严重依赖于高质量的初始化。文章介绍了VINS-Mono等以前的初始化成果并指出这些系统的初始化对于严重的传感器故障仍然不够鲁棒。基于这些见解,引出该文章的一种自适应初始化策略,该策略包含三种不同的方法,适用于不同的场景。

传感器退化方面,按照传感器种类分为视觉退化、轮式里程计退化、GNSS退化、IMU退化。视觉退化分为特征不足问题,通常是由于缺乏纹理或光照不足引起的;由于显著的遮挡或侵略性运动而没有有效的特征点;具有大量移动对象的动态环境。轮式里程计退化:角速度不准确和车轮异常。典型的GNSS挑战有3种:低速运动、少于4颗卫星和无GNSS信号。IMU退化:在该研究中,认为滑动窗口内的短期IMU观测值是可靠的,不存在故障。根据不同传感器退化特点文章做了分析,提出了不同的解决方案。

二、主要架构

地面融合系统在优化框架内将RGB图像、深度信息、惯性信息和轮式里程计测量紧密地集成在一起。所有的感知测量都保持在一个滑动窗口中,以保证实时性。该系统由自适应初始化、带退化处理的多传感器状态估计器和稠密映射模块组成。

三、理论创新

1、自适应初始化

系统根据GLRT (广义似然比检验) [ 25 ]方法判断是否存在足够的运动激励,其形式为:

GLRT值将运动状态大致分为以下3类,其中β和γ的阈值通过实验方法确定:

(1)Stationary

我们引入了车轮和视觉观测,进一步确保系统是否是静态的。我们使用轮子中值积分法来预测位姿:

假设连续图像ck和ck + 1之间存在n个里程计帧,则它们之间车轮预积分位姿的范数可以表示为:

此外,我们可以从最新的帧中提取特征点,并将其与滑动窗口中的图像进行匹配。然后,平均视觉视差可以表示为:

在初始化阶段N,如果至少有两个平稳准则{ G < β,W < η,V < θ }满足(实验方法确定的所有阈值),则认为车辆是静态的。否则,我们将车辆视为运动,并使用下段中的方法进行初始化。在确认静止的情况下,我们建立第一个相机框架作为局部世界框架,并将z轴与重力方向对齐。随后,滑动窗口内的所有其他位姿与第一个位姿对齐,而速度设置为零。在优化过程中将系统状态p,v,q设置为常数块。平稳检测和ZUPT不仅适用于初始化阶段,而且应用于整个优化过程。

(2)Slow Motion

在慢速运动情况下,通过求解一个PnP ( Perspective-n-Point )问题,可以计算出两帧之间的相机位姿p,q。由于RGBD相机可以直接测量深度信息,因此可以在没有尺度参数的情况下计算IMU位姿:

结合上述状态和IMU预积分项γ,我们可以通过最小化跟随最小二乘函数来校准陀螺仪偏差:

考虑两个连续的IMU帧bk和bk + 1,我们有如下方程

结合这个和该小节第一个方程,我们可以求解XI的初值。最后,对上一步线性初始化步骤得到的重力向量进一步细化。

(3)Aggressive Motion

采用轮式辅助初始化方法。为了建立一个一致的参考框架,我们使用第一个轮子框架定义世界框架,并将其z轴与轮子框架的z轴对齐。与文献[ 13 ]中使用轮式里程计进行尺度精化的方法相比,我们的方法消除了冗余的SfM分量,充分利用了轮式里程计进行更有效的初始化过程。值得注意的是,虽然这种初始化方法不依赖于视觉信息,但一旦初始化成功,在系统识别有效特征点时,视觉因素仍然可以融入紧耦合优化过程。在使用上述三种方法中的任何一种成功地进行局部初始化之后,我们执行了三步的全局初始化,这是从[ 8 ]中改编的。

2、带退化处理的多传感器状态估计器

我们将状态估计建模为一个最大化后验概率( MAP )问题。我们沿用[ 5 ]的因子图框架,保持滑动窗口,进一步扩展到GNSS - RGBD - IMU - Wheel融合系统。残差和Jacobi的计算可以参考之前的文献[ 8 ] [ 4 ] [ 5 ]。接下来,我们主要介绍了我们的系统如何处理传感器测量数据,以使其对角落情况更加鲁棒

(1)车轮异常

轮式里程计的误差主要来源于不准确的角速度估计和突然的底盘异常,如车轮打滑和碰撞。由于IMU的角速度测量比轮式里程计更可靠,且具有更高的帧频,因此我们采用线性拟合的方法将原有的轮式里程计测量替换为IMU角速度

为了检测车轮异常,我们比较了当前帧和第二个最新帧之间IMU和轮式里程计测量值的预积分。如果它们产生的姿态范数的差异超过阈值ε = 0.015,我们将其视为车轮异常。在这种情况下,我们避免将当前的轮式里程计观测值纳入到后续的优化过程中。

(2)视觉异常

我们的系统采用KLT稀疏光流算法[ 26 ]来跟踪由[ 12 ]改编的特征点。三个视觉挑战包括初始化过程中的无效特征问题,定位和动态环境中的特征不足问题。第一个问题已经在Sec III ( a )中解决,而第二个问题可以通过紧耦合的轮式里程计和IMU数据来缓解。为了解决动态物体,我们进一步引入了两种策略:特征过滤和深度验证

对于特征过滤,我们首先采用流回溯的方法,通过反转两帧的顺序进行光流回溯。只有在两次迭代过程中成功跟踪并显示出低于指定阈值的相邻距离的特征点被保留用于进一步处理。此外,我们还介绍了一种车轮辅助的移动一致性检查( MCC )方法。我们的系统利用了车轮预积分位姿和之前优化的位姿。对于在滑动窗口内的第i幅图像中首次观测到,随后在其他m幅图像中观测到的特征,我们定义特征观测值的平均重投影残差rk为:

对于深度验证,我们首先将从深度相机获取的深度测量值与代表特征点的每个像素相关联。在深度测量超出深度相机有效范围的情况下,像素暂时留空。随后,我们在RGB图像上使用三角测量法计算特征点的深度,从而填充所有的像素深度。此外,对于那些由深度相机测量的深度和通过三角剖分计算的深度之间的视差低于预定义的阈值的特征点,我们记录它们的索引,并在优化阶段将它们的深度值固定为恒定值。

(3)GNSS异常

3种GNSS挑战场景包括卫星过少、无卫星信号和低速运动。在前两种情况下,[ 8 ]已经证明了在GNSS - Visual - Inertial紧耦合框架的帮助下,有限的可靠卫星仍然可以有效地改善全局状态估计,并且当没有观测到GNSS信号时,GVIO系统将退化为VIO系统。在这项工作中,我们的系统首先过滤了伪距和多普勒不确定性过大的不可靠卫星,跟踪次数不足的卫星和低仰角的卫星。在GNSS接收机速度低于阈值vths = 0.3m / s (多普勒频移的噪声水平)的低速场景中,我们在优化中不涉及GNSS因素,以防止GNSS噪声。

四、实验方案

1、定位表现

Openloris-Scene [ 24 ]是一个由地面机器人结合RGBD相机、IMU和轮式里程计采集的SLAM数据集。在Openloris - Scene [ 24 ]的3个场景下,即Office ( 7 seqs )、Home ( 5 seqs )和Louad ( 3 seqs ),对Ground - Fusion与前沿SLAM系统进行了测试。表1显示,地面融合在这些场景中表现良好。

2、初始化表现

在地面挑战数据集[ 11 ]上进行初始化测试,在角点情况下使用复杂序列2。为了评估系统初始化的效率,我们测量每个系统完成初始化过程所需的时间,定义为系统接收到的第1次观测的时间戳与第1次输出位姿的时间戳之差。

3、退化表现

(1)视觉挑战

为了说明视觉挑战,我们在图3中绘制了每种方法的相对位姿误差( RPE )和有效视觉特征点的数量随时间的变化。结果表明,特征点不足会极大地降低视觉前端的性能。例如,在Sequence O f ice3中的25秒,特征点数量由于丢失而突然下降为零,导致VINSMono [ 12 ]和VINS - RGBD [ 4 ]的RPE显著增加。类似地,VINS - Mono在纯旋转(旋转3 )过程中挣扎着通过三角测量来估计深度,产生了明显的漂移。在这样的场景下,由于采用了紧耦合的轮式里程计,我们的系统仍然表现良好。在没有观测到有效特征点的Occlusion4中,包括VIW - Fusion在内的大多数系统初始化失败。相比之下,我们的系统使用轮式辅助动态方法初始化,并且在定位精度方面优于轮式IMU融合ESKF基线

(2)轮式里程计挑战

序列廊道1是一条长廊道中的曲折路线。表III表明,我们的方法在所有这些序列中都取得了最好的性能。我们进一步进行了烧蚀试验,验证了IMU角速度作为车轮角速度替代物的效果。我们选取了两条急转弯的序列,包括走廊1和环路2。表4中的结果表明,IMU -里程计测量有助于获得更好的定位精度。

此外,我们在具有轮异常的序列上测试了我们的方法。在Anomaly序列中,机器人本体随着其下方的地毯被拉开而移动,而机器人轮子不移动。相反,在静态序列中,机器人是悬浮的,因此即使在车轮移动时,机器人本体也不会移动。

(3)GNSS挑战

我们在大规模室外环境中进一步评估了我们的方法,具体如下:我们建立了一个地面机器人用于数据收集,所有的传感器具有良好的同步性和校准。我们记录了各种场景下的一些序列4,并在本文中选择了三个最具挑战性的序列:在序列Lowspeed中,地面车辆低速移动并做了数次停车;序列树在茂密的树木覆盖下,导致GNSS卫星被遮挡;在序列切换中,车辆从室外过渡到室内,然后再次返回室外。

我们在GNSS挑战基线方法的情况下评估了我们的方法,其定位结果如表5所示。

(4)零速校正

我们在图5 ( b )中用GT距离在低速序列上对三种平稳检测方法进行了可视化。从图中可以看出,单个传感器可能会对运动状态进行误分类。例如,车轮方法在大约110秒时无法检测到静止状态。相比之下,我们的方案结合了三个传感器,实现了对静止状态的可靠检测。定量上,ZUPT后,低速时的ATE RMSE降低了0.05 m。

五、创新总结

为了确保成功的初始化,提出了一种有效的策略,包括三种不同的方法:静态,视觉和动态,它们是为了处理各种情况而设计的。此外还讨论了拐角情况下可能出现的传感器故障[ 11 ],并进行了相应的处理。进行了大量的实验来评估我们的方法。结果表明了方法在不同场景下的鲁棒性。

  • 实现了一个低成本的SLAM系统,将GNSS - RGBD - IMU - Wheel传感器紧紧耦合在一起,通过充分利用每个传感器来实现不同情况下的鲁棒初始化,从而在室内和室外都能可靠地工作。
  • 提出了有效的策略来检测和处理传感器融合系统中可能出现的传感器故障,包括视觉故障、车轮异常和GNSS退化,从而大大增强了鲁棒性。
  • 提出了一个SLAM数据集,作为具有挑战性的角落案例的新基准。

这篇文章脉络比较清晰,一个系统框架,两个主要改进创新点,并且代码开源,研究思路值得我去借鉴学习。什么是创新?针对问题提出解决方案。

相关文章:

论文阅读:Ground-Fusion: A Low-cost Ground SLAM System Robust to Corner Cases

前言 最近看到一篇ICRA2024上的新文章&#xff0c;是关于多传感器融合SLAM的&#xff0c;好像使用了最近几年文章中较火的轮式里程计。感觉这篇文章成果不错&#xff0c;代码和数据集都是开源的&#xff0c;今天仔细读并且翻译一下&#xff0c;理解创新点、感悟研究方向、指导…...

一键获取电商平台商品信息,快速提高电商业务效率

阿里巴巴店铺所有商品API接口技术全解析 一、引言 在阿里巴巴这个全球领先的电商平台上&#xff0c;店铺所有商品API接口&#xff08;item_search_shop&#xff09;为开发者提供了一个便捷的途径&#xff0c;能够获取店铺的所有商品信息。通过这一接口&#xff0c;无论是数据…...

vue 中实现音视频播放进度条(满足常见开发需求)

由于开发需要&#xff0c;作者封装了一个音视频播放进度条的插件&#xff0c;支持 vue2 及 vue3 &#xff0c;有需要的朋友可联系作者&#xff0c;下面是对该款插件的介绍。 插件默认样式&#x1f447;&#xff08;插件提供了多个配置选项&#xff0c;可根据自身需求进行个性化…...

【广度优先搜索】【网格】【割点】1263. 推箱子

作者推荐 视频算法专题 涉及知识点 广度优先搜索 网格 割点 并集查找 LeetCode:1263. 推箱子 「推箱子」是一款风靡全球的益智小游戏&#xff0c;玩家需要将箱子推到仓库中的目标位置。 游戏地图用大小为 m x n 的网格 grid 表示&#xff0c;其中每个元素可以是墙、地板或…...

论文精读--GPT1

把transformer的解码器拿出来&#xff0c;在没有标号的大量文本数据上训练一个语言模型&#xff0c;来获得预训练模型&#xff0c;然后到子任务上微调&#xff0c;得到每个任务所需的分类器 Abstract Natural language understanding comprises a wide range of diverse tasks…...

C/C++的内存管理(1)

内存管理 C与C的内存分布C语言中动态内存管理方式回顾C内存管理的方式 C与C的内存分布 我们学习C语言时就知道&#xff0c;储存不同的变量计算机会相应分配不同区块的内存。那为什么要把内存化为不同的区域呢&#xff1f;实质上是为了方便管理 下面我们来看看下面一道例题&…...

C 标准库 - <stdlib.h>

简介 <stdlib.h> 头文件定义了四个变量类型、一些宏和各种通用工具函数。 库变量 下面是头文件 stdlib.h 中定义的变量类型&#xff1a; 序号变量 & 描述1size_t2wchar_t3div_t4ldiv_t 库宏 下面是头文件 stdlib.h 中定义的宏&#xff1a; 序号宏 & 描述1…...

Python中回调函数的理解与应用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。 目录 前言 回调函数的概念 回调函数的基本用法 回调函数的实现方式 1 使用函数 2 使用类方法 3 使用类实…...

抖音数据挖掘软件|视频内容提取

针对用户获取抖音视频的需求&#xff0c;我们开发了一款功能强大的工具&#xff0c;旨在解决用户在获取抖音视频时需要逐个复制链接、下载的繁琐问题。我们希望用户能够通过简单的关键词搜索&#xff0c;实现自动批量抓取视频&#xff0c;并根据需要进行选择性批量下载。因此&a…...

PostgreSQL如何使用UUID

离线安装时&#xff0c;一般有四个包&#xff0c;都安装的话&#xff0c;只需要开启uuid的使用即可&#xff0c;如果工具包(即 postgresql11-contrib&#xff09;没有安装的话&#xff0c;需要单独安装一次&#xff0c;再进行开启。 开启UUID方法 下面介绍一下如何开启&#…...

网络原理 - HTTP/HTTPS(4)

HTTP响应详解 认识"状态码"(status code) 状态码表示访问一个页面的结果.(是访问成功,还是失败,还是其它的一些情况...).(响应结果如何) 学习状态码 -> 为了调试问题. 写服务器时,按照状态码的含义正确使用. 200 OK 这是最常见的状态码,表示访问成功. 抓包抓…...

Vue+SpringBoot打造在线课程教学系统

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…...

数据存储-文件存储

一、CSV文件存储 csv是python的标准库 列表数据写入csv文件 import csvheader [班级, 姓名, 性别, 手机号, QQ] # 二维数组 rows [[学习一班, 大娃, 男, a130111111122, 987456123],[学习二班, 二娃, 女, a130111111123, 987456155],[学习三班, 三娃, 男, a130111111124, …...

【Activiti7】全新Activiti7工作流讲解

一、Activiti7概述 官网地址:https://www.activiti.org/ Activiti由Alfresco软件开发,目前最高版本Activiti 7。是BPMN的一个基于java的软件实现,不过 Activiti 不仅仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微 服务API 等一系列功能,是一…...

C++ 学习(1)---- 左值 右值和右值引用

这里写目录标题 左值右值左值引用和右值引用右值引用和移动构造函数std::move 移动语义返回值优化移动操作要保证安全 万能引用std::forward 完美转发传入左值传入右值 左值 左值是指可以使用 & 符号获取到内存地址的表达式&#xff0c;一般出现在赋值语句的左边&#xff…...

Redis能保证数据不丢失吗?

引言 大家即使没用过Redis&#xff0c;也应该都听说过Redis的威名。 Redis是一种Nosql类型的数据存储&#xff0c;全称Remote Dictionary Server&#xff0c;也就是远程字典服务器&#xff0c;用过Dictionary的应该都知道它是一种键值对&#xff08;Key-Value&#xff09;的数…...

C++基础知识(六:继承)

首先我们应该知道C的三大特性就是封装、继承和多态。 此篇文章将详细的讲解继承的作用和使用方法。 继承 一个类&#xff0c;继承另一个已有的类&#xff0c;创建的过程 父类(基类)派生出子类(派生类)的过程 继承提高了代码的复用性 【1】继承的格式 class 类名:父类名 {}; 【…...

RM电控讲义【HAL库篇】(二)

8080并口模式是一种常见的计算机接口模式&#xff0c;主要用于LCD&#xff08;液晶显示屏&#xff09;模块。 在8080并口模式中&#xff0c;通信端口包括多种信号线&#xff0c;用于实现数据的读写和控制功能。主要的信号线包括&#xff1a; CS&#xff08;片选信号&#xff…...

Mac安装Appium

一、环境依赖 一、JDK环境二、Android-SDK环境&#xff08;android自动化&#xff09;三、Homebrew环境四、Nodejs 安装cnpm 五、安装appium六、安装appium-doctor来确认安装环境是否完成七、安装相关依赖 二、重头大戏&#xff0c; 配置wda&#xff08;WebDriverAgent&#x…...

数据库管理-第153期 Oracle Vector DB AI-05(20240221)

数据库管理153期 2024-02-21 数据库管理-第153期 Oracle Vector DB & AI-05&#xff08;20240221&#xff09;1 Oracle Vector的其他特性示例1&#xff1a;示例2 2 简单使用Oracle Vector环境创建包含Vector数据类型的表插入向量数据 总结 数据库管理-第153期 Oracle Vecto…...

通过傅里叶变换进行音频变声变调

文章目录 常见音频变声算法使用Wav库读写音频文件使用pitchShift算法进行音频变调主文件完整代码工程下载地址常见音频变声算法 在游戏或者一些特殊场景下为了提高娱乐性或者保护声音的特征,我们会对音频进行变声变调处理。常用的算法包括: 1.基于傅里叶变换的频域算法,该类…...

Opencv(C++)学习 ARM上引用opencv报相关头文件找不到

简单问题记录&#xff0c;C 与C互相引用时应该多注意类似问题。 问题描述&#xff1a;在项目中&#xff0c;建立了一个interface.h提供了一个C语言兼容的接口void work()&#xff0c;并在对应的interface.cpp中使用OpenCV完成相关处理实现。在PC端测试时&#xff0c;main.cpp成…...

中国服装行业ERP的现状与未来发展

随着全球数字化浪潮的兴起&#xff0c;中国服装行业也在不断探索数字化转型的路径&#xff0c;其中ERP&#xff08;企业资源计划&#xff09;系统作为管理和优化企业资源的重要工具&#xff0c;在服装行业中发挥着日益重要的作用。本文将探讨中国服装行业ERP的现状、作用&#…...

Unix与Linux区别

目录 历史和所有权 内核 发行版 开源性质 用户群体 命令行界面 历史和所有权 Unix&#xff1a; Unix是一个操作系统家族的名称&#xff0c;最早由贝尔实验室&#xff08;Bell Labs&#xff09;的肖像电机公司&#xff08;AT&T&#xff09;开发。最早的Unix版本是在19…...

惠尔顿 网络安全审计系统 任意文件读取漏洞复现

0x01 产品简介 惠尔顿网络安全审计产品致力于满足军工四证、军工保密室建设、国家涉密网络建设的审计要求&#xff0c;规范网络行为&#xff0c;满足国家的规范&#xff1b;支持1-3线路的internet接入、1-3对网桥&#xff1b;含强大的上网行为管理、审计、监控模块&#xff1b…...

Chrome插件(二)—Hello World!

本小节将指导你从头到尾创建一个基本的Chrome插件&#xff0c;你可以认为是chrome插件开发的“hello world”&#xff01; 以下详细描述了各个步骤&#xff1a; 第一步&#xff1a;设置开发环境 确保你拥有以下工具&#xff1a; 文本编辑器&#xff1a;如Visual Studio Cod…...

DBAPI如何使用数组类型参数

DBAPI如何使用数组类型参数 需求 根据多个id去查询学生信息 API创建 在基本信息标签&#xff0c;创建参数ids &#xff0c;参数类型选择 Array<bigint> 在执行器标签&#xff0c;填写sql&#xff0c;使用in查询 select * from student where id in <foreach ope…...

博途PLC PID仿真(单容水箱液位高度控制含变积分变增益测试)

单容水箱和双荣水箱的微分方程和数值求解,可以参考下面文章链接: https://rxxw-control.blog.csdn.net/article/details/131139432https://rxxw-control.blog.csdn.net/article/details/131139432这篇博客我们利用欧拉求解器在PLC里完成单容水箱的数学建模。PLC也可以和MATL…...

第1集《灵峰宗论导读》

《灵峰宗论》导读。诸位法师&#xff0c;诸位同学&#xff0c;阿弥陀佛&#xff01;&#xff08;阿弥陀佛&#xff01;&#xff09; 学人很高兴&#xff0c;这次有一个殊胜的因缘来跟大家共同地学习《灵峰宗论》的课程。《灵峰宗论》是蕅益大师一生当中在佛法的修学心得。在蕅…...

nuxt CSS 存放到独立文件进行SEO优化

nuxt CSS 到独立文件 在Nuxt.js中将CSS样式从单个文件分离为多个独立的文件可以通过使用extract-text-webpack-plugin来完成。 首先&#xff0c;确保已经安装了该插件&#xff1a; npm install extract-text-webpack-plugin --save-dev然后&#xff0c;在项目根目录下创建一个…...