【激光SLAM】激光雷达数学模型和运动畸变去除

目录

  • 概念介绍
    • 激光雷达传感器介绍
      • 测距原理
        • 三角测距
        • 飞行时间(TOF)
    • 激光雷达数学模型介绍
      • 光束模型(beam model)
      • 似然场模型(likelihood model)
    • 运动畸变介绍
  • 畸变去除
    • 纯估计方法(ICP Variants)
      • ICP方法
      • VICP(Velocity estimation ICP)
    • 里程计辅助方法

概念介绍

激光雷达传感器介绍

测距原理

三角测距

在这里插入图片描述

特点:

  • 中近距离精度较高,距离越近,精度越高
  • 价格便宜
  • 远距离精度较差
  • 易受干扰
  • 一般在室内使用

原理:
由于雷达特性,α与L已标定,β为通过雷达内参数投影得出,设AB距离为L,A至垂足间的距离为L1,B至垂足间的距离为L2
在这里插入图片描述

飞行时间(TOF)

在这里插入图片描述

特点:

  • 测距范围广
  • 测距精度高,距离越远,精度越高
  • 抗干扰能力强
  • 价格昂贵
  • 室内外皆可

原理:
在这里插入图片描述
基于时间:
D=0.5c(t2-t1),c为光速,t1与t2分别为发射与接受到光的时间点。
但是,由于光速过大,在测量距离较小的物体时,要达到这个精度极其艰难。

基于相位:
通过测量发射与接收的相位差测量Δt,再得出D。这样精度稍微高一些。

激光雷达数学模型介绍

光束模型(beam model)

在这里插入图片描述
激光的观测值有四种可能性:

把激光看成一个激光束。激光束射到物体上返回得到的距离,由于噪声的存在,通常呈高斯分布,如图a所示,d在期望值附近形成高斯分布。通过raytracking得到期望距离。

图b为激光束碰到障碍物的情况,此时得出的d小于期望距离。一般用指数分布来描述这种情况。

图c为受噪声影响,得到一个测量最大值的情况;图d为均匀分布的误差。不过在实际运用中,这两种影响相对较少,所以一般忽略。

激光雷达的观测模式:
给定一个机器人的位置xt,地图m,以及这一帧观测值zt,于是我们得到这一帧机器人观测值的概率及其分布:

在这里插入图片描述
一般认为每一个激光束是相互独立的,彼此之间信息无关。

对i从1到n的每一个激光都求一个raytracking的过程,得到对应的ztk*,随后代入至公式中求解。一般把最终结果称为得分(score),score(ztk)用于表示当前这束激光跟地图的重合程度。重合程度越好,得分越高,最大值为1。

如果我们拿到一帧的激光数据,那我们评估的就是一帧激光数据跟地图的重合程度。因此,我们的观测模型就是评估激光数据跟地图的重合度

上图即为上面四幅图的合成

似然场模型(likelihood model)

在这里插入图片描述
左图中灰色部分为障碍物。将sensor noise 与 pose noise统一到一起,得到一个呈高斯分布的噪声。利用该高斯分布,对图像进行高斯平滑。白色得分为1,黑色得分为0,距离障碍物距离越远,得分越低。

运动畸变介绍

在机器人运动过程中,每个激光点都在不同的基准位姿上产生(就是由于机器人自身的运动,在不同的时刻发出激光时,机器人的位置是不同的,这也是运动畸变产生的根源所在)。

激光扫描时伴随着机器人的运动,每个角度的激光数据都不是瞬时获得的,当激光雷达扫描的频率比较低的时候,机器人运动带来的激光帧的运动误差是不能被忽略的。

当扫描频率是5Hz的激光雷达,一帧数据的收尾时间差是200ms,如果机器人以0.5m/s的速度沿着x方向行走并扫描前面的墙体,那么200ms后尾部的测量距离和首部的测量距离在x方向上就差10cm。

综上,激光雷达产生畸变的原因有三:

  1. 激光点数据不是瞬时获得
  2. 激光测量时伴随着机器人的运动
  3. 激光帧率较低时,机器人的运动不能忽略(目前 国产的激光雷达 旋转的频率大约在是10Hz ~~100ms)
    在这里插入图片描述

蓝色是产生运动畸变之后轨迹。

畸变去除

去除激光雷达运动畸变的原理是把一帧激光雷达数据的每个激光点对应的激光雷达坐标转换到不同时刻的机器人里程计上(近似对应的里程计的位置,达到尽可能去除畸变的目的)

纯估计方法(ICP Variants)

ICP方法

基本目的: 两个点云进行配准
在这里插入图片描述
数学描述:
在这里插入图片描述

设xi和pi是匹配的,即两个点云中的点打向的是物理空间中的同一个点。因此,我们需要找到R和t,使得两个匹配点的距离最小:

在这里插入图片描述

已知对应点的求解方法(解析解):

ux表示点云集合X的几何中心(基准位姿/平均位姿),up表示点云集合P的几何中心(基准位姿/平均位姿),随后把每个点云都移动到平均位姿来。
在这里插入图片描述
对W进行SVD分解:
在这里插入图片描述
则ICP的解为:

在这里插入图片描述
效果如下:

在这里插入图片描述

未知对应点的求解方法:

在这里插入图片描述
ICP方法在激光匹配中的缺点:
没有考虑激光的运动畸变,因此得到的激光数据是错误的(计算的时候假设是正确的),从而造成点云匹配发生错误,通过不断的迭代,虽然能够收敛,能够求解,但是存在误差。

在这里插入图片描述

VICP(Velocity estimation ICP)

VICP算法考虑了激光的运动畸变,也就是考虑了机器人的运动和速度的存在。

  • ICP算法的变种
  • 考虑了机器人的运动
  • 假设是匀速运动
  • 进行匹配的同时估计机器人的速度

在这里插入图片描述
VICP矫正效果:

在这里插入图片描述
VICP算法流程:

10:Vi=(1/Δt )logT
VICP 方法的缺点:

  • 低频率情况下(5Hz),匀速运动假设不成立
  • 数据预处理和状态估计过程耦合

里程计辅助方法

为了解决VICP的缺点,我们尽可能的反应运动情况,实现预处理和状态估计的解耦,我们提出了传感器辅助的方法。

传感器辅助方法(Odom/IMU)的好处:

  • 极高的位姿更新频率(200Hz),可以比较准确的反应运动情况
  • 较高精度的局部位姿估计
  • 与状态估计完全解耦

惯性测量单元(IMU):

  • 直接测量角速度和线加速度
  • 具有较高的角速度测量精度(比较准确)
  • 测量频率极高(1kHz~8kHz)
  • 线加速度精度太差,二次积分在局部的精度依然很差(这一点我们就可以否定他在移动机器人上面的使用,主要原因是精度不高)故不使用IMU

轮式里程计:

  • 直接测量机器人的位移和角度(真正需要的量)
  • 具有较高的局部角度测量精度
  • 具有较高的局部位置测量精度
  • 更新速度较高(100Hz~200Hz)
    在这里插入图片描述
    在这里插入图片描述
    线性插值时,我们假设时间l与时间k之间做匀速运动
    在这里插入图片描述
    在这里插入图片描述

“位姿通过线性插值获取”中的线性插值表示在里程计的数据中,即Odomlists中进行线性插值。“在这K个位姿之间进行线性插值”中的线性插值表示在先前线性插值得到的位姿中,再进行线性插值,即为每一个激光点分配一个位姿。

在这里插入图片描述

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

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

相关文章

生态位模拟——草稿笔记

文章目录 前言ENM初识一、所需软件安装1.1. 下载ArcGIS软件:1.2. 下载 MaxEnt软件:1.3. 下载ENMtools: 二、数据准备与处理2.1. 物种分布数据2.2. 环境因子数据2.3. 地图数据2.4. 物种分布点去冗余2.4.1. 使用spThin包中的thin函数2.4.2. 或者…

利用Python和pandas库进行股票技术分析:移动平均线和MACD指标

利用Python和pandas库进行股票技术分析:移动平均线和MACD指标 介绍准备工作数据准备计算移动平均线计算MACD指标结果展示完整代码演示 介绍 在股票市场中,技术分析是一种常用的方法,它通过对股票价格和交易量等历史数据的分析,来…

FANUC机器人如何清除示教器右上角的白色感叹号?

FANUC机器人如何清除示教器右上角的白色感叹号? 如下图所示,示教器上显示白色的感叹号,如何清除呢? 具体可参考以下步骤: 按下示教器上白色的“i”键,如下图所示, 如下图所示,按…

配置DNS正反向解析服务!!!!

一.准备工作 #关闭防火墙和selinux,或者允许服务通过 [rootnode ~]# nmcli c mod ens32 ipv4.method manual ipv4.address 192.168.32.133/24 ipv4.gateway 192.168.32.2 ipv4.dns 192.168.32.132 [rootnode ~]# nmcli c reload [rootnode ~]# nmcli c up ens32[rootnode ~]# …

【计算几何】确定两条连续线段向左转还是向右转

确定两条连续线段向左转还是向右转 目录 一、说明二、算法2.1 两点的叉积2.2 两个段的叉积 三、旋转方向判别3.1 左转3.2 右转3.3 共线判别 一、说明 如果是作图,或者是判别小车轨迹。为了直观地了解,从当前点到下一个点过程中,什么是左转、…

【芯片设计- RTL 数字逻辑设计入门 12 -- verilog 有符号数加减法】

文章目录 多功能数据处理器描述verilog 无符号数与有符号数8d100 8d1558d100 8d1568d100 8d157verilog 代码实现TestBench 代码VCS 仿真结果 多功能数据处理器描述 根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a,b为8bit有符号数&#xff1…

【后端高频面试题--Linux篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 后端高频面试题--Linux篇 Windows和Linux的区别?Unix和Linux有什么区别&#xff1f…

[Python进阶] 制作动态二维码

11.1 制作动态二维码 二维码(QR code)是一种二维条形码(bar code),它的起源可以追溯到20世纪90年代初。当时,日本的汽车工业开始使用一种被称为QR码的二维条码来追踪汽车零部件的信息。 QR码是Quick Respo…

i.MX6ULL 嵌入式学习(一)

i.MX6ULL 嵌入式学习(一) i.MX6ULL理论知识 i.MX6ULL 嵌入式学习(一)进程psipc 进程间通信管道信号(类似中断)system-V 消息队列system-V 信号量system-V 共享内存 进程 创建进程(复制)&#xff0c;同程序 fork #include<unistd.h> a. 返回值 成功 0 或 非负非零整数( 父…

红队打靶练习:DEVGURU: 1

目录 信息收集 1、arp 2、nmap 3、dirsearch WEB web信息收集 8585端口 漏洞利用 提权 系统信息收集 横向渗透 get flag 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:50:56:20:80:1b, IPv4: 192.168.10…

【Linux学习】线程详解

目录 十八.多线程 18.1 线程与进程 18.2 内核视角看待创建线程与进程 18.3 线程优缺点总结 线程的优点&#xff1a; 线程的缺点&#xff1a; 线程的用途&#xff1a; 18.4 线程与进程的联系 十九.线程控制 19.1 POSIX线程库 19.2 线程创建 19.3 线程等待 19.4 线程终止 19.5 线…