реклама на сайте
подробности

 
 
> Гироскоп - вырождение угла, Как борются с этим?
alexPec
сообщение Feb 10 2014, 11:56
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Добрый день всем.

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

atan2(2*q[1]*q[2]-2*q[0]*q[3],2*q[0]*q[0]+2*q[1]*q[1]-1)

При угле тангажа в 90град. значение всегда примерно равно -90. Соответственно начинаются глюки, система управления чудит.

При этом (когда угол тангажа 90 град.) заметил, что в этом случае угол, вычисляемый как:

asin(2*q[1]*q[3]+2*q[0]*q[2]) это как раз то, что мне нужно.

Т.е. при приближении тангажа к 90 градусам регулируемая величина для системы управления должна плавно перейти от

atan2(2*q[1]*q[2]-2*q[0]*q[3],2*q[0]*q[0]+2*q[1]*q[1]-1)

к

asin(2*q[1]*q[3]+2*q[0]*q[2]).

Может кто сталкивался и решал подобную задачу?

Или может классическое решение проблемы есть?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
FPGAz
сообщение Feb 10 2014, 12:08
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 9-02-14
Пользователь №: 80 406



А это разве не эффект "схлопывания рамок"? ))
Go to the top of the page
 
+Quote Post
alexPec
сообщение Feb 10 2014, 14:01
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(FPGAz @ Feb 10 2014, 16:08) *
А это разве не эффект "схлопывания рамок"? ))


В кватернионах такого нет. Это в углах эйлера. Просто действительно при повороте на 90 град углы местами меняются местами, вот мне и надо плавно, по ходу поворота на 90 град. менять регулируемую величину с одного угла на другой (учитывая и тот и другой, но какой-то в большей степени, какой-то в меньшей).
Да, вникнуть так сразу трудно, расчитываю на тех кто решал такое. Им должно быть понятно.


PS А нет у кого геометрии как получаются эти углы из кватерниона?
Почему именно например именно такие аргументы 2*q[1]*q[2]-2*q[0]*q[3] и 2*q[0]*q[0]+2*q[1]*q[1]-1? Почему еще минус 1? Подозреваю что
в другой комбинации элементы кватерниона дадут нужный угол.

Например где-то откопал такое вычисление угла тангажа:

x=2*q[1]*q[3]-2*q[0]*q[2];
y=2*q[3]*q[2]+2*q[0]*q[1];
z=q[0]*q[0]+q[3]*q[3]-q[1]*q[1]-q[2]*q[2];
reg_ang=((atan(x/(sqrt(y*y+z*z))))*180)/3.141519;

Работает отлично. Но вот сейчас даже не могу найти откуда это взял. Хотел перечитать откуда взялось там чего.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 18:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016