買書捐殘盟

2011年5月23日 星期一

Kalman Filter 實現於NXT 感測器數據量測

接續前一個主題,我們期望Kalman Filter可以有效改善感測器對noise之敏感性。

理想的情況下,計算出陀螺儀初始的偏移量(bias)後,期望陀螺儀的感測元件讀值扣除偏移量之後,機身不動,理論上讀值應為某一個準位(例如直立時,讀值為0

然而,很不幸地,陀螺儀感測元件在靜止狀態時,仍有數據產生飄移的現象。

在程式中加入了Kalman Filter之後,果真使讀值飄移的現象大幅改善。

以下為經過陀螺儀靜止狀態5秒鐘內的數據讀取所呈現的結果:













上圖,綠色線代表未濾波時的陀螺儀讀取數據;
紅色線代表濾波的結果。

Perfect~

8 則留言:

  1. 薛老師您好,

    現在才發現你新的部落格,而且是有深度討論一些機器人專題,個人也有計劃撰寫 Kalman Filter 文章,不過你已經捷足先登。 ^_^

    回覆刪除
  2. Bridan:
    感謝您參觀我的blog。這個地方我記錄了一些在研究的階段,所呈現的成果。
    每當回憶過去所經歷過的種種,看一看所做、拍下的紀錄,都有一種滿足的成就感。

    回覆刪除
  3. 請問一個問題,http://lejos.sourceforge.net/forum/viewtopic.php?f=6&t=1457&start=15&hilit=Wii+Nunchuk+Sensor&sid=727651db54aacfa1574c97c4f4b0e6f4
    在這個網頁中使用了Wii的雙截棍製作了一個感應器,我也製作了一個,但我使用原作者的NXC程式碼可以成功顯示數值在螢幕上NXC: http://www.mindstormsforum.de/viewtopic.php?t=3828(圖片已遺失,程式碼在中間)
    但我不知道該如何把(下)網頁中的兩個代碼做結合。 http://lejos.sourceforge.net/forum/viewtopic.php?f=6&t=1457&start=15&hilit=Wii+Nunchuk+Sensor&sid=727651db54aacfa1574c97c4f4b0e6f4
    請求您的協助,謝謝!

    回覆刪除
  4. 兩個code是採用不同語言編輯,一個是Brixcc的nxc程式,一個是lejos程式,如果要整合,假如你比較熟nxc,你就把lejos的碼改成nxc語法。

    兩種語言是無法同時存在於nxt,因為它的韌體(firmware是不同的)

    回覆刪除
  5. 您好! 我的意思是,我該如何把
    http://lejos.sourceforge.net/forum/viewtopic.php?f=6&t=1457&start=15&hilit=Wii+Nunchuk+Sensor&sid=727651db54aacfa1574c97c4f4b0e6f4
    中的兩個code結合。
    也就是如何把
    public class NunchukSensor extends I2CSensor

    public class TestLCD
    結合成一個nxt可執行的java程式。
    謝謝!

    回覆刪除
  6. 1.你把class NunchukSensor全部的程式碼複製後-儲存檔名為NunchukSensor,它的檔案即為NunchukSensor.java。
    2.把class TestLCD儲存檔名為TestLCD,它的檔案即為TestLCD.java
    3.把兩個檔案(NunchukSensor.java、TestLCD.java放在同一個目錄下,利用java編譯
    指令為nxjc TestLCD.java

    編譯過程,他會把class NunchukSensor呼叫進來一起compile!

    如果compile complete,你就可以看到該目錄底下有兩個class,一個是NunchukSensor.class,一個是TestLCD.class
    將編譯好的class寫到nxt,指令為
    nxj TestLCD

    回覆刪除
  7. 您好! 我試了試,但是他發生了錯誤 T.T

    我把它們存在C槽
    http://lucky861223.pixnet.net/album/photo/8374366
    編譯後的錯誤1
    http://lucky861223.pixnet.net/album/photo/8374408
    編譯後的錯誤2
    http://lucky861223.pixnet.net/album/photo/8374306
    是怎麼回事呢? 請求您的幫忙!
    謝謝!!

    回覆刪除
  8. 我不很確定你的問題所在,我比較熟nxc.
    您的問題可以到http://tw.myblog.yahoo.com/lego-caveschool/

    cave團隊是專攻lejos的。

    回覆刪除