我正在研究一個可以計算設備在6個方向上的運動的android應用程序。我想我可以使用加速度;使用加速度計,陀螺儀和指南針來計算3D世界中的設備運動
「x = a.t^2」但a不是常數。這就是問題所在。我如何計算總運動量?
我正在研究一個可以計算設備在6個方向上的運動的android應用程序。我想我可以使用加速度;使用加速度計,陀螺儀和指南針來計算3D世界中的設備運動
「x = a.t^2」但a不是常數。這就是問題所在。我如何計算總運動量?
加速計給你三個方向(x,y,z)。它們是加速度測量,很難知道設備的位置。但是,請記住加速通過整合相關的位置:
a(t) = a[x]
v(t) = a[x]t + c
x(t) = a[x]t^2 + ct + d
問題是你不知道c或d,因爲你採取的衍生常量輟學。所以有一些你不能正確的與c和d缺失。您可以嘗試通過記住上次使用的值來進行補償。所以抓住3個樣本後,你可以開始計算位置。
有大量關於如何解釋傳感器數據的信息。就像找出重力是在哪裏取向一樣,並減去重力以獲得線性加速度。
http://developer.android.com/reference/android/hardware/SensorEvent.html
這是一種方式來與位置使用加速度計以及一個算法詳細查找位置:
http://www.freescale.com/files/sensors/doc/app_note/AN3397.pdf
這是真的,你通過整合獲得位置線性加速兩次。 但錯誤是可怕的。在實踐中是無用的。
這裏是an explanation why (Google Tech Talk)在23:20。我強烈推薦這部影片。
這不是導致問題的加速度計噪聲,而是gyro white noise,請參見小節6.2.3傳播錯誤。 (順便說一句,你也需要陀螺儀。)
一個類似的問題是Distance moved by Accelerometer。
您將需要輪詢'a'的值並計算平均加速度,並在輪詢之間的時間段內應用該平均值。 – Bringer128
非常好奇,你是如何設法解決這個問題的,並且如果你弄懂了,那麼精確導航就是精確的。 – ina