本篇记录kkdqd老师的课《激光slam理论与实践》
贴个人总结(理解不正确,请指出) :
第一章:激光SLAM简要介绍
1、输出度量图比例图。 slam分为基于滤波的基于过滤器的slam和基于图形的slam两种。
2,
)基于Graph-based的代表是cartographer,能够修复到时刻t为止的误差的分为前端和后端。
)只能基于代表PF的g映射,估计x(t )当前时间的位置,不能修复先前时间出现的误差。 大面积的情况下,就不能制作图了。 粒子滤波实际上是贝叶斯估计的过程,该过程是状态预测的过程,可分为六个步骤。
卡尔曼是贝叶斯线性drdnht的特殊情况。
(3) ) )。
实际上,IMU计算角度,行驶距离计算距离
)4)帧间匹配算法:
ICP是计算点对点的,谁也不用了。 PI-ICP计算点对线。
NDT用于三维slam。
CSM :是最主要的方法。
扫码-扫码已经没人用了
扫描至地图代表是卡通人物。
虽然还没有使用贴图,但是效果最好。 与x(t )时刻之前的几个帧进行环回检测。
3、二维激光SLAM (用的二维激光雷达) )。
)1) 2D激光slam的帧间匹配
(a ) PI-ICP
(b )并行扫描(CSM ) )。
(c )坡度优化方法: Hector—SLAM
(d ) CSM梯度优化) cartographer
) 2D激光SLAM环回检测方法
(a )分支边界Branch and Boundlazy Decison )延迟决定)代表: cartographer
(b )扫描至地图
(3) ) )。
(a ) EKF-SLAM构建的是功能地图而不是栅格地图,因此不能用于导航,只能用于定位。
(b ) g映射是网格版本的快速扫描区,已加入扫描匹配。
(c )用Optimal RBPF优化g映射,是MRPT上的开源算法。
2010年以后从FP变成了地图优化的方法。
Karto SLAM在运行时经常崩溃。 在此基础上,Catographer进行了优化。 Catographer是开源算法中效果最好的。
(4、数据预处理
4、3D激光雷达
)1) 3D激光雷达帧间匹配
(a )点到平面ICP点和面匹配
(b )基于功能的方法
第二章:传感器数据处理:里程表的运动模型与标定
1、里程表运动模型
(1)两轮差分底盘运动学模型
(2)航迹推算(衰退恢复) )。
2、测距仪标定
(1)线性最容易发怒的指甲油乘坐的基本原理
通常是求近似解。
)2)最容易发怒的指甲油乘坐的直线拟合
)3)最易怒的指甲油应用于里程表标定:
a、直接线性方法,精度不高,但实现简单; 用这种方法
b是一种基于模型的方法,精度高,但现实中相当复杂,是一个非线性过程。 不。
工作:实现直接线性方法的里程表标定模块
总结:由于机器人结构的系统误差(如车轮直径大小不同、机械结构间隙等),需要用里程表标定以消除系统误差,无法消除随机误差。
第三章:传感器数据处理:激光雷达数学模型和运动畸变消除
1、概念
(1)激光lidar介绍,基于三角测距原理,距离越近精度相对越高。 飞行时间(TOF )远距离精度好,价格昂贵。 高端的lidar有德国的sick,日本的北阳。
固态lidar :趋势、价格低廉,类似于深度相机。 100线——300线。
如果lidar的帧率小于10HZ,则运动失真非常明显。
)2)激光lidar数学模型介绍:
光束模型:一帧激光与地图的重叠程度、计算量太大,现在已经不用了。
似然场模型:对图像进行drdnht平滑,计算量低。应用的多。(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方法(Filter-based)
1、(1)只估计当前时刻的状态X(t)叫滤波。视觉地图——feature特征地图;激光——》栅格地图
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、drdnht牛顿方法
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排行榜上长期霸占第一