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