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 姿态、偏移和速度。同时使用一个额外的线程并行构建和维护全局地图

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值