Как вычесть гравитацию из значений акселерометра в React Native Sensors - PullRequest
0 голосов
/ 17 января 2019

Из документации API

Может быть интересно отметить, что гравитация Земли не удалена от сенсорных значений. В зависимости от положения телефона вам необходимо вычесть это из значений, если вас интересуют необработанные значения.

Я пытаюсь объединить собственные датчики реакции с MaximilianBuegler / node-pedometer, но похоже, что приведенные данные не верны для библиотеки узлового шагомера, и не уверен, как их адаптировать. Просто интересно, являются ли значения гравитации, включенные в вывод, причиной.

1 Ответ

0 голосов
/ 17 января 2019

Вам необходимо реализовать метод, описанный в 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})
...