我想現在從Matlab應用程序中提取的信息,記錄加速度計,陀螺儀和磁力計的輸出。當我需要找到線性加速度時,我假設我可以從加速度計中考慮重力來計算它。我認爲應該可以通過檢查基於磁力計輸出(地球磁場)的手機方位來找到。但是我無法用任何公式得到正確的結果。我說得對,有可能通過磁力計找到重力矢量嗎?如果是這樣,我應該如何解讀傳感器讀數?從智能手機後處理傳感器讀數 - 重力從計算器計算
1
A
回答
0
不,不可能從磁力計找到重力。
你要找的是所謂傳感器融合。我已經實現傳感器融合,基於此稿件Shimmer platform,它基本上是一個教程:
Direction Cosine Matrix IMU: Theory
另一種資源,我強烈建議是Sensor fusion on Android devices.
但是爲什麼你自己做的嗎? SensorManager已經提供你想要的。
0
您可以通過對加速度計值執行低通濾波器來獲得線性加速度,以獲取重力,然後從重力中減去加速度計值。下面的代碼是從http://developer.android.com/reference/android/hardware/SensorEvent.html
public void onSensorChanged(SensorEvent event)
{
// alpha is calculated as t/(t + dT)
// with t, the low-pass filter's time-constant
// and dT, the event delivery rate
final float alpha = 0.8;
gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
linear_acceleration[0] = event.values[0] - gravity[0];
linear_acceleration[1] = event.values[1] - gravity[1];
linear_acceleration[2] = event.values[2] - gravity[2];
}
相關問題
- 1. 我的算法來計算智能手機的位置 - GPS和傳感器
- 2. .NET性能計數器監視計算機的計算能力
- 3. 我要計算使用壓力傳感器和計步器
- 4. 智能手機中的傳感器
- 5. 智能手機網格計算
- 6. 通過智能手機的藍牙傳感器的力量android
- 7. 智能手機中的壓力傳感器
- 8. 讀取數據從計算機到計算機
- 9. 重力計算
- 10. 準確的智能手機傳感器Android
- 11. 如何從傳感器數據計算速度?
- 12. 計算傳感器讀數中的位數(Arduino)
- 13. 安卓手機中的磁力計傳感器獲取路線
- 14. 使用傳感器計算脈率
- 15. 計算的Android傳感器功耗
- 16. 如何編寫邏輯在單獨的計算機上處理Arduino傳感器
- 17. 地理定位的智能手機與GPS傳感器
- 18. 從手機訪問您的計算機
- 19. 處理 - 關閉計算機
- 20. 電力/能源法案計算器:Java
- 21. 通過計算機從服務器訪問RFID閱讀器
- 22. 壓力傳感器重量傳感器
- 23. 在XNA中計算重力
- 24. 從Windows 2000服務器計算機
- 25. 從'計算機'訪問USB驅動器
- 26. C#從計算機
- 27. 的Android 4.0.3智能手機用作計算機
- 28. 智能手機和平板電腦 - 插入計算機
- 29. 手機賬單計算器C
- 30. 計算傳感器數據(電容式傳感器)的平均值
我認爲你需要某種形式的校準時間。例如一段時間,電話被認爲是靜止的。然後你得到兩個矢量,一個用於重力加速度,另一個用於磁場的磁場。 – Ifor 2013-03-18 14:06:03
但我有一個實際測量線性加速度的應用程序,它沒有校準似乎是正確的。它是如何做到的? – Danio 2013-03-18 14:32:18