精華文稿 | 工業(yè)場景中機器人定位導(dǎo)航技術(shù)
本文總結(jié)于俞毓鋒博士2021年10月20日在深藍學院“大咖面對面”直播活動中的分享。俞毓鋒博士畢業(yè)于北京大學,有十年SLAM領(lǐng)域研究經(jīng)驗,深入SLAM算法和工程化落地,目前擔任極智嘉定位組總監(jiān)。今天分享的主要內(nèi)容包括工業(yè)場景中定位導(dǎo)航技術(shù)的演進,SLAM在工業(yè)場景中的應(yīng)用和一些開放性問題。

工業(yè)場景介紹
關(guān)于工業(yè)場景,通常包括了以下常規(guī)步驟:第一步是物料的入庫,包括來料檢測、收貨上架和整托入庫;第二步是生產(chǎn)和質(zhì)檢,物料會經(jīng)過產(chǎn)線的生產(chǎn)后進入到成品區(qū);第三步是成品出貨,包含成品整理與碼垛發(fā)貨。輪式機器人在整個場景中充當搬運工的角色,負責物料在場內(nèi)的流轉(zhuǎn)。
工業(yè)用搬運機器人主要有兩大類,分別是無人叉車和AMR(Autonomous Mobile Robot)。
無人叉車通常會在頂部放置一個360度激光雷達,用于定位;在底部安裝一個或多個避障激光雷達,用于安全檢測;此外,還會在前側(cè)放置一個空間傳感器(例如深度相機)進行空間按障礙物的檢測;以及后側(cè)的深度/單目相機,用于托盤檢測。
AMR因為自身結(jié)構(gòu)的原因,單個激光雷達會被自身外殼遮擋,因此需要安裝多個激光雷達。常見的方案是在機器人對角安裝兩個270度激光雷達,既可以用于定位,也可以用于避障。AMR與叉車有同樣的空間避障需求,因此也會在機器人前方安裝一個或多個深度相機用于空間障礙物檢測。值得注意的是,由于激光雷達的高度不同,兩類產(chǎn)品所感知的環(huán)境變化程度也不同,AMR的雷達高度較低,環(huán)境變化更加頻繁,對定位算法的要求也更高。另外,為了解決環(huán)境高度變化的倉儲場景,AMR底部還可以安裝一個二維碼相機,用于二維碼導(dǎo)航。

工業(yè)環(huán)境中定位技術(shù)的演進
在上個世紀的時候,很多機器人產(chǎn)品還是采用磁導(dǎo)航的技術(shù)路線,利用磁條和一些標記完成機器人的定位導(dǎo)航。磁條引導(dǎo)機器人沿著固定軌跡行進,磁條附近的標記用于處理精準定位的問題。而極智嘉的一些產(chǎn)品則采用了利用平面二維碼陣列進行導(dǎo)航的方式,一定程度上減少了實施的難度,也增加了一定的柔性。
這兩種路線的共同點就是將機器人的定位和導(dǎo)航模塊進行融合,所添加的標記既用于定位,也用于導(dǎo)航。磁導(dǎo)航機器人會沿著磁條走,優(yōu)點是精度高,穩(wěn)定性高,可監(jiān)測性強,當機器人脫離磁條,還可以立刻報警,但缺點也很明顯:鋪設(shè)成本高,產(chǎn)線變更無法快速應(yīng)對。二維碼導(dǎo)航具備磁條導(dǎo)航的大部分優(yōu)點,同時也繼承了大部分缺點。它的實施難度小于磁條的鋪設(shè),但是柔性依舊不足,無法有效應(yīng)對產(chǎn)線變更。此外在工廠環(huán)境中,二維碼易損壞,也需要不少的維護成本。
另外一大類方案是將機器人的導(dǎo)航和定位分開,環(huán)境或者添加的標記僅僅用于定位,包括激光反光板定位,激光SLAM定位。其中,基于激光反光板的定位需要場景中安裝大量的反光柱,對環(huán)境設(shè)備的要求比較高;另一種是激光SLAM定位,它的優(yōu)點是不需要標記物的輔助,但同時技術(shù)難度也比較高。雖然對于激光雷達定位的研究從上世紀就開始了,但在10年前才開始逐漸推廣到工業(yè)搬運機器人,而極智嘉從17年開始提供激光SLAM相關(guān)的產(chǎn)品。近幾年的實際產(chǎn)品需求引導(dǎo)機器人的定位導(dǎo)航方式朝向混合定位導(dǎo)航的方向發(fā)展,以場景作為基礎(chǔ)尋求融合解決方案,對機器人本身能力的要求也逐漸提高。

SLAM原理
關(guān)于基于SLAM的方案,首先我們要明白SLAM的定義——SLAM的全稱翻譯過來就是“同時定位和建圖技術(shù)”。通俗來講,就是當“你”到了一個陌生的環(huán)境,如何確定自己的位置,以及描繪出周圍環(huán)境的地圖?!澳恪毙枰詣傞_始的位置為基準,記錄參照物的位置,在不斷走動的過程中,根據(jù)參照物對自己的位置進行修正,再不斷修正和添加參照物,完成地圖繪制。用流程化的方式介紹就是,首先需要進行位置預(yù)測,再觀測周圍的參照物,利用參照物的約束進行位置修正,并更新對應(yīng)的地圖。
一個傳統(tǒng)的SLAM模型包括四大類狀態(tài),包括機器人位姿x,運動指令u,地圖m和觀測z。其中運動指令和觀測是已知的,機器人位姿和地圖是未知的,?各狀態(tài)的約束如圖3所示:

為了實現(xiàn)機器人的狀態(tài)估計,最簡單的模型就是卡爾曼濾波,但是卡爾曼濾波的前提是狀態(tài)量和觀測量的更新必須都是線性的。而對于機器人的運動來說,大部分時候狀態(tài)的變化都是非線性的,這時候可以使用卡爾曼濾波的一種延伸:擴展卡爾曼濾波。擴展卡爾曼通過假設(shè)狀態(tài)量局部線性來進行約束的簡化。當特征點數(shù)目較少時,此方案通常有效,但是當特征點數(shù)較多時,或者針對很難進行離散化的柵格地圖,我們很難實現(xiàn)同時的定位和建圖。
這時就可以采用粒子濾波的方式,以粒子的形態(tài)去模擬實際分布,一方面解決非線性的問題,另一方面每一個粒子都可以保留一份對應(yīng)的地圖,以實現(xiàn)一定程度的回環(huán)。粒子濾波的SLAM方案在小地圖上效果較好,因為運行距離不遠,發(fā)散程度較小,“回環(huán)”的概率較大。但對于大一些的場景,會由于回環(huán)前的位姿漂移太大導(dǎo)致無法閉合。
面對基于濾波的方法的種種問題,目前我們使用更多的還是基于圖優(yōu)化的方案,也就是通場所說的Graph-SLAM。在這個方案中,機器人位姿和局部地圖這兩類狀態(tài)都轉(zhuǎn)化為節(jié)點,運動估計和觀測估計轉(zhuǎn)化為節(jié)點之間的邊,最終用圖優(yōu)化對整張圖進行迭代優(yōu)化。目前在求解的過程中,大多使用的方案是將位姿與地圖的約束轉(zhuǎn)化為位姿與位姿的約束,大大簡化圖的結(jié)構(gòu),便于優(yōu)化求解。另一方面,Graph-SLAM因為整個過程中的約束被全部保存下來,而不像濾波那樣丟棄較早的狀態(tài),所以回環(huán)的能力很強。
SLAM落地技術(shù)難點
對于實際的機器人應(yīng)用,我們通常需要機器人在空場地進行建圖,然后基于已有地圖執(zhí)行任務(wù)。在這個過程中有哪些對應(yīng)的難點呢?
第一個難點就是建圖的誤差問題,不管運行軌跡是否有回環(huán),SLAM所創(chuàng)建的地圖只能做到邏輯上的自洽,跟實際的場地或多或少還是會有差異,有回環(huán)差異較小,沒有回環(huán)差異較大。這就導(dǎo)致機器人實際在運行的過程中,無法有效走“直線”。
那該如何保證地圖和實際場景一致呢?
一種思路是通過尋找線特征來增加方向約束,使用前后幀的匹配來約束長通道的穩(wěn)定性。另一種思路是增加全局特征的信息建立約束。而我們該如何添加包含全局信息的地標呢?在室外我們可以在GPS信號良好的情況下記錄這些信息,而對于室內(nèi),我們目前是采用地面貼碼的方式,將其作為全局特征融合建圖,而這也確實顯著改善了建圖的效果。此外,在實際工業(yè)場景中,整個實施過程是跟著工廠整體的進度來的,區(qū)域也是不斷開放的。因此需要一個地圖擴展的方案,在不改變原區(qū)域的地圖和路線地基礎(chǔ)上,不斷地增加新區(qū)域地圖。在擴展過程中,我們以原地圖機器人定位結(jié)果作為初始位姿,重新掃描擴展新地區(qū)域,過程中不斷利用舊地圖進行回環(huán),確保定位準確性。當然,地圖擴展的前提是舊地圖準確。如果舊地圖存在畸變,新地地圖也很難建準。
第二個難點是如何應(yīng)對環(huán)境變化。在實際應(yīng)用過程中,地圖內(nèi)的局部環(huán)境很容易發(fā)生變化,導(dǎo)致機器人跑偏甚至定位失敗。而為了應(yīng)對這種變化,機器人需要不斷更新地圖,以而提高SLAM的環(huán)境適應(yīng)能力。我們的方案是將原圖進行備份,并生成一張活躍地圖,在位姿準確的基礎(chǔ)上不斷更新活躍地圖。在工程化過程中,我們還需要讓多個機器人協(xié)同更新地圖,確保整個場地地圖的實時性。利用這個特性,目前我們可以有效解決環(huán)境變化率小于50%的場景。對于環(huán)境變化率非常大的場景,光靠地圖更新仍無法解決。因此,我們要引入更多的特征,增加特征的穩(wěn)定性。這里的特征包括地面二維碼、標線、四周的反光柱、Tag碼等等。
第三個難點是整體穩(wěn)定性或魯棒性問題。在實際的工業(yè)場景中,一次走偏很可能導(dǎo)致產(chǎn)線停止幾分鐘甚至幾十分鐘,對工廠生產(chǎn)帶來實質(zhì)性損失。因此,工業(yè)場景對于機器人穩(wěn)定性的要求極高。針對這類需求,我們會融合IMU,輪速計等多個傳感器,極大地減少定位問題發(fā)生的概率。
在工業(yè)場景, SLAM越來越受關(guān)注,同時也面對了更多開放性問題,比如機器人是否能實現(xiàn)自身定位置信度的評估?在建圖過程中,如何避免可移動物體的干擾?地圖建立之后,如何對地圖進行評估,刪除一些可能會動的物體?面對這些問題,歡迎大家參與到SLAM問題的研究和工程化實踐中來。