激光SLAM--(3)传感器数据处理之Lidar数学模型和运动畸变去除

激光雷达传感器
1.激光雷达:
  • 激光雷达由四部分构成
    • 激光器:激光器是激光雷达中的激光发射机构。在工作过程中,它会以脉冲的方式点亮
    • 接收器:激光器发射的激光照射到障碍物以后,通过障碍物的反射,反射光线会经由镜头组汇聚到接收器上
    • 信号处理单元:信号处理单元负责控制激光器的发射,以及接收器收到的信号的处理。根据这些信息计算出目标物体的距离信息。
    • 旋转机构:以上3个组件构成了测量的核心部件。旋转机构负责将上述核心部件以稳定的转速旋转起来,从而实现对所在平面的扫描,并产生实时的平面图信息。
  • 测距原理
    • 三角测距:主要是A2,EAI这种小于10m的

      • 在这里插入图片描述
      • 计算过程:在这里插入图片描述
    • TOF 测距:速度乘以飞行时间在这里插入图片描述

    • 各自特点:

      • 三角测距:中近距离精度较高(误差1%左右)、价格便宜、远距离精度较差、易受干扰、一般在室内使用。
      • TOF:测距范围广,测距精度高,抗干扰能力强,价格贵,室内室外皆可
2.激光雷达数学模型
  • 光束模型
    • 模型图:在这里插入图片描述
    • 缺点:在这里插入图片描述
  • 似然场模型(likelihood model)
  • 在这里插入图片描述
3.运动畸变
  • 示意图:在这里插入图片描述
  • 产生原因:
    • 激光点数据不是瞬时获得
    • 激光测量时伴着机器人的运动
    • 激光帧率较低时,机器人的运动不能忽略
畸变去除(目的就是要得到每帧的更为准确的位姿)
1.纯估计方法

方法一:ICP方法

  • 目的:进行两个点云的配准,如给定两个点云集合,其中 x i 与 p i x{_i}与p{_i} xipi匹配,则有数学表示(求解一个欧式变换(R,t))

  • 在这里插入图片描述

  • 已知对应点的求解:步骤是1首先求平均位置,2去中心化,3构造矩阵并进行SVD分解在这里插入图片描述

  • 未知对应点的求解(对应点就是EM的隐变量)在这里插入图片描述

  • ICP方法在激光匹配中间那个的缺点:没有考虑激光的运动畸变;如果当前的激光匹配数据是错误的。

方法二:VICP方法

  • 特点:ICP算法的变种,考虑了机器人的运动并且假设为匀速运动,进行匹配的同时估计机器人的速度。
  • 介绍:在这里插入图片描述
  • VICP矫正效果:在这里插入图片描述
  • 算法流程:在这里插入图片描述
2.里程计辅助方法
  • 前瞻
    • VICP缺点:
      • 对于低帧率激光(5HZ),匀速运动假设不成立
      • 数据预处理和状态估计过程耦合
    • 解决办法:
      • 尽可能准确的反应运动情况,
      • 实现预处理和状态估计的解耦
    • 传感器辅助方法(Odom/IMU)
      • 极高的位姿更新频率(200HZ),可以比较准确的反应运动情况
      • 较高精度的局部位位姿估计
      • 跟状态估计完全解耦
  • IMU辅助:好处是可以直接测量角速度和线加速度、具有较高的角速度测量精度、测量频率较高(1kHz~8kHz),但是线加速度精度太差,二次积分在局部的精度依然很差(就是时间太短达不到那么高的时间精度)
  • 轮式里程计:能直接测量机器人的位移和角度(核心),具有较高的局部角度和位置测量精度,更新速度较高(100Hz~200Hz)
    • 在这里插入图片描述
    • 问题模型:在这里插入图片描述
    • 求解过程:
      • a.线性插值方法(假设是匀速运动):
        • 若里程计队列数据正好和激光数据同步,假设第i帧和第j帧数据时刻分别是 t s 和 t e t{_s}和t{_e} tste,则 p s =  OdomList  [ i ] p e =  OdomList  [ j ] \begin{array}{l} p_{s}=\text { OdomList }[i] \\ p_{e}=\text { OdomList }[j] \end{array} ps= OdomList [i]pe= OdomList [j]
        • 若不同步(即没有 t s t{_s} ts时刻对应的里程计位姿),则需要进行线性插值,设在l,k时刻有里程计位姿,且l<s<k,则: p l =  OdomList  [ l ] p k =  OdomList  [ k ] p s = LinarInterp ⁡ ( p l , p k , s − l k − l ) \begin{array}{l} p_{l}=\text { OdomList }[l] \\ p_{k}=\text { OdomList }[k] \\ p_{s}=\operatorname{LinarInterp}\left(p_{l}, p_{k}, \frac{s-l}{k-l}\right) \end{array} pl= OdomList [l]pk= OdomList [k]ps=LinarInterp(pl,pk,klsl)
      • b.二次插值(假设是匀加速运动):在这里插入图片描述
      • c.用分段线性函数对方法二中的二次曲线进行近似来求解在这里插入图片描述
      • 统一坐标系&激光数据发布在这里插入图片描述

实现一个激光雷达运动畸变去除模块

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值