LINUX.ORG.RU

Инерциальная навигационная система


0

1

Имеется микроконтроллер, к которому подключены: цифровой компас, акселерометр и гироскоп (ещё есть барометр и GPS, но они сейчас вряд ли нужны). Нужно определить свои углы наклона как можно точнее. Пока пробовал с помощью тригонометрии, но это неудобно (например, сейчас ИНС сходит с ума при перевороте кверху ногами). В какую сторону копать?

UPD: У меня есть такая идея как уйти от тригонометрии к кватернионам. Каждую итерацию создаём поправочный кватернион из показаний акселерометра и компаса (акселерометр даёт векторную компоненту, а компас скалярную - поворот вокруг своей оси). Также у нас есть основной кватернион, который и считается нашим наклоном. Каждую итерацию он крутится (с помощью умножения кватернионов) на угловую скорость помноженную на период опроса датчиков, а потом смешивается с поправочным кватернионом с помощью комплиментарного фильтра. ВОЗМОЖНО, это бред, я не математик. Если не бред, то остаётся вопрос как получить скалярную компоненту поправочного кватерниона по компасу.

★★★★★

Последнее исправление: KivApple (всего исправлений: 2)

Искать ошибки в том, что написано? С чего бы ещё дуреть при перевороте? Знаки значит где-то теряешь/путаешь.

invy ★★★★★
()

Баллистическую ракету делаешь?

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

Читал, что схождение с ума системы, которая определяет углы Эйлера по акселерометру это нормально, потому что нужно менять оси в определённых ситуациях местами. Чтобы не делать кучу условий с шансом где-то запутаться лучше использовать кватернионы.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)

Да, кватернионы намного удобнее в задачах ориентации.

unfo ★★★★★
()

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

true_admin ★★★★★
()

Углы наклона надо искать при помощи гироскопа, он для того и придуман. Компас должон помогать бороться с накапливаемой ошибкой, а акселерометр сходу вообще не соображу как тут прикрутить - девайс то может двигаться с ускорением по горизонтали... Т.е. ИМНО акселерометр с учетом показаний гироскопа должен выдавать данные для определения скорости и координаты.

А вообще надо гуглить и читать теорию - думаю она тут не очень сложная, но крайне важная. Вопрос то изучен очень хорошо и все шишки (коих тут должно быть дофига) уже собрали до Вас.

AIv ★★★★★
()

а компас скалярную - поворот вокруг своей оси

Мне кажется что он тоже трёхмерный. По крайней мере в тех датчиках про которые я читал. Можешь поискать по ссылкам в моей теме про то как калибровать компас.

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

Он трёхмерный, однако вектор магнитного поля вовсе не обязан быть перпендикулярен земле - он направлен в сторону магнитного полюса и чем ближе к нему, тем под большим углом будет входить в землю. Поэтому использовать его для определения наклона по X и Y бессмысленно (мы узнаем свой наклон по отношению к линиям магнитного поля, а не к земле), только по Z.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Вообще то вблизи массивных шелесяк компас лажает тока в путь... У меня друг в похоже на урале носил на шее тесак а-ля Маугли и компас. Тесак было пришлось перевесить на бок, а то мы как то не туда шли;-)

AIv ★★★★★
()

Посмотри в Андроиде как сделано - там такая бородень нехилая чтобы оно с ума не сходило.

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

Заменил atan на atan2. Теперь вроде ок всё.

KivApple ★★★★★
() автор топика

Нужно определить свои углы наклона как можно точнее. Пока пробовал с помощью тригонометрии, но это неудобно (например, сейчас ИНС сходит с ума при перевороте кверху ногами). В какую сторону копать?

туда и копать. Ищи ошибку в своих формулах.

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

Читал, что схождение с ума системы, которая определяет углы Эйлера по акселерометру это нормально, потому что нужно менять оси в определённых ситуациях местами. Чтобы не делать кучу условий с шансом где-то запутаться лучше использовать кватернионы.

ты что-то не то читал.

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

а акселерометр сходу вообще не соображу как тут прикрутить

он нужен для вычисления поправок к гироскопу. Если гироскоп ВНЕЗАПНО повернуть, он тоже чуть сдвинется, хотя и не должен. Вот это «чуть» и учитывается акселерометром.

А вообще надо гуглить и читать теорию - думаю она тут не очень сложная

нет, не сложная. Если на компе считать. Вручную — сложно.

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

Вообще то вблизи массивных шелесяк компас лажает тока в путь...

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

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