LINUX.ORG.RU
ФорумTalks

Обработка данных с IMU

 


0

1

Сабж. Кто-нибудь еще писал обработку данных с IMU? MPU-9250 и подобные. Как вы вычисляли текущую ориентацию?

У меня есть некие наработки по теме и гуглопоиск, но интересно узнать, кто еще как делал. Алгоритмов там довольно много

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 1)

Делал вычисление ориентации используя другие МЕМС датчики. Для уменьшения ошибок использую комплиментарный фильтр как самый простой вариант, т.к. Калмана так и не смог пока понять.

Вот мои заметки по текущей работе http://www.oshec.org/projects/pi-pilot/wiki

Тут код для акселерометра https://gitlab.com/pitman/pi-pilot/blob/master/main.c#L909

Данные привожу к физ.значению, нормализую и вычисляю углы Эйлера.

После получения данных с гироскопа тут https://gitlab.com/pitman/pi-pilot/blob/master/main.c#L964

Вычисляю углы поворота с гироскопа и ниже высчитываю комплиментарный фильтр.

pitman
()

Фильтром Калмана, разумеется, по данным от акселерометра, магнитометра (компаса) и гироскопа.
Неосиляторы не нужны.

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

Еще от GPS/Глонасс и барометра. Вопрос в том, кто как именно обрабатывает. Разных вариантов довольно дофига.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от pitman

Центробежную силу учитываешь?

Когда крен/тангаж 90 градусов, не лезут ли ошибки?

Когда курс переходит через 360, ты его обнуляешь или продолжаешь увеличивать?

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Центробежную никак не учитываю, при 90 градусах все плохо, но для ЛА типа моторный планер/квадрокоптер это значит что все, приехали никто никуда уже не летит. Курс высчитываю и отрезаю лишнее если за 360 выходит или меньше нуля.

Текущий гироскоп уплывает от температуры, если крен и тангаж можно компенсировать акселерометром, то курс постоянно плавает. Для уменьшения уплывания делаю калибровку, уменьшает, но все же есть. Надо делать температурную компенсацию и т.п.

Для удержания высоты делают похожий фильтр с данными акселерометра и барометра. Но надо более точный барометр, текущий BMP085 имеет ошибку 1м, надо переезжать на MS5611 у него около 10см.

pitman
()
Ответ на: комментарий от pitman

Попробуй не углы хранить, а кусок матрицы поворота. Тогда часть описанных проблем уйдет. Но понадобится подправлять ортонормированность.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от pitman

Насчет 90 - фигуры пилотажа включают в себя и перевороты. Да и помимо этого такое бывает. Например выключили двигатели у квадрика, а перед землей включили. Емнип, такое не любят делать исключительно из за говно-алгоритмов, обрабатывающих imu

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Да сам понимаю что надо переходить на кватернионы и более совершенные алгоритмы. Но в этом надо разобраться чтобы понимать что и как работает. И для убыстрения понимания нужен кто-то кто будет отвечать на мои тупые вопросы.

pitman
()
Ответ на: комментарий от cvs-255

Ну до фигур пилотажа пока далеко. Пока просто на безмоторном планере спланировать без падения хотелось бы. Потом пролететь по точкам и т.д. Хорошую математику осиливают не все. Попробуй поглядеть код Pixhawk.

pitman
()
Ответ на: комментарий от pitman

Потом пролететь по точкам и т.д.

Если хочешь полностью автономный полет, тогда тебе нужна нормальная математика.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Да, задача-максимум сделать полностью автономный дрон. Про математику тоже понятно, но делать одному такой проект довольно сложно. Требуется куча времени. Поэтому приходится расставлять приоритеты, что надо сделать в первую очередь. Даже в текущей реализации он должен летать, пусть криво-косо, это допилить можно будет.

Нет предела совершенству в плане более нового процессора, датчиков и т.п. Уже есть мысли как развить это направление, но все упирается во время и деньги, не хватает ресурсов нужен зиккурат :-) .

pitman
()
Ответ на: комментарий от pitman

Про математику тоже понятно, но делать одному такой проект довольно сложно.

долго, но сложность средняя.

Нужны в первую очередь хорошие алгоритмы обработки.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Алгоритмы есть, тот же AHRS насколько я понимаю считается лучшим сейчас. Брать и реализовывать. И смотреть достаточно или нет его.

pitman
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.