Обнаружение стиля вождения с использованием датчиков смартфона
Я хочу измерить ускорение (переднее и боковое раздельно), используя устройство Android-смартфон, чтобы иметь возможность анализировать поведение / стиль вождения.
Мой подход будет следующим:
1. Выравнивание систем координат
Калибровка (без движения / первого движения): пока машина стоит на месте, я бы рассчитал величину силы тяжести, используя Sensor.TYPE_GRAVITY
и поверните его прямо к оси z (указывая вниз, предполагая плоскую поверхность). Таким образом, углы тангажа и крена должны быть близки к нулю и равны углам автомобиля относительно мира.
После этого я бы начал двигаться прямо вперед с машиной, чтобы получить первую индикацию движения, используя Sensor.TYPE_ACCELEROMETER
и поверните эту величину прямо к оси х (указывая вперед). Таким образом, угол поворота должен быть равен отношению курса автомобиля к миру.
Обновить ориентацию (во время вождения): чтобы иметь возможность сохранять системы координат во время вождения, я собираюсь использовать Sensor.TYPE_GRAVITY
поддерживать крен и шаг системы через
где A_x,y,z - ускорение силы тяжести.
Обычно угол рыскания будет поддерживаться с помощью Sensor.ROTATION_VECTOR
или же Sensor.MAGNETIC_FIELD
, Однако причина, по которой они не используются, заключается в том, что я собираюсь использовать приложение и в электромобилях. Предполагается, что высокие значения вольт и ампер, создаваемые двигателем, могут повлиять на точность значений этих датчиков. Следовательно, лучшая альтернатива, которую я знаю (хотя и не оптимальная), это использование курса GPS для поддержания угла рыскания.
2. Получение измерений
Применяя все вышеупомянутые повороты, можно обеспечить выравнивание между системами координат смартфона и транспортного средства и, следовательно, дать мне чистые значения прямого и бокового ускорения на осях X и Y.
Вопросы:
- Этот подход применим или я что-то упустил?
- Есть ли более простой / альтернативный подход к этому?
1 ответ
Что касается определения ускорения, если у вас есть доступ к исходному коду GPS, не могли бы вы найти движение вперед путем вычисления расстояния / времени по GPS?
Если цель состоит в том, чтобы найти поведение и стиль вождения, я мог бы представить сбор большого набора данных и затем использовать кластерный алгоритм a k означает, что для сортировки данных, за которыми следует lstmRNN (для прогнозирования), может быть другой метод. (Хотя для этого требуется, чтобы у вас были данные из большого набора, я не знаю, возможно ли это, и при этом я не знаю, какие факторы вы хотели бы включить в свой набор данных).
Звучит как интересная проблема, хотя.