我正在尝试实施一款健身应用程序,可以跟踪Android中的运行速度和运行距离。
看起来我可以使用GPS或Accelerometer来计算这些信息。
由于跑步者可能将手机放在肩上或口袋里,我的第一个直觉是使用GPS获取位置并计算跑步速度和跑步距离。但最近有人告诉我,我也可以使用Accelerometer。
我的问题是:在Android中,哪种方法更适合计算跑步速度和跑步距离,GPS或加速度计?
答案 0 :(得分:7)
我怀疑计步器是基于加速度计的,因为加速度计比GPS使用便宜。事实上,我认为很多计步器甚至都没有尝试测量距离。只是步伐加速颠簸。然后,如果他们给你一个距离测量,那就是将检测到的步数乘以猜测或平均步长。
GPS(如果您在其工作的区域!)将对距离进行非常好的测量。即使使用非常便宜的GPS接收器。一切都基本没问题,你应该期望开始和结束位置在10米以内,所以对于1公里的旅行,你有20米的不确定性,这是2%的总距离不确定性。这种不确定性随着行进距离线性下降(即2公里跑步将有1%不确定性,4公里跑步将具有0.5%不确定性等)这里的问题将与您的实时显示(卫星切换的GPS位置跳跃给出大量速度值) ,或立即丢失信号,导致所有可立即显示的数据丢失)
我认为使用良好的加速度计,从停止开始,您可以不断整合信号以获得速度,并不断整合该结果以获得距离...我只是不确定您在任何给定的手机中获得什么样的加速度计质量?您可能需要过滤噪音甚至垃圾数据。您还需要考虑它具有的准确性。传感器的准确度为20%会导致距离跟踪器非常糟糕。因此,您可能需要使用步数和步长估计。
也许两者的结合可行吗?
我很想使用加速度计数据(根据总是工作的积分或步数计算)来在短时间内跟踪速度和距离,然后在更长的时间范围内,可以使用广义GPS数据来纠正或缩放来自加速度计的数据。特别是如果您在任何给定时间基于不确定性测量过滤/阻止GPS数据。
答案 1 :(得分:4)
除了Julian所说的......通常GPS在屋顶下不起作用,因此对于室内健身房来说它不起作用。从理论上说,GPS信号不受云的困扰,但是当我在GPS应用程序上工作时,我遇到了在恶劣天气下无法使用GPS信号的经历(这可能不是你的情况,因为在暴风雨中没有人会继续慢跑:D) 同意朱利安,你应该使用GPS和加速度计为每种条件构建一个可靠的应用程序。
答案 2 :(得分:3)
通过传感器融合,使用两者获得最佳效果。参见:
Android accelerometer accuracy (Inertial navigation)
如果您只使用GPS或计步器算法,则会出现准确性问题。
答案 3 :(得分:2)
我所知道的所有计步器都基于加速度计。我猜,GPS对于这些东西来说不够精确。当你做了一些步骤时,它可能会说“没有动作”,它也取决于你试图使用它的区域。