开篇前(qián)试(shì)想(xiǎng)这样两(liǎng)个场景:
在一(yī)个相对较小的地方(如房(fáng)间),让(ràng)你快速找某个东西,是不是很容易,很清楚自己在哪里,要怎(zěn)么拿到他。
然后,把你(nǐ)放(fàng)到一个大场景(如商(shāng)场),在不熟悉的情况(kuàng)下,是不是有点慌?
这两个(gè)场景(jǐng)的典型区别就在(zài)于场(chǎng)景的大小不同,需要人处理的信息量不同。同理,机器人在(zài)初次面对的时候也会有点慌。但其实(shí),只要清楚他的“地(dì)图构造”,再大的场景也(yě)不是问(wèn)题。
目(mù)前,虽然即(jí)时地图构建和导(dǎo)航技术已(yǐ)经日益成(chéng)熟(shú),但是大规(guī)模场景下较大的(de)环(huán)境面(miàn)积及(jí)复杂的场景(jǐng)结构给地图构建带(dài)来了较大挑战。甚至在有(yǒu)些(xiē)人眼里(lǐ),这是工作量巨大的,繁琐的、构建不准确的……但其(qí)实,思岚科技的技术可以轻松完成10w+㎡场景(jǐng)下的地图构建,边走边(biān)建(jiàn)图(tú),无需预先探明地图。
比如,这(zhè)样的:
这样的:
以及这样的(de):
一(yī)个典型(xíng)的(de)商用场景特征如(rú)下:
针对大场景的地图构建,如果(guǒ)使(shǐ)用激光雷(léi)达配合SLAM算法进行建图(tú)的话,首(shǒu)先需要使用较(jiào)远(yuǎn)测距半径(jìng)的激光雷达传感器。目前为(wéi)了适(shì)应上(shàng)述的(de)商用(yòng)场景,行(háng)业内会使用测距(jù)半径在16米(mǐ)以上的激光雷达产品,而比较理想的测量半径是(shì)25米,从而保证能够应对各(gè)类极端条(tiáo)件。
除了(le)保障传感(gǎn)器的(de)测距半径符合环境需求外,SLAM算法还需要具备闭环检测能力。比如(rú)有些场景,长走廊和环路较多,相似的场(chǎng)景也很多,在SLAM过程中难以形成有效的全局匹配参考,从(cóng)而(ér)很容易导致局部区(qū)域累计误差无(wú)法及时清除,进而导致回环闭(bì)合问题。如下图:
| 由于环境场景大且多为长直(zhí)走廊,导致(zhì)SLAM建图中容易出(chū)现环路闭合失败的情况
为了解决上述问题,行(háng)业(yè)内(nèi)的普(pǔ)遍(biàn)做法有两种(zhǒng):
1.采用粒子(zǐ)滤波的(de)SLAM方法
使用多张平行存在的候选地图(粒子)同时进行(háng)地图构建,并且时刻挑选出(chū)其(qí)中概(gài)率上更加符合真(zhēn)实情况的地(dì)图作(zuò)为(wéi)当前(qián)结果。由(yóu)于(yú)不同(tóng)的粒子之间建立(lì)的地(dì)图存在(zài)区别,因此从(cóng)概率上看,当机器人(rén)在环境中行走完一个环(huán)路后,众多(duō)粒子中存(cún)在闭环(huán)地图的可能性相(xiàng)比传统单一建图(tú)的模式要高很多。因此这种方法可(kě)以一定程度的解决闭环问(wèn)题。
| 采(cǎi)用rbpf(Rao-Blackwellized particle filters)的(de)SLAM算(suàn)法
采用(yòng)粒(lì)子滤波的SLAM算(suàn)法因(yīn)其可以非常有效的规避(bì)因为局部(bù)噪声导致(zhì)的建图失效问题(tí),曾(céng)一度成为行业内激光SLAM方式的主流方案。然而,这种方式的SLAM算法,由(yóu)于系统参数和传(chuán)感器观测(cè)等存在不确定性,先天存(cún)在资源(yuán)消耗大的缺点。
以rbpf-slam为例,实际应(yīng)用(yòng)中为了保证较好的鲁棒性,需要维持几十个(gè)粒子数据(jù),每个粒子(zǐ)中(zhōng)都包含了一张当前正在(zài)构建的环境地图信(xìn)息(xī)。这样无疑增(zēng)加(jiā)了SLAM算法的内存消(xiāo)耗。同时,每当新的(de)传感器数据进入,要对地图进行更新(xīn)迭(dié)代时,算法需要对(duì)每个粒子数(shù)据都进(jìn)行相同的匹配计(jì)算和数据(jù)更新(xīn),这也加重了(le)运算(suàn)负担。进一步(bù)的,粒子滤波的SLAM方式虽(suī)然可以大幅度改善回环闭(bì)合问题(tí),但从原理(lǐ)上(shàng)看它并不能真正意义上解决闭环问(wèn)题。对于特殊的环(huán)境下,使用粒(lì)子滤波SLAM可能(néng)会将粒子收敛到错误的方向,导致建图失败。
| 正确的地图构建(左)和(hé)当粒子滤波收敛失败得到的错误地图(右)
2.基于图优化的SLAM方式
基于图优化的SLAM((Graph-SLAM))方法,由于(yú)采用了全局优化处理方法(fǎ),能够有效(xiào)的(de)解决建(jiàn)图闭环,获得更好的建图效果,获得行业广泛关注(zhù)。
| 基于图(tú)优化的(de)SLAM框架
相比(bǐ)于rbpf-slam每次(cì)直接(jiē)将传(chuán)感器数据更(gèng)新进入栅(shān)格地图进行构建的做法,Graph-SLAM存储的是地(dì)图构建(jiàn)过程中机(jī)器人位姿变化的拓扑地图信息,以及诸如临近数据(jù)和闭(bì)环(huán)点等数据。
| Graph-SLAM编码了机器(qì)人在(zài)SLAM过程中的位姿变化拓(tuò)扑地图(tú),相关的拓扑信息,如(rú):闭环、重合数据也得到了(le)编码
而(ér)当(dāng)机器人在(zài)建(jiàn)图中出现了新的回环后(hòu),Graph-SLAM可依赖内(nèi)部的拓扑图进行主(zhǔ)动式的闭环检测,当发现了新的闭环信息后,Graph-SLAM使用Bundle Adjuestment(BA)等算(suàn)法对原先的位姿拓扑(pū)地图进(jìn)行修正(即进行(háng)图优化),从而能有(yǒu)效的进(jìn)行闭(bì)环后地图的修正。因(yīn)此(cǐ)相比与粒子滤(lǜ)波SLAM方式(shì),Graph-SLAM可(kě)以实现更(gèng)加可靠的环境建图。
| Graph-SLAM在检测到原先地图(左)存在可能得闭合路径后,对拓扑图(tú)进行修正从而(ér)得(dé)到(dào)正确(què)的(de)环境建图(tú)(右(yòu))
目(mù)前,SLAMWARE已经采用了最(zuì)新的图优化方式,配合激(jī)光雷达(dá)逐渐在商用复杂环境中开始使用。未来,面(miàn)对机器人应用场景的不断拓(tuò)展,建图技(jì)术必然还会遇到更(gèng)多的(de)问题,而(ér)这些,是未来思岚科技需要和行业一起(qǐ),共同攻克的问题(tí)。