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