Определение расстояния, пройденного автомобилем, с использованием данных акселерометра наряду с фильтрацией Калмана

#physics #accelerometer #kalman-filter

Вопрос:

В настоящее время я оцениваю положение автомобиля с помощью фильтрации Калмана с использованием GPS,магнитометра и импульсного вращения колеса. Я использую магнитометр и импульс вращения колеса(для расстояния я знаю, какое расстояние охватывает каждый импульс), чтобы предсказать следующее положение, и я корректирую его с помощью данных GPS. Пока все хорошо. Проблема в том, что некоторые машины не дают мне импульса вращения колеса, поэтому мне приходится искать другой источник для расстояния. Устройство, которое я использую, также имеет 3-осевой акселерометр, поэтому мне было интересно, могу ли я использовать акселерометр для определения расстояния, чтобы предсказать следующее положение. Я осознаю интегральную ошибку, которая накапливается с течением времени, но здесь, поскольку меня интересует только абсолютное расстояние, а не суммарное расстояние, интегральная ошибка не должна иметь значения, верно?

Если этого можно достичь — у меня есть 2 вопроса

  1. Поскольку для оценки расстояния до автомобиля направление z акселерометра, я полагаю, не требуется, поэтому для измерения расстояния будет достаточно использовать только параметр x данных акселерометра?
  2. Кроме того, следует ли мне использовать следующее уравнение для расстояния, кроме двойного интеграла? Смещение = u* t (a t t), где u-начальная скорость, a — ускорение, а t — время

Пример кода для выполнения интеграции на c также будет очень полезен

Комментарии:

1. эти вопросы не связаны с c или кодированием, верно?

2. Извини, совсем забыл об этой части. Отредактировал вопрос, чтобы включить аспект вопроса на c

3. запрос кода не рассматривается по теме

Ответ №1:

«пройденное расстояние» — это нечто иное, чем «положение», если вы находитесь на кольцевой развязке.

Мой спутниковый навигатор даже игнорирует изменения скорости во время движения в туннеле или при других проблемах с получением GPS-сообщения. Но это предполагает, что я останусь на дороге.

Да, интеграция выполняется добавлением термина (v * dt) и, в конечном счете, добавлением (a * dt) к v.

И да, это не имеет никакого отношения к arduino c теме и скорее не относится к теме.