機器人自主定位導(dǎo)航需要解決三個問題:定位、建圖與路徑規(guī)劃。
SLAM與各領(lǐng)域關(guān)系圖
定位:
當(dāng)你打開手機中的導(dǎo)航軟件,在選擇前往目的地的最佳路線之前,首先要做的動作是什么呢?沒錯,就是定位。我們要先知道自己在地圖中的位置,才可以進行后續(xù)的路徑規(guī)劃。機器人也是如此。
在機器人實時定位問題中,由于通過機器人運動估計得到的機器人位置信息通常具有較大的誤差,我們還需要使用測距單元得到的周圍環(huán)境信息更正機器人的位置。
目前,常見的測距單元包括激光測距、超聲波測距以及圖像測距三種。其中,激光雷達憑借良好的指向性和高度聚焦性,成為移動機器人的核心傳感器,同時它也是目前最可靠、最穩(wěn)定的定位技術(shù)。
建圖:
地圖構(gòu)建也是機器人實現(xiàn)自主導(dǎo)航行動的前提。地圖一方面可以幫助機器人配合自身的傳感器進行實時定位,同時也用于后續(xù)展開行動時,導(dǎo)航過程的路徑規(guī)劃。
雖然環(huán)境地圖可以通過事先人為繪制并提供給機器人設(shè)備,但由于這類人為繪制的地圖大多與真實場景存在區(qū)別,且與機器人傳感器所觀測的數(shù)據(jù)存在區(qū)別,因此在實際應(yīng)用中存在挑戰(zhàn)。
相同環(huán)境下,由人工繪制的CAD圖(左)和由機器人使用激光雷達自主繪制的地圖(右)對比
目前,機器人SLAM建圖主要有激光SLAM和VSLAM兩種。
采用激光雷達的SLAM技術(shù)可以直接繪制高精度的環(huán)境地圖,并且因為地圖數(shù)據(jù)直接記錄了環(huán)境的障礙物情況,因此地圖內(nèi)容可直接用于后續(xù)機器人導(dǎo)航和路徑規(guī)劃,并且比較直觀,易于人理解。
采用激光雷達的SLAM算法進行地圖構(gòu)建的過程
激光SLAM主要采用柵格地圖的表現(xiàn)方式,一方面它能表示空間環(huán)境中的很多特征,機器人可以用它來進行路徑規(guī)劃,另一方面,它又不直接記錄傳感器的原始數(shù)據(jù),相對實現(xiàn)了空間和時間消耗的最優(yōu)。因此,柵格地圖是目前機器人所廣泛應(yīng)用的地圖存儲方式。
思嵐科技的SLAMWARE系統(tǒng)內(nèi)部也采用柵格地圖的建圖方式。
近些年來,另一種SLAM技術(shù)在研究領(lǐng)域得到了長足的發(fā)展。它不采用激光雷達作為核心傳感器,而采用了目前更加普遍的圖像傳感器(攝像頭)作為地圖構(gòu)建的主要數(shù)據(jù)輸入源。這種基于視覺的SLAM方法被稱為VSLAM(Visual SLAM)。
ORB-SLAM實現(xiàn)單攝像頭的建圖過程
VSLAM主要采用特征點地圖作為表現(xiàn)方式,雖然數(shù)據(jù)量少,但是它往往不能反應(yīng)所在環(huán)境的一些必須的信息,比如環(huán)境中障礙物的位置。VSLAM技術(shù)中,多采用這種地圖來解決機器人定位問題。想讓機器人進行自主避障和路徑規(guī)劃,還需要額外配置距離傳感器,如激光雷達、超聲波來完成。
相比于激光雷達,視覺傳感器可以提供更為豐富的環(huán)境信息,并且視覺傳感器天生不需要進行機械掃描,安裝要求也較低,因此被行業(yè)給予厚望。
不過目前這類方法距離實際應(yīng)用上有較多技術(shù)挑戰(zhàn)有待解決。例如當(dāng)環(huán)境光發(fā)生變化(如在黑夜)亦或環(huán)境中紋理數(shù)據(jù)較弱的情況下,目前VSLAM的可靠性將受很大影響。此外,目前VSLAM所構(gòu)建的地圖也難以用于后續(xù)的導(dǎo)航定位。所以行業(yè)內(nèi)使用VSLAM技術(shù)的機器人產(chǎn)品相對較小,但相信假以時日,VSLAM方式將逐步成為新的行業(yè)主流。
激光SLAM與VSLAM的對比
路徑規(guī)劃:
SLAM≠自主定位導(dǎo)航,不解決運動問題,需要在完成SLAM之后,進行一個叫做目標(biāo)點導(dǎo)航的能力,規(guī)劃一條從A點到B點的路徑出來,然后讓機器人移動過去。
路徑規(guī)劃分為:全局規(guī)劃和局部規(guī)劃。
全局規(guī)劃:是最上層的運動規(guī)劃邏輯,它按照機器人預(yù)先記錄的環(huán)境地圖并結(jié)合機器人當(dāng)前位姿以及任務(wù)目標(biāo)點的位置,在地圖上找到前往目標(biāo)點最快捷的路徑。
局部規(guī)劃:當(dāng)環(huán)境出現(xiàn)變化或者上層規(guī)劃的路徑不利于機器人實際行走的時候(比如機器人無法按照規(guī)劃的路徑完成特定轉(zhuǎn)彎半徑的轉(zhuǎn)向),局部路徑規(guī)劃將做出微調(diào)。
分層級的運動規(guī)劃框架以及對應(yīng)輸出數(shù)據(jù)
這種從A點到B點進行路徑規(guī)劃并控制移動的運動規(guī)劃算法的目標(biāo)在于盡可能快速的抵達目的地,同時避免讓機器人進入環(huán)境中的無關(guān)區(qū)域。但是在針對一些特殊情況,如:掃地機器人,需要的就不是規(guī)劃從A點到B點的最短路徑,而是盡可能覆蓋A到B點的全部區(qū)域。
所以,除了上述兩種較為典型的路徑規(guī)劃算法之外,還需要與實際應(yīng)用相結(jié)合的算法模型。因此,讓機器人實現(xiàn)定位、建圖以及導(dǎo)航,還是有非常多的工作要做的。這個需要整個行業(yè)共同努力的,也是目前的主要挑戰(zhàn)之一。
關(guān)鍵字:机器人自主定位导航