LIO-Livox(一)简介及框架

1.LIO-Livox简介

 本博客是对LIO-Livox的相关内容学习的记录。

LIO-Livox是Livox官方开源的基于雷达的惯性导航系统,其官方地址为:https://github.com/Livox-SDK/LIO-Livox

官方的B站视频演示为:

https://www.bilibili.com/video/BV1p44y1k7D2/?spm_id_from=333.337.search-card.all.click&vd_source=7eb2b24ff799cc7fc8b72421baa2e161

LIO-Livox仅采用一个Livox雷达雷达自带的IMU模块就可以实现惯性导航(笔者采用Livox Mid-360进行测试)。

系统有一个独立于传感器运动的初始化模块,可以用静态、动态、动态+静态融合的方式进行初始化。

系统具有很强的鲁棒性能,在演示视频中车辆在高速上以80km/h速度通过了一条4km的隧道,从视频效果上看性能是不错的。

系统还可以在有动态目标的环境中完成高精度定位,例如有汽车、自行车、行人的场景,甚至是交通拥堵状况。即使在大部分视场被车辆遮挡的情况下也能保证精度。

2.系统技术简介

系统由2个ROS节点组成:ScanRegistartionPoseEstimation。

 ScanRegistartion 节点中的 LidarFeatureExtractor 类从点云中提取角特征、表面特征、不规则特征

PoseEstimation 节点的主线程目的是估计传感器位姿,其他在 Estimator 类中的线程使用 MapManager 构建并管理特征地图

2.1.ScanRegistartion过程

系统从 ScanRegistartion 节点开始处理,在提取特征点之前,首先会从点云中移除动态目标,避免动态目标影响系统的鲁棒性和运算精度。系统使用快速点云分割方法来过滤动态目标。具体是采用欧几里得聚类方法将点云分类,原始点云被分割为地面点、背景点和前景点。前景点为动态目标,在提取特征前把前景点屏蔽,以此提升系统在动态场景下的鲁棒性。

在开放场景中会出现只能提取到少量特征的状况,这样会导致参考约束不足引起运算误差。系统针对该问题设计了一种分布广泛且均匀的特征点提取方法,这种方法给6自由度提供了更多的约束,从而减少运算误差。不规则点也能在特征不明显场景中提供参考信息,因此系统也会提取不规则点特征用于点云匹配。根据点的局部几何属性,将特征点分为3类:角特征、表面特征、不规则特征。首先提取曲率较大的点和每条扫描线上的孤立点作为角点,再使用PCA(主成分分析)对表面特征和不规则特征进行分类。对于不同距离的点设置不同的阈值,从而保证特征在空间分布尽可能均匀。特征点提取过程如下图:

 2.2.PoseEstimation过程

PoseEstimation 节点中,使用 IMU 预积分或等速模型来补偿点云的运动失真,然后执行 IMU 初始化模块,如果初始化成功则系统会切换到 LIO 模式,否则系统运行在 LO 和 IMU 初始化状态。在 LO 模式下系统采用 frame-to-model 点云配准方法来估算传感器位姿。

受ORB-SLAM3启发,采用最大后验(MAP)估计方法来联合初始化 IMU 偏差、速度和重力方向。这样就不需要关心初始化处理,使得系统可以通过任意动作来进行初始化。该方法根据传感器的不确定性,在最大后验概率上保证最优,从而保证高效、稳健和准确的性能。

初始化后执行基于紧密耦合滑动窗口的传感器融合模块,从而估计滑动窗口内的 IMU 姿态、偏移和速度。同时使用一个额外的线程并行构建和维护全局地图

<think>好的,我现在需要处理用户关于Fast-LIO的查询。首先,用户希望了解Fast-LIO的介绍、实现、源码下载以及使用教程。根据用户提供的系统级指令,我需要确保所有数学公式正确使用$...$或$$...$$格式,用中文回答,并生成相关问题。同时,回答中需要引用给定的两个参考文献,并在末尾添加相关问题。 首先,我得回忆下Fast-LIO的基本信息。Fast-LIO个基于紧耦合迭代卡尔曼滤波的激光雷达-惯性里程计(LIO框架,主要用于实时状态估计和地图构建。它的主要特点是高效和高精度,适合处理高动态环境下的定位问题。 接下来是结构部分。用户需要四个方面的信息:介绍、实现、源码下载、使用教程。我需要分点回答,每个部分简明扼要。介绍部分需要说明Fast-LIO的核心技术和优势。实现部分需要提到其算法基础,比如迭代卡尔曼滤波(IEKF)和紧耦合方法,可能还要提到数学公式,比如状态方程和观测模型,这时候要确保公式使用正确的LaTeX格式。源码下载需要给出GitHub链接,但用户提供的引用中没有直接链接,可能需要引导用户访问GitHub页面。使用教程部分可以引用用户提供的参考[2],即FAST-LIO-SAM的开源项目教程,说明其帮助快速上手。 在引用部分,用户提供了两个引用,都是CSDN博客和教程。需要注意的是,在回答中适当的位置添加引用标识,比如在提到实现时引用[^1],在教程部分引用[^2]。 生成相关问题时要考虑用户可能的后续疑问,比如与其他SLAM算法的比较、安装依赖、参数调整、实时性优化等。 现在需要检查LaTeX语法是否正确。例如,状态方程可能涉及变量如$x_k$,观测模型中的残差可能用$h(x_k)$,这些需要放在行内公式中。如果有独立公式,比如卡尔曼滤波的更新方程,需要用$$...$$,但根据用户的问题描述,可能不需要复杂的独立公式,保持简洁即可。 最后,确保回答结构清晰,分点明确,语言口语化,避免使用Markdown格式,只使用自然段落分隔。同时,生成的三个相关问题需要与Fast-LIO相关,帮助用户深入探索。 总结步骤: 1. 分点回答介绍、实现、源码、教程。 2. 插入正确的LaTeX公式。 3. 在适当位置添加引用标记。 4. 生成相关问题。 5. 检查格式和语法正确性。</think>### Fast-LIO 介绍与实现 Fast-LIO(Fast LiDAR-Inertial Odometry)是种基于紧耦合迭代卡尔曼滤波(IEKF)的激光雷达-惯性里程计框架,用于实时状态估计与建图。其核心优势在于通过高效的数据结构与增量计算,显著提升了计算效率,适用于高动态或大范围场景的定位与建图。 #### 实现原理 1. **算法基础**: Fast-LIO基于迭代扩展卡尔曼滤波(IEKF),通过状态方程和观测模型实现紧耦合。状态方程描述惯性测量单元(IMU)的运动模型,观测模型则利用激光雷达点云数据。 - 状态方程:$x_{k} = f(x_{k-1}, u_k) + w_k$,其中$u_k$为IMU输入,$w_k$为噪声。 - 观测残差:$z_k = h(x_k) + v_k$,$h(x_k)$为点云匹配残差,$v_k$为观测噪声。 2. **紧耦合与增量计算**: 直接融合IMU预积分与点云特征,通过增量式更新协方差矩阵,减少重复计算,提升实时性。 #### 源码下载与使用教程 1. **源码获取**: Fast-LIO的代码托管于GitHub,可通过以下链接访问: ```bash git clone https://github.com/hku-mars/FAST_LIO.git ``` 详细代码解析可参考。 2. **使用教程**: - **环境配置**:需安装ROS、PCL、Eigen等依赖库。 - **运行步骤**: ```bash roslaunch fast_lio mapping.launch ``` - 参数调整:根据传感器类型(如Velodyne或Livox)修改配置文件。完整教程可参考FAST-LIO-SAM项目指南。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值