創(chuàng)澤機(jī)器人 |
CHUANGZE ROBOT |
自動(dòng)駕駛車輛通常都是預(yù)先建立地圖,然后利用此圖進(jìn)行定位,所以真正的、完整的、高貴的SLAM只發(fā)生在第一次采集并生成地圖之后,后續(xù)就是如何用這些地圖進(jìn)行定位導(dǎo)航的問(wèn)題。另一方面,自動(dòng)駕駛用的地圖和機(jī)器人的地圖。
低速自動(dòng)駕駛車輛的地圖
乘用車,大家也了解,一年半載的肯定沒(méi)法實(shí)際上路,上了路還有一系列的法律法規(guī)問(wèn)題,還有一堆的世(shi)界(shi)難(ju)題(keng)等著各位工程師去解決(tian keng)呢,所以這會(huì)兒我們也不需要多么著急(反正有更著急的人在)。
而對(duì)于低速車來(lái)說(shuō),相對(duì)安全,避不了障大不了先停在原地讓人先過(guò),還顯得文明禮讓(我家的產(chǎn)品避障完全沒(méi)問(wèn)題啊。_@兩年各種配送、清掃、挖礦之類的自動(dòng)駕駛低速車會(huì)慢慢的抬頭,大家應(yīng)該會(huì)漸漸看到一些功能和價(jià)格都能夠接受的產(chǎn)品。而我自己是做SLAM的,所以主要談?wù)勥@類車上的SLAM問(wèn)題。
和學(xué)術(shù)界平時(shí)說(shuō)的SLAM不同,自動(dòng)駕駛車輛通常都是預(yù)先建立地圖,然后利用此圖進(jìn)行定位,所以真正的、完整的、高貴的SLAM只發(fā)生在第一次采集并生成地圖之后,后續(xù)就是如何用這些地圖進(jìn)行定位導(dǎo)航的問(wèn)題。另一方面,自動(dòng)駕駛用的地圖和機(jī)器人的地圖,對(duì),就是你平時(shí)見(jiàn)到的那種,ROS里的黑白灰圖,也會(huì)有點(diǎn)差別。
ROS里的占據(jù)柵格地圖,我喜歡叫它黑白灰圖
機(jī)器人用的柵格地圖,很顯然,主要表達(dá)何處有障礙物,何處是可通行的區(qū)域,此外就沒(méi)有了。它具有基礎(chǔ)的導(dǎo)航與定位功能,精度也不錯(cuò)(厘米級(jí)),制作起來(lái)十分簡(jiǎn)單,基本可以讓機(jī)器人自動(dòng)生成。對(duì)于送餐掃地的室內(nèi)機(jī)器人來(lái)說(shuō),這種地圖基本就夠用了。但是為什么自動(dòng)駕駛不用這種圖呢?它和高精地圖有哪些差別呢?
一條很明顯的區(qū)別是:在室內(nèi),機(jī)器人可以去任意可以通過(guò)的地方,不會(huì)有太多阻攔。而對(duì)于自動(dòng)駕駛來(lái)說(shuō),每條路都有對(duì)應(yīng)的交通規(guī)則:有些地方只能靠右行駛,有些地方不能停車,十字路口還有復(fù)雜的通行規(guī)則。
智行者科技無(wú)人清掃消毒車蝸小白
室內(nèi)機(jī)器人可以利用柵格地圖進(jìn)行導(dǎo)航,但在室外可不能在十字路口上橫沖直撞。所以,在導(dǎo)航層面,室內(nèi)與室外的機(jī)器人出現(xiàn)了明顯的區(qū)別。室內(nèi)的導(dǎo)航可以基于柵格來(lái)實(shí)現(xiàn)諸如A*那樣的算法,但室外基本要依賴事先畫(huà)好的車道。如果你希望你的外賣機(jī)器人既能在室內(nèi)取貨,又要跑到馬路上送到2公里外面的客戶家中,那么就得同時(shí)考慮這兩種地圖的使用方法了。所以你看,低速車輛是界于傳統(tǒng)移動(dòng)機(jī)器人與乘用車之間的產(chǎn)物,它的地圖比兩邊現(xiàn)成產(chǎn)品都要復(fù)雜。
我們會(huì)用不同的術(shù)語(yǔ)來(lái)描述地圖的構(gòu)建階段。大體來(lái)說(shuō),從一無(wú)所有的采集過(guò)程開(kāi)始,我們會(huì)碰到兩個(gè)大階段:
1、SLAM階段:解決從原始傳感器數(shù)據(jù)開(kāi)始,構(gòu)建某種基礎(chǔ)地圖的過(guò)程(一般是三維點(diǎn)云或二維圖像、柵格);
2、標(biāo)注階段:在SLAM結(jié)果基礎(chǔ)上進(jìn)行人為標(biāo)注,實(shí)現(xiàn)更精細(xì)的交通規(guī)則控制。
SLAM階段往往是自動(dòng)的,而標(biāo)注階段目前還主要是人工的,完美體現(xiàn)了“人工智能”相合作的過(guò)程。目前乘用車高精地圖生產(chǎn)主要成本是在標(biāo)注階段,通常是一群人在在電腦前加班加點(diǎn)地趕著各種工程排期。顯然,這個(gè)標(biāo)注過(guò)程的好壞直接影響地圖質(zhì)量,一旦標(biāo)錯(cuò)就等著觀賞車輛各種怪異行為吧。
然而,我們也沒(méi)法完全實(shí)現(xiàn)標(biāo)注過(guò)程的自動(dòng)化,因?yàn)楹芏嗳藶橐?guī)則并不體現(xiàn)在場(chǎng)景數(shù)據(jù)里。比如公園里的草坪,物流車大概不能走上去,而灑水車大概就應(yīng)該在草坪上行走,而我們無(wú)法通過(guò)點(diǎn)云或圖像識(shí)別出此類規(guī)則,給此類地圖帶來(lái)了很大的人工工作量。
比如下面這個(gè)點(diǎn)云圖,雖然結(jié)構(gòu)上看不出來(lái),但實(shí)際上中間一圈是一個(gè)草坪,正常情況下車輛是不能進(jìn)去的。所以,只能通過(guò)人工來(lái)標(biāo)注車輛的行駛區(qū)域,才能讓小車正確地導(dǎo)航。
標(biāo)注過(guò)程通常是一些非常繁瑣的步驟,而且因?yàn)榉爆嵥詢r(jià)格還挺高。根據(jù)2019年的《高精地圖產(chǎn)業(yè)發(fā)展現(xiàn)狀及趨勢(shì)》,一公里高精地圖的成本費(fèi)用還在幾千至幾萬(wàn)元。采集車雖然貴但畢竟只有幾臺(tái),計(jì)算機(jī)開(kāi)一下程序也只需要一些電費(fèi),所以成本主要還是在標(biāo)注上面。這里的商業(yè)化道路還是挺困難的,然而也沒(méi)什么辦法(攤手)。
問(wèn)題低速車輛的SLAM
由于我個(gè)人是做SLAM的,咱們還是把主題回到SLAM上來(lái)。目前室外車輛的SLAM還是以多線激光為主。雖然激光SLAM原理上比較成熟,然而實(shí)際結(jié)合其他傳感器來(lái)SLAM,還是有一些問(wèn)題的。學(xué)術(shù)界的論文總喜歡挑好看的結(jié)果來(lái)發(fā)表,而現(xiàn)實(shí)問(wèn)題往往是骯臟的、動(dòng)態(tài)的、復(fù)雜的,這一點(diǎn),沒(méi)解決過(guò)實(shí)際問(wèn)題的人可能感受不深。
低速車輛如果真正應(yīng)用,那么地圖構(gòu)建時(shí)間就不能太長(zhǎng)。如果我們?cè)谝獾貓D質(zhì)量的話,標(biāo)注工作基本是省不了的,所以對(duì)SLAM端的要求就可以總結(jié)為:自動(dòng)化、高可靠性,以及對(duì)復(fù)雜環(huán)境的適應(yīng)能力(不需要現(xiàn)場(chǎng)人員調(diào)參)。這件事情看似簡(jiǎn)單,但實(shí)際用來(lái)總有各種各樣的問(wèn)題。
激光SLAM
激光SLAM的基本原理就是點(diǎn)云拼接,有些地方也叫注冊(cè)、配準(zhǔn),等等?梢岳弥鶢钗锏忍卣餍畔(lái)拼接,也可以直接用點(diǎn)來(lái)拼接,總之這方面各種方法大同小異,區(qū)別不大。激光SLAM的開(kāi)源項(xiàng)目也有很多,感興趣同學(xué)可以看看LOAM/Lego-Loam等經(jīng)典的方案。
Lego-LOAM Demo圖
當(dāng)然,論文上的圖片肯定是美麗的,實(shí)際當(dāng)中也肯定是會(huì)遇到問(wèn)題的。如果只靠激光配準(zhǔn)就可以把地圖生成出來(lái),那這邊SLAM也就沒(méi)什么難度可言了。我們不妨來(lái)看看激光SLAM有什么實(shí)際問(wèn)題。
1、點(diǎn)云拼接是個(gè)類似于里程計(jì)的過(guò)程,它們計(jì)算的是局部點(diǎn)云之間的相對(duì)運(yùn)動(dòng)關(guān)系。這個(gè)運(yùn)動(dòng)誤差會(huì)逐漸累計(jì),直到地圖出現(xiàn)嚴(yán)重變形。其中,高度上的變形會(huì)比較明顯,你會(huì)發(fā)現(xiàn)地圖一端可能會(huì)“翹起”或“下沉”。
激光SLAM的累計(jì)誤差使得地圖高度出現(xiàn)錯(cuò)誤,兩側(cè)對(duì)不上
2、點(diǎn)云拼接的結(jié)果依賴于現(xiàn)場(chǎng)的實(shí)際三維結(jié)構(gòu)。在結(jié)構(gòu)化道路中,基本可以期待地圖由中間的馬路與兩側(cè)的路牙、樹(shù)木、護(hù)欄組成;但在非結(jié)構(gòu)化道路中,很難對(duì)場(chǎng)景結(jié)構(gòu)有一個(gè)先驗(yàn)的知識(shí)。它可以是普通馬路,也可能是人來(lái)人往的商業(yè)街,也可能是萬(wàn)眾聚會(huì)的廣場(chǎng)……總之,你很容易看到激光失效的場(chǎng)景。
激光匹配在廣場(chǎng)或單側(cè)臺(tái)階等場(chǎng)景下會(huì)導(dǎo)致失效,原本直線前進(jìn)的軌跡會(huì)出現(xiàn)扭曲情形,并使得遠(yuǎn)處物體模糊
3、更常見(jiàn)的就是來(lái)回路段由于匹配失誤導(dǎo)致地圖出現(xiàn)重影,有些論文也稱為“鬼影”。這種現(xiàn)象出現(xiàn)的原因,是兩個(gè)激光點(diǎn)云看到了同樣的結(jié)構(gòu),但由于距離較遠(yuǎn),匹配算法沒(méi)法將它們完整匹配起來(lái)。
4、最后,純粹由激光匹配得到的地圖,沒(méi)有現(xiàn)實(shí)世界物理位置信息。如果缺少物理世界信息,那么你沒(méi)法按照點(diǎn)云圖把車輛導(dǎo)航到指定位置;如果有兩個(gè)激光點(diǎn)云時(shí),也很難把它們完美地拼接起來(lái)。
所以,我們需要處理激光與其他傳感器的組合。在點(diǎn)云失效時(shí),嘗試用其他傳感器進(jìn)行補(bǔ)償;在點(diǎn)云出現(xiàn)累計(jì)誤差時(shí),用其他傳感器來(lái)進(jìn)行修復(fù)。
激光SLAM和GPS組合
室外自動(dòng)駕駛車輛通常有一個(gè)GPS接收器,指示其物理世界位置。結(jié)合GPS信號(hào),我們就可以構(gòu)建帶有物理世界經(jīng)緯度的地圖。這個(gè)物理坐標(biāo)在某些業(yè)務(wù)中是很重要的,因?yàn)檐囕v很可能需要導(dǎo)航到另一個(gè)真實(shí)世界的建筑物中。相對(duì)的,純室內(nèi)的小車就不需要這種坐標(biāo),因?yàn)樗鼈冎辉谝婚g或幾間屋里導(dǎo)航,而不必關(guān)心這間屋子在真實(shí)世界當(dāng)中什么位置。
智行者科技無(wú)人清掃消毒車蝸小白
GPS的一大特點(diǎn)就是“看天吃飯”。信號(hào)好的時(shí)候它可以到達(dá)厘米級(jí)定位,可以直接使用差分GPS+IMU的結(jié)果來(lái)進(jìn)行組合導(dǎo)航。這種做法在如今的無(wú)人車、無(wú)人機(jī)里還很常見(jiàn)。對(duì)于天天在高速公路上奔跑的乘用車來(lái)說(shuō),絕大部分情況下可以以GPS為主導(dǎo);但是,對(duì)于園區(qū)里運(yùn)營(yíng)的小車,進(jìn)個(gè)樹(shù)林穿個(gè)夾層都是稀松平常的,GPS“信號(hào)不好”比“信號(hào)良好”更加常見(jiàn)。你能夠接受無(wú)人車因?yàn)椤靶盘?hào)不好”半路拋錨的情況嗎?
在公園、景區(qū)的道路上,小車會(huì)經(jīng)常穿梭于樹(shù)林、橋梁之中。這些地形上GPS很有可能出現(xiàn)大范圍不可用的情形
GPS噪聲是個(gè)很有意思的模型。通常GPS接收器根據(jù)自身接收情況,會(huì)給出一個(gè)信號(hào)強(qiáng)弱的判斷。然而,由于著名的多徑效應(yīng),GPS也可能給出一個(gè)信號(hào)很強(qiáng),但位置錯(cuò)誤的數(shù)據(jù)。這就要求SLAM算法對(duì)各種信號(hào)下的GPS都有穩(wěn)定的表現(xiàn)。在GPS好時(shí),應(yīng)該聽(tīng)從GPS的軌跡走向;在GPS不好的區(qū)域,能夠正確識(shí)別并改進(jìn)。
GPS信號(hào)良好的路段例子。左側(cè):點(diǎn)云地圖;右側(cè):軌跡圖。軌跡圖中紅色為優(yōu)化后軌跡,藍(lán)色為GPS軌跡。由于GPS全程良好,優(yōu)化軌跡與GPS重合。
GPS信號(hào)不佳的例子?梢钥吹接覀(cè)藍(lán)色軌跡在無(wú)規(guī)律跳動(dòng),但是點(diǎn)云仍需要正常構(gòu)建。
GPS信號(hào)的不確定還會(huì)帶來(lái)一些實(shí)際的問(wèn)題。例如,如果車輛開(kāi)機(jī)時(shí)GPS信號(hào)不好,那么車輛如何確定自身的物理位置?它應(yīng)該是開(kāi)到一個(gè)開(kāi)闊區(qū)域,等待GPS信號(hào)變好,還是以一種“不確定物理位置,但有相對(duì)位置”的狀態(tài)開(kāi)始運(yùn)行?
假設(shè)如此,那么運(yùn)行一段時(shí)間后GPS信號(hào)變?yōu)檎,定位信息?yīng)該直接跳到GPS指向的物理位置嗎?這種跳變會(huì)不會(huì)對(duì)控制產(chǎn)生不良的影響?另一方面,在建圖時(shí),我們通常需要按照物理位置來(lái)區(qū)分不同的地圖,例如公園北側(cè)和南側(cè)很可能使用兩個(gè)不同的地圖。如果GPS信號(hào)不好,車輛應(yīng)該如何確定使用哪一張地圖?這些問(wèn)題都需要一個(gè)實(shí)際的解決方案。
GPS的處理方式是室內(nèi)外車輛SLAM的一個(gè)很大的不同點(diǎn)。這會(huì)讓SLAM的邏輯變得更加復(fù)雜。我們需要結(jié)合其他的傳感器位置來(lái)判斷GPS信號(hào)的有效性,這往往要用到一些全局軌跡的估計(jì)方法,而像卡爾曼濾波器這樣有時(shí)間順序的算法會(huì)受到干擾。
另外,如果我們還使用了基于位置的回環(huán)檢測(cè)算法,那么它會(huì)明顯受到GPS信號(hào)好壞的影響。一旦GPS信號(hào)變差,激光SLAM的性質(zhì)就變?yōu)橐粋(gè)里程計(jì),其累計(jì)誤差變大之后,基于位置的回環(huán)檢測(cè)算法就很可能失效。
激光SLAM的退化特性
激光SLAM存在各種失效情況,有些你甚至很難事先預(yù)料到,例如:
在廣場(chǎng)、機(jī)場(chǎng)等開(kāi)闊區(qū)域,即使是多線激光,也只能看到幾圈地面上的點(diǎn)云。僅使用地面點(diǎn)云進(jìn)行匹配,很可能在水平面上發(fā)生隨機(jī)移動(dòng)。
在長(zhǎng)隧道、單側(cè)墻、橋梁等場(chǎng)地中,激光匹配會(huì)存在一個(gè)方向上的額外自由度。也就是說(shuō),沿著隧道前進(jìn)時(shí),獲取到的激光點(diǎn)云是一樣的,使得匹配算法無(wú)法準(zhǔn)確估計(jì)這個(gè)方向上的運(yùn)動(dòng)。類似地,如果機(jī)器繞著一個(gè)圈柱形物體運(yùn)動(dòng)時(shí),也會(huì)發(fā)生這種情況。
在一些異形建筑面前,激光可能發(fā)生意想不到的失效情形。
這些結(jié)果被稱為激光的“退化”,也就是說(shuō),本來(lái)能夠估計(jì)6自由度的激光匹配算法,由于場(chǎng)景結(jié)構(gòu)的限制,某幾個(gè)自由度上的運(yùn)動(dòng)無(wú)法估計(jì)。這時(shí),就需要建圖算法來(lái)降低激光軌跡的權(quán)重,利用其他軌跡來(lái)補(bǔ)償激光的失效了。
位于長(zhǎng)沙的梅溪湖藝術(shù)中心是令我印象深刻的地方(雖然我本人并沒(méi)有去過(guò)現(xiàn)場(chǎng))。但在這個(gè)區(qū)域的中心,激光匹配就會(huì)非常不穩(wěn)定,給出一些錯(cuò)誤的結(jié)果
大型地圖的拼接與回環(huán)檢測(cè)
室外SLAM的另一個(gè)特點(diǎn)是:室內(nèi)地圖通常有一個(gè)面積限制,例如大多家居面積都在200平方米以內(nèi);而室外地圖可能達(dá)到幾十萬(wàn)平米,乘用車甚至可以建立城市公路級(jí)別的地圖。
智行者科技無(wú)人乘用車星驥系列
對(duì)于掃地機(jī)這些家用機(jī)器人,我們?cè)试S它自由地在室內(nèi)探索,因?yàn)槭覂?nèi)面積畢竟是有限的;而對(duì)于室外車輛,如果自由探索的話,很可能沿著一個(gè)方向出去就回不來(lái)了。這就要求室外高精地圖有一個(gè)事先的采集過(guò)程。
目前各家公司對(duì)高精地圖的采集方式并不一樣。乘用車通常需要駕駛員在采集區(qū)域內(nèi)行駛固定圈數(shù),然后把數(shù)據(jù)帶回?cái)?shù)據(jù)中心進(jìn)行解算。乘用車的數(shù)據(jù)量非常大,一般幾十GB至TB級(jí)別水平,其解算也需要大量計(jì)算資源。
而對(duì)于低速車,它們運(yùn)動(dòng)范圍受業(yè)務(wù)和電池限制,通常在幾十公里以內(nèi),適配時(shí)間在一兩天以內(nèi)。而對(duì)更大的區(qū)域,往往進(jìn)行分塊、分區(qū)的建圖方式。
對(duì)于較大的地圖,通常使用分段采集、建圖、拼接的方式
低速車輛由于業(yè)務(wù)變更較快,對(duì)地圖的構(gòu)建時(shí)間和靈活性有一定的要求。例如,清掃車這一周可能在東區(qū)運(yùn)行,下一周就可能在西區(qū)運(yùn)行;蛘,可能要求在以往的清掃區(qū)域基礎(chǔ)上添加一塊新的區(qū)域。這種需求一方面要求地圖能夠以更快的速度進(jìn)行構(gòu)建,一方面也要求地圖能夠快速地進(jìn)行拼接與合并。同時(shí),由于場(chǎng)景的客觀通行限制,低速車輛有時(shí)候并不能“繞場(chǎng)景一整圈”,而必須一段一段地采集數(shù)據(jù)。
在這個(gè)數(shù)據(jù)中,我們先采集了橫向的道路,然后分別采集兩次縱向道路,最后進(jìn)行合并
地圖合并算法可以自由設(shè)計(jì)。我們可以把兩個(gè)局部地圖視為固定不變的點(diǎn)云,然后使用簡(jiǎn)單的ICP進(jìn)行剛性拼接。如果局部地圖本身沒(méi)有畸變,這種做法的效果也挺不錯(cuò)。但是,如果拼接地圖存在多個(gè)重疊區(qū)域,這種剛性拼接就可能導(dǎo)致“拼對(duì)了頭但拼錯(cuò)了尾”的情況。所以,我們更傾向于借助類回環(huán)檢測(cè)與Pose Graph的方法,對(duì)兩條軌跡進(jìn)行融合而非剛性拼接。
團(tuán)隊(duì)溝通和其他問(wèn)題
當(dāng)然,現(xiàn)實(shí)當(dāng)中還會(huì)存在算法之外的問(wèn)題。畢竟大多數(shù)地方只有幾位算法工程師,而數(shù)據(jù)則來(lái)自全國(guó)各地成千上萬(wàn)臺(tái)運(yùn)營(yíng)的小車。終端的運(yùn)營(yíng)人員也好,采集人員也好,大部分并不具備地圖定位的相關(guān)知識(shí),往往不理解“怎樣才是科學(xué)的采圖軌跡”。這種溝通問(wèn)題是我們?nèi)粘9ぷ髦幸?jiàn)到的最多的問(wèn)題。
智行者科技無(wú)人物流配送車
由于場(chǎng)景的復(fù)雜性,建圖算法不可能保證100%的成功率。如果碰到一個(gè)全程缺少GPS的開(kāi)闊、弱紋理、高動(dòng)態(tài)場(chǎng)景,任何算法都無(wú)法完全保障。這聽(tīng)著像是在抬杠,但是很遺憾的是,現(xiàn)實(shí)當(dāng)中某些大型車庫(kù)、大型車站內(nèi)部、高樓間商業(yè)街正屬于此類場(chǎng)景。這些場(chǎng)景中最容易出現(xiàn)的問(wèn)題是由于GPS的缺失,地圖累計(jì)誤差過(guò)大,出現(xiàn)錯(cuò)位或重影的情況。在這些情況中,我們就只能借助人工的方式來(lái)輔助建圖了。
在地圖出現(xiàn)明顯錯(cuò)位情況下,我們利用可視化軟件,對(duì)融合軌跡進(jìn)行人工干預(yù),修復(fù)累計(jì)誤差,使地圖回到正確的情況
小結(jié)
以上我們談?wù)摿艘徊糠值退僮詣?dòng)駕駛車輛在建圖中碰到的實(shí)際問(wèn)題。對(duì)于建圖算法的開(kāi)發(fā)人員來(lái)說(shuō),能夠足不出戶看到全國(guó)各地的地圖,也是一件令人欣慰的事情。相信很多人也會(huì)享受這一過(guò)程,參與到地圖構(gòu)建算法研發(fā)的過(guò)程中來(lái)吧。
雖然非結(jié)構(gòu)化道路激光SLAM中的挑戰(zhàn)很多,但是在發(fā)現(xiàn)問(wèn)題中去享受解決問(wèn)題的快感,是一件能讓人很爽的事情,我將永遠(yuǎn)樂(lè)此不疲。
機(jī)器人招商 Disinfection Robot 機(jī)器人公司 機(jī)器人應(yīng)用 智能醫(yī)療 物聯(lián)網(wǎng) 機(jī)器人排名 機(jī)器人企業(yè) 機(jī)器人政策 教育機(jī)器人 迎賓機(jī)器人 機(jī)器人開(kāi)發(fā) 獨(dú)角獸 消毒機(jī)器人品牌 消毒機(jī)器人 合理用藥 地圖 |