Я хочу создать формулу расстояния для 6 степеней свободы? - PullRequest
0 голосов
/ 10 августа 2009

У меня есть датчик с 6 степенями свободы, 3 осями x, y, z и 3 углами рыскания, тангажа и крена. Трехосное расстояние просто с помощью формулы расстояния, но как рассчитать 3 угловых расстояния? Может кто-нибудь здесь, пожалуйста, помогите мне ???

1 Ответ

3 голосов
/ 10 августа 2009

Yaw, pitch и roll представляют набор углов Эйлера, которые определяют поворот от одна система координат, XYZ, в другую, X'Y'Z '. Это преобразование также может быть выражено как одно вращение вокруг произвольной оси. Если я правильно понимаю ваш вопрос, вы хотите чтобы знать, что это за угол поворота.

Можно преобразовать набор углов Эйлера в четырехэлементную структуру, называемую кватернионом.

q4 = cos (рыскание / 2) cos (шаг / 2) cos (roll / 2) + грех (рыскание / 2) грех (шаг / 2) грех (крен / 2)

q1 = cos (рыскание / 2) cos (шаг / 2) sin (roll / 2) - sin (рыскание / 2) sin (шаг / 2) cos (roll / 2)

q2 = cos (yaw / 2) sin (шаг / 2) cos (roll / 2) + грех (рыскание / 2) потому что (шаг / 2) грех (крен / 2)

q3 = sin (рыскание / 2) cos (шаг / 2) cos (roll / 2) - cos (рыскание / 2) sin (шаг / 2) sin (roll / 2)

(Источник: http://www.resonancepub.com/quaterni.htm)

Если у вас есть кватернион, ось вращения и угол поворота легко вычисляются из компонентов кватерниона. Используя приведенную выше авторскую запись,

q = [q4 q1 q2 q2]

q4 = cos (тета / 2)

q1 = грех (тета / 2) A

q2 = грех (тета / 2) B

q3 = грех (тета / 2) C

где [A B C] - вектор в системе XYZ, задающий ось вращения, а тета - искомый угол поворота.

Итак, тета = 2 * acos (q4)

...