Выражение локальной системы координат через другую локальную систему координат через глобальную систему координат

Представьте, что у вас есть глобальная трехмерная система координат, произвольная локальная система координат 1 и произвольная локальная система координат 2.

Доступны две матрицы поворота, которые определяют повороты локальной системы координат 1 (R1) и локальной системы координат 2 (R2) относительно глобальной системы координат.

Как я могу выразить вращение локальной системы координат 1 относительно локальной системы координат 2? Я пробовал с решением по ссылке ниже, но не получил ожидаемых результатов.

https://stackoverflow.com/questions/19621069/3d-rotation-matrix-rotate-to-another-reference-system

Заранее спасибо.

Ответы (1)

Позволять р 1 описать вращение из глобальной системы координат в первую локальную систему координат, и р 2 описывают поворот из глобальной системы координат во вторую локальную систему координат.

Затем, р 1 1 описывает поворот от первой локальной системы координат обратно к глобальной системе координат, и р 2 1 описывает поворот из второй локальной системы координат обратно в глобальную систему координат.

Когда матрица р - чистая матрица вращения, она ортонормирована, а обратная ей транспонирована, р 1 "=" р Т .

Предположим, используется правое или постумножение между матрицами и векторами. Это означает, что если вектор в г в глобальной системе координат соответствует вектору в 1 в первой локальной системе координат, и к вектору в 2 во второй локальной системе координат, то

(1) в 1 "=" р 1 в г
(2) в 2 "=" р 2 в г
(3) в г "=" р 1 1 в 1
(4) в г "=" р 2 1 в 2
Мы можем заменить (4) в (1) получить
в 1 "=" р 1 р 2 1 в 2
или (3) в (2) получить
в 2 "=" р 2 р 1 1 в 1
Это означает, что для поворота вектора из первой локальной системы координат во вторую систему координат нам нужно использовать матрицу поворота р 1 2 ,
(5) р 1 2 "=" р 2 р 1 1
и из второй локальной системы координат обратно в первую, р 2 1 ,
(6) р 2 1 "=" р 1 р 2 1
Обратите внимание, что из-за того, что обе матрицы ортонормированы,
р 2 1 "=" р 1 2 1 р 1 2 "=" р 2 1 1
Нет необходимости повторять эту процедуру для каждого отдельного случая. Из вышеизложенного мы можем вывести несколько правил, которые очень помогут в такой ситуации.

  1. Мы рассматриваем только векторы-столбцы, т.е. в "=" [ в 1 в 2 в 3 ] .

  2. Мы рассматриваем только чистые матрицы вращения и отражения, т. е. ортонормированные матрицы, для которых р 1 "=" р Т , и является обратным вращением на р .

  3. Мы используем правое или постумножение векторов для умножения матрицы на вектор. Это означает, что для поворота вектора в по матрице р , получаем результат, или повернутый вектор р , с использованием р "=" р в .

  4. Мы можем связать вращения, умножив матрицы вращения. Если матрицы ортонормированы, результат также ортонормирован. Первое вращение — самая правая матрица в произведении, а последнее вращение — самая левая матрица в произведении.

  5. Чтобы вычислить вращение между двумя локальными системами координат, мы «раскручиваем» вращения начальной системы координат, используя обратные матрицы вращения в обратном порядке, за которыми следуют матрицы вращения в нормальном порядке от глобальной системы координат до целевой локальной системы координат.


В качестве примера предположим, что у нас есть две локальные системы координат, повороты которых относительно глобальной системы координат равны р 1 и р 2 , и у нас есть еще две локальные системы координат, р 11 и р 12 поверх (или относительно) р 1 , и еще две локальные системы координат р 21 и р 22 поверх (или относительно) р 2 .

Другими словами, вектор в 0 в глобальной системе координат соответствует:

в 1 "=" р 1 в 0 в 2 "=" р 2 в 0 в 11 "=" р 11 р 1 в 0 в 12 "=" р 12 р 1 в 0 в 21 "=" р 21 р 2 в 0 в 22 "=" р 22 р 2 в 0
затем
р 1 2 "=" р 2 р 1 Т р 22 2 "=" р 22 Т р 21 12 "=" р 12 р 1 р 2 Т р 21 Т
и так далее. Простые!

Обратите внимание, что мы могли бы написать р 22 2 "=" р 2 р 2 Т р 22 Т , но с тех пор р р Т "=" р Т р "=" я (тождественная матрица; «без изменений») для ортонормированных матриц мы можем опустить тождественную часть или часть «без изменений» и просто использовать р 22 2 "=" р 22 Т .