IGE-LIO:充分利用强度信息克服激光退化场景下的定位精度

news2024/9/20 20:41:50

更多优质内容,请关注公众号:智驾机器人技术前线

1.论文信息

  • 论文标题:IGE-LIO: Intensity Gradient Enhanced Tightly-Coupled LiDAR-Inertial Odometry

  • 作者:Ziyu Chen, Hui Zhu, Biao Yu, Chunmao Jiang, Chen Hua, Xuhui Fu and Xinkai Kuang

  • 作者单位:中国科学技术大学

  • 论文地址:https://ieeexplore.ieee.org/abstract/document/10643007

2.摘要

同时定位与建图(SLAM)在移动机器人的状态估计中扮演着重要角色。大多数流行的激光雷达SLAM方法仅从环境的几何结构中提取特征点,这可能导致在退化场景中的定位不准确。在本文中,我们提出了一种新颖的框架,即强度梯度增强的紧耦合激光雷达-惯性里程计(IGE-LIO)。该框架提出了一种基于激光雷达强度梯度的特征提取方法,用于精确的姿态估计,克服了激光雷达-SLAM在退化环境中面临的挑战。计算每个激光雷达点的强度梯度后,我们从纹理信息中动态提取强度边缘点(IEPs)。此外,我们还基于几何信息提取了几何平面点(GPPs)和几何边缘点(GEPs)。然后,对每种类型的特征点进行误差分析,并设计了加权函数以校正测量噪声并减轻特征提取中额外不确定性引入的偏差。随后,通过结合点到平面和点到边缘关联的残差构建了一个迭代扩展卡尔曼滤波器(IEKF)框架。最后,在室内、室外和激光雷达退化场景中进行了广泛的实验。结果表明,与现有的仅几何方法相比,我们提出的方法在鲁棒性和准确性上有了显著提高,特别是在激光雷达退化场景中。

3.主要贡献

  • 提出了一个鲁棒的LIO框架,通过迭代扩展卡尔曼滤波器紧耦合激光雷达的几何和纹理信息与IMU,用于姿态估计。该框架能够为旋转激光雷达和固态激光雷达实现最优结果;

  • 提出了一种新颖的特征提取方法,它不仅提取几何平面点和几何边缘点,还计算每个激光雷达点的强度梯度,无需校准强度值,并使用动态阈值动态选择强度边缘点;

  • 为了区分和权衡每个特征点在姿态优化中的质量,本文引入了一种新的加权函数,该函数联合融合了几何信息和强度信息,用于几何平面点、几何边缘点和强度边缘点。

4.核心思想与方法

根据几何和强度信息提取几何平面点、几何边缘点和强度边缘点。此外,使用设计好的加权函数对每种类型的特征点进行误差分析。然后,为不同类别的特征点分别计算残差,并对状态进行迭代更新,直到达到收敛。最后,将带有标签的特征点存储在全局地图中。结果表明,所提出的方法不仅在激光雷达退化场景中实现了准确、鲁棒和实时的定位和建图,而且超越了传统的激光雷达SLAM,达到了与包含视觉信息的SLAM方法相媲美的结果。

IGE-LIO架构

IGE-LIO架构

5.实验仿真验证

6.总结 && 展望

在本文中,提出了IGE-LIO,一种强度梯度增强的激光雷达-惯性融合框架,它比FAST-LIO2更加鲁棒和准确,在退化环境中与包含相机的FAST-LIVO相比达到了相当的精度水平。本文利用激光雷达的强度信息来提取额外的强度边缘点,并将激光雷达和惯性传感器的测量值融合在一个误差状态迭代卡尔曼滤波器中。大量的定量和定性实验表明,引入强度梯度和加权函数提高了LIO的准确性和鲁棒性。此外,本文展示了我们的系统在具有挑战性的场景中,包括室内、室外和激光雷达退化环境中,更加稳定和准确。未来的工作将引入后端优化和闭环检测以提高定位的全局一致性。

本文仅做学术分析,如有侵权,请联系删文!

更多优质内容,请关注公众号:智驾机器人技术前线

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

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

相关文章

android openGL ES详解——深度缓冲区

一、深度缓冲区概念 深度缓存区是指一块专门内存区域,存储在显存中,用于存储屏幕上所绘制图形的每个像素点的深度值。深度值越大,离观察者越远。深度值越小,里观察者越近。 深度缓冲区与帧缓冲区相对应,用于记录上面…

Linux 进程 | 进程优先级进程的环境变量

文章目录 进程概念4、进程优先级4.1基本概念4.2查看系统进程4.2.1 ps -l4.2.2 PRI & NI 4.3用top命令更改已存在进程的nice: 5、环境变量5.1常见环境变量5.2查看环境变量5.3测试PATH配置环境变量 5.4代码中获取环境变量5.4代码中获取环境变量 进程概念 4、进程…

Linux网络:TCP UDP socket

Linux网络:TCP & UDP socket socket 套接字sockaddr网络字节序IP地址转换bzero UDP socketsocketbindrecvfromsendto TCP socketsocketbindlistenconnectacceptsendrecv 本博客讲解 Linux 下的 TCP 和 UDP 套接字编程。无论是创建套接字、绑定地址,还…

软件设计师全套备考系列文章16 -- 程序设计语言基础知识

软考-- 软件设计师(16)-- 程序设计语言基础知识 文章目录 软考-- 软件设计师(16)-- 程序设计语言基础知识前言一、章节考点二、基本概念三、文法四、有限自动机五、前缀、中缀、后缀表达式六、传值和引用(传址)七、各个程序语言的…

链表OJ题——使用栈实现单链表的逆序打印

文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 题目描述&#xff1a;使用栈&#xff0c;实现单链表的逆序打印 二、解题思路 三、解题代码 /*** 非递归实现单链表的顶逆序打印——>通过栈来实现* param*/public void printReverseListFromStack(){Stack<…

HAL库:GPIO唤醒模式 唤醒睡眠模式下的单片机

目录 HAL库&#xff1a;GPIO唤醒模式 唤醒睡眠模式下的单片机 注意事项&#xff1a; 初始化部分&#xff1a; 主函数测试部分 结果如图 HAL库&#xff1a;GPIO唤醒模式 唤醒睡眠模式下的单片机 注意事项&#xff1a; HAL库滴答定时器默认为打开状态&#xff0c;需要关闭…

AI学习指南深度学习篇:循环神经网络(RNN)Python实践

引言 在人工智能的广袤领域中,循环神经网络(Recurrent Neural Networks, RNNs)因其在处理序列数据中的卓越表现而广受关注。RNN的独特之处在于它能够保留输入数据的历史信息,并利用这些信息来预测后续的输出,这使得它在自然语言处理、时间序列预测等领域中拥有广泛的应用…

新审视零阶优化在内存高效大模型微调中的应用

人工智能咨询培训老师叶梓 转载标明出处 随着大模型模型规模的增大&#xff0c;反向传播&#xff08;BP&#xff09;所需的内存开销也日益增加&#xff0c;这对内存效率提出了挑战。尤其是在设备上训练等内存效率至关重要的应用场景中&#xff0c;解决这一问题变得尤为迫切。 …

Sora 代码规范之Refactor this method to not always return the same value.(目的性问题)

Sora描述 Refactor this method to not always return the same value.&#xff08;目的性问题&#xff09; 上述代码&#xff0c;可能出现 总是返回 null 的情况 解决一下 原因&#xff1a;为什么要这么写呢&#xff1f;因为 下面的代码会对 materialInfos 这个集合处理&#…

房子公摊要消失了?

文&#xff5c;琥珀食酒社 作者 | 璇子 你敢信 才短短三个月 江苏、浙江、广东 这三房价高昂的城市 陆续宣布房市重大改革信号 比如将空中花园绿化阳台、 小区景观绿化亭廊 、 开放式风雨连廊等不计容积率 挑高客厅只算单层面积 甚至部分区域买房面积 直接按照套内面…

足球联赛|基于SprinBoot+vue的足球联赛管理系统(源码+数据库+文档)

足球联赛管理系统 目录 基于SprinBootvue的足球联赛管理系统 一、前言 二、系统设计 三、系统功能设计 5.1 系统前台功能实现 5.2 后台功能模块实现 5.2.1 管理员模块实现 5.2.2 用户后台模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选…

20+岁老牌定制家居品牌,如何靠呼叫中心捕获年轻消费者?

Home Tour类一镜到底的短视频&#xff0c;在社交平台一直备受年轻人喜爱。金牌厨柜这个20多岁的老牌定制家居品牌&#xff0c;不仅在高端厨柜和定制家居领域有着深厚的积累&#xff0c;而且一直也在探索数字化转型的新路径&#xff1a;用全新的数字化体系&#xff0c;迎合年轻一…

使用VScode的Git版本控制功能(图文版)

☁️ 前言 今天让我来手把手教你简单入门VScode自带的Git版本控制。 &#x1f389; 初始化仓库 初始化仓库之后&#xff0c;仓库里的文件发生了任何改动都会有相应的提示&#xff0c;这对于我们开发和维护项目非常有帮助。 &#x1f389;提交更改 初始化仓库之后&#xff…

机器学习:K-means算法及代码实现

1、K-means算法原理 K-means算法是一种常用的聚类算法&#xff0c;其目的是将数据集划分为K个簇&#xff08;clusters&#xff09;&#xff0c;使得每个簇内部的数据点尽可能相似&#xff0c;而簇与簇之间的数据点尽可能不同。以下是K-means算法的基本原理和步骤&#xff1a; 初…

【C++】C++中的字符串

提示并输入一个字符串&#xff0c;统计该字符串中字母个数、数字个数、空格个数、其他字符的个数 #include <iostream>using namespace std; void total(string str); int main() {string str;cout << "请输入一个字符串:" ;//cin >>str;getline(…

SAP怎么查找系统全部的增强点呢?

1.在已有的BADI查找程序里面有点手无足措的样子&#xff0c;不知道该如何去找增强&#xff01; 2.这个时候刚刚接触系统还不熟悉&#xff0c;系统里面存在了什么增强&#xff0c;这个时候咋办捏&#xff1f;SE38 -SNIF 此时全部的增强点都在这里面啦&#xff01;&#xff01;&…

使用LinkedHashMap实现固定大小的LRU缓存

使用LinkedHashMap实现固定大小的LRU缓存 1. 什么是LRU&#xff1f; LRU是"Least Recently Used"的缩写&#xff0c;意为"最近最少使用"。LRU缓存是一种常用的缓存淘汰算法&#xff0c;它的核心思想是&#xff1a;当缓存满时&#xff0c;优先淘汰最近最少…

二、设置地图配置表

一、导入一个背景图 由于背景图比较大&#xff0c;需要缩小至0.73 二、写配置文件&#xff08;SO&#xff09; 使用List需要一个命名空间 写一个类&#xff0c;声明房间的出现数量和种类&#xff1b;将它实例化出来 三、枚举变量的多选 在枚举变量中标记命名空间&#xff…

C++:list篇

前言: 观看C的list前需要对链表有一些了解&#xff0c;如C语言的链表结构。本片仅介绍list容器中常用的接口函数概念以及使用。 list的概念&#xff1a; 简而言之&#xff0c;C的list是一个双向带哨兵位的链表容器模板 list的构造&#xff1a; 1.list():默认构造 2.li…

2024最新版Python+Pycharm安装教程,安装、环境配置、汉化全搞定,保姆级教学!

一、Python下载 为了节约时间&#xff0c;我将PythonPycharm安装包、集火码全部打包上传至CSDN官方&#xff0c;可放心下载&#xff0c;完全免费&#xff01;&#xff08;安装包均为最新版本&#xff09; 二、Python安装 1.双击运行本地文件夹下的python安装包&#xff08;以…