从零入门激光SLAM(十九)——松耦合与紧耦合到底怎么区分

大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激光SLAM,也方便想入门SLAM的同学和小白学习参考,相信看完会有一定的收获。如有不对的地方欢迎指出,欢迎各位大佬交流讨论,一起进步。博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论。

一、松耦合与紧耦合

1.1松耦合(Loosely Coupled)

在松耦合系统中,将传感器的算法看成黑箱,只考虑输出,不考虑内在性质。松耦合的方法是分别处理来自LiDAR和IMU的数据,然后在高层次上进行融合。具体来说:
1.独立处理:LiDAR和IMU的数据分别被独立处理。LiDAR提供位置和环境特征信息,而IMU提供短时间内的姿态和运动信息。
2.融合层:独立处理后的数据在高层次的融合层进行结合。例如,可以使用卡尔曼滤波器来融合两者的数据,从而提供更精确的位置和姿态估计。

  • 优势
    1.实现简单:松耦合的方法相对简单,因为它们通常将LiDAR和IMU的数据独立处理,然后在高层次上进行融合。这种方式简化了算法设计和实现。
    2.模块化强:松耦合架构下,LiDAR和IMU可以作为独立的模块来开发和调试,方便单独优化和维护。
    3.灵活性高:由于LiDAR和IMU是独立处理的,如果需要替换或升级某一传感器,系统整体影响较小,具有较好的灵活性。
  • 劣势
    1.精度较低:由于数据融合是在高层次进行的,可能导致信息融合不够充分,影响定位和地图构建的精度。
    2.时序同步问题:LiDAR和IMU数据独立处理,可能会存在时序同步问题,从而影响系统的整体性能。
    3.鲁棒性差:对环境变化和传感器误差的鲁棒性较差,因为独立处理可能无法充分利用各传感器的优势来补偿弱点。

    1.2 紧耦合(Tightly Coupled)

    紧耦合的方法则是更深层次的融合,直接在传感器数据的低层次进行整合。具体来说:
    1.联合处理:LiDAR和IMU的数据在一个共同的滤波器(如扩展卡尔曼滤波器或图优化方法)中联合处理。LiDAR的扫描数据和IMU的测量数据一起输入到滤波器中。
    2.互补校正:IMU提供高频率的短时间内精确运动估计,LiDAR则提供低频率但更精确的位置信息和环境特征。两者的数据互相补充和校正,从而提高整体系统的精度和鲁棒性。
  • 优势
  1. 高精度:紧耦合方法在低层次上融合LiDAR和IMU数据,能够更好地利用两者的互补优势,显著提高系统的定位和地图构建精度。
  2. 时序同步好:紧耦合方法中,LiDAR和IMU的数据融合更紧密,可以更好地解决时序同步问题,提升整体性能。
  3. 鲁棒性强:由于充分利用了LiDAR和IMU的互补特性,系统对环境变化和传感器误差的适应能力更强。
  • 劣势
  1. 实现复杂:紧耦合方法需要在算法设计上更复杂的处理,包括更复杂的数据融合算法和更高的计算要求,实现难度较大。
  2. 开发周期长:由于系统复杂度增加,开发和调试时间较长,对团队的技术要求更高。
  3. 调试困难:在紧耦合系统中,各部分高度依赖,出现问题时调试和定位问题会更加困难。

    二、松耦合LIO的实现

    原理:激光雷达里程计的结果作为状态变量,旋转R、位置p的观测值
    框架:
  4. 同步IMU与LIDAR数据
  5. IMU运动方程得到预测值
  6. 利预测值对点云去除畸变
  7. 预测值作为初始值进行迭代优化,最后得到观测值
  8. 更新到卡尔曼滤波器


    松耦合 LIO 系统的代码实现主要分为三个部分:
    第一部分,需要将IMU 数据与雷达数据同步。
    第二部分,用ESKF对每个IMU 数据的预测值处理雷达的运动补偿。
    第三部分,应该从ESKF 中拿到预测的位姿数据,交给里程计算法,再将里程计配准之后的位姿放入ESKF中此外。
    LIO的松耦合与上一节IMU与GNSS的组合导航相似,因为只考虑激光雷达里程计的输出,本质为对R,p的直接观测。

    三、紧耦合LIO的实现

    3.1 步骤

  • 同步IMU与LIDAR数据
  • IMU运动方程得到预测值
  • 利预测值对点云去除畸变
  • 预测值作为初始值计算残差
  • 观测残差和先验残差迭代更新直至收敛
  • 更新到卡尔曼滤波器

详情请见...

 从零入门激光SLAM(十九)——松耦合与紧耦合到底怎么区分 - 古月居 (guyuehome.com)

### 视觉-IMU耦合SLAM实现方法及原理 #### 耦合定义特点 在耦合架构下,视觉定位IMU定位的结果被独立计算后再进行融合[^1]。这种设计使得两者之间的交互最小化,即各自模块保持相对独立性,互不影响对方的工作机制。 #### 融合策略 典型的耦合方案采用卡尔曼滤波器来完成最终的姿态估计。具体来说: - **前端处理**:分别由视觉里程计IMU预积分提供各自的位姿初值; - **后端融合**:通过扩展卡尔曼滤波(EKF)或其他形式的贝叶斯推断框架将上述两个源的信息结合起来,形成更精确的位置姿态估计结果。 这种方法的优势在于其实现简单直观,并且能够有效利用不同传感器的优点——视觉提供了丰富的环境结构信息而IMU则擅长短期高频次更新位置变化情况。 然而值得注意的是,由于缺乏深层次的数据关联,在某些情况下可能会导致性能不如耦合那样优越,特别是在面对复杂动态环境中时可能出现精度下降的情况[^3]。 #### 应用实例 实际应用中存在多个成功的案例采用了此类技术路线,比如LOAM(with IMU), LeGO-LOAM等系统均属于较为知名的代表作之一。这些项目展示了如何巧妙地结合激光雷达(LiDAR)或摄像头所获取的空间几何特性以及加速度计/陀螺仪记录下的运动轨迹来进行导航定位任务求解。 ```python import numpy as np from filterpy.kalman import KalmanFilter def initialize_kf(): kf = KalmanFilter(dim_x=6, dim_z=6) # 初始化状态转移矩阵 F dt = 0.1 # 时间间隔假设为0.1秒 kf.F = np.array([[1, 0, dt, 0, 0.5*dt**2, 0], [0, 1, 0, dt, 0, 0.5*dt**2], [0, 0, 1, 0, dt, 0], [0, 0, 0, 1, 0, dt], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1]]) return kf kf_instance = initialize_kf() ``` 此段Python代码片段展示了一个简化版六自由度(三维平移加上三维旋转)Kalman Filter初始化过程的一部分逻辑,用于说明如何设置状态空间模型以适应视觉-IMU数据融合需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桦树无泪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值