Livox SLAM(带LIO+闭环检测优化)

主题:Livox雷达LIO+闭环检测优化

开源地址:LiDAR SLAM

该开源为 Livox雷达实现了一个一体化且即用型的 LiDAR 惯性里程计系统。
前端基于基于开源里程计框架LIO-Livox获取里程计信息,另外添加了更多的约束和功能来增强建图的性能。
在另一个ros功能包Livox-Localization中提供了一个简单的基于激光雷达地图的定位模块。
总结:
LIO-Livox用于里程计部分, ScanContext 用于闭环部分和interactive_slam用于地图编辑部分

1 特点

1.1 闭环检测

在 LCD 部分,使用ScanContext 执行闭环检测,然后将闭环约束添加到优化求解器中。借助 LCD 模块,能够缩小差距并补偿大型环境中扫描匹配的累积平移误差。

1.2 地面约束

为了避免沿 Z 轴漂移,LOAM(激光雷达里程计和映射)算法中出现的一般问题,我们将地面约束(平面检测由 LIO-Livox 完成)作为 hdl_graph_slam 添加到优化求解器中。

1.3 来自多个 Rosbag 的地图合并

在实践中,我们通常会多次收集环境数据,因此我们需要一个功能来融合来自多个 rosbag 的地图信息。在这个实现中,我们使用 GPS 信息(可选)将不同时间采集的 LiDAR 扫描转换为一个坐标系,然后使用 ScanContext 和 ICP 找到精细匹配结果。同时,我

<think>我们正在讨论livox_mapping的原理。结合之前的对话和参考引用,我们可以从以下几个方面来阐述其原理: 1. **系统框架**:根据引用[1],Livox-Mapping扩展自LIO-Livox,是一个集成了循环闭合检测地面约束等特性的开源项目。它采用多线程设计,通常包括一个建图线程进行特征与地图的ICP配准以获得姿态参数,以及一个地图维护线程持续更新地图。 2. **特征提取**:引用[3]详细描述了特征提取的过程。livox_mapping首先对点云进行分类,提取断点角点(边缘特征)和平面特征: - **断点角点**:可以理解为物体边缘到远处的扫描点。判断条件包括: - 当前点与左右附近点的距离大于断点阈值(如0.1米); - 至少有一边的点是平面点; - 点与点之间距离不能太远; - 最远点距离不超过当前点深度的1/20; - 当前点和最远点形成的平面与当前点向量的夹角在37°到143°之间。 - **平面特征**:提取方法未在引用中详述,但通常基于局部表面的平滑性。 3. **前端里程计**:与LIO-Livox类似,livox_mapping使用紧耦合的激光雷达-惯性里程计(LIO)方案。IMU数据用于运动补偿和预测,而提取的特征点(角点和平面点)通过ICP(迭代最近点)算法与局部地图进行匹配,优化位姿。 4. **后端优化**:引用[1]提到,livox_mapping集成了循环闭合检测(通过扫描匹配或描述子识别回环)和地面约束(利用地面点云增加高度方向的约束)。这些特性通过位姿图优化(Pose Graph Optimization)来校正累积误差,提升全局一致性。 5. **地图管理**:系统维护一个全局地图,通过体素网格(voxel grid)进行降采样以控制地图规模。建图线程将新特征点融合到地图中,同时地图维护线程根据位姿更新动态调整地图结构。 6. **交互式编辑**:引用[1]还提到与interactive_slam的兼容性,允许用户手动编辑地图(如调整错误匹配),然后重新优化位姿图。 在数学层面,ICP配准的目标函数可表示为: $$ \min_{\mathbf{T}} \sum_{i}\left\| \mathbf{p}_i - \mathbf{T} \cdot \mathbf{q}_i \right\|^2 $$ 其中$\mathbf{T}$是待求解的位姿变换矩阵,$\mathbf{p}_i$为当前帧特征点,$\mathbf{q}_i$为地图中对应的最近邻点。 位姿图优化的目标函数则包含里程计约束、回环约束地面约束: $$ \min_{\mathbf{x}} \sum_{(i,j)}\mathbf{e}_{ij}^\top\mathbf{\Omega}_{ij}\mathbf{e}_{ij} $$ 其中$\mathbf{x}$为所有位姿节点,$\mathbf{e}_{ij}$为约束误差,$\mathbf{\Omega}_{ij}$为信息矩阵。 综上所述,livox_mapping通过多传感器融合、特征提取与匹配、闭环检测和位姿图优化实现精准建图。 </think>### Livox_mapping 工作原理详解 #### 1. **系统架构框架** Livox_mapping 采用 **激光雷达-惯性紧耦合(LIO)**架构[^1],核心包含: - **前端里程计**:实时处理点云和IMU数据 $$ \min_{\mathbf{T}} \sum \| \mathbf{p}_i - \mathbf{T} \cdot \mathbf{q}_i \|^2 $$ 其中 $\mathbf{T}$ 是位姿变换矩阵,$\mathbf{p}_i$ 为当前帧点,$\mathbf{q}_i$ 为地图对应点 - **后端优化**:集成**闭环检测**和**位姿图优化** - **地图管理**:动态维护全局地图 #### 2. **特征提取机制** [^3] | 特征类型 | 提取准则 | 数学约束 | |---------|---------|---------| | **断点角点** | 边缘特征 | $ \Delta d > 0.1\text{m} $ | | | 点距限制 | $ \|p_i - p_{i+k}\| < z_{\max}/20 $ | | | 平面夹角 | $ 37^\circ < \theta < 143^\circ $ | | **平面特征** | 表面平滑性 | 最小二乘拟合误差阈值 | #### 3. **多传感器融合流程 ```mermaid graph TD A[Livox雷达] --> B(原始点云) C[IMU] --> D(惯性数据) B --> E{特征提取} D --> F{运动补偿} E --> G[角点/平面特征] F --> G G --> H[ICP匹配] H --> I[位姿优化] I --> J[全局地图更新] ``` #### 4. **关键技术突破** 1. **地面约束优化**:添加法向量约束方程 $$ \mathbf{n}^\top (\mathbf{T}\mathbf{p} - \mathbf{q}) = 0 $$ 2. **闭环检测**:通过**Scan Context**描述符实现高效场景识别 3. **交互式编辑**:兼容interactive_slam框架实现人工修正[^1] #### 5. **性能优化策略** - **地图降采样**:体素滤波保留关键结构点 - **增量式BA**:仅优化局部窗口位姿节点 - **多线程架构**:解耦前端跟踪与后端优化
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值