晉峰高 劉猛 谷月
摘 要 隨著科技不斷進(jìn)步,網(wǎng)絡(luò)的迅速發(fā)展,以往不被重視的機(jī)器人也慢慢地走進(jìn)了大家的視野中,在各行各業(yè)有越來越多的分量。由于在室內(nèi)或者一些信號(hào)不好的場地中,機(jī)器人的移動(dòng)會(huì)受到地圖信息的不準(zhǔn)確的限制,從而大大降低了機(jī)器人的可利用價(jià)值。因此,當(dāng)前的主流問題是解決移動(dòng)機(jī)器人在室內(nèi)自主定位與地圖構(gòu)建的問題,相對(duì)較好的技術(shù)就是激光雷達(dá)SLAM技術(shù)。本文對(duì)SLAM技術(shù)進(jìn)行分析總結(jié)。
關(guān)鍵詞 移動(dòng)機(jī)器人;即時(shí)定位與地圖構(gòu)建;SLAM
引言
激光雷達(dá)即時(shí)定位與地圖構(gòu)建技術(shù)既是激光雷達(dá)SLAM技術(shù)。SLAM技術(shù)最初是由HughDurrant—Whyte和John J.Leonard提出,其目的是為了解決移動(dòng)機(jī)器人在未知環(huán)境中運(yùn)行時(shí)導(dǎo)航與地圖構(gòu)建的問題。其實(shí)從未知的位置和未知的環(huán)境中開始,機(jī)器人在移動(dòng)過程中通過反復(fù)觀察環(huán)境的特征來定位自己的位姿,然后根據(jù)自己的位置構(gòu)建周圍環(huán)境的增量式地圖,以便達(dá)到同時(shí)定位和地圖構(gòu)建。定位是近幾年來的熱點(diǎn)和難點(diǎn)。定位技術(shù)取決于環(huán)境和對(duì)成本、精度、頻率和魯棒性的要求。SLAM配備激光雷達(dá)、攝像頭、IMU和其他傳感器在最近幾年比較興起。而激光雷達(dá)主要分為基于圖優(yōu)化的Graph-based SLAM算法和基于粒子濾波的SLAM(GMapping)算法[1]。
1基于濾波和圖優(yōu)化的SLAM
SLAM問題的處理方法主要分為濾波和圖優(yōu)化兩類。濾波的方法中常見的就是擴(kuò)展卡爾曼濾波(EKF-SLAM)、FastSLAM,粒子濾波、信息濾波等。EKF-SLAM提出較早,因?yàn)槎ㄎ皇菫榱藢?dǎo)航,所以要求必須是柵格地圖,而EKF-SLAM是特征地圖;然而FastSLAM是較早的真正意義上可以實(shí)現(xiàn)SLAM的算法,可以實(shí)現(xiàn)較大的柵格地圖。Gampping是柵格地圖版本的FastSLAM,并且加入了Scan-matching模塊來優(yōu)化。在應(yīng)用最廣泛的2DSLAM算法中采用了粒子濾波方法,依賴?yán)锍逃?jì),可以達(dá)到實(shí)時(shí)構(gòu)建室內(nèi)地圖,在較小的場景下構(gòu)建的地圖精度高且計(jì)算量小[2]。
目前SLAM主流方法幾乎都是基于圖優(yōu)化的,為什么圖優(yōu)化這么受大家的青睞,這要?dú)w功于各種各樣的傳感器。在圖優(yōu)化的方法中,處理數(shù)據(jù)的方式和濾波不同,它不會(huì)隨著時(shí)間推移出現(xiàn)地圖擴(kuò)大,內(nèi)存消耗,計(jì)算量過大的問題。它不是實(shí)時(shí)的糾正位姿,而是把所有數(shù)據(jù)記錄下來,最后統(tǒng)一對(duì)數(shù)據(jù)進(jìn)行處理。
KartOSLAM是基于圖優(yōu)化的方法,利用非線性最小二乘法,進(jìn)行全局矯正。用高度優(yōu)化和非迭代Cholesky分解進(jìn)行稀釋系統(tǒng)解耦。算法不完善,有出現(xiàn)實(shí)時(shí)建圖崩潰的可能。Cartographer是KartOSLAM的優(yōu)化版本。Cartographer的主要思想是GraphSALM。GraphSALM又被稱為Graph-based SLAM,它的基本思想是將機(jī)器人不同時(shí)刻的位姿抽象為點(diǎn)(pose),機(jī)器人在不同位姿上的觀測所產(chǎn)生的約束被抽象為點(diǎn)之間的邊,或者叫約束(constraint)[3]。
所謂的約束可以有多種多樣的形式,比如機(jī)器人在A點(diǎn)和B點(diǎn)都看到同一個(gè)物體,那么機(jī)器人在AB點(diǎn)觀測到消防栓的相對(duì)位置,就對(duì)機(jī)器人在A點(diǎn)和B點(diǎn)的位置產(chǎn)生了約束,進(jìn)一步的,AB兩點(diǎn)之間也產(chǎn)生了約束。GraphSLAM就是在機(jī)器人運(yùn)動(dòng)的過程中構(gòu)建出若干點(diǎn)(pose)和邊(constraint)組成的圖(Graph),再從全圖的角度進(jìn)行優(yōu)化。
在Graph-based SLAM算法中,機(jī)器人的位姿是一個(gè)節(jié)點(diǎn)(node)或頂點(diǎn)(vertex),位姿之間的關(guān)系構(gòu)成邊(edge)。具體而言,比如t+1時(shí)刻和t時(shí)刻之間的odometery關(guān)系構(gòu)成邊。一旦圖構(gòu)建完成了,就要調(diào)整機(jī)器人的位姿去盡量滿足這些邊構(gòu)成的約束。因此,圖優(yōu)化SLAM問題就能夠分解成兩個(gè)任務(wù):
(1)構(gòu)建圖,機(jī)器人位姿當(dāng)頂點(diǎn),位姿間關(guān)系當(dāng)左邊,這部分被稱為前端(front-end),往往是傳感器信息的堆積。
(2)優(yōu)化圖,調(diào)整機(jī)器人位姿頂點(diǎn)盡量滿足邊的約束,這部分被稱為后端(back-end)。
從而可以把圖優(yōu)化過程總結(jié)為:先堆積數(shù)據(jù),以機(jī)器人位姿為構(gòu)建的頂點(diǎn)。邊是位姿之間的關(guān)系,可以是編碼器數(shù)據(jù)計(jì)算的位姿,也可以是通過ICP匹配計(jì)算出來的位姿,還可以是閉環(huán)檢測的位姿關(guān)系。這樣通過堆積的數(shù)據(jù)就可以把未優(yōu)化的圖構(gòu)建完成,然后再對(duì)構(gòu)建的圖就行優(yōu)化。
2結(jié)束語
對(duì)比之下,雖然Gmapping建圖時(shí)也相對(duì)精確,不需要太多的粒子,從而降低了計(jì)算量,且沒有回環(huán)檢測,但是遇到大場景地圖時(shí),Gmapping就顯得不那么友好了。此時(shí),Cartographer的作用就顯得相對(duì)突出,能滿足我們的需求。因此,圖優(yōu)化算法是目前最好的SLAM算法,有相當(dāng)好的發(fā)展前景。
參考文獻(xiàn)
[1] 孫學(xué)敏.未知室內(nèi)環(huán)境下移動(dòng)機(jī)器人地圖創(chuàng)建方法的研究[D].長春:東北師范大學(xué)碩士論文,2012:6-15.
[2] 張洪華,劉漩,陳付豪,等.基于圖優(yōu)化的SLAM后端優(yōu)化研究與發(fā)展[J].計(jì)算機(jī)應(yīng)用研究,2019,36(1):11-17.
[3] 王忠立,趙杰,蔡鶴皋.大規(guī)模環(huán)境下基于圖優(yōu)化SLAM的圖構(gòu)建方法[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2015,47(1):75-85.
作者簡介
晉峰高,男,河南省周口市人;沈陽理工大學(xué)研究生在讀。