如何找到陀螺仪和加速度计的距离?

Ruc*_*ile 44 iphone distance accelerometer gyroscope

我想构建一个应用程序,使用陀螺+加速度计计算iPhone(非长距离)的准确行进距离.这里不需要GPS.

我该如何处理这个问题?

drl*_*mon 78

这个问题背后的基本微积分就是表达式

在此输入图像描述

(以及y和z中位移的类似表达式)和基本几何是毕达哥拉斯定理

在此输入图像描述

因此,一旦你的加速度计信号通过一个低通滤波器并在采样间隔dt中及时分箱,你就可以找到x中的位移(原谅我的......)

float dx=0.0f;
float vx=0.0f;
for (int i=1; i<n; i++)
 {
   vx+=(acceleration_x[i-1] + acceleration_x[i])/2.0f*dt;
   dx+=vx*dt;
 }
Run Code Online (Sandbox Code Playgroud)

dy和dz同样如此.这里

float acceleration_x[n];
Run Code Online (Sandbox Code Playgroud)

包含从测量开始到结束的x加速度值,时间为0,dt,2*dt,3*dt,...(n-1)*dt.

要找到总排水量,你就可以了

dl=sqrt(dx*dx + dy*dy + dz*dz);
Run Code Online (Sandbox Code Playgroud)

陀螺仪不是必需的,但如果您正在测量线性距离,则可以使用陀螺仪读数来控制设备的旋转不会太大.如果旋转太强,请让用户重新进行测量.


Ali*_*Ali 43

通过将线性加速度积分两次得到位置,但误差很大.它在实践中毫无用处.

以下是23:20 解释原因(Google Tech Talk)的原因.我强烈推荐这个视频.

类似的问题:


更新(2013年2月24日):@西蒙是的,如果您对运动有更多了解,例如行走的人和传感器在他的脚上,那么您可以做更多的事情.这些被称为

     领域特定的假设.

如果假设不成立并且实施起来非常麻烦,它们会惨遭打破.然而,如果他们工作,你可以做有趣的事情.在室内定位中查看我的答案Android加速度计精度(惯性导航)中的链接.

  • 我不认为他们解释任何事情.他说:"有一些方法可以改善线性运动估计...但任何类型的方向误差都非常重要,各种误差都会耦合,包括加速度计和陀螺仪之间的交叉轴误差".对我来说,看起来他们只是不知道发生了什么,因为如果他们这样做,他们可以提出一些建议,以使结果更好.感谢您的视频,非常丰富!当我有时间时,我将不得不玩那个加速度计. (2认同)

Kay*_*Kay 5

您应该使用简单iPhone动作检测中描述的Core Motion界面.特别是可以非常精确地跟踪所有旋转.如果你计划做一些与线性运动有关的事情,这是非常困难的事情.看看使用Core Motion获取加速度计数据的位移.


Rap*_*tor -1

这就是答案。之前有人问过。

有一个名为RangeFinder的应用程序可以做同样的事情(在 App Store 中可以找到)。


归档时间:

查看次数:

60164 次

最近记录:

9 年,4 月 前