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