2017-03-03 111 views
0

我試圖結合來自加速度計和陀螺儀的數據來精確測量物體的俯仰角和偏航角。在研究互補過濾器並試圖實現它之後,我對它的工作原理有幾個問題。補充過濾器如何工作?

我讀過濾器「信任」陀螺儀數據,如果有很多角運動,並且如果對象穩定,它「信任」加速計數據。

http://www.pieter-jan.com/node/11 在本文中的互補濾波器以這樣的方式描述:

*角= 0.98(角度+ gyrData * DT)+ 0.02 *(accData)*

對我來說,似乎如果陀螺儀數據受到青睞。在下面的圖片http://www.pieter-jan.com/images/resize/Complementary_Filter.png(位於頁面底部)中,即使陀螺儀數據已經漂移,過濾的數據似乎仍「接近」加速計數據。我不明白爲什麼會出現這種情況,因爲計算表明陀螺儀數據正在受到青睞。我在其他照片中也觀察到了這一點。在我自己的測試中,我需要「交換」0.98和0.02,這表明加速度計數據正在受到青睞,以獲得類似的結果。我是否完全誤解了這個過濾器的工作原理? 「贊成」加速計數據是否正常?此外,當物體的角度需要長時間監測時,陀螺儀數據不會因爲漂移太大而變得無用,濾波器如何補償?

回答

0

我意識到我出錯的地方。 我本來只使用陀螺儀數據計算角度,並在濾波器中使用。即

GyroAngle += d°/s * time_between_cycles 
FilteredAngle = 0.98*GyroAngle + 0.02*AccelerometerAngle 

相反,我應該已經做了:

FilteredAngle = 0.98*(FilteredAngle + d°/s * time_between_cycles) + 0.02*AccelerometerAngle 

這樣做取得了更好的結果