Найти движение устройства - PullRequest
0 голосов
/ 07 февраля 2019

Я работаю над проектом, который требует нахождения шаблонов, сделанных движением устройства (например, качели в гольфе).Я много искал и до сих пор не могу получить какую-либо предварительно упакованную библиотеку для этого.Сейчас я пытаюсь построить один с нуля.Чтобы сделать это, я получил данные гироскопа с устройства, чтобы найти эти образцы, но пока безуспешно.Это случаи, которые я упоминал в скорлупе ореха.

  • Случай 1: Найдите волновое движение, похожее на удар в гольф.
  • Случай 2: нанесите это движение на трехмерную плоскость, чтобы пользователь мог просмотреть движение устройства.

Текущий исходный код (данные с гироскопа)

    float[] values = event.values;

    // Movement
    float x = values[0];
    float y = values[1];
    float z = values[2];

    xAxis.setText("X : " + (int)x + " rad/s");
    yAxis.setText("Y : " + (int)y + " rad/s");
    zAxis.setText("Z : " + (int)z + " rad/s");

    boolean waveFactor = (((int)z) > 3) && (((int)x) > 1);
    if(waveFactor) {
        Toast.makeText(context, "Horizontal wave success", Toast.LENGTH_SHORT).show();
    }

Любая помощь / направление приветствуется.

1 Ответ

0 голосов
/ 07 февраля 2019

Гироскопа недостаточно для ваших планов.Вам также понадобятся данные акселерометра.А также учтите, что информация об оси события находится в системе координат, привязанной к устройству, а не к реальному миру.Таким образом, вам потребуется более сложный код для обнаружения и оценки движения.Я сделал несколько небольших проектов для записи и отображения данных, полученных с помощью БПФ, с акселерометра.Не стесняйтесь черпать вдохновение из этого.

https://github.com/ko5tik/accmeter/blob/master/src/main/java/de/pribluda/android/accmeter/Sampler.java

https://github.com/ko5tik/accanalyser

...