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

本文主要是介绍IGE-LIO:充分利用强度信息克服激光退化场景下的定位精度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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的准确性和鲁棒性。此外,本文展示了我们的系统在具有挑战性的场景中,包括室内、室外和激光雷达退化环境中,更加稳定和准确。未来的工作将引入后端优化和闭环检测以提高定位的全局一致性。

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

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

这篇关于IGE-LIO:充分利用强度信息克服激光退化场景下的定位精度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113649

相关文章

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示