Skip to content

v1.8.7 自适应步长+朝向低通滤波

Choose a tag to compare

@godweiyang godweiyang released this 05 Jul 07:27

v1.8.7 自适应步长 + 朝向低通滤波

改进1:自适应步长(Weinberg 算法)

  • 不再固定 0.65 米/步
  • 每步根据加速度幅值的峰值/谷值动态估算:stepLength = K * sqrt(accelMax - accelMin)
  • 步子大(跑步)→ 步长自动增大;步子小(慢走)→ 步长自动减小
  • 限制步长在 0.3 ~ 1.2 米合理范围
  • 即使有系统 TYPE_STEP_DETECTOR,也同时注册加速度计用于步长估算

改进2:朝向低通滤波

  • 用复数平均法平滑朝向读数(滑动窗口 10 个采样)
  • 避免角度绕圈问题(359°↔1° 跳变)
  • 减少瞬时抖动,缓解"走 10 步南 + 10 步北不回到原点"的漂移

诚实的局限说明

PDR(行人航迹推算)是手机室内定位的固有问题,本方案仍做不到精确还原户型:

  1. 朝向漂移:室内金属家具、电器会干扰磁力计,慢速移动时陀螺仪也会漂移
  2. 步数漏检/多检:系统步频检测偶尔会漏步或多步
  3. 步长估算误差:Weinberg 算法是经验公式,不同人/不同步伐会有偏差
  4. 无闭环修正:手机端没有"知道回到起点"的能力,误差会持续累积

如果想要精确的户型图,需要其他方案(WiFi 指纹 SLAM、蓝牙信标等),手机端纯 PDR 只能给出相对轨迹的近似。