rotvec

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

Синтаксис

rotationVector = rotvec(quat)

Описание

пример

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 th строка rotationVector соответствует элементу quat(i).

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

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

Алгоритмы

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

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

q=потому что(θ2)+sin(θ2)(\Xi+yj+zk),

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

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

q=a+bi+cj+dk,

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

θ=2потому что1(a).

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

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

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

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

Введенный в R2018a