2015-10-02 5 views
1

Я строю quadcopter, и я использую систему автопилота pixhawk с датчиком px4flow, прикрепленным для данных оптического потока. Pix4flow - это высокоскоростная интеллектуальная камера (процессор руки) со встроенным датчиком гироскопа и высоты, и он выводит линейные скорости из внутреннего алгоритма оптического потока.Как использовать расширенный фильтр kalman для слияния датчиков IMU и оптического потока?

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

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

* edit: Вот статья, описывающая блок px4flow и способ вычисления скоростей. (Забыл добавить ссылку, теперь она есть)

https://pixhawk.org/_media/modules/px4flow_paper.pdf

+0

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

+0

Я только что добавил статью, описывающую, как датчик px4flow вычисляет скорости. Я думаю, что у этой статьи есть ответ для меня, но я не могу экстраполировать его. Я разработал EKF для слияния датчиков IMU и GPS, поэтому я хорошо понимаю, как это работает. Я также изучил фильтр без фильтра, но мне все еще нужна функция измерения, чтобы использовать это. – trudesagen

ответ

2

Я буду считать (так как вы не даете никаких подробностей), что вектор состояния содержит скорость и положение в мировой системе координат. Оптический поток возвращает скорость XY в координатах тела, поэтому вам нужно вращать его в соответствии с углом рыскания, чтобы получить скорость в мировых координатах.

Если это ваш случай, то вы можете выбрать:

  • Если вектор состояния не включает в себя ориентацию, предварительно преобразовать скорость оптического потока в мировой системе координат, а затем использовать линейную модель наблюдения (нулевая матрица с в положении X, Y в векторе состояния)
  • Если вектор состояния включает ориентацию, вы можете написать полную модель наблюдения, которая преобразует между координатами мира-мира с помощью углов.

Это в основном процесс. Однако, чтобы получить лучший ответ, вы должны предоставить более подробную информацию.

 Смежные вопросы

  • Нет связанных вопросов^_^