Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

rotvec

Convertir cuaternión en vector de rotación (radianes)

Descripción

rotationVector = rotvec(quat) convierte la matriz de cuaterniones, quat, en una matriz de N por 3 de vectores de rotación equivalentes en radianes. Los elementos de quat se normalizan antes de la conversión.

ejemplo

Ejemplos

contraer todo

Convertir un escalar de cuaternión aleatorio en un vector de rotación en radianes

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

    1.6866   -2.0774    0.7929

Argumentos de entrada

contraer todo

Cuaternión que se va a convertir, especificado como un objeto quaternion o un arreglo de objetos quaternion de cualquier dimensionalidad.

Argumentos de salida

contraer todo

Representación del vector de rotación, en radianes, devuelta como una matriz numérica de vectores de rotación de N por 3, donde N es el número de cuaterniones en el argumento quat.

Cada fila representa los ángulos [X Y Z] de los vectores de rotación. La fila i de rotationVector corresponde al elemento quat(i).

El tipo de datos del vector de rotación es el mismo que el tipo de datos subyacente de quat.

Tipos de datos: single | double

Algoritmos

Todas las rotaciones en 3-D se pueden representar mediante un eje de rotación de tres elementos y un ángulo de rotación, para un total de cuatro elementos. Si el eje de rotación está obligado a tener una unidad de longitud, el ángulo de rotación se puede distribuir entre los elementos del vector para reducir la representación a tres elementos.

Recuerde que un cuaternión se puede representar en forma de eje-ángulo.

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

donde θ es el ángulo de rotación y [x,y,z] representan el eje de rotación.

Dado un cuaternión con el formato

q=a+bi+cj+dk,

Puedes resolver el ángulo de rotación usando la forma eje-ángulo de cuaterniones:

θ=2cos1(a).

Suponiendo un eje normalizado, puedes reescribir el cuaternión como un vector de rotación sin pérdida de información distribuyendo θ sobre las partes b, c y d. La representación del vector de rotación de q es

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

Capacidades ampliadas

expandir todo

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b