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