exponenta event banner

rotvec

Преобразовать кватернион в вектор вращения (радианы)

Описание

пример

rotationVector = rotvec(quat) преобразует массив кватернионов, quat, к N-by-3 матрице эквивалентных векторов вращения в радианах. Элементы quat нормализованы перед преобразованием.

Примеры

свернуть все

Преобразование скаляра случайного кватерниона в вектор поворота в радианах

quat = quaternion(randn(1,4));
rotvec(quat)
ans = 1×3

    1.6866   -2.0774    0.7929

Входные аргументы

свернуть все

Кватернион для преобразования, заданный как скалярный кватернион, вектор, матрица или многомерный массив кватернионов.

Типы данных: quaternion

Выходные аргументы

свернуть все

Представление вектора вращения, возвращаемое в виде N-by-3 матрицы векторов вращения, где каждая строка представляет углы [X Y Z] векторов вращения в радианах. I-й ряд rotationVector соответствует элементу quat(i).

Тип данных вектора поворота совпадает с базовым типом данных quat.

Типы данных: single | double

Алгоритмы

Все повороты в 3-D могут быть представлены трехэлементной осью вращения и углом поворота, в общей сложности четырьмя элементами. Если ось вращения ограничена единичной длиной, угол поворота может быть распределен по векторным элементам, чтобы уменьшить представление до трех элементов.

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

q = cos 2») + sin ) (xi + yj + zk),

где λ - угол поворота и [x, y, z] - ось вращения.

Учитывая кватернион формы

q = a + bi + cj + dk,

можно решить для угла поворота с помощью формы кватернионов «ось-угол»:

λ = 2cos 1 (a).

Предполагая нормализованную ось, можно переписать кватернион в виде вектора поворота без потери информации, распределяя по частям b, c и d. Представление вектора вращения q равно

qrv = startsin (start2) [b, c, d].

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Функции

Объекты

Представлен в R2021a