機器人通過外部傳感器信息獲得 周圍環境相對位置信息來確定自身位姿的過程。在全局定位中,由于機器人只能觀測到 環境中的一些局部信息,因而環境的對稱性可能會使機器人在很多不同的位置獲得完全 相同的觀測信息,產生多個可能的機器人位姿假設。全局定位中機器人位姿的后驗概率 分布是一個多峰分布,基于高斯分布的不確定性表示方法不適用于全局定位。在全局定 位過程中如果在移動機器人里程計沒有記錄的情況下,將機器人從一個地方搬到另外一 個地方會產生機器人“誘拐”(Kidnapped Robot)現象[148]。
當將機器人從A點搬到B 點時,機器人里程計無法記錄實際位姿變 化。根據傳感器信息,機器人也不能立刻確定自己在環境中的位置,需要根據多次觀測信 息重新定位。所以很多研究者認為機器人“誘拐”問題也是一個機器人的全局定位問 題。與全局定位不同的是,機器人可能不知道自己什么時候發生了“誘拐”,該方法常用 來測試定位方法的魯棒性。在全局定位過程中,存在很多不確定性因素。先是機器人 本身的不確定性,如輪子打滑所造成的里程計誤差累積,傳感器噪聲所造成的讀數不可 信。其次是機器人所處的環境也是不可預知的,如人的走動和物體的移動所造成的環境 變化。這些不確定性會使定位變得更加困難。因此,近來越來越多的研究者一方面采用 可靠的傳感器,如采用能感知豐富環境信息的視覺傳感器和測距精度較高的激光測距器; 另一方面把概率理論應用到移動機器人定位中,試圖采用概率定位方法解決不確定性問 題。
SLAM的基本原理是利用已經創建的地圖修正基于運動模型的機器人位姿估計誤差,提高定位精度;同時根據可靠的機器人位姿,創建出精度更高的地圖[149]。
未知環境下的SLAM方法的核心都是圍繞和針對傳感器信息和環境中存在的不確定 性而展開的。關于傳感器的不確定,以Z常用的里程計為例,其典型的誤差積累如圖1.61 所示。其中,左圖是d立利用里程計定位、d立利用激光傳感器感知環境所創建的地圖, 由于沒有進行里程計誤差補償,幾次創建的地圖差異很大,與實際環境也不符;右圖是采用SLAM 創建的地圖,基于SLAM 可以利用已創建的地圖修正里程計的誤差。這樣機器 人的位姿誤差就不會隨著機器人的運動距離的增大而無限制增長,因此可以創建精度更 高的地圖,也同時解決了未知環境中的機器人定位問題。
在SLAM中,系統的狀態由機器人的位姿和地 圖信息(包含各特征標志的位置信息)組成。假設 機器人在t 時刻觀測到了特征m₁, 如圖1 . 62所 示。根據觀測信息只能獲得特征m₁ 在機器人坐標 系R 中的坐標,機器人需要估計機器人自己本身在 世界坐標系W中的位姿,然后通過坐標變換才能 計算特征的世界坐標。可見,在地圖創建的過程 中,需要計算機器人的位姿,也就是進行機器人的 定位。然而,根據里程計獲得的機器人位置信息很 不準確,顯然錯誤的位置信息將會導致地圖的不準 確。
在初始時刻,地圖中沒有任何特征。當機器人在t 時刻觀測到特征m 時,可以根據機 器人的位姿(x,y:,θ.), 以及觀測到的特征m₁ 在機器人坐標系下的坐標計算出特征的世 界坐標(x¹,y!), 并且將特征m₁ 加入到地圖中。當機器人運動一步之后,根據里程計信息 可以預測到機器人的位姿將變為(x+1,Y:+1,0,+1)。根據特征m₁ 的世界坐標(x¹,y) 可 以 計算出當機器人位姿為(x:+1,y:+1,0.+1) 時 m₁ 在機器人坐標系下的坐標。然而,機器人同 時也會再次觀測到特征m, 而且獲得m₁ 在新的機器人坐標系下的坐標(x+1,y+1) 。 實 際 觀測到的特征坐標與計算獲得的坐標(x^+1,y+1) 將存在差別。這種差別是由兩種原因引 起的,其一是因為機器人的預測位姿(x:+1,y:+1,0+1)不準確,其二是因為根據以前的觀測 信息計算獲得的特征的世界坐標(x¹,y¹) 不準確。在SLAM中,根據這種差別重新計算特 征的世界坐標(也就是地圖創建),同時重新估計機器人的位姿(也就是機器人的定位)。 當機器人繼續運動時,它將觀測到更多的特征,根據同樣的方法,機器人會把它們加入到 地圖中,并且根據觀測到的信息更新機器人的位姿以及它們的世界坐標。簡單地說, SLAM利用觀測到的特征計算它們的世界坐標以實現地圖創建,同時更新機器人的位姿 以實現機器人的定位,如圖1.63所示。
SLAM 的概率描述為:p(81,MI z1:,uo:,k1)=p(x,I z1:,u₀:-1,k1:),其中,s1:=81, S2, … ,s, 和z1: 分別表示機器人從1到t 時刻的運動路徑和感知信息,u₁-1表 示t-1 到 t 時 刻的運動控制信息,z, 表示機器人的當前感知信息。當機器人穿過一個未知環境時,設t 時刻機器人位姿s,=[x₁,y:,θ,], 已經觀測到的地圖為M, 其中,m 表示第k 個路標,K表 示已經觀測的路標數,k,∈{1,…,N} 表示t 時刻感知到的路標索引號。
系統的完整狀態 可以表示為x,=[s1,M]T,SLAM 的圖形模式如圖1.64所示,機器人從位姿s。開始通過控 制命令序列uo,u₁,…,u1-1 移動,隨著機器人的移動,附近的路標被感知到,時刻t=1, 感 知 到路標m₁, 并獲得測量數據z₁ (包括距離和方向),時刻t=2, 感知到路標m₂, 并在時刻t=3,重新感知到路標m₁, 現在已經形成的地圖為:M={m₁,m₂,m 。SLAM 的輸入信息是, 路標觀測信息z1:, 以及運動控制信息u₀:-1 。SLAM 的目的是,根據輸入信息估計機器人 運動路徑s1 以及地圖M。
![]() |
| 機器人底盤 Disinfection Robot 消毒機器人 講解機器人 迎賓機器人 移動機器人底盤 商用機器人 智能垃圾站 智能服務機器人 大屏機器人 霧化消毒機器人 展廳機器人 服務機器人底盤 具身智能教育機器人 智能配送機器人 導覽機器人 |