#physics #accelerometer #kalman-filter
Вопрос:
В настоящее время я оцениваю положение автомобиля с помощью фильтрации Калмана с использованием GPS,магнитометра и импульсного вращения колеса. Я использую магнитометр и импульс вращения колеса(для расстояния я знаю, какое расстояние охватывает каждый импульс), чтобы предсказать следующее положение, и я корректирую его с помощью данных GPS. Пока все хорошо. Проблема в том, что некоторые машины не дают мне импульса вращения колеса, поэтому мне приходится искать другой источник для расстояния. Устройство, которое я использую, также имеет 3-осевой акселерометр, поэтому мне было интересно, могу ли я использовать акселерометр для определения расстояния, чтобы предсказать следующее положение. Я осознаю интегральную ошибку, которая накапливается с течением времени, но здесь, поскольку меня интересует только абсолютное расстояние, а не суммарное расстояние, интегральная ошибка не должна иметь значения, верно?
Если этого можно достичь — у меня есть 2 вопроса
- Поскольку для оценки расстояния до автомобиля направление z акселерометра, я полагаю, не требуется, поэтому для измерения расстояния будет достаточно использовать только параметр x данных акселерометра?
- Кроме того, следует ли мне использовать следующее уравнение для расстояния, кроме двойного интеграла? Смещение = u* t (a t t), где u-начальная скорость, a — ускорение, а t — время
Пример кода для выполнения интеграции на c также будет очень полезен
Комментарии:
1. эти вопросы не связаны с c или кодированием, верно?
2. Извини, совсем забыл об этой части. Отредактировал вопрос, чтобы включить аспект вопроса на c
3. запрос кода не рассматривается по теме
Ответ №1:
«пройденное расстояние» — это нечто иное, чем «положение», если вы находитесь на кольцевой развязке.
Мой спутниковый навигатор даже игнорирует изменения скорости во время движения в туннеле или при других проблемах с получением GPS-сообщения. Но это предполагает, что я останусь на дороге.
Да, интеграция выполняется добавлением термина (v * dt) и, в конечном счете, добавлением (a * dt) к v.
И да, это не имеет никакого отношения к arduino
c
теме и скорее не относится к теме.