如何从React Native Sensor中的加速度计值中减去重力

时间:2019-01-17 16:56:30

标签: react-native react-native-sensors

来自API文档

  

有趣的是,地球的重力并未从感官值中消除。如果您对原始值感兴趣,则需要根据电话的位置从值中减去该值。

我正在尝试将本机传感器与MaximilianBuegler / node-pedometer结合使用,但看起来给定的数据对于node计步器库来说是不正确的,并且不确定如何适应它。 只是想知道输出中包含的重力值是否是原因。

1 个答案:

答案 0 :(得分:1)

您需要实现Android API文档中所述的方法。

这意味着对于React Native Sensors,您应该能够执行以下操作:

new Accelerometer.pipe(scan((acc, curr) => {
      // alpha is calculated as t / (t + dT)
      // with t, the low-pass filter's time-constant
      // and dT, the event delivery rate

      final float alpha = 0.8;

      const x = alpha * acc.x + (1 - alpha) * curr.x;
      const y = alpha * acc.y + (1 - alpha) * curr.y;
      const z = alpha * acc.z + (1 - alpha) * curr.z;

      return {x,y,z}; 
}, {x:0,y:0,z:0})