GPS 对比加速度计计算距离

2024-04-13

我正在尝试实现一个健身应用程序,可以在Android 中跟踪跑步速度和跑步距离。

看起来我可以使用 GPS 或加速度计来计算这些信息。

由于跑步者可能会将手机放在手里、放在肩膀上或放在口袋里,所以我的第一直觉是使用 GPS 获取位置并计算跑步速度和跑步距离。但最近有人告诉我,我也可以使用加速度计也能做到这一点。

我的问题是:在Android中,哪种方法更好地计算跑步速度和跑步距离,GPS还是加速度计?


我怀疑计步器是基于加速计的,因为加速计的使用成本比 GPS 便宜。事实上,我认为很多计步器甚至不尝试测量距离。只是加速度颠簸等于步数。然后,如果他们给你一个距离测量值,那就是将检测到的步数乘以猜测的或平均步长。

GPS(如果您位于它工作的区域!)可以很好地测量距离。即使使用非常便宜的 GPS 接收器。一切都基本正常,您应该预计起点和终点位置在 10m 以内,因此对于 1km 的行程,您有 20m 的不确定性,即总距离不确定性的 2%。这种不确定性随着行驶距离线性下降(即 2 公里跑步将有 1% 的不确定性,4 公里跑步将有 0.5% 的不确定性等),这里的问题将是您的实时显示(卫星切换产生的 GPS 位置跳跃,给出大量的速度值) ,或信号立即丢失,导致所有可立即显示的数据丢失)

我认为,有了一个好的加速度计,从停止开始,您可以不断积分信号以获得速度,并不断积分结果以获得距离......我只是不确定您在任何给定手机中获得什么样的加速度计质量?您可能需要过滤噪音甚至垃圾数据。并且您还需要考虑它的准确性。如果传感器的精度为 20%,那么距离跟踪器的性能就会非常差。因此,您可能必须使用步数计数和步长估计。

也许两者的结合可以发挥作用?

我很想使用加速度计数据(积分或计步,具体取决于什么总是有效)在短时间内跟踪速度和距离,然后在更长的时间范围内,可以使用广义 GPS 数据来校正或缩放该数据来自加速度计。特别是如果您在任何给定时间根据不确定性测量过滤/阻止 GPS 数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GPS 对比加速度计计算距离 的相关文章

随机推荐

  • 如何使用 Angular-CLI 重写反向代理中的路径?

    我已经使用 angular2 CLI 设置了反向代理 如下所示 api customer target http localhost 9010 secure false 我的问题是远程 API 在路径 customer 上公开服务 但反向代
  • 单节点图对forceCenter没有反应?

    我正在启动一个带有单个节点的图形项目 当我将它拖到某个地方时 我希望它能顺利回到 svg 的中心 但事实并非如此 它glitches回到中心 var simulation d3 forceSimulation force center d3
  • SBT停止运行而不退出

    如何在不退出的情况下终止 SBT 中的运行 我正在尝试 CTRL C 但它退出 SBT 有没有办法在保持 SBT 打开的情况下仅退出正在运行的应用程序 从 sbt 版本 0 13 5 开始 您可以添加到您的 build sbt cancel
  • 使用 Sikuli 进行拖放

    我在使用 Sikuli 拖放时遇到问题 我想在任何其他方向 上 下 左 右 拖动某些东西固定数量的像素 这看起来应该有效 t find 1325249963143 png dragDrop t t x 100 t y 100 Sikuli
  • 在 Eclipse 中导入动态 Web 项目?

    我使用 eclipse 3 6 2 Helios 和 tomcat 7 和 myfaces 1 2 10 当我想导入动态 Web 项目时遇到问题 我在工作区中导入项目并执行配置并设置 jar 文件 但是当我在 tomcat 中运行该项目时
  • 我希望我的字段只接​​受整数,并且我已将该字段保留在所需的验证中? [复制]

    这个问题在这里已经有答案了 我已经完成了我的完整项目 但它缺少这一要求 我自己无法在我的项目中解决这个问题 你会使用CodeIgniter吗表单验证 http ellislab com codeigniter user guide libr
  • 为什么 Service Worker 只能通过 HTTPS 工作?

    根据最初的提案 关于 更喜欢安全来源以获得强大的新功能 http www chromium org Home chromium security prefer secure origins for powerful new features
  • Android Studio 与 ndk 和 googletest

    我正在尝试设置我的 CI 服务器以与 Android Studio 一起使用 我希望通过新的 UI 运行 NDK 的单元测试 我正在使用 GoogleTest 当我从命令行构建时 gcov 可以完美地实现代码覆盖率 我遇到的问题是 UI 中
  • 当名称的开头保持相同而结尾不同时,将 CSS 样式应用于 ID 元素

    在 WordPress 中 博客文章的标题通常使用 ID 元素进行格式化 该 ID 元素由永远不会变化的前缀 例如 post 组成 后跟 WordPress 生成的可变数字后缀 对应于唯一的连续帖子编号 每个帖子 在 WordPress 主
  • 根据其中一个字段对元组进行排序

    我的问题与下面的问题相同 但答案很模糊 我不明白如何进行 将 List 从最高到最低排序 https stackoverflow com questions 4017728 sort a listtuple from highest to
  • 将 JSON 数据的 NSString 转换为 NSArray [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个N
  • 多线程和CPU缓存

    我正在使用多个线程在 C 中实现图像过滤操作 并使其尽可能优化 但我有一个问题 如果线程 0 访问内存 并且同时线程 1 访问同一内存 它会从缓存中获取它吗 这个问题源于这两个线程可能运行在 CPU 的两个不同内核中的可能性 因此 另一种说
  • 假设没有非时间指令,“xchg”是否包含“mfence”?

    我已经看过了这个答案 https stackoverflow com a 50279772 391161 and 这个答案 https stackoverflow com a 19099164 391161 但似乎都没有清楚明确地说明等价或
  • Intellij IDEA:未命中断点,并显示为灰色

    在 Mac OS X 上运行 JDK 1 7 时 我的项目上的断点突然不起作用 并且显示为灰色 他们今天早些时候在工作 所以不确定我做了什么导致了这种情况 我正在使用 Intellij 13 1 3 为什么断点会像这样停止工作 天哪 我刚刚
  • php数组计数与动态结果

    我正在尝试计算从脚本返回的数组的结果 有两种情况我可以找回选项a是 Array Id gt 1779 SupplierId gt 1809 SupplierName gt cccccc 和第二个选项 ib Array 0 gt Array
  • 在delphi中禁用窗体大小调整

    有什么方法可以阻止用户调整表单大小吗 目前我正在使用 当表单大小改变时 MainForm Height 761 MainForm Width 777 但这看起来很可怕 因为当用户尝试更改表单大小时它会闪烁 固定尺寸很简单 你有两个选择 De
  • Cassandra Nodetool URISyntaxException:“索引 7 处的 IPv6 地址格式错误”

    Cassandra nodetool 更新 OpenJDK 后抛出错误 nodetool status nodetool Failed to connect to 127 0 0 1 7199 URISyntaxException Malf
  • 什么是托管代码和非托管代码? [复制]

    这个问题在这里已经有答案了 我发现有人说托管代码和非托管代码 有什么不同 它仅适用于 Net吗 你可以阅读这篇维基百科文章 托管代码 http en wikipedia org wiki Managed code 基本上托管代码是一个微软术
  • Box2D - b2body GetUserData 始终返回 null

    我正在尝试根据 box2d 中的 b2body 调整精灵的位置和旋转 创建主体后 我将 userData 属性设置为保存精灵和位置等的主体对象的属性 问题是在勾选方法 b gt GetUserData 中永远不会检索我放入其中的对象 你能看
  • GPS 对比加速度计计算距离

    我正在尝试实现一个健身应用程序 可以在Android 中跟踪跑步速度和跑步距离 看起来我可以使用 GPS 或加速度计来计算这些信息 由于跑步者可能会将手机放在手里 放在肩膀上或放在口袋里 所以我的第一直觉是使用 GPS 获取位置并计算跑步速