激光slam综述_激光slam原理

激光slam综述_激光slam原理本篇是记录曾书格老师的课程《激光slam理论与实践》先贴一下个人总结(有理解的不正确的,麻烦指出来):第一章:激光SLAM简要介绍1、输出Metricalmap尺度地图,slam分为两种:基于滤波的filter-based的SLAM,和Graph-based的SLAM。2、(1)基于Graph-based的代表是cartographer,可以修复t时刻之前的误差分为两部…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本篇是记录曾书格老师的课程《激光slam理论与实践》

先贴一下个人总结(有理解的不正确的,麻烦指出来):

激光slam综述_激光slam原理

第一章:激光SLAM简要介绍

1、输出Metrical map尺度地图,slam分为两种:基于滤波的 filter-based 的SLAM,和Graph-based的SLAM。

2、

(1)基于Graph-based的代表是cartographer,可以修复 t 时刻之前的误差分为两部分Front-end ,和Back-end。

(2)基于PF的代表gmapping,只能估计X(t)当前时刻的位姿,不能修复之前时刻产生的误差。在大面积的情况下,就无法建图了。粒子滤波实际上是一个贝叶斯估计的过程,其流程是一个状态预测的过程,分为6步:

激光slam综述_激光slam原理

卡尔曼是贝叶斯在线性高斯的特殊情况。

(3)

激光slam综述_激光slam原理  

    实际中,IMU算角度,里程计算距离

(4)帧间匹配算法:

ICP 是计算点对点的,没人用了。而PI-ICP是计算点对线的。

NDT用于三维的slam。

CSM:是最主要的方法。

激光slam综述_激光slam原理

       scan-scan已经没人用了;

       scan-to-Map代表是cartographer。

       Map-to-Map还没有用,但是效果最好。与X(t)时刻之前的几帧进行回环检测。

3、2D激光SLAM(用的2D的激光雷达)

(1)2D激光slam的帧间匹配

     (A)PI-ICP

    (B)CSM(Correlation Scan Match)

    (C)梯度优化的方法:Hector—SLAM

    (D)CSM+梯度优化:cartographer

(2)2D 激光SLAM的回环检测方法

    (A)分支定界Branch and Bound&lazy Decison(延迟决策) ,代表:cartographer

    (B)Scan-to-Map

(3)

     激光slam综述_激光slam原理

(A)EKF-SLAM构建的是feature 地图,而不是grid栅格地图,所以无法用于导航,只能用于定位。

(B)gmapping是Grid版本的FastSLAM,加入了scan-match。

(C)在Optimal RBPF在gmapping上做了优化,是MRPT上的一个开源算法。

2010年之后就由FP 转化为 图优化的方法了。

Karto SLAM 运行时经常崩溃。所以在此基础上Catographer作了优化。Catographer是所以开源算法中效果最好的。

(4)、数据的预处理

      激光slam综述_激光slam原理

4、3D激光雷达

(1)3D激光雷达的帧间匹配

      (A)Point-to-Plance ICP 点到面的匹配

      (B)Feature-based Method

第二章:传感器数据处理I:里程计运动模型及标定

1、里程计运动模型

(1)两轮差分底盘的运动学模型

               激光slam综述_激光slam原理

(2)航迹推算(Dead Reckoning)

                  激光slam综述_激光slam原理

 

2、里程计标定

(1)线性最小二乘的基本原理

                  激光slam综述_激光slam原理

通常就是 求解一个近似解。

(2)最小二乘的直线拟合

(3)最小二乘在里程计标定中的应用:

       a,直接线性方法,精度不高,但实现简单;用这个方法

       b,基于模型的方法,精度高,但是现实起来相当复杂,是一个非线性的过程。不用。

    作业:实现一个直接线性方法的里程计标定模块

小结:由于机器人结构的系统性误差(比如轮子直径的大小不一样,机械结构缝隙等),所以需要坐里程计标定,达到去除系统误差的目的,而随机误差无法去除。

 

第三章:传感器数据处理II:激光雷达数学模型和运动畸变去除

1、概念

(1)激光lidar介绍:基于三角测距原理,距离越近,精度相对越高。而飞行时间(TOF)远距离时精度才可以,价格昂贵。高端的lidar有德国的sick,日本的北阳。

固态lidar:是一个发展趋势,价格低,类似于深度相机了,100线——300线。

            如果lidar的帧率小于10HZ的话,那么运动畸变是非常明显的。

(2)激光lidar数学模型介绍:

         光束模型:一帧激光与地图的重合程度,计算量太大,现在已经不用了。

        似然场模型:对图像进行高斯平滑,计算量低。应用的多。

(3)运动畸变介绍:

        产生的原因:在获取一帧激光lidar的数据用时 t 时,机器人的位置发生了运动,导致每个激光点的基准位置不是固定的。

2、畸变去除方法

(1)纯估计方法:ICP 的方法,就是点云匹配。

          考虑到机器人的运动,采用VICP的方法。(Velocity estimate ICP)

(2)传感器辅助方法:(IMU/odom)

             odom,直接测量位移和角度。更新频率(100Hz——200Hz),而IMU测量的是加速度,还需要积分。

        二次曲线的近似:一帧激光数据N个激光点,每个激光点对应的位姿{P1,P2 … Pn}通过这种方法得到,把转换后的激光数据发布出去。

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

小结:由于机器人存在运动畸变,所以要发布publish经过去除畸变的激光lidar数据。

 

第四章:激光SLAM的前端配准方法

帧间匹配方法:

(1)ICP 匹配方法:点到点的距离作为误差,一阶收敛。

(2)PL-ICP方法:点到线的距离作为误差,二阶收敛,精度比ICP更高。

(3)基于优化的匹配方法(Optimization-based Method):应用于Hector SLAM 和cartographer

梯度的优化:Hector SLAM,不需要里程计,纯靠优化的方法。

cartographer 是CSM+优化。

(4)相关匹配方法和分枝定界加速:Karto SLAM,cartographer,分枝定界在相关方法中的加速作用。

激光slam综述_激光slam原理

第五章:基于滤波器的激光SLAM方法(Filter-based)

1、(1)只估计当前时刻的状态X(t)叫滤波。视觉地图——feature特征地图;激光——》栅格地图

           激光slam综述_激光slam原理

2、

    (1)Bayes滤波:是一类方法的统称,卡尔曼家族和PF都属于贝叶斯滤波。

    (2)粒子滤波:PF是Bayes滤波的特例。应用于物体跟踪,机器人定位,SLAM导航。用一系列的粒子近似概率分布。

             有一个重采样的过程,即去除权重小的粒子。权重表示和地图的匹配程度。

             重采样的目的:生成后验分布的粒子群。总粒子数不变。

         对于SLAM,存在粒子耗散问题,且无法解决,所以在环境小的时候才有用。

    (3)FastSLAM:是gmapping的基本原理,也是基于PF的。存在三个问题和优化a,b,c:

               a.每个粒子都包含自己的栅格地图,占用较大的内存;保持粒子数量较小,提升proposal采样的位姿质量;

               b.粒子耗散问题;缓解粒子耗散;减少重采样的次数;

               c.在a的基础上再优化,把proposal限制在一个较小的区域

    (4)Gmapping:以FastSLAM为基础。在fastSLAM的基础上实现了优化a和b,没有使用优化c。

            主要是两个函数: addScan( )  和  processScan( )

 

第六章:基于图优化的激光SLAM方法(Grid-based)

1、Grid-based 是基于非线性最小二乘原理的求解。Grid-based包含前段Front-end和后端Back-end。

2、非线性最小二乘:f(x) = z ,f(x)是一个非线性的函数 ,z可以是一个预测值,然后通过传感器可以得到一个测量值z’,根据二者就可以去非线性最小二乘。

3、有回环检测。

4、高斯牛顿方法

5、cartographer方法中mapping_2d目录:

第七章:基于已知定位的建图

位姿估计包含 帧间匹配和优化的方法,两者构成图优化,通过对机器人的位姿(x ,y , θ)来构建地图。

1、地图分类:(栅格地图、特征地图和点云地图,都属于)尺度地图、拓扑地图、语义地图

2、覆盖栅格建图算法(gmapping里面用的这个):

       栅格地图的数学模型:给定机器人的位姿(由里程计信息得到)和激光lidar的数据,来估计出栅格地图。

       地图估计:栅格是一个二元随机变量。1 标准占用,0表示没被占用。

       激光穿过的栅格为free,激光击中的栅格为occupied

3、计数(count model)建图算法:

     激光击中的次数 / 激光穿过的次数 到达一个比值,就表示障碍物,occupied。

 

第八章: 3D激光SLAM介绍

1、3D激光SLAM

2D激光SLAM和3D激光SLAM的区别:

(1)2D :单线激光lidar,只能在一个截面,形成2D栅格地图,室内机器人

(2)3D:多线激光lidar,形成三维点云地图或者三维栅格地图,室外移动机器人

2、3D帧间匹配:

        (1)点面ICP 

          (2)  Feature-based method

          (3) NDT 方法 normal-distribution-Transform

2、LOAM (lidar odometry and mapping)

(1)是3D 激光SLAM算法,只有匹配,没有回环。

(2) KITTI数据集Odometry排行榜上长期霸占第一

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172345.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 堆栈溢出排查

    堆栈溢出排查ps-ef|greprimsjmap-histo:live28972|head-7启动程序时配置内存溢出时自动导出dump文件-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/home/d5000/eas/easDmSync/heapdump.hprof

    2022年10月31日
  • python:类基础「建议收藏」

    python:类基础「建议收藏」1、面向对象编程(oop)是一种程序设计思想。oop把对象作为程序的基本单元,一个对象包含数据和操作数据的函数2、在python中,所有数据类型都被视为对象,也可以自定义对象。自定义对象数据类型就是面向对象中类的概念1、类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例2、方法:类中定义的函数3、类变量(属性):类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体(方法)之外。类变量通常不作为实例变量使用,类变量也称作属性4、数

  • mysql的命名规则_Mysql命名规范

    mysql的命名规则_Mysql命名规范转自:https://blog.csdn.net/fujian9544/article/details/86649096数据库表字段命名规范内容由网上摘抄并进行总结/精简/标记后的内容本文包含了数据库命名数据库表命名数据库表字段命名SQL语言编码的规范一、数据库命名规范采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’_’组成,命名简洁明确,多个单词用下划线’_’分隔,一个…

  • 2021年调味品行业发展的现状_2020年调味品行业所处阶段

    2021年调味品行业发展的现状_2020年调味品行业所处阶段2021年,受到需求收缩、成本上涨、预期转弱等因素叠加的影响,调味品行业发展面临巨大挑战,多数调味品上市公司发展趋缓。一、调味品上市公司经营现状2021年,16家调味品上市公司营业收入合计为871亿元,营业收入正增长的有12家,占16家上市公司的75%,其中营业收入排名前三位的公司分别是海天味业、梅花生物和安琪酵母,营业收入分别是250亿元、228.4亿元、106.8亿元,分别同比增长9.7%、33.9%、19.5%。2021年中国调味品上市公司营业收入及同比增长资料来源:中国调

    2022年10月31日
  • [转]使用tcpdump抓取HTTP包

    [转]使用tcpdump抓取HTTP包

  • 训练集准确率很高,验证集准确率低问题

    训练集准确率很高,验证集准确率低问题训练集在训练过程中,loss稳步下降,准确率上升,最后能达到97%验证集准确率没有升高,一直维持在50%左右(二分类问题,随机概率)测试集准确率57%在网上搜索可能打的原因:1.learningrate太小,陷入局部最优2.训练集和测试集数据没有规律3.数据噪声太大4.数据量太小(总共1440个样本,80%为训练集)5.训练集和测试集数据分布不同:如训练集正样本太少(训练集和测试集每次运行随机选择,故排除)6.数据集存在问题,如标注有问题(采用公开数据集,排除)7.学习率过大8.模型

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号