在智能服務(wù)機(jī)器人逐漸成為行業(yè)風(fēng)口浪尖的今天,移動(dòng)機(jī)器人的身影越來(lái)越多地出現(xiàn)在人們身邊。相信隨著傳感技術(shù)、智能技術(shù)和計(jì)算技術(shù)等的不斷提高,智能移動(dòng)機(jī)器人一定能夠在生產(chǎn)和生活中融入人類生活中。其中,在自主定位導(dǎo)航技術(shù)中扮演著關(guān)鍵角色的SLAM 技術(shù)也成為關(guān)注的焦點(diǎn)。那么,究竟是什么是SLAM 技術(shù)?SLAM技術(shù)究竟是如何實(shí)現(xiàn)的?它的核心步驟和難點(diǎn)是什么?今天,小編就來(lái)和大家聊聊在機(jī)器人自主移動(dòng)過(guò)程中有著重要作用的SLAM技術(shù)。
什么是SLAM技術(shù)?
?
SLAM 是同步定位與地圖構(gòu)建 (Simultaneous Localization And Mapping) 的縮寫,最早是由 Hugh Durrant-Whyte 和 John J.Leonard 在1988年提出的。SLAM與其說(shuō)是一個(gè)算法不如說(shuō)它是一個(gè)概念更為貼切,它被定義為解決“機(jī)器人從未知環(huán)境的未知地點(diǎn)出發(fā),在運(yùn)動(dòng)過(guò)程中通過(guò)重復(fù)觀測(cè)到的地圖特征(比如,墻角,柱子等)定位自身位置和姿態(tài),再根據(jù)自身位置增量式的構(gòu)建地圖,從而達(dá)到同時(shí)定位和地圖構(gòu)建的目”的問(wèn)題方法的統(tǒng)稱。
SLAM技術(shù)的核心步驟
?
大體上而言,SLAM包含了:感知、定位、建圖這三個(gè)過(guò)程。
感知——機(jī)器人能夠通過(guò)傳感器獲取周圍的環(huán)境信息。
定位——通過(guò)傳感器獲取的當(dāng)前和歷史信息,推測(cè)出自身的位置和姿態(tài)。
建圖——根據(jù)自身的位姿以及傳感器獲取的信息,描繪出自身所處環(huán)境的樣貌。
舉個(gè)例子,有天張三和朋友們一起喝酒,張三喝高了,李四送他回家,但是沒(méi)有張三的鑰匙啊,怎么辦,只好送回自己的家里面。那么問(wèn)題來(lái)了,第二天早上張三醒來(lái)后,如何知道自己是在誰(shuí)家里呢?
這個(gè)問(wèn)題很簡(jiǎn)單,看看房子周圍的環(huán)境就知道了。沒(méi)錯(cuò),張三觀察房屋信息的過(guò)程就是感知的過(guò)程,這時(shí)候張三需要提取房子里面對(duì)自己有效的信息,例如:房子的面積、墻壁的顏色、家具的特征等等,運(yùn)氣好的話,看到了李四本人,基本上就知道自己是在誰(shuí)家里了。這個(gè)確定是在誰(shuí)家里的過(guò)程,就是定位。
那么建圖呢,張三在意識(shí)到自己在李四家之后,自然地就把“李四家”和李四家觀察到的特征關(guān)聯(lián)起來(lái)了,這個(gè)就是建圖。酒醒后,張三從李四家出來(lái),在回家的路上,張三一路觀察周圍的環(huán)境,估算自己走了多少個(gè)街區(qū)(定位),一路在腦海里生成這一路走來(lái)周圍的環(huán)境(建圖)。
以上就是SLAM的核心步驟。從上面的例子可以發(fā)現(xiàn),感知是SLAM的必要條件,只有感知到周圍環(huán)境的信息才能夠可靠地進(jìn)行定位以及構(gòu)建環(huán)境的地圖。
而定位和建圖則是一個(gè)相互依賴的過(guò)程:定位依賴于已知的地圖信息,張三只有知道李四家的位置,才知道自己離開李四家的距離;建圖依賴于可靠地定位,知道自己離開多遠(yuǎn)后,才知道左邊的建設(shè)銀行離李四家的距離。
當(dāng)然定位和建圖的數(shù)據(jù)必然包含了張三一路上觀察感知到的自己的相對(duì)位移以及對(duì)位移的修正。
說(shuō)了這么多廢話,感覺(jué)SLAM其實(shí)也不是很復(fù)雜嘛,是的,這是因?yàn)槿说拇竽X很聰明,在潛意識(shí)中解決了SLAM中的核心問(wèn)題——特征提取和追蹤、以及最優(yōu)后驗(yàn)估計(jì)。
SLAM的核心問(wèn)題
?
大體而言,SLAM問(wèn)題基本上可以分為前端和后端兩個(gè)部分。前端主要處理傳感器獲取的數(shù)據(jù),并將其轉(zhuǎn)化為相對(duì)位姿或其他機(jī)器人可以理解的形式;后端則主要處理最優(yōu)后驗(yàn)估計(jì)的問(wèn)題,即位姿、地圖等的最優(yōu)估計(jì)。
機(jī)器人所擁有的傳感器主要有:深度傳感器(超聲波、激光雷達(dá)、立體視覺(jué)等),視覺(jué)傳感器(攝像頭、信標(biāo)),慣性傳感器(陀螺儀、編碼器、電子羅盤)以及絕對(duì)坐標(biāo)(WUB,GPS)等。
不像人對(duì)環(huán)境的感知,機(jī)器人從這些傳感器中獲取的信息非常有限,不能充分地表征機(jī)器人周圍地環(huán)境。例如常用的2D激光雷達(dá)僅能獲取一個(gè)平面的深度信息;攝像頭獲得的圖像數(shù)據(jù)機(jī)器人不能像人腦那樣充分地分辨出每個(gè)物體的屬性、特征甚至其他聯(lián)想。
正如上圖所示,在人的視野里看到的情況如圖(1)所示,但對(duì)于只裝配了2D激光雷達(dá)的機(jī)器人而言,它看到的世界卻是圖(2)中的樣子。因此,前端如何充分可靠地的獲取更多的有效信息一直是眾多SLAM研究者所研究的一個(gè)話題。
同時(shí),傳感器均會(huì)存在噪聲,無(wú)論是傳感器本身固有的噪聲還是獲取的錯(cuò)誤數(shù)據(jù),均會(huì)對(duì)SLAM造成影響。故SLAM的另一個(gè)核心問(wèn)題是:如何從這些帶有噪聲的信息中,最優(yōu)地估計(jì)出機(jī)器人的位姿以及地圖信息。
目前SLAM處理后端的方法可大致分為兩類:基于概率模型的方法和基于優(yōu)化的方法?;诟怕誓P偷腟LAM是2D-SLAM中比較主流的方法,比較具有代表性的有EKF、UKF以及PF等,這方面的研究已經(jīng)相對(duì)比較成熟,也逐漸地被應(yīng)用在了商業(yè)場(chǎng)景中;
基于優(yōu)化是近些年SLAM研究地主流方向,大多應(yīng)用在VSLAM領(lǐng)域,比較具有代表性的有TORO、G2O等。
SLAM技術(shù)的實(shí)現(xiàn)方法
正如上文所述,SLAM后端優(yōu)化的主流方法目前主要分為基于概率模型的方法和基于優(yōu)化方法兩種。作為SLAM“古典時(shí)期“的經(jīng)典方法,基于概率模型的SLAM有著一套十分完備的理論體系,并以其優(yōu)良的性能,至今仍活躍在SLAM應(yīng)用領(lǐng)域中。
作為SLAM入門必學(xué)經(jīng)典,小編下面就跟大致大家介紹下基于概率模型的SLAM方法。
基于概率模型的SLAM基本上都可以源自貝葉斯估計(jì),通俗的說(shuō),貝葉斯估計(jì)就是通過(guò)基于假設(shè)的先驗(yàn)概率、給定假設(shè)下觀察到的不同數(shù)據(jù)的概率以及觀察到的數(shù)據(jù)本身求出后驗(yàn)概率的方法。其公式如下:
看到這里可能會(huì)有點(diǎn)懵,讓我們?cè)俅握?qǐng)出張三同學(xué)為大家現(xiàn)場(chǎng)示范。張三從李四家走出來(lái)沒(méi)多久,由于酒還沒(méi)怎么醒,有點(diǎn)不記得自己到底走了幾個(gè)街區(qū)了。這時(shí)候張三發(fā)現(xiàn)自己右邊有個(gè)建設(shè)銀行,這樣走過(guò)多少個(gè)街區(qū)就可以推測(cè)出個(gè)八九不離十了。
接下來(lái),張三祭出了傳說(shuō)中的“貝葉斯估計(jì)“大法,來(lái)算算自己看到右手邊有個(gè)建設(shè)銀行后,自己處在第各個(gè)街區(qū)的概率,標(biāo)記為p(A|B)。
張三用于估計(jì)自身位置的有效信息是右手邊有個(gè)建設(shè)銀行這個(gè)事件,假設(shè)張三看到右手邊有個(gè)建設(shè)銀行的概率記為p(B),那么條件概率p(B|Ai)的含義就是假設(shè)張三處在第i街區(qū),看到自己右手邊是建設(shè)銀行的概率。p(Ai)的含義是張三處在第i街區(qū)的概率。
從張三到李四家共十個(gè)街區(qū),在第三街區(qū)的概率p(A3)=10%。但是觀察到右手邊有個(gè)建設(shè)銀行了就不一樣了:一路上總共有兩個(gè)建設(shè)銀行,那么這一路看到建行的概率p(B)=2/10=20%,但假設(shè)自己在第三街區(qū),那么看到建行的概率就是p(B|A3)=100%了。
那么在觀察到建行的情況下,張三處在第三街區(qū)的概率就提升到了100%×10%/20%=50%了。
如果張三比較確信沒(méi)觀察到建行之前自己處在第三街區(qū)的概率為50%,其余街區(qū)的概率均勻分布,那么一路看到建行的概率
p(B)=100%×50%+100%×5.55%+0%×5.55%×8=55.55%,
則在觀察到建行的結(jié)果下,張三處于第四街區(qū)的概率上升為:100%×50%/55.55%=90%了。
由此可見(jiàn),貝葉斯估計(jì)提供了一種通過(guò)先驗(yàn)估計(jì)結(jié)合觀測(cè)信息來(lái)獲得后驗(yàn)估計(jì)的方法。
說(shuō)了這么多,貝葉斯估計(jì)究竟是如何應(yīng)用在SLAM方法中的呢?
對(duì)于一個(gè)經(jīng)典的SLAM問(wèn)題,假設(shè)xt是t時(shí)刻的狀態(tài)量,z1:t為時(shí)刻的觀測(cè)量,u1:t是1:t時(shí)刻的控制量,m是地圖,則SLAM需要求解的是在已知控制量、觀測(cè)量概率分布的情況下,機(jī)器人的位姿狀態(tài)以及地圖最優(yōu)估計(jì)的問(wèn)題。即:
由于p(zt|z1:t-1,u1:t)不依賴于x,對(duì)任何后驗(yàn)概率p(zt|z1:t-1,u1:t)都是相同的,可以看作一個(gè)常量。在這里假設(shè)系統(tǒng)模型的狀態(tài)轉(zhuǎn)移服從一階馬爾科夫模型,即當(dāng)前狀態(tài)xt僅與上一狀態(tài)xt-1有關(guān),故有:
根據(jù)式(2)和式(3)可知,在一階馬爾科夫模型的假設(shè)下,通過(guò)貝葉斯估計(jì)可以將當(dāng)前狀態(tài)和地圖的最優(yōu)后驗(yàn)估計(jì)轉(zhuǎn)化為觀測(cè)數(shù)據(jù)的假設(shè)條件概率和狀態(tài)轉(zhuǎn)移方程以及上一狀態(tài)后驗(yàn)估計(jì)的函數(shù)。因此對(duì)狀態(tài)和地圖的最優(yōu)后驗(yàn)估計(jì)可以通過(guò)迭代求解。
以上為一個(gè)經(jīng)典SLAM問(wèn)題的例子,對(duì)于這類問(wèn)題的解答,有很多方法,比如經(jīng)典的卡爾曼濾波(KF)、擴(kuò)展卡爾曼濾波(EKF),無(wú)跡卡爾曼濾波(UKF),R-B粒子濾波器(FastSLAM)以及信息濾波(SEIF)等等。他們均是基于概率模型的SLAM問(wèn)題的求解方法,本質(zhì)是求出最優(yōu)后驗(yàn)估計(jì)。
以上就是本期關(guān)于SLAM算法的初步內(nèi)容,實(shí)際上,要通過(guò) SLAM算法實(shí)現(xiàn)到機(jī)器人在實(shí)際中的運(yùn)動(dòng)功能,還是有非常多的工作要做。下面幾期小編會(huì)給大家介紹“基于概率模型的SLAM方法”中幾個(gè)比較具有代表性的方法。
編輯:黃飛
?
評(píng)論
查看更多