阅读FAST-LIO2(Lidar-IMU)论文

一、摘要

本文介绍了 FAST-LIO2:一种快速、稳健且通用的 LiDAR 惯性里程计框架。 FASTLIO2 建立在高效紧耦合迭代卡尔曼滤波器的基础上,具有两个关键创新,可实现快速、稳健和准确的 LiDAR 导航(和映射)。第一个是直接将原始点注册到地图(并随后更新地图,即映射)而不提取特征。这可以利用环境中的细微特征,从而提高准确性。手动设计的特征提取模块的消除也使其自然适应不同扫描模式的新兴激光雷达;第二个主要创新是通过增量 k-d 树数据结构 ikd-Tree 维护映射,该结构支持增量更新(即点插入、删除)和动态重新平衡。与现有的动态数据结构(octree、R∗-tree、nanoflann k-d tree)相比,ikd-Tree 在整体性能优越的同时自然支持对树的下采样。我们对来自各种开放 LiDAR 数据集的 19 个序列进行了详尽的基准比较。与其他最先进的 LiDAR 惯性导航系统相比,FAST-LIO2 始终以更低的计算负载实现更高的精度。还对具有小 FoV 的固态 LiDAR 进行了各种真实世界的实验。总体而言,FAST-LIO2 具有计算效率(例如,在大型室外环境中高达 100 Hz 的里程计和映射)、鲁棒性(例如,在旋转高达 1000 度 = s 的杂乱室内环境中可靠的姿态估计)、多功能(即,适用于多线旋转和固态激光雷达、无人机和手持平台,以及基于英特尔和 ARM 的处理器),同时仍能实现比现有方法更高的精度。

二、问题

  1. 目前的激光雷达传感器每秒产生数十万到数百万的大量三维点。在有限的星载计算资源下实时处理如此大量的数据,要求激光雷达测程方法具有较高的计算效率;
  2. 为了减少计算量,通常基于局部光滑性提取特征点,如边缘点或平面点。然而,特征提取模块的性能容易受到环境的影响。例如,在没有大平面或长边缘的无结构环境中,特征提取会导致特征点较少。当激光雷达视场(FoV)很小时,这种情况会更加严重,这是出现固态激光雷达[16]的典型现象。此外,根据扫描模式(如旋转、基于棱镜的[15]、基于mems的[14])和点密度的不同,LiDAR和LiDAR的特征提取也有所不同。因此采用激光雷达测程方法通常需要大量的手工工作;
  3. 激光雷达点的采样通常是连续的,而传感器经历连续的运动。这一过程造成了严重的运动失真,影响了里程计和映射的性能,特别是当运动是严重的。惯性测量单元(imu)可以缓解这个问题,但引入了额外的状态(如偏差、外部)来估计;
  4. 激光雷达通常有一个很长的测量范围(例如,数百米),但在扫描中扫描线之间的分辨率相当低。生成的点云测量稀疏地分布在一个大的3D空间中,需要一个大而密集的地图来登记这些稀疏的点。此外,地图需要支持有效的查询通信搜索,同时实时更新,纳入新的测量。

三、具体工作

1)我们开发了一种增量k-d树数据结构,ikd-Tree,以有效地表示一个大的稠密点云图。除了高效的最近邻搜索外,该数据结构还支持增量映射更新(即点插入、树上下采样、点删除)和以最小计算代价进行动态重新平衡。这些特性使得ikd-Tree非常适合激光雷达里程计和地图应用,在计算受限的平台上可以实现100hz里程计和地图,比如基于Intel i7的微型无人机车载计算机,甚至是基于arm的处理器。

2)由于ikd-Tree计算效率的提高,我们可以直接将原始点注册到地图上,这使得即使在剧烈运动和非常混乱的环境中,扫描配准也更加准确和可靠。我们将这种原始的基于点的配准方法称为直接方法,类似于视觉SLAM[21]。消除了手工设计的特征提取,使系统自然适用于不同的激光雷达传感器;

3)我们将这两项关键技术集成到一个紧密耦合的激光雷达-惯性里程测量系统FAST-LIO[22]中。该系统使用IMU通过严格的反向传播步长补偿每个点的运动,并通过流形迭代卡尔曼滤波器估计系统的完整状态。为了进一步加快计算速度,一个新的计算卡尔曼增益的数学等效公式被用来降低计算复杂度到状态维度(而不是测量维度)。这个新系统被称为FAST-LIO2,并在Github2上开源,以造福社区;

4)我们进行了各种实验来评估开发的ikd-Tree、直接点配准和整个系统的有效性。在18个不同大小序列上的实验表明,ikdTree在激光雷达里程测量和映射应用中,相对于现有的动态数据结构(八叉树、R∗树、纳米翼面k-d树)具有更好的性能 。通过对来自各种开放LiDAR数据集的19个序列进行详尽的基准比较,FAST-LIO2与其他最先进的LiDAR惯性导航系统相比,在较低的计算负荷下始终保持较高的精度。最后,我们展示了FAST-LIO2在具有挑战性的现实世界数据上的效果,这些数据是由新兴的固态激光雷达在非常小的视场下收集的,包括剧烈运动(例如,旋转速度高达1000℃=s)和无结构环境。

4.1 Overall pipeline

顺序采样的LiDAR原始点每10ms (100Hz更新)到100ms (10Hz更新)积累一次,累积的点云称为一次扫描。为了执行状态估计,新扫描中的点通过紧密耦合迭代卡尔曼滤波框架(红色的大虚线块)注册到大型局部地图中维护的映射点(即里程计)。大型局部地图中的全球地图点由增量k-d树结构的ikd-Tree组织(蓝色的大虚线块)。如果当前LiDAR的FoV范围越过地图边界,到LiDAR姿态的最远地图区域的历史点将从ikd-Tree中删除。因此,ikd-Tree跟踪一个大立方体区域内具有一定长度(本文中称为“地图大小”)的所有地图点,并用于计算状态估计模块中的残差。优化后的姿态最终将新扫描中的点注册到全局框架中,并通过以里程数计的速度插入到ikd-Tree中将它们合并到地图中。

Fov - 视场角 https://www.colorspace.com.cn/kb/2013/02/24/fov/
这里指 雷达视场:探测视野,包括水平和垂直两个方向,就像是我们打开手电筒照一面墙,光能覆盖的范围一样。机械式激光雷达能够360°旋转,所以水平FOV是360°。固态激光雷达的水平FOV会小一些,比如华为某款120°已经算是大视角了。水平FOV越大,能够探测的范围越广。垂直FOV只对多线束激光雷达有用。是指最上面一束激光和最下面一束激光形成的夹角。

雷达的其他参数:https://www.eet-china.com/kj/62185.html

4.2 状态估计

FAST-LIO2的状态估计继承了FAST-LIO[22]的特点,是一种紧耦合迭代卡尔曼滤波器,并进一步引入了LiDAR-IMU外部参数的在线校准。

4.2.1 运动学模型

我们首先推导出(derive)系统模型,该模型由状态转移模型和度量模型组成。

(1) 状态转换模型

取第一个IMU框架(记为I)作为全局框架(记为G),记为ITL = (IRL, IpL)为LiDAR和IMU之间的未知外部属性,运动学模型为:

  • 式中,GpI, GRI 表示IMU在全局框架中的位置和姿态,Gg是全局坐标系中的重力矢量,am和wm是IMU的测量值,na和nw表示am和wm的测量噪声,ba和bw表示nba和nbw驱动下的随机游动过程模型的IMU偏差,符号|a|^表示一个映射了叉乘运算的向量a∈R3的斜对称矩阵。

设i为IMU测量值的索引。根据[22]中定义的运算符□+,可以在IMU采样周期∆t处对连续运动学模型(1)进行离散化:

函数f、状态x、输入u和噪声w,定义如下:

(2) 测量模型

  • 激光雷达通常一个接一个地采样点。因此,当 LiDAR 进行连续运动时,会以不同的姿势对结果点进行采样。为了纠正这种扫描中的运动,我们采用了[22]中提出的反向传播,它根据IMU测量值估计扫描中每个点相对于扫描结束时间的位姿的激光雷达位姿。估计的相对姿态使我们能够根据扫描中每个单独点的精确采样时间,将所有点投射到扫描结束时间。因此,扫描中的点可以被视为在扫描结束时同时采样的所有点
  • 设k为LiDAR扫描的索引,{Lpj, j=1,...,m}为第k次扫描在扫描结束时在本地LiDAR坐标系L上采样的点。由于激光雷达的测量噪声,每个测量点Lpj通常会受到由测距和定向噪声组成的噪声Lnj的污染。去除这些噪声,就得到了在激光雷达局部坐标系中的真点位置Lpjgt:

该真实的点,在使用相应的LiDAR姿态GTIk = (GRIk, GpIk)和外部属性ITL= (IRL, IpL)而投影到全球框架后,应该正好位于地图上的一个局部小平面补丁上,即:

式中,Guj是相应平面的法向量,Gqj是平面上的一点,如下图。

需要注意的是,GTIk和ITLk都包含在状态向量xk中。因此,第j个测量值Lpj可以从式(4)归纳为更紧凑的形式,如下。该式定义了状态向量xk的隐式测量模型。

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

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

相关文章

热门主食冻干希喂/PURPOSE/百利测评对比!真实喂养分享!

在当今科学养宠的时代里,主食冻干已经成为猫咪日常饮食的重要一环。主食冻干的高肉含量特性使其易于被猫咪吸收和消化,同时,它还能提供其他猫粮所无法提供的微量物质,满足猫咪的全面营养需求。然而,面对市面上众多品牌…

Java SPI 机制

SPI 机制的定义 在Java中,SPI(Service Provider Interface)机制是一种用于实现软件组件之间松耦合的方式。它允许在应用程序中定义服务接口,并通过在类路径中发现和加载提供该服务的实现来扩展应用程序功能。 SPI 机制通常涉及三…

信创实力进阶,Smartbi再获华为云鲲鹏技术认证

日前,经华为技术有限公司评测,思迈特商业智能与数据分析软件Smartbi Insight V11与华为技术有限公司Kunpeng 920 Taishan 200完成并通过相互兼容性测试认证,成功再获华为云鲲鹏技术认证书,标志着Smartbi与华为云鲲鹏产业生态合作更…

动态规划相关题目

文章目录 1.动态规划理论基础2.斐波那契数3.爬楼梯4.使用最小花费爬楼梯5.不同路径6.不同路径 II7. 整数拆分8. 不同的二叉搜索树 1.动态规划理论基础 1.1 什么是动态规划? 动态规划,英文:Dynamic Programming,简称DP,如果某一…

nginx mirror 流量镜像

流量镜像 (Traffic Mirroring),也称为流量影子 (Traffic Shadowing),是一种强大的、无风险的测试应用版本的方法,它将实时流量的副本发送给被镜像的服务。 采用这种方法,您可以搭建一个与原环境类似的环境以进行验收测试&#xff…

【ARM 嵌入式 C 入门及渐进 18 -- 字符数字转整形函数 atoi 介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 字符数字转整形函数 atoiatoi 简单实现 字符数字转整形函数 atoi 在 C 语言中,main 函数能够接收命令行参数。这些参数通过两个参数传递给 main 函数:int argc 和 char *argv[]。argc 是命令行参数的数量&a…

安卓逆向 | JEB静态分析APK

JEB反编译APK-静态审计,找到加密算法 参考来源:https://blog.csdn.net/weixin_38819889/article/details/108910525 apk来源:https://app5.scrape.center/ 软件&工具:JEB / 雷电模拟器 / burpsuite 声明:scrape.ce…

YOLOv9+单目测距(python)

YOLOv9+单目测距(python) 1. 相关配置2. 测距原理和相机标定2.1 测距原理2.2 相机标定3. 相机测距3.1 测距模块3.2 测距添加3.3 主代码4. 实验效果相关链接 1. YOLOV7 + 单目测距(python) 2. YOLOV5 + 单目测距(python)

C#-特性Attribute的定义、使用及常用特性(不定时更新)

目录 一、 特性的定义及使用 1.自定义特性 2.使用特性 3.查找特性名 4.获取相应对象的特性名 二、常用部分特性 一、 特性的定义及使用 1.自定义特性 全继承自Attribute基类(使用前要给自定义特性赋予相关特性) [AttributeUsage(AtrributeTargets.Class|AttributeTar…

MySQL执行计划分析实战:从实例场景出发深度解读各项参数与分析步骤

引言: 在MySQL数据库优化中,理解和分析SQL执行计划是一项至关重要的技能。通过执行计划,我们可以洞察MySQL如何执行SQL查询,以及它选择索引、决定查询顺序和计算行数的方式。本文将通过一个实例场景,详细阐述MySQL执行…

浅模仿小米商城布局(有微调)

CSS文件 *{margin: 0;padding: 0;box-sizing: border-box; }div[class^"h"]{height: 40px; } div[class^"s"]{height: 100px; } .h1{width: 1528px;background-color: green; } .h11{background-color:rgb(8, 220, 8); } .h111{width: 683px;background-c…

ITSS评估过程

基于ITSS标准与《信息技术服务 运行维护 第1部分:通用要求》标准,建立和实施合适企业自身业务需要、同时符合《信息技术服务 运行维护 第1部分:通用要求》标准的服务管理体系,并满足《信息技术服务 运行维护 第1部分:通…

记录服务器被挖矿程序到账cpu爆满(治标不治本)

被入侵,要么是密码泄露,要么是端口攻击。 1.执行top命令。找到进程占用cpu爆满的pid ,然后kill -9 pid。 2.写定时任务执行脚本监测删除 建立清理挖矿脚本文件 #清理挖矿脚本_1: kill_xmrig.shfind / -name "*xmrig*" -exec rm…

【差分约束+并查集】第十三届蓝桥杯省赛C++ A组 Java A组/研究生组《推导部分和》(C++)

【题目描述】 【输入格式】 【输出格式】 【数据范围】 【输入样例】 5 3 3 1 5 15 4 5 9 2 3 5 1 5 1 3 1 2 【输出样例】 15 6 UNKNOWN 【思路】 题解来源&#xff1a;AcWing 4651. $\Huge\color{gold}{推导部分和}$ - AcWing 【代码】 #include<bits/stdc.h> #define…

PostgreSQL FDW(外部表) 简介

1、FDW: 外部表 背景 提供外部数据源的透明访问机制。PostgreSQL fdw(Foreign Data Wrapper)是一种外部访问接口,可以在PG数据库中创建外部表,用户访问的时候与访问本地表的方法一样,支持增删改查。 而数据则是存储在外部,外部可以是一个远程的pg数据库或者其他数据库(…

DateFormat类和SimpleDateFormat类

DateFormat类的作用&#xff1a; 把时间对象转化成指定格式的字符串。反之&#xff0c;把指定格式的字符串转化成时间对象。DateFormat是一个抽象类&#xff0c;一般使用它的子类SimpleFateFormat类来实现。 DateFormat类和SimpleDateFormat类的使用&#xff1a; import java…

一文读懂java的dto、dao、vo、bo、do、po、pojo

一句话导读 在java编程中我们常常需要做数据交换&#xff0c;那么在数据交换过程中就需要使用到实体对象&#xff0c;这就不可避免的使用到vo、dto、po等实体对象&#xff0c;在java中都属于pojo的范畴&#xff0c;至少在不同场景下使用所表达的含义不同&#xff0c;其中常用的…

ConvE算法模型

1.介绍 ConvE 是一种用于知识图谱表示学习的深度学习模型。它是一种基于卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;的模型&#xff0c;用于将实体和关系映射到低维空间中的向量表示。 ConvE 模型的主要思想是将实体和关系表示为低维向…

基于java+springboot+vue实现的成都旅游网系统(文末源码+Lw+ppt)23-358

摘 要 人类现已迈入二十一世纪&#xff0c;科学技术日新月异&#xff0c;经济、资讯等各方面都有了非常大的进步&#xff0c;尤其是资讯与网络技术的飞速发展&#xff0c;对政治、经济、军事、文化等各方面都有了极大的影响。 利用电脑网络的这些便利&#xff0c;发展一套成…

代码随想录算法训练营Day60 ||leetCode 84.柱状图中最大的矩形

84.柱状图中最大的矩形 这题和接雨水的题有些像&#xff0c;只不过此处使用的是递增栈&#xff0c;因为矩形的面积想要增加宽度时&#xff0c;需要考虑两边最低的矩形&#xff0c;而为了让所有数据都参加运算&#xff0c;需要前后补0&#xff0c;来弹出栈里所有元素 class Sol…