2015-04-01 44 views
0

我被要求創建一個腿部跟隨器機器人(我已經做過),並且在本任務的第二部分中,我必須開發一個卡爾曼濾波器以改善以下過程機器人。機器人從人身上獲得她到機器人的距離以及角度(這是一個相對角度,因爲參考是機器人本身,而不是絕對的xy座標)在腿部跟隨器機器人上應用卡爾曼濾波器

關於此作業我有一個嚴重的疑問。我讀過的每一樣東西,我看過的關於卡爾曼過濾器的樣品都在一個維度上(一輛汽車跑步距離或從建築物落下的一塊石頭),根據任務我必須在兩個維度上應用它。是否可以像這樣應用卡爾曼濾波器?

如果可以計算兩維的卡爾曼濾波器,那麼我會明白,要求做的是以非線性方式跟隨腿,儘管一個人走路很奇怪(隨機移動) - >關於這個我懷疑如何建立狀態矩陣的功能,任何人都可以告訴我該怎麼做或告訴我在哪裏可以找到更多關於這方面的信息?

謝謝。

+0

卡爾曼濾波器可應用於n維問題,所以不是限制。你必須找出你的腿機器人的動作模型。如果它是非線性的,則可以嘗試應用擴展卡爾曼濾波器。例如,什麼是「腿跟隨者」機器人?一個遵循人類腿部的機器人?它是一個跟隨線條的機器人嗎?它是一個附着在人腿上的機器人並估計其位置? 沒有關於您的問題的任何進一步信息,很難確定您的具體問題,並且我毫不猶豫地將您鏈接到卡爾曼濾波器上的維基百科文章。 – 2015-04-05 21:16:53

回答

0

那麼你應該閱讀卡爾曼濾波器。基本上,它所做的是分別通過其均值和方差估計一個狀態。國家可以是任何你想要的。您可以在您的狀態中擁有本地座標,但也可以擁有全局座標

請注意,後者肯定會導致非線性系統動力學,在這種情況下,您可以使用擴展卡爾曼濾波器,或者更正確的連續離散卡爾曼濾波器,您可以連續處理系統動力學,在離散時間的測量。

例與全局座標:

假設你有一個小的立方體塊,其可以以速度v向前行駛,您可以簡單地在本地座標的動力學模型只是,你的狀態s將s = [v],這是一個。線性模型。但是,假設我們只在一個平面上移動,你也可以包含全局座標x和y。那麼你會有s = [x, y, phi, v]'。我們需要phi來跟蹤當前的方向,因爲立方體只能沿其方向前進。讓我們將phi定義爲立方體的正向和x軸之間的角度。或換句話說:使用phi=0立方體將沿着x軸移動,其中phi=90°它將沿着y軸移動。

非線性系統動力學與全球座標然後可以寫成

s_dot = [x_dot, y_dot, phi_dot, v_dot]' 

x_dot = cos(phi) * v 
y_dot = sin(phi) * v 
phi_dot = ... 
v_dot = ... (Newton's Law) 

EKF(擴展卡爾曼濾波器)預測步驟你可以使用(離散)方程來預測第一步中狀態的均值以及預測方差的線性化(和離散化)方程。

有兩件事情要記住,當你決定你的狀態向量s應該是什麼樣子:

  • 你也許會用我的線性例如s = [v]然後速度卡爾曼濾波器之外整合以獲得全球座標估計值。這可行,但你會失去卡爾曼濾波器的精彩,因爲你只會整合狀態的均值,而不是其方差。換句話說,你不知道目前全球座標系的不確定性是什麼。
  • 卡爾曼濾波器的第二步是測量或校正更新,要求您可以將傳感器輸出描述爲您的狀態的函數。因此,您可能必須在您的圖像中添加狀態,以便您可以正確表達測量值as z[k] = h(s[k], w[k])其中z是測量值,w是具有高斯分佈的噪聲矢量。