kub*_*udi 13 java android accelerometer android-emulator
我正在开发一个Android应用程序,它可以计算设备在6个方向上的移动.我想我可以使用加速;
" x = at ^ 2 "但a不是常数.这就是问题所在.如何计算总运动?
chu*_*ubs 20
加速度计为您提供三个方向(x,y,z).它们是加速度测量,很难知道设备的位置.但是,请记住加速度通过集成与位置相关:
a(t) = a[x]
v(t) = a[x]t + c
x(t) = a[x]t ^ 2 + ct + d
Run Code Online (Sandbox Code Playgroud)
问题是你无法知道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
确实,通过将线性加速度积分两次来获得位置.但错误很可怕.它在实践中毫无用处.
以下是23:20 解释原因(Google Tech Talk)的原因.我强烈推荐这个视频.
引起问题的加速度计噪声不是陀螺白噪声,请参阅6.2.3小节误差的传播.(顺便说一下,你也需要陀螺仪.)
类似的问题是由Accelerometer移动的距离.
| 归档时间: |
|
| 查看次数: |
32728 次 |
| 最近记录: |