gpt4 book ai didi

iphone - 检测汽车加速度(iPhone 加速度计)

转载 作者:太空狗 更新时间:2023-10-30 03:23:58 28 4
gpt4 key购买 nike

我正在开发一个 iPhone 应用程序,我们试图在其中计算移动汽车的加速度。类似的应用程序已经完成了这一点(Dynolicious),但不同的是,这个应用程序是为一般城市驾驶而设计的,而不是在拖拉带上使用。

这让我们想到了 Dynolicious 幸运地避免的一个大问题:山丘。是的,山。

这有两个重要阶段:校准和实际驾驶。

我们最初的运行很简单,结果也很糟糕。在校准阶段,我在手机上取了平均力,而在运行过程中,我只是用当前力减去平均力得到这一帧的当前加速度。这样做的问题是,典型的汽车接收到的力远不止向前的力——从转弯到坑洼的一切都导致数值与实际发生的事情不同步。

下一次运行是添加条件,即 iPhone 的方向必须使屏幕朝向汽车后部。使用这种方法,我试图只跟随 z 轴上的力,但这显然会导致问题,除非 iPhone 由于重力而直接竖直放置。

后来进行了一些三角学运算,我成功地从方程式中排除了重力,因此 iPhone 实际上非常非常好地读取了汽车。

直到我撞到一个斜坡。汽车的角度一改变,我突然收到了没有意义的加速和减速,我们又一次失去了同步。

与在数学方面比我聪明得多的人交谈,得出了一个解决方案,我一直在尝试实现这个解决方案的时间比我愿意承认的要长。其步骤如下:

1) 在校准过程中,将重力作为矢量而不是大小来测量。存储该向量。2) 当小车最初向前移动时,取运动矢量并减去重力。以此为前进动力。 (暂时忽略很难做到的用户案例,让我们专注于数学:)3) 从前向矢量和重力矢量,构造一个平面。4) 每当收到力时,将其转换到所述平面上以消除侧向力等。5) 然后,使用该力、已知的重力大小和已知的向前运动方向从本质上求解三角形以获得向前矢量。

在这个新系统中造成最大困难的问题不是第 5 步,我已经到了所有数字看起来都应该如此的地步。困难的部分实际上是前向向量的检测。我正在选择幅度超过重力的矢量,然后从那里对它们进行平均并减去重力。 (我正在做一些错误检查,以确保我没有仅仅因为 iPhone 加速度计稍微关闭而使用力,这种情况发生的频率比我希望的要高)。但是,如果我绘制我正在使用的这些矢量,它们实际上会以大约 20-30 度的角度变化,这可能会导致一些严重的不准确。最终结果是该应用现在比以前更加不准确。

所以基本上 - 你们所有的数学和 iPhone 大脑 - 有明显的错误吗?任何可能更好的解决方案?有什么有用的经验吗?

奖励:为第一个找到解决方案的答案提供 250 美元的赏金。

最佳答案

你需要一个陀螺仪。否则,在山上加速的汽车有多种配置,可以在加速度计上产生完全相同的读数。他们将完全无法区分。这就是惯性导航系统结合陀螺仪和加速度计的原因。

你不能这样做的原因是爱因斯坦给出的!使用本地测量,您无法区分重力和加速度。你确实有一些有用的非局部信息——假设这里的重力和那边几码处的重力具有相同的值。但是,如果没有执行所谓的“平行传输”的方法,就无法比较两个不同位置的重力。这就是陀螺仪的作用。

忘记 250 美元,但我认为您应该为我为您节省的研发时间给我一杯啤酒。 :-)

关于iphone - 检测汽车加速度(iPhone 加速度计),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2733249/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com