我正在尝试实施一个能够跟踪
Android中运行速度和运行距离的健身应用程序.
看起来我可以使用GPS或加速度计来计算这些信息.
由于跑步者可以将手机放在手上,肩膀上或口袋里,所以我的第一个直觉是使用GPS来获取位置并计算跑步速度和跑步距离.但是最近有人告诉我,我也可以使用Accelerometer也这样做.
我的问题是:在Android中,哪种方法更好地计算运行速度和运行距离,GPS或加速度计?
解决方法
我怀疑计步器是基于加速度计,因为加速度计比GPS便宜.其实我觉得很多计步器甚至没有尝试测量距离.只是加速颠簸等同的步骤.然后如果他们给你一个距离测量,它是通过将检测到的步骤乘以一个猜测或平均步长.
GPS(如果你在一个工作的区域)将做一个非常好的距离测量.即使有一个非常便宜的GPS接收器.一切基本上都可以,你应该期望开始和结束位置在10m以内,所以在1km的旅行中,你有20m的uncertianty,这是2%的总距离uncertianty.这个不确定性与旅行距离线性下降(即2公里跑步将有1%的不准确,4公里跑步将有0.5%的不准确等),这里的问题将与您的实时显示(GPS位置从卫星切换提供巨大的速度值,或立即丢失信号,丢失所有立即显示的数据)
我认为,使用良好的加速度计,从停止开始,您可以不断地整合信号以获得速度,并持续集成该结果以获得距离…我只是不确定在任何给定的手机中得到什么样的加速度计质量?您可能需要过滤噪声甚至垃圾数据.您还需要考虑其具有的准确性.您的传感器的精确度可达20%,可能会造成非常差的距离跟踪.所以你可能需要使用步数和步长guesstimates.
或许两者的结合可以起作用?
我会试图使用加速度计数据(根据总是工作的方式进行积分或计数)来跟踪速度和距离在短时间内,然后在更长的时间内,广义GPS数据可用于校正或缩放数据从加速度计.特别是如果您在任何给定的时间过滤/阻止基于非严格测量的GPS数据.