使用加速度计获取高度距离

4
我已经搜索了数小时,仍然没有找到我的问题的明确答案。 情景如下:用户尽可能高地扔出一部iPhone手机,我想测量iPhone上升的高度。 我想使用Core Motion的加速计,并已经成功实现了一个简单的系统,可以给我三轴上的加速度数据。然而,这只是加速度。 根据我的物理知识,计算最大高度的公式是(V0^2)/2*g,其中V0是初始速度。 我有加速度值,但需要将其转换为速度值或者直接从加速计中获取速度值,请问是否有任何想法呢? 我知道这不完全涉及编程,但我只是想在这方面得到些帮助 :)
2个回答

0

问题:

在物理计算中,除了速度,还有一些问题需要解决才能得到结果。

  1. 投掷角度相对于重力方向的。如果不知道这个角度,就无法知道相对垂直距离。
  2. 投掷过程中参考系的方向(你不能从设备本身的加速度中推断出速度,除非考虑到手机加速时旋转的变化)。

但是!你可以决定假设某些事情,以使这些烦人的问题消失!

合理假设:

  1. 设备在被抛出后又被接住,并且相对高度与抛出时相同。

这个假设将问题简化为一个更简单的问题,我们只需要找到自由落体时间的持续时间,即可确定相对抛出高度。

你所需要做的:

判断设备是否处于自由落体状态相对容易,因为总重力将近为 0 m/s^2。

然而,这仍然存在一个小问题,因为加速度计可能不在手机的重心上,所以它将在自由落体过程中沿着一个特定方向经历恒定加速度(如果手机围绕自身旋转)。
基于空中停留时间确定垂直抛掷高度的数学问题留给读者作为练习 :-)

0

首先,已经有一个应用程序完全符合您的要求:Send Me To Heaven。您在苹果应用商店中找不到它,因为它从未通过审核,猜猜为什么;-)

正如您所述,您只能访问加速度。h = v02/(2*g) 是正确的。要获取起始速度v0,您需要通过时间数值积分加速度。最棘手的部分将是找到确定时间间隔[t1, t2]的必要和充分条件。加速阶段何时开始,何时结束。

另一件要考虑的事情是避免欺骗用户,他们只需围绕自己的轴旋转几秒钟,然后模拟飞行阶段。在那里,您可能还需要考虑着陆阶段:当用户抓住设备时,您应该注册强烈的减速。

但是,请不要期望此应用程序能够进入商店,在Google Play上,竞争对手更快。


我看到了,我的想法现在破灭了 :( - BalestraPatrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接