2012-01-15 37 views
4

我的問題可能很簡單,但也可能是我完全錯誤的情況 - 因此我決定提問。最後,我將藉助陀螺儀傳感器的數據來計算手機的方向。我知道我應該使用卡爾曼濾波器或互補濾波器來應對陀螺漂移。我會在第二步做到這一點,但我在這裏問的問題對於這兩種方法都是一樣的。所以,真正的問題如下:如何獲得陀螺儀計算的初始方向?

從陀螺儀我只得到角度變化(積分後)。所以我需要的是一些初始值,我可以將當​​前測量的變化添加到。但是,我如何獲得這個起點呢?我是否使用加速計和磁力計來確定手機的方向?或者有沒有更好的辦法?

如果很重要,我使用Android進行此操作,並通過加速度計和磁力計的幫助來確定手機的方向,但它非常不準確。

+0

這只是一個後續:您是否設法實現算法? – Ali 2012-02-11 17:24:56

回答

1

使用任意方向作爲初始約束。

任何合理的過濾器必須從恢復,並迅速收斂到實際的方向。

我使用了Direction Cosine Matrix IMU: Theory中描述的過濾器。我通過限制TotalCorrection(第27頁)來照顧integral windup。奇蹟般有效!

+0

這很有趣。然後,我會試用補充過濾器,並檢查它是如何工作的。感謝您的鏈接。 – fkerber 2012-01-16 13:11:46

+0

不要忘記:你必須確保飽和度不會發生。在我的測試中,'TotalCorrection'已經足夠了。祝你好運! – Ali 2012-01-16 14:16:59

+0

感謝您的評論。如果我說得對,飽和度是一個問題,如果設備的旋轉速度比陀螺儀可以測量的快(或者說在一段時間內旋轉的更快),會出現問題?你通過限制總校正值來擺脫這個問題?如果我再次說得對,這對我來說不成問題,因爲我不會做任何平衡或修正,而是「簡單地」決定我手機的方向。 – fkerber 2012-01-16 15:38:56