LIO-Livox

用单台Livox Horizon (含内置IMU) 实现高鲁棒性的激光-惯性里程计,可在各类极端场景下鲁棒运行,并达到高精度的定位和建图效果。(城区拥堵、高速公路、幽暗隧道)

:该系统主要面向大型室外环境中的汽车平台设计。用户可以使用 Livox Horizon 或 HAP LiDAR 轻松运行该系统。在室内环境中系统同样表现稳定,我们目前也支持面向机器人设计的 Mid-360 雷达。

1.系统框架

该系统由两个 ROS 节点组成:ScanRegistration PoseEstimation

ScanRegistration 节点中的类 “LidarFeatureExtractor” 从原始点云中提取角点特征、平面特征和不规则特征。

PoseEstimation 节点中,主线程用于估计传感器位姿,而类 “Estimator” 中的另一个线程则利用 “MapManager” 类构建和管理特征地图。

2. 配置文件

在启动文件中包含以下参数:

IMU_Mode:用于选择 IMU 信息融合策略,有三种模式可选:

  • 0:不使用 IMU 信息,纯激光里程计,使用匀速模型进行运动畸变补偿;

  • 1:使用 IMU 预积分进行运动畸变补偿;

  • 2:将 IMU 与激光信息进行紧耦合融合。

Extrinsic_Tlb:激光雷达与 IMU 之间的外参,使用 SE3 形式表示。如果使用的是外部 IMU,则需要自行完成传感器标定,并将该参数设置为您系统中的外参值。

Used_Line:HAP和Horizon等效为6线,MID360等效为4线。

Use_seg:选择动态物体滤除的分割方式,有两种模式可选:

  • 0:不使用分割方法,如果数据中几乎没有动态物体,可以选择该模式;

  • 1:使用分割方法来剔除动态物体。

3. ScanRegistration

系统从节点 “ScanRegistration” 开始运行,该节点负责提取特征点。在特征提取之前,会先从原始点云中剔除动态物体,因为在城市场景中通常存在大量动态物体,这些动态物体会影响系统的鲁棒性和精度。为了过滤动态物体,采用了一种快速的点云分割方法。首先应用欧几里得聚类将点云划分为多个聚类,然后将原始点云分为地面点、背景点和前景点。前景点被视为动态物体,从特征提取过程中排除。通过动态物体滤除模块,系统在动态场景中获得了较高的鲁棒性。

使用欧式聚类方法将原始点云聚类为地面点(蓝色),背景点(绿色),和前景点(黄色),如下图所示。其中前景点(黄色)被视为动态物体,并在特征提取过程中去除。去除之后,系统在动态场景中可保持很高的鲁棒性,即便激光雷达的大部分视场角被动态物体遮挡,也可以准确地定位和建图。

:具体实现在函数AbvGndSeg()的标记背景点SegBG()和SegObjects()中,这部分代码没有使用PCL提供的相关聚类方法(在DoSeg()函数最开始的降采样也是自己实现的,这部分内容以后可以借鉴)。还有一个是每个点地面在KD树找到相邻点后,对邻近点进行PCA分析,计算这些点的特征值和特征向量,求平均得到地面的法向量 CalGndPos_cor()。

在开阔场景中,通常只能提取较少的特征点,容易导致某些自由度上的退化。为了解决这个问题,设计了一套特征提取流程,使得特征点在空间中分布更广泛且更加均匀。分布广泛且均匀的特征点可以在六个自由度上提供更多约束,有助于消除退化问题。此外,在特征稀疏的场景中,一些不规则点也能提供有用的信息,因此将不规则点也作为一个类别提取,用于点云配准。

根据局部几何属性,特征点被分为三类:角点特征、平面特征和不规则特征。我们首先在每条扫描线上提取曲率较大且孤立的点作为角点特征,然后使用主成分分析(PCA)对其余点进行分类,划分为平面特征和不规则特征,如下图所示。针对不同距离的点,设置不同的阈值,以尽可能保证特征点在空间中的分布均匀。

4. PoseEstimation

在 “PoseEstimation” 节点中,系统首先通过 IMU 预积分或匀速模型对点云的运动畸变进行补偿。随后进入 IMU 初始化模块。如果初始化成功,系统将切换至 LIO(激光惯性里程计)模式;否则,将以 LO(激光里程计)模式运行,并进行 IMU 状态初始化。

在 LO 模式下,系统采用帧到模型(frame-to-model)的点云配准方法来估计传感器位姿。受 ORB-SLAM3 启发,系统引入了一种最大后验(MAP)估计方法,用于联合初始化 IMU 的偏置、速度和重力方向。该方法不依赖繁琐的初始化流程,支持任意运动轨迹下的初始化,同时考虑了传感器的不确定性,从而在最大后验概率意义下获得最优解,具备高效、鲁棒和高精度的特点。

完成初始化后,系统将运行一个基于滑动窗口的紧耦合传感器融合模块,估计滑动窗口内的 IMU 位姿、偏置和速度。同时,另一个线程并行地构建和维护全局地图。

参考:览沃 LIO-Livox 算法开源 一个鲁棒的激光-惯性里程计

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

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

相关文章

day18-API(常见API,对象克隆)

课程目标 能够熟练使用Math类中的常见方法 能够熟练使用System类中的常见方法 能够理解Object类的常见方法作用 能够熟练使用Objects类的常见方法 能够熟练使用BigInteger类的常见方法 能够熟练使用BigDecimal类的常见方法 1 Math类 1.1 概述 tips:了解内容…

用OMS从MySQL迁移到OceanBase,字符集utf8与utf8mb4的差异

一、问题背景 在一次从MySQL数据库迁移到OceanBase的MySQL租户过程中,出现了一个转换提示: [WARN][CONVER] he table charset:utf8->utf8mb4, 你可能会担心这种转换可能导致字符集不兼容的问题。但通过查阅相关资料可知,utf8m…

MATLAB中tabulate函数——先验概率的简单估计

load fisheriris X meas(:,1:2); Y species; labels unique(Y); tabulate(Y)ValueCountPercentsetosa5033.33%versicolor5033.33%virginica5033.33%

《Python星球日记》第28天:数据获取与可视化(综合项目)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏:《Python星球日记》,限时特价订阅中ing 目录 一、项目概述二、数据获取1. 准备工作2. 使用 `requests` 获取网页内容3. 使用 `BeautifulSoup`…

基于深度学习的图像识别技术:从原理到应用

前言 在当今数字化时代,图像识别技术已经渗透到我们生活的方方面面,从智能手机的人脸解锁功能到自动驾驶汽车对交通标志的识别,再到医疗影像诊断中的病变检测,图像识别技术正以其强大的功能和广泛的应用前景,改变着我们…

限免开关实施版本保护措施,保证项目灰度发布安全

迭代用户限免权限校验业务 新增限免开关实现普通用户权益更新,实施版本保护措施,保证项目灰度发布安全; // 是否展示限免标识 func (t *BasePrivilegeService) IsPromotionFree(p consumParams) bool {// 限免开关isFreeUseOpen : p.cfg.Vip…

从 AWS Marketplace 开始使用 AssemblyAI 的语音转文本模型构建语音智能

语音智能和语音转文本 (STT) 技术已变得至关重要,因为组织每天收集数千小时的电话、会议和客户互动。仅靠原始音频并不能推动决策 - 组织需要智能来大规模地从语音数据中提取价值。语音智能结合了语音识别、自然语言处理 (NLP&…

Android组件化 -> Debug模式下,本地构建module模块的AAR和APK

本地构建module模块的AAR gradle.properties isCommonApp false模块的build.gradle apply plugin: com.android.library:module模块编译manifest.srcFile src/main/AndroidManifest.xml:读取没有启动App和Activity的配置文件 if (isCommonApp.toBoo…

FlexibleButton:一个轻巧灵活的按键处理库,让你的按键处理更简单

在嵌入式系统开发中,按键输入处理是一个常见且重要的环节。然而,许多开发者在处理按键时,往往会遇到按键消抖、组合按键、长按/短按等功能实现的复杂性。如何在保证系统高效运行的同时,简化按键事件的处理呢? 今天&…

探索程序员薪资背后的秘密与未来:智能化工具如何助力职场发展

最新接入DeepSeek-V3模型,点击下载最新版本InsCode AI IDE 探索程序员薪资背后的秘密与未来:智能化工具如何助力职场发展 引言 在当今数字化时代,程序员作为科技发展的核心力量,其职业前景和薪资水平备受关注。随着人工智能和自…

【STM32单片机】#14 PWR电源控制

主要参考学习资料: B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接:https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装:STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 目录 PWR…

第十五届蓝桥杯单片机国赛-串口解析

串口通信像是蓝桥杯单片机组国赛中一个若隐若现的秘境,总在不经意间为勇者们敞开大门。然而,初次探索这片领域的冒险者,常常会被其神秘莫测的特性所震慑,黯然退场(编不下去了,直接进入正题)。 附…

深入探索 51 单片机:从入门到实践的全面指南

深入探索 51 单片机:从入门到实践的全面指南 一、引言 在嵌入式系统发展的漫长历程中,51 单片机犹如一颗璀璨的明星,虽然诞生已有数十年,但至今仍在众多领域发挥着重要作用。它以结构简单、易于学习、成本低廉等优势&#xff0c…

GD32F470+CH395Q

第一步:资料下载 以太网协议栈芯片 CH395 - 南京沁恒微电子股份有限公司 第二步:准备工程 (1) 首先准备一个编译无报错、可以正常打印和延时的工程文件,官方例程采用STM32F1芯片,但本文采用GD32F470芯片 …

Linux 怎么使用局域网内电脑的网络访问外部

一次性 export http_proxy"http://192.168.0.188:7890" export https_proxy"http://192.168.0.188:7890"一直生效 写入 ~/.bashrc(或 ~/.bash_profile) nano ~/.bashrc加入这一行: export http_proxy"http://19…

Mysql进阶篇1_存储引擎、索引、SQL性能分析指令

文章目录 1.存储引擎InnoDBMyISAMMemory存储引擎选择和对比 2.索引索引结构索引分类索引语法索引使用(建议看完第3节后观看)!!!mysql如何使用索引查询数据(个人理解) 3.SQL性能分析SQL执行频率慢…

LeetCode 热题 100 118. 杨辉三角

LeetCode 热题 100 | 118. 杨辉三角 大家好,今天我们来解决一道经典的算法题——杨辉三角。这道题在 LeetCode 上被标记为简单难度,要求生成杨辉三角的前 numRows 行。杨辉三角是一个经典的组合数学问题,每一行的数字都是其正上方和正左上方…

修改或禁用Cursor的全局搜索默认快捷键

在 Cursor 中,默认情况下 双击 Shift 会打开 全局搜索(Quick Open),类似于 VS Code 的 CtrlP 功能。如果你想修改或禁用这个快捷键,可以按照以下步骤操作: 1. 打开快捷键设置 方法 1:按下 Ctrl…

HarmonyOS Device Connector(hdc)

它是为开发人员提供的用于调试的命令行工具,通过该工具可以在windows/linux/mac系统上与设备进行交互。 hdc分为三部分: client:运行在电脑端的进程,开发者在执行hdc命令时启动该进程,命令结束后进程退出。 server&…

开源PDF解析工具Marker深度解析

开源PDF解析工具Marker深度解析 检索增强生成(RAG)系统的第一步就是做 pdf 解析,从复杂多样的 pdf 中提取出干净准确的文本内容。现有的最优秀的开源工具有两个:Marker 和 MinerU。因为 Marker 是个人开发者做的,文档…