exponenta event banner

rotvecd

Преобразование кватерниона в вектор поворота (градусы)

Описание

пример

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

Примеры

свернуть все

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

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

   96.6345 -119.0274   45.4312

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

свернуть все

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

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

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

свернуть все

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

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

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

Алгоритмы

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

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

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

где start- угол поворота в градусах, а [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™

.
Представлен в R2020a