辅助团队蓝牙室内定位项目实现的计步器
场景包括走/跑/放手上/放裤袋里
在我的华为手机上测试上述场景的误差皆可小于3%
暂时没有手机后台、熄屏、锁定后的处理
- 三向加速度平方和开根做输入
- 波峰波谷的判定(连续上升、上升阀值等)
- 波峰时间差需要大于某个值
- 峰谷差值需要大于峰谷阀值
- 峰谷阀值是动态改变的(根据场景判定)
- 满足条件的波峰就是一步
- 传感器值采集的速度 - SensorManager.SENSOR_DELAY_UI
- 波峰判定中的连续上升次数lastContinueUpCount - 2
- 波峰判定中,没达到连续上升次数但可能是一次很大的上升值,判定该上升值的阀值 - 20
- 波峰时间差判定 - 250ms
- 参与峰谷阀值计算的阀值judgeValue - 1.3
- 重新计算峰谷阀值的峰谷差值累计个数arrayNum - 4
- 梯度化阀值中的梯度值和阀值设定 - averageValue()
测试走路、跑步、手机位置等多种场景,设定好不同场景的梯度,再设定阀值
步数多判断了就尝试提高阀值,少判断了就尝试降低阀值 - 计步累计启动步数 - 5