scan context是一个描述场景的描述符,它之前不是用在slam上面的,但是有人将它用到激光slam上面,发现还可以,于是这个scan context就用来进行激光slam的位置识别(做闭环用的)。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
编辑切换为居中
添加图片注释,不超过 140 字(可选)
首先是点云分割,就按照半径的方向,分成一个个环,然后每个环再进行360°的切割。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
必须明白scan context每一行和每一列代表啥,每一行代表一个圆环,每一列代表一个扇形。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
定义了scan context相似度的得分公式,该公式表示两个scan context的距离,当然是越小越好。(一般距离都是越小表示两者之间相似性程度越高)
编辑切换为居中
添加图片注释,不超过 140 字(可选)
对于给定的两个scan context图像(准确来说是scan context数值),如何判断他们之间的距离,(因为有旋转因素存在,因此要先进行旋转上的处理。)就很直接,使用暴力匹配的方法,得到相似性程度最高的那一组解,那么这组解对应的相位差就是两个scan context之间的旋转量。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
但是通过上面的暴力匹配,发现是非常消耗计算量的,那么想到一个办法,针对每一列,统计个数,使用这个个数先做一个预匹配,即相似的地方,点的数量也是差不多相等的。然后预匹配完以后,再用上面暴力匹配的方法计算相似度和旋转量。那么到此就是scan context针对旋转部分的解决措施。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
通过平移量来计算旋转角度,注意:这个角度精度有些低。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
就是上面所说的预匹配。
编辑
添加图片注释,不超过 140 字(可选)
已经有人实现了,这个代码值得读一读。