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-на-3 матрица векторов поворота, где каждая строка представляет углы [X Y Z] векторов поворота в радианах. i строка rotationVector соответствует элементу quat(i).

Тип данных вектора поворота аналогичен базовому типу данных quat.

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

Алгоритмы

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

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

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

где θ - угол поворота, а [x, y, z] - ось поворота.

Задан кватернион вида

q=a+bi+cj+dk,

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

θ=2cos1(a).

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

qrv=θsin(θ2)[b,c,d].

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2018b