2009-08-10 7 views
-1

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

+0

Это зависит от того, как угловые ориентации были физически применены. Можете ли вы описать физическую модель, которую измеряет датчик? – RBarryYoung

+0

вдоль оси y, оси x и оси z. – Ambreen

ответ

3

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

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

Q4 = сов (рыскания/2) соз (шаг/2) соз (рулон/2) + Sin (рыскания/2) sin (шаг/2) sin (рулон/2)

q1 = cos (yaw/2) cos (pitch/2) sin (roll/2) - sin (yaw/2) sin (pitch/2) cos (roll/2)

q2 = cos (yaw/2) sin (pitch/2) cos (roll/2) + sin (yaw/2) cos (pitch/2) sin (roll/2)

q3 = sin (yaw/2) cos (pitch/2) cos (roll/2) - cos (yaw/2) sin (pitch/2) sin (roll/2)

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

Q = [Q4 Q1 Q2 q2]

Q4 = Cos (тэта/2)

q1 = sin (тэта/2)

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

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

где [ABC] является вектор в системе XYZ с указанием оси вращения, и тета угол поворота вы ищете ,

Таким образом, theta = 2 * acos (q4)