劉志成,王華龍,馬興錄
(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島 266061)
激光即時(shí)定位與建圖(SLAM,simultaneous localization and mapping)是機(jī)器人領(lǐng)域中的關(guān)鍵技術(shù),它可以利用激光雷達(dá)掃描環(huán)境并提取特征點(diǎn),實(shí)現(xiàn)機(jī)器人的自主定位和地圖構(gòu)建。近年來,隨著機(jī)器人技術(shù)和激光雷達(dá)技術(shù)的不斷發(fā)展,激光SLAM也得到了廣泛的研究和應(yīng)用。
目前,國(guó)內(nèi)外對(duì)于激光SLAM的研究主要集中在以下幾個(gè)方面:算法優(yōu)化,硬件平臺(tái),應(yīng)用場(chǎng)景等[1]。在算法優(yōu)化方面,研究人員不斷探索和改進(jìn)各種激光SLAM算法,如基于優(yōu)化的SLAM算法、基于點(diǎn)云配準(zhǔn)的SLAM算法、基于學(xué)習(xí)的SLAM算法等,以提高算法的精度和魯棒性,并降低計(jì)算復(fù)雜度和硬件要求。在硬件平臺(tái)方面,研究人員致力于開發(fā)更加高效、精準(zhǔn)和穩(wěn)定的激光雷達(dá),以及與之配套的機(jī)器人平臺(tái)。在應(yīng)用場(chǎng)景方面,研究人員不斷探索和拓展激光SLAM在各種實(shí)際應(yīng)用場(chǎng)景的應(yīng)用,如室內(nèi)導(dǎo)航、無人駕駛、智能物流等。
隨著人工智能的發(fā)展,目前國(guó)外在激光SLAM方面的主要研究現(xiàn)狀有算法優(yōu)化、多傳感器融合以及深度學(xué)習(xí)與SLAM等。激光SLAM主要應(yīng)用在自動(dòng)駕駛、機(jī)器人、AR/VR以及無人飛行器等方面。也有大量國(guó)外學(xué)者針對(duì)相關(guān)激光SLAM算法的缺點(diǎn)和不足進(jìn)行了大量研究并且發(fā)表了很多優(yōu)秀文章,例如,對(duì)于基于濾波器的SLAM算法,具有局限性,如計(jì)算復(fù)雜度高、粒子數(shù)目選擇、粒子退化等問題,在文獻(xiàn)[2-3]中通過對(duì)粒子濾波算法改進(jìn),有效地解決了粒子退化,提高了精度。文獻(xiàn)[4-5]中提出深度學(xué)習(xí)的濾波器算法,對(duì)非線性噪聲進(jìn)行建模,提高了算法的精度和魯棒性。對(duì)于基于圖優(yōu)化的SLAM算法,存在一些缺點(diǎn)有計(jì)算復(fù)雜性、實(shí)時(shí)性、局部最優(yōu)解等,在文獻(xiàn)[6-9]中主要舉例UKF-SLAM算法,通過改進(jìn)算法,有效地解決了計(jì)算復(fù)雜度高、粒子退化問題,并且對(duì)處理大規(guī)模環(huán)境時(shí)具有較好的效果 。文獻(xiàn)[10-11]舉例了Gmapping算法,通過對(duì)激光雷達(dá)數(shù)據(jù)中的特征點(diǎn)進(jìn)行提取和匹配,減少了計(jì)算量和存儲(chǔ)空間,提高了算法的效率和存儲(chǔ)空間。對(duì)于基于配準(zhǔn)的SLAM算法,缺點(diǎn)有對(duì)環(huán)境要求較高,在未知環(huán)境或者動(dòng)態(tài)環(huán)境可能存在一定的局限性等,文獻(xiàn)[12-17]主要針對(duì)算法對(duì)環(huán)境不穩(wěn)定和噪聲干擾等問題,提出了一系列方法,有效地降低噪聲和誤差的影響,使得地圖更加精確和魯棒。對(duì)于基于學(xué)習(xí)的SLAM算法,具有數(shù)據(jù)依賴性、過擬合以及解釋性差等缺點(diǎn),文獻(xiàn)[18-21]主要采用了分類聚類算法對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行處理,減少點(diǎn)云數(shù)據(jù)的噪聲和不完整性,通過選取最有的聚類中心,提高了聚合器的效率和準(zhǔn)確性。文獻(xiàn)[22-26]中研究學(xué)者分別提出了不同的深度強(qiáng)化學(xué)習(xí)的SLAM算法,有效地提高了算法的性能和效率,解決了過擬合等問題。
總的來說,激光SLAM的算法可以分為傳統(tǒng)的基于濾波器和基于圖優(yōu)化的算法,以及近年來興起的基于點(diǎn)云配準(zhǔn)和基于學(xué)習(xí)的算法。如圖1所示分類圖。
圖1 激光SLAM算法分類圖
基于濾波器的SLAM算法主要利用不同類型的濾波器對(duì)機(jī)器人的軌跡和地圖進(jìn)行估計(jì)和優(yōu)化。基于濾波器的算法一般有卡爾曼濾波器SLAM算法和粒子濾波器SLAM算法。
2.1.1 卡爾曼濾波器
卡爾曼濾波器是一種經(jīng)典的線性高斯模型的狀態(tài)估計(jì)濾波器,由美國(guó)工程師R.E. Kalman于1960年提出[27]。該濾波器主要用于對(duì)系統(tǒng)狀態(tài)的估計(jì)和預(yù)測(cè),其基本原理是通過對(duì)系統(tǒng)狀態(tài)和觀測(cè)數(shù)據(jù)進(jìn)行加權(quán)平均,獲得更準(zhǔn)確的狀態(tài)估計(jì)結(jié)果。在SLAM中的應(yīng)用主要是對(duì)機(jī)器人的位姿和地圖進(jìn)行估計(jì)和優(yōu)化?;诳柭鼮V波器的SLAM算法包括EKF-SLAM和UKF-SLAM等,它們的基本原理都遵循卡爾曼濾波器的原理機(jī)制,即狀態(tài)的估計(jì)和預(yù)測(cè),從而獲得更準(zhǔn)確的位姿和地圖估計(jì)結(jié)果[28]。下面分別介紹。
基于擴(kuò)展卡爾曼濾波器的SLAM算法(EKF-SLAM)有兩個(gè)階段:預(yù)測(cè)和更新。其算法如表1所示。
表1 擴(kuò)展卡爾曼濾波器算法步驟
表1顯示了擴(kuò)展卡爾曼濾波器的預(yù)測(cè)和更新步驟。在預(yù)測(cè)步驟中,我們首先使用狀態(tài)空間來估計(jì)狀態(tài)Xt。然后,我們使用之前在時(shí)間t-1處的協(xié)方差矩陣P獲得時(shí)間t處的狀態(tài)協(xié)方差矩陣P。在初始時(shí)刻我們沒有協(xié)方差矩陣,需要自己初始化它。EKF-SLAM算法的主要優(yōu)點(diǎn)是能夠處理非線性和非高斯問題,具有較高的估計(jì)精度和實(shí)時(shí)性。缺點(diǎn)是非線性噪聲問題:EKF-SLAM算法假設(shè)傳感器噪聲為線性高斯噪聲,但實(shí)際上很多傳感器噪聲是非線性的,這會(huì)導(dǎo)致EKF-SLAM算法的精度下降;粒子退化問題:EKF-SLAM算法使用的是單個(gè)最優(yōu)的估計(jì)值,因此在處理大規(guī)模環(huán)境時(shí),容易出現(xiàn)粒子退化問題,影響算法的效率和精度。
基于無跡卡爾曼濾波器的SLAM算法(UKF-SLAM)主要思想是通過無跡變換將非線性函數(shù)變換成一個(gè)高斯分布,從而實(shí)現(xiàn)對(duì)非線性問題的處理。具體來說,UKF-SLAM算法將機(jī)器人的軌跡和地圖表示為一個(gè)聯(lián)合高斯分布,通過無跡變換對(duì)非線性函數(shù)進(jìn)行線性化,從而實(shí)現(xiàn)對(duì)機(jī)器人軌跡和地圖的估計(jì)和優(yōu)化。具體來說,UKF-SLAM算法包括以下步驟。
1)狀態(tài)預(yù)測(cè):
① 通過機(jī)器人的運(yùn)動(dòng)模型和控制輸入,計(jì)算機(jī)器人的預(yù)測(cè)狀態(tài)。
② 通過無跡變換,將預(yù)測(cè)狀態(tài)映射到高斯分布上。
③ 計(jì)算高斯分布的均值和協(xié)方差矩陣,作為機(jī)器人的預(yù)測(cè)狀態(tài)
2)狀態(tài)更新:
① 通過機(jī)器人的觀測(cè)數(shù)據(jù),計(jì)算機(jī)器人當(dāng)前的觀測(cè)狀態(tài)。
② 通過無跡變換,將觀測(cè)狀態(tài)映射到高斯分布上。
③ 計(jì)算機(jī)器人位姿和地圖的聯(lián)合高斯分布的均值和協(xié)方差矩陣,作為機(jī)器人的最終狀態(tài)。
3)地圖優(yōu)化:
① 使用非線性優(yōu)化方法對(duì)地圖進(jìn)行優(yōu)化,以進(jìn)一步提高估計(jì)精度。
② 通過無跡變換,將優(yōu)化后的地圖狀態(tài)映射到高斯分布上。
③ 計(jì)算機(jī)器人位姿和地圖的聯(lián)合高斯分布的均值和協(xié)方差矩陣,作為機(jī)器人的最終狀態(tài)和地圖狀態(tài)。
UKF-SLAM算法是一種使用無跡卡爾曼濾波器(UKF)進(jìn)行SLAM的方法,相比于EKF-SLAM,UKF-SLAM具有更好的非線性建模能力和更少的線性化誤差。然而,UKF-SLAM仍然存在一些缺點(diǎn),如計(jì)算復(fù)雜度高、粒子退化等[6]。
2.1.2 粒子濾波器
粒子濾波SLAM(PF-SLAM)是一種基于蒙特卡羅方法的非參數(shù)濾波器,最初由Dieter Fox等人提出,發(fā)表于2003年的ICRA會(huì)議上,用于同時(shí)估計(jì)機(jī)器人的軌跡和環(huán)境地圖[29]。其主要思想是使用一組狀態(tài)粒子來估計(jì)機(jī)器人的位姿和環(huán)境地圖,在PF-SLAM中,每個(gè)狀態(tài)粒子表示機(jī)器人的一個(gè)假設(shè)位姿和地圖,它們的權(quán)重表示該假設(shè)與真實(shí)狀態(tài)的匹配程度。在預(yù)測(cè)和重采樣過程中,每個(gè)粒子的權(quán)重被用來決定其在新粒子集合中的數(shù)量,從而使更有可能的粒子數(shù)量增加,不太可能的粒子數(shù)量減少。這樣,通過多次迭代,可以逐漸減小估計(jì)誤差,實(shí)現(xiàn)對(duì)機(jī)器人軌跡和環(huán)境地圖的估計(jì)。如圖2是粒子濾波算法流程圖。常見的基于粒子濾波的SLAM算法有FastSLAM算法、Gmapping算法等。
圖2 粒子濾波算法流程圖
其中FastSLAM算法使用了分解式濾波的思想,將地圖分解為一系列特征,每個(gè)特征由一個(gè)粒子來描述,同時(shí)對(duì)于每個(gè)特征,都估計(jì)了其對(duì)應(yīng)的位姿,從而實(shí)現(xiàn)對(duì)機(jī)器人軌跡和地圖的同時(shí)估計(jì),大大降低了計(jì)算復(fù)雜度。
FastSLAM算法的基本流程如下:
1)初始化粒子集合和地圖:隨機(jī)生成一組粒子,每個(gè)粒子都表示機(jī)器人的位姿和地圖的狀態(tài);
2)預(yù)測(cè)粒子狀態(tài):根據(jù)運(yùn)動(dòng)模型對(duì)每個(gè)粒子進(jìn)行預(yù)測(cè),得到機(jī)器人的位姿;
3)更新粒子權(quán)重:根據(jù)觀測(cè)數(shù)據(jù),計(jì)算每個(gè)粒子的權(quán)重,表示該粒子對(duì)應(yīng)的狀態(tài)與觀測(cè)數(shù)據(jù)的匹配程度;
4)重采樣:根據(jù)粒子的權(quán)重對(duì)粒子進(jìn)行重采樣,使得權(quán)重大的粒子被選中的概率更高;
5)更新地圖:對(duì)每個(gè)粒子的地圖進(jìn)行更新,包括添加新的特征和更新已有特征的狀態(tài)。
FastSLAM算法的優(yōu)點(diǎn)是具有良好的魯棒性和實(shí)時(shí)性,適用于多種不同的機(jī)器人和環(huán)境。由于采用了分解式濾波的思想,將地圖分解為一系列特征,極大地降低了計(jì)算復(fù)雜度,同時(shí)還可以處理非線性運(yùn)動(dòng)模型和非線性觀測(cè)模型。FastSLAM算法的缺點(diǎn)是對(duì)于大規(guī)模地圖的處理效果不如基于圖優(yōu)化的SLAM算法,同時(shí)在處理復(fù)雜環(huán)境時(shí)容易出現(xiàn)粒子退化的問題,即大部分粒子的權(quán)重趨于零,導(dǎo)致估計(jì)精度下降。
Gmapping算法原理是使用柵格地圖來表示環(huán)境,并利用粒子濾波器來進(jìn)行位姿估計(jì)和地圖構(gòu)建。具體來說,Gmapping算法通過將環(huán)境劃分為一系列小的柵格單元,每個(gè)格柵單元一共有3種狀態(tài):占有、空閑、未知。如圖3所示為格柵示意圖,在格柵中黑色表示占有,白色表示空閑,灰色表示未知。該算法通過激光雷達(dá)對(duì)周圍環(huán)境進(jìn)行掃描,對(duì)檢測(cè)范圍內(nèi)的網(wǎng)格根據(jù)占有概率將其判定為占有或空閑,通過機(jī)器人的移動(dòng)對(duì)未知網(wǎng)格進(jìn)行探索,并使用激光雷達(dá)數(shù)據(jù)進(jìn)行障礙物檢測(cè)和柵格地圖更新直到地圖建立完成。同時(shí),算法使用粒子濾波器對(duì)機(jī)器人的位姿進(jìn)行估計(jì),并根據(jù)估計(jì)的位姿和激光雷達(dá)數(shù)據(jù)來更新柵格地圖。最終,通過多次迭代,Gmapping算法可以得到高精度的柵格地圖和機(jī)器人的位姿估計(jì)。
圖3 格柵示意圖
Gmapping算法的優(yōu)點(diǎn)包括可以處理復(fù)雜的環(huán)境,如室內(nèi)環(huán)境、城市街道等??梢詷?gòu)建高精度的柵格地圖,對(duì)機(jī)器人的定位能力提供了較好的支持。對(duì)激光雷達(dá)數(shù)據(jù)的噪聲和誤差具有較強(qiáng)的魯棒性。Gmapping算法的缺點(diǎn)包括需要進(jìn)行大量的計(jì)算,特別是在處理大規(guī)模環(huán)境時(shí),計(jì)算復(fù)雜度會(huì)急劇增加。依賴于激光雷達(dá),對(duì)于沒有激光雷達(dá)的機(jī)器人來說不適用。
基于圖優(yōu)化的算法是一種常用于SLAM問題的方法,最早出現(xiàn)在20世紀(jì)80年代,主要用于解決機(jī)器人路徑規(guī)劃和SLAM等問題[30-31]。其主要思想是將機(jī)器人在環(huán)境中的運(yùn)動(dòng)軌跡和環(huán)境的拓?fù)浣Y(jié)構(gòu)建模成一個(gè)圖,然后通過優(yōu)化圖中的節(jié)點(diǎn)和邊來最小化誤差,得到機(jī)器人的位姿估計(jì)和環(huán)境的地圖。圖優(yōu)化SLAM算法主要包括前端和后端兩個(gè)過程,其算法框架如圖4所示。前端負(fù)責(zé)數(shù)據(jù)關(guān)聯(lián)和閉環(huán)檢測(cè),數(shù)據(jù)關(guān)聯(lián)主要來處理局部數(shù)據(jù)關(guān)系,解決連續(xù)數(shù)據(jù)幀間的匹配以及相關(guān)姿態(tài)估計(jì)的問題。閉環(huán)檢測(cè)主要針對(duì)全局?jǐn)?shù)據(jù)關(guān)系,通過傳感器所獲得數(shù)據(jù)判斷機(jī)器人當(dāng)前位姿與之前已訪問區(qū)域位姿之間的匹配及相對(duì)位姿估計(jì)問題。通過上述兩個(gè)過程完成位姿圖的創(chuàng)建,即圖優(yōu)化SLAM的前端。由于傳感器與觀測(cè)噪聲和掃描匹配自身誤差的緣故會(huì)導(dǎo)致前端獲得的位姿圖有偏差,因此需要后端圖優(yōu)化部分對(duì)位姿圖進(jìn)行修正[32]。后端處理不直接對(duì)傳感器的觀測(cè)數(shù)據(jù)進(jìn)行處理,而是僅對(duì)前端創(chuàng)建的位姿圖進(jìn)行優(yōu)化,得到位姿的最大似然估計(jì)即最優(yōu)的位姿序列。常見的基于圖優(yōu)化的SLAM算法有最小二乘法SLAM,因子圖優(yōu)化算法,非線性優(yōu)化算法等。
圖4 基于圖優(yōu)化方法的SLAM算法框架
在基于圖優(yōu)化SLAM算法中,機(jī)器人的位姿序列以及位姿間的約束關(guān)系可以轉(zhuǎn)化成如圖5所示。
圖5 機(jī)器人位姿轉(zhuǎn)化為圖的表示方法
在圖5中x=(xi,xj,...)T表示機(jī)器人的位姿序列,它是一個(gè)向量,在圖中表示點(diǎn)集,其中xi和xj分別代表i節(jié)點(diǎn)和j節(jié)點(diǎn)的位姿;zij表示i節(jié)點(diǎn)和j節(jié)點(diǎn)的相對(duì)位姿,即不同時(shí)刻下的關(guān)聯(lián)信息;Ωij代表節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的信息矩陣;fij(x)為測(cè)量函數(shù),表示在理想情況下的測(cè)量值;eij(x)代表向量誤差函數(shù),即測(cè)量值與預(yù)測(cè)值的差。
假設(shè)誤差函數(shù)eij(x)服從高斯分布,則目標(biāo)函數(shù)可表示為如下形式:
Fij(x)∝(fij(x)-zij)Ωij(fij(x)-zij)
(2)
Fij(x)∝eij(x)TΩijeij(x)
(3)
由上面的表達(dá)式可知,只需找到節(jié)點(diǎn)x*使得目標(biāo)函數(shù)Fij(x)的值最小即可獲得最優(yōu)解,即
x*=argminF(x)
(4)
基于配準(zhǔn)的SLAM算法基本思想是通過匹配兩幀或多幀激光雷達(dá)或相機(jī)捕捉到的點(diǎn)云數(shù)據(jù),估計(jì)每個(gè)時(shí)刻機(jī)器人的位姿并構(gòu)建地圖[33]。該算法通常分為兩個(gè)步驟:前端配準(zhǔn)和后端優(yōu)化。前端配準(zhǔn)是指對(duì)連續(xù)的點(diǎn)云數(shù)據(jù)進(jìn)行匹配,以得到機(jī)器人的運(yùn)動(dòng)軌跡和局部地圖。后端優(yōu)化則是指對(duì)前端得到的軌跡和地圖進(jìn)行全局優(yōu)化,以進(jìn)一步提高位姿估計(jì)和地圖質(zhì)量。常見的基于配準(zhǔn)的激光SLAM方法分為基于特征的點(diǎn)云配準(zhǔn)算法、基于全局優(yōu)化的點(diǎn)云配準(zhǔn)算法和基于位姿圖優(yōu)化的點(diǎn)云配準(zhǔn)算法。其中主流的SLAM算法就是Hector算法。
Hector-SLAM 主要原理是通過激光雷達(dá)數(shù)據(jù)獲取環(huán)境地圖,并同時(shí)估計(jì)機(jī)器人在地圖中的位置和姿態(tài),實(shí)現(xiàn)自主導(dǎo)航和環(huán)境建圖。Hector整體算法很直接,就是將激光點(diǎn)與已有的地圖“對(duì)齊”,即掃描匹配。掃描匹配就是使用當(dāng)前幀與已經(jīng)有的地圖數(shù)據(jù)構(gòu)建誤差函數(shù),使用高斯牛頓法得到最優(yōu)解和偏差量。其工作是實(shí)現(xiàn)激光點(diǎn)到柵格地圖的轉(zhuǎn)換,t時(shí)刻所有的激光點(diǎn)都能變換到柵格地圖中,也就意味著匹配成功。如表2所示,Hector-SLAM主要包括以下幾個(gè)步驟:
表2 Hector算法步驟
通過以上步驟,Hector-SLAM能夠在實(shí)時(shí)性和精度之間取得良好的平衡。Hector 算法具有以下優(yōu)點(diǎn):實(shí)時(shí)性較高,Hector SLAM算法利用線段作為路標(biāo),提高了匹配效率,同時(shí)使用EKF進(jìn)行位姿估計(jì),保證了實(shí)時(shí)性;精度較高,Hector SLAM算法在路標(biāo)提取、位姿估計(jì)、閉環(huán)檢測(cè)和地圖優(yōu)化等方面都有較好的設(shè)計(jì),能夠提高地圖的精度和魯棒性。缺點(diǎn)有:對(duì)環(huán)境要求較高;魯棒性有待提高,算法對(duì)于激光雷達(dá)數(shù)據(jù)的噪聲和不確定性較為敏感,需要進(jìn)一步提高算法的魯棒性。
基于學(xué)習(xí)的SLAM算法是指利用機(jī)器學(xué)習(xí)的方法,通過對(duì)傳感器數(shù)據(jù)和地圖數(shù)據(jù)的學(xué)習(xí),實(shí)現(xiàn)環(huán)境建圖和自主導(dǎo)航的技術(shù)。這種方法可以從數(shù)據(jù)中自動(dòng)提取特征,避免了手動(dòng)設(shè)計(jì)特征的困難和不確定性,同時(shí)具有較好的泛化能力和魯棒性[34]?;趯W(xué)習(xí)的SLAM算法主要解決了傳統(tǒng)SLAM算法中存在的以下問題:特征設(shè)計(jì)問題,傳統(tǒng)SLAM算法需要手動(dòng)設(shè)計(jì)特征,這存在一定的主觀性和不確定性,這增加了算法的難度和復(fù)雜度?;趯W(xué)習(xí)的SLAM算法可以從數(shù)據(jù)中自動(dòng)學(xué)習(xí)特征,避免了手動(dòng)設(shè)計(jì)特征的困難和不確定性;實(shí)時(shí)性問題,傳統(tǒng)SLAM算法需要大量的計(jì)算和存儲(chǔ)資源,對(duì)實(shí)時(shí)性的要求較高,基于學(xué)習(xí)的SLAM算法可以通過端到端的學(xué)習(xí)和高效的計(jì)算方法,提高算法的實(shí)時(shí)性和效率;建圖準(zhǔn)確性問題,傳統(tǒng)SLAM算法在環(huán)境建圖中容易出現(xiàn)漏洞和誤差,基于學(xué)習(xí)的SLAM算法可以通過數(shù)據(jù)的學(xué)習(xí)和模型的優(yōu)化,提高建圖的準(zhǔn)確性和精度[18]。目前,基于學(xué)習(xí)的SLAM算法主要包括以下幾種:深度學(xué)習(xí)SLAM以及強(qiáng)化學(xué)習(xí)SLAM。
2.4.1 基于深度學(xué)習(xí)的SLAM算法
基于深度學(xué)習(xí)的激光SLAM算法主要利用深度學(xué)習(xí)技術(shù)來解決SLAM算法中的以下幾個(gè)問題:特征提取,傳統(tǒng)的SLAM算法需要手動(dòng)設(shè)計(jì)特征點(diǎn),但這些特征點(diǎn)的選擇和設(shè)計(jì)往往具有一定的主觀性和不確定性[35]。而基于深度學(xué)習(xí)的SLAM算法可以通過卷積神經(jīng)網(wǎng)絡(luò)等對(duì)激光數(shù)據(jù)進(jìn)行特征提取,自動(dòng)提取出圖像和激光數(shù)據(jù)中的特征點(diǎn)、線段、平面等特征[36];點(diǎn)云配準(zhǔn),傳統(tǒng)的SLAM算法中需要通過點(diǎn)云配準(zhǔn)來實(shí)現(xiàn)環(huán)境建圖和定位,但這通常需要進(jìn)行復(fù)雜的數(shù)學(xué)計(jì)算?;谏疃葘W(xué)習(xí)的SLAM算法可以通過學(xué)習(xí)大量數(shù)據(jù),利用深度學(xué)習(xí)模型學(xué)習(xí)點(diǎn)云之間的相似性和差異性,從而實(shí)現(xiàn)點(diǎn)云的配準(zhǔn)和匹配;地圖優(yōu)化,基于深度學(xué)習(xí)的激光SLAM算法可以通過學(xué)習(xí)大量數(shù)據(jù),利用深度學(xué)習(xí)模型學(xué)習(xí)地圖的結(jié)構(gòu)和特征,從而實(shí)現(xiàn)地圖的自適應(yīng)優(yōu)化,提高地圖的準(zhǔn)確性和魯棒性[37]。目前主流的幾個(gè)基于深度學(xué)習(xí)的激光SLAM算法有PointNetVLAD算法、PointNetGPD算法、DeepMapping算法以及LIO-SAM算法等。
2.4.2 基于強(qiáng)化學(xué)習(xí)的激光SLAM算法
基于強(qiáng)化學(xué)習(xí)的SLAM算法主要思想是將SLAM問題轉(zhuǎn)化為一個(gè)強(qiáng)化學(xué)習(xí)問題,并使用強(qiáng)化學(xué)習(xí)方法進(jìn)行求解。最早是在2016年提出的,由芬蘭赫爾辛基大學(xué)的研究者首次將強(qiáng)化學(xué)習(xí)應(yīng)用于SLAM問題中[38]。
該算法將SLAM問題看作一個(gè)強(qiáng)化學(xué)習(xí)問題,其中機(jī)器人作為一個(gè)智能體,通過與環(huán)境的交互來學(xué)習(xí)最優(yōu)的行為策略,從而實(shí)現(xiàn)同時(shí)定位和地圖構(gòu)建。具體來說,算法使用一個(gè)價(jià)值函數(shù)來評(píng)估機(jī)器人當(dāng)前狀態(tài)和行動(dòng)的價(jià)值,并通過一系列的行動(dòng)來最大化累計(jì)回報(bào),最終實(shí)現(xiàn)優(yōu)化的定位和地圖構(gòu)建結(jié)果。如表3所示基于強(qiáng)化學(xué)習(xí)的激光SLAM算法步驟如表3。
表3 基于強(qiáng)化學(xué)習(xí)的激光SLAM算法步驟
本文對(duì)目前主流的激光SLAM算法進(jìn)行了簡(jiǎn)單的歸納和綜述,并且對(duì)每一種SLAM算法列舉了其實(shí)現(xiàn)機(jī)制和原理,以及優(yōu)缺點(diǎn)和改進(jìn)等。這四類激光SLAM算法的聯(lián)系在于它們都是利用激光雷達(dá)數(shù)據(jù)來實(shí)現(xiàn)機(jī)器人的自我定位和地圖構(gòu)建,但是具體實(shí)現(xiàn)方式和特點(diǎn)有所不同。四類算法相對(duì)于其他算法的改進(jìn)主要表現(xiàn)在以下方面。
基于濾波器的激光SLAM算法:這類算法使用卡爾曼濾波器、擴(kuò)展卡爾曼濾波器等濾波器來實(shí)現(xiàn)激光SLAM,具有計(jì)算速度快、適用于小規(guī)模場(chǎng)景等優(yōu)點(diǎn)。但是,由于濾波器的線性化假設(shè),這類算法對(duì)于非線性問題的處理效果不如基于優(yōu)化的算法。常見的應(yīng)用場(chǎng)景包括室內(nèi)環(huán)境、小型機(jī)器人等。
基于圖優(yōu)化的激光SLAM算法:這類算法使用非線性優(yōu)化方法,如圖優(yōu)化、束優(yōu)化等,來精確估計(jì)機(jī)器人的位姿和地圖,能夠處理非線性問題和大規(guī)模場(chǎng)景。但是,這類算法計(jì)算復(fù)雜度較高,處理速度較慢。常見的應(yīng)用場(chǎng)景包括無人車、大型機(jī)器人等。
基于配準(zhǔn)的激光SLAM算法:這類算法使用點(diǎn)云配準(zhǔn)方法來實(shí)現(xiàn)激光SLAM,能夠處理復(fù)雜地形和多層次地圖。但是,由于配準(zhǔn)算法對(duì)初始位姿較為敏感,因此需要先驗(yàn)信息或者較為準(zhǔn)確的初始位姿。常見的應(yīng)用場(chǎng)景包括室外環(huán)境、地下礦井等。
基于學(xué)習(xí)的激光SLAM算法:這類算法使用深度學(xué)習(xí)技術(shù)來實(shí)現(xiàn)激光SLAM,能夠自動(dòng)學(xué)習(xí)特征表示,具有較強(qiáng)的泛化能力。但是,由于深度學(xué)習(xí)技術(shù)的數(shù)據(jù)需求量較大,這類算法需要大量的訓(xùn)練數(shù)據(jù)。常見的應(yīng)用場(chǎng)景包括室內(nèi)環(huán)境、室外環(huán)境等。
不同的激光SLAM算法適用于不同的應(yīng)用場(chǎng)景,需要根據(jù)具體場(chǎng)景來綜合考慮選擇哪種算法。
本文綜述了移動(dòng)機(jī)器人激光SLAM算法的原理、優(yōu)缺點(diǎn)、研究現(xiàn)狀和改進(jìn)。激光SLAM算法是機(jī)器人實(shí)現(xiàn)自主導(dǎo)航和環(huán)境感知的關(guān)鍵技術(shù)。隨著激光雷達(dá)技術(shù)和機(jī)器學(xué)習(xí)等技術(shù)的不斷發(fā)展,激光SLAM算法也在不斷更新和發(fā)展。以下是激光SLAM算法未來的發(fā)展趨勢(shì)和展望:
多傳感器融合:隨著各種傳感器技術(shù)的不斷發(fā)展和普及,多傳感器融合已經(jīng)成為激光SLAM算法發(fā)展的趨勢(shì)之一,并且已經(jīng)取得了不錯(cuò)的成績(jī),例如文獻(xiàn)[39-40],傳感器融合可以提高定位精度和魯棒性。
深度學(xué)習(xí)技術(shù)應(yīng)用:未來深度學(xué)習(xí)技術(shù)將被更廣泛地應(yīng)用于激光SLAM算法中,例如文獻(xiàn)[35-37]、文獻(xiàn)[41],將深度學(xué)習(xí)用于點(diǎn)云配準(zhǔn)、建圖和定位等方面。此外,基于學(xué)習(xí)的激光SLAM算法已經(jīng)取得了不俗的成績(jī),未來也將會(huì)有更多的基于學(xué)習(xí)的算法被提出。
實(shí)時(shí)性和效率:隨著機(jī)器人應(yīng)用場(chǎng)景的不斷擴(kuò)大,對(duì)激光SLAM算法的實(shí)時(shí)性和效率的要求也越來越高。因此,未來的激光SLAM算法將更加注重算法的實(shí)時(shí)性和效率,并且會(huì)結(jié)合分布式計(jì)算、GPU加速等技術(shù)來提高算法的實(shí)時(shí)性和效率。
大規(guī)模場(chǎng)景處理:傳統(tǒng)的激光SLAM算法在大規(guī)模場(chǎng)景中往往面臨著精度不高、計(jì)算量大等問題,因此未來的激光SLAM算法將更加注重大規(guī)模場(chǎng)景的處理,如分布式SLAM、增量式SLAM等算法。此外,一些基于圖優(yōu)化的方法、基于機(jī)器學(xué)習(xí)的方法也在被不斷地提出和改進(jìn)。
自主決策和交互:未來的激光SLAM算法不僅僅是用于機(jī)器人自我定位和地圖構(gòu)建,更會(huì)結(jié)合機(jī)器人的自主決策和交互能力,例如文獻(xiàn)[42]。如基于SLAM的路徑規(guī)劃、環(huán)境感知等。未來的激光SLAM算法將更加注重機(jī)器人與環(huán)境的交互和合作,如機(jī)器人對(duì)環(huán)境的理解和預(yù)測(cè)等。
總之,未來激光SLAM算法將更加注重多傳感器融合、深度學(xué)習(xí)技術(shù)應(yīng)用、實(shí)時(shí)性和效率、大規(guī)模場(chǎng)景處理以及自主決策和交互等方面,這些發(fā)展趨勢(shì)將推動(dòng)激光SLAM算法的不斷更新和發(fā)展[43-75]。
激光SLAM算法是移動(dòng)機(jī)器人的關(guān)鍵技術(shù),目前的激光SLAM算法具有一定的局限性,仍需要大量工作進(jìn)行改進(jìn),提高算法的性能和實(shí)用性等??傊?,激光SLAM算法的未來發(fā)展充滿了機(jī)遇和挑戰(zhàn),期待著激光SLAM算法在未來的發(fā)展中不斷地創(chuàng)新和突破,為機(jī)器人應(yīng)用帶來更加優(yōu)秀和可靠的解決方案。