Skip to content

v1.8.6 用步频检测PDR替代加速度积分

Choose a tag to compare

@godweiyang godweiyang released this 05 Jul 07:18

v1.8.6 用步频检测 PDR 替代加速度积分

根本问题

之前的加速度二次积分方案在室内定位不可行:

  • 传感器噪声被积分放大,导致静止时漂移
  • 重力分离不完美
  • 手机竖着拿时水平加速度主要在 z 轴,被忽略
  • 即使走动 1.5 秒,积分位移也只有几厘米,根本看不出移动

修复:改用步频检测 PDR

  • TYPE_STEP_DETECTOR 系统级步频检测(Android 4.4+,准确可靠)
  • 每检测到一步,沿当前朝向推进固定步长 0.65 米
  • TYPE_ROTATION_VECTOR 提供朝向
  • 静止时(无步数)采样点位置不变,只更新信号值
  • Android 10+ 需要 ACTIVITY_RECOGNITION 运行时权限,首次使用会弹窗请求
  • 无 STEP_DETECTOR 传感器或未授权时,回退到加速度计手动步频检测(状态机:幅值超阈值 → 等峰值 → 回落判定为一步)

注意

  • 首次启动会请求"身体活动识别"权限,授权后下次启动才能用系统步频检测
  • 本次启动如未授权,会用加速度计回退方案(准确度稍低但仍可用)
  • 采样点下方会显示"共 X 步",可确认步频检测是否生效