React native 如何从本机传感器中的加速度计值中减去重力

React native 如何从本机传感器中的加速度计值中减去重力,react-native,react-native-sensors,React Native,React Native Sensors,来自API文档 值得注意的是,地球引力并没有从感知值中移除。根据手机的位置,如果您对原始值感兴趣,则需要从值中减去该值 我试图将react原生传感器与MaximilianBuegler/node计步器相结合,但给出的数据似乎不适合node计步器库,也不确定如何调整它。 只是想知道输出中包含的重力值是否是原因。您需要实现文档中描述的方法 这意味着对于React本机传感器,您应该能够执行以下操作: new Accelerometer.pipe(scan((acc, curr) => {

来自API文档

值得注意的是,地球引力并没有从感知值中移除。根据手机的位置,如果您对原始值感兴趣,则需要从值中减去该值

我试图将react原生传感器与MaximilianBuegler/node计步器相结合,但给出的数据似乎不适合node计步器库,也不确定如何调整它。
只是想知道输出中包含的重力值是否是原因。

您需要实现文档中描述的方法

这意味着对于React本机传感器,您应该能够执行以下操作:

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})

我猜
curr
{x:0,y:0,z:0}
为什么我们必须通过它?在哪些情况下不是0?以下是了解扫描的好资源: