激光slam课程学习笔记--第6课:激光的前端配准算法

前言:这系列笔记是学习曾书格老师的激光slam课程所得,这里分享只是个人理解,有误之处,望大佬们赐教。这节课主要介绍激光点云的前端配准算法。

1.帧间匹配算法

[帧间匹配算法,不一定指的是前后帧情况,也可能是好几帧情况]

1.1 ICP匹配算法

在这里插入图片描述
已知点的求解方法
在这里插入图片描述
求解证明:
在这里插入图片描述
[没理解,上图左侧的底部式子为零]
在这里插入图片描述
[正定对称举矩阵:矩阵对称,并且元素都是大于0][正交矩阵,其逆矩阵和转置矩阵相等]
[右侧的Track拼写有误,应该写成Trace]
[老师说,slam更偏向于一个工程问题而不是一个理论问题;基础知识都是那些固定的内容,只要静下心来都是可以推导出来的,都是固定套路]
[个人,老师说得或许没错,但是我目前连套路都没懂,怎么推导呢?]

未知对应点的求解方法
在这里插入图片描述
[EM算法是非线MLE的工具]
[slam,里面优化,常用到的方法LM,GS,Dosles]

1.2 PL-ICP匹配算法

数学描述
在这里插入图片描述
[由于激光数据散点都是离散的,导致了PP-ICP存在固有的缺陷;或者说激光雷达散点打到同一物体的不同实体部分,强行匹配是存在误差][还是很迷]

算法流程:
在这里插入图片描述
[PL-ICP的开源代码案例,ros-kinect-csm]

1.3 基于优化的匹配方法

1)
[根据梯度进行的,例如hector-slam]
在这里插入图片描述
[T表示机器人位姿][Si(T)表示将激光数据转为世界坐标系或者地图坐标系下][M(x)表示的占用概率,可以理解为似然场.(个人表示似然场没有理解)]

[上面公式是一个非线性,这是由其变换矩阵决定的;基本的逻辑思路:变换矩阵--->梯度--->似然场--->地图栅格化--->离散处理--->地图进行插值]

2)优化的方法的求解
在这里插入图片描述
[不断迭代,T收敛后,就得到了机器人的位姿][这里求解过程涉及非线性优化以及高斯牛顿知识]
在这里插入图片描述
[上图最下面的公式H,没有三角T的.老师又写错公式了]
在这里插入图片描述
[个人表示,这里的坐标点对变换矩阵求导没有理解][老师的意思是,T表示xy+角度变量三者[Tx,Ty,T角度],对T求导,也就是Si(T)依次对xy+角度三个变量进行求导,最后得到的是2x3矩阵]

3)地图双性插值
在这里插入图片描述
插值方法:
使用拉格朗日插值法,对X,Y两个方向进行插值,该方法属于一维线性插值的推广
在这里插入图片描述
[注意Ln(x) = yi的关系,从而得到基函数的条件]
拉格朗日插值方法--基函数构造
在这里插入图片描述
[上图的第一句话,可以根据一维线性插值的基函数满足的条件进行理解]
在这里插入图片描述
[注意,四个点坐标的获取,并不是表示直接等号关系,而是一个--->转换关系,表示当x=x0,y=y0带入上面式子u,v时所计算出的结果][但是构造基函数步骤,个人没有理解]

地图插值
在这里插入图片描述
[地图M对点p的求导,等于(L(x,y)对x的偏导数,L(x,y)对y的偏导数)]

[基于优化方法,对初始值敏感,但是精度高.hector-slam,cartographer均使用到该方法]

1.4 相关匹配方法及分枝定界加速

1.4.1帧间匹配似然场

在这里插入图片描述
帧间匹配似然场(CSM)匹配特点:

1)高度非凸,存在很多的局部极值;
2)对初值非常敏感
3)进行暴力匹配,排除初值影响

4)通过加速策略,减低计算量
5)计算位姿匹配方差[老师认为这个方差计算非常重要]

算法流程:
在这里插入图片描述
算法流程:
1)构造似然场
2)在指定的搜索空间内,进行搜索,计算每一个位姿得分[每一个,表示的是暴力搜索;如何对其优化进行加速计算是算法的重点]
3)根据步骤2)中的位姿得分,计算本次位姿匹配的方差

1.4.2位姿搜索方法介绍

在这里插入图片描述
[1,2,3是更新策略的方式,3或者不是最优解,但是也是次优解,计算速率也可以加速;其中3是CSM常用的方法]

1.4.3分枝定界算法

在这里插入图片描述
1)常用的树形搜索剪枝算法
2)求解整数规划问题
3)解的数量为有限个

4)把最优解求解问题转换为树形搜索问题,根节点表示整个解空间,叶子节点表示最优解,中间的节点表示解空间的某一部分子空间

5)分枝:即根节点表示整个解空间,深度为1的节点表示解空间的子空间,深度为2的节点表示深度1空间的子空间,这样层层划分,直到划分到真实解,也就是叶子节点为止.

6)定界:对于搜索树中的每一个节点,确定以该节点为根节点的子树的界.对于最小值问题,确定下界;对于最大值问题,确定上界.(slam中为上界)[定界,可以类似大/小顶堆树结构理解]

[对于某一子树空间,其子树的根节点得分就是子树界,如果整树获取了当前最优解,而讨论的子树空间,其根节点得分也是比最优解得分低的,那么该子树空间也没有继续搜索的必要,也就是实现了不搜索操作,也就是分(剪)枝操作]

[分枝定界方法,跟前面的多分辨率搜索方法想相比,其能保证取到最优解]

[分支定界方法,会检索到叶子节点时,才会更新最优解;但是跟分枝操作是没有冲突的,因为第一次得到最优解时,必定检索到叶子节点才得到的,后面的子树空间也是根据当前已有的最优解进行确定是否进行检索的]

分枝定界算法的算法实现:
在这里插入图片描述
[bound表示分(剪)枝操作]

1.4.4分枝定界在相关方法的加速作用

在这里插入图片描述
[四个子节点,第一个叉乘表示四个节点意思,后面表示角度,最后的ch表示深度]

[图中左上的Wc是不考虑地图形状的;上图右下式子左侧W是考虑了地图形状的,式子最右侧的W是表示考虑地图形状的,如果画框超出了地图覆盖范围,自动删除超出部分;这也表明了双杆W画格范围比单杆W范围大的原因]

[从图中的右侧的关系式可以发现,粗分(画格)获得的分数比下面细分(画格)获得分数大;也可以认为,父节点得分比子节点得分要大]

[上面内容很多,很多没有理解]

分支定界方法的算法流程:

在这里插入图片描述
[右侧表示分枝定界在slam加速的全过程][老师测试,分支定界方法加速效果是多分辨率搜索方法六倍左右]

#####################
图片版权归原作者所有
致谢曾老师的付出

不积硅步,无以至千里
好记性不如烂笔头
感觉有点收获的话,麻烦大大们点赞收藏哈

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值