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