Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Coordinar transformaciones en robótica

En aplicaciones robóticas, se pueden utilizar muchos sistemas de coordenadas diferentes para definir dónde se encuentran los robots, sensores y otros objetos. En general, la ubicación de un objeto en el espacio 3D se puede especificar mediante valores de posición y orientación. Hay varias representaciones posibles para estos valores, algunas de las cuales son específicas de ciertas aplicaciones. La traducción y la rotación son términos alternativos para la posición y la orientación. soporta representaciones que se utilizan comúnmente en la robótica y le permite convertir entre ellas.Robotics System Toolbox™ Puede transformar entre sistemas de coordenadas al aplicar estas representaciones a puntos 3D. Estas representaciones admitidas se detallan a continuación con breves explicaciones de su uso y equivalente numérico en .MATLAB® Cada representación tiene una abreviatura para su nombre. Esto se utiliza en la nomenclatura de argumentos y funciones de conversión que se admiten en esta caja de herramientas.

Al final de esta sección, puede obtener información sobre las funciones de conversión que ofrecemos para convertir entre estas representaciones.

Robotics System Toolbox asume que las posiciones y orientaciones se definen en un sistema de coordenadas cartesianas diestro.

Eje-ángulo

Abreviatura:axang

Una rotación en el espacio 3D descrita por una rotación escalar alrededor de un eje fijo definido por un vector.

1 por 3 vector unitario y un ángulo escalar combinado como vector 1 por 4Representación numérica:

Por ejemplo, una rotación de radianes alrededor del eje sería:pi/2 y

axang = [0 1 0 pi/2]

Euler Angles

Abreviatura:eul

Los ángulos de Euler son tres ángulos que describen la orientación de un cuerpo rígido. Cada ángulo es una rotación escalar alrededor de un eje de marco de coordenadas determinado. El soporta dos órdenes de rotación.Robotics System Toolbox El orden del eje se utiliza comúnmente para aplicaciones robóticas.'ZYZ' También apoyamos el orden del eje que también se denota como "Roll Pitch Yaw (rpy)".'ZYX' Saber qué orden de eje se utiliza es importante para aplicar la rotación a los puntos y para convertir a otras representaciones.

1 por 3 vector de ángulos escalaresRepresentación numérica:

Por ejemplo, una rotación alrededor del eje de pi se expresaría como:y

eul = [0 pi 0]

El orden del eje no se almacena en la transformación, por lo que debe tener en cuenta qué orden de rotación se va a aplicar.Nota:

Matriz de transformación homogénea

Abreviatura:tform

Una matriz de transformación homogénea combina una traslación y rotación en una matriz.

Matriz 4 por 4Representación numérica:

Por ejemplo, una rotación del ángulo alrededor del eje y una traslación de 4 unidades a lo largo del eje se expresarían como:yy

tform =  cos α  0      sin α  0   0      1      0      4 -sin α  0      cos α  0  0      0      0      1

Debe su matriz de transformación con sus coordenadas homogéneas, que se representan como una matriz de vectores de fila ( matriz de puntos -by-4).pre-multiplicarn Utilice la transposición ( ) para rotar los puntos para la multiplicación de matrices.' Por ejemplo:

points = rand(100,4); tformPoints = (tform*points')';

Cuaternión

Abreviatura:quat

Un cuaternión es un vector de cuatro elementos con una rotación escalar y un vector de 3 elementos. Los cuaterniones son ventajosos porque evitan cuestiones de singularidad inherentes a otras representaciones. El primer elemento, , es un escalar para normalizar el vector con los otros tres valores, definiendo el eje de rotación.w[x y z]

Vector 1 por 4Representación numérica:

Por ejemplo, una rotación de alrededor del eje se expresaría como:pi/2 y

quat = [0.7071 0 0.7071 0] 

Matriz de rotación

Abreviatura:rotm

Una matriz de rotación describe una rotación en el espacio 3D. Es una matriz ortonormal cuadrada con un determinante de 1.

Matriz 3 por 3Representación numérica:

Por ejemplo, una rotación de grados alrededor del eje sería:αx

rotm =       1     0         0      0     cos α     -sin α      0     sin α     cos α

Debe su matriz de rotación con sus coordenadas, que se representan como una matriz de vectores de fila ( -by-3 matriz de puntos).pre-multiplicarn Utilice la transposición ( ) para rotar los puntos para la multiplicación de matrices.' Por ejemplo:

points = rand(100,3); rotPoints = (rotm*points')';

Vector de traducción

Abreviatura:trvec

Un vector de traducción se representa en el espacio euclideo 3D como coordenadas cartesianas. Sólo implica la traducción de coordenadas aplicada por igual a todos los puntos. No hay rotación involucrada.

Vector 1 por 3Representación numérica:

Por ejemplo, una traducción por 3 unidades a lo largo del eje y 2,5 unidades a lo largo del eje se expresaría como:xz

trvec = [3 0 2.5]

Funciones de conversión y transformaciones

proporciona funciones de conversión para las representaciones de transformación mencionadas anteriormente.Robotics System Toolbox No todas las conversiones son compatibles con una función dedicada. A continuación se muestra una tabla que muestra qué conversiones son compatibles (en azul). También se muestran las abreviaturas de las representaciones de rotación y traslación.

Los nombres de todas las funciones de conversión siguen un formato estándar. Siguen la forma donde está la abreviatura de lo que está convirtiendo y es a lo que está convirtiendo como una abreviatura.alpha2betaalphabeta Por ejemplo, convertir de ángulos Euler a quaternion sería .eul2quat

Todas las funciones esperan entradas válidas. Si especifica entradas no válidas, las salidas serán indefinidas.

Existen otras funciones de conversión para convertir radianes y grados, coordenadas cartesianas y homogéneas, y para calcular las diferencias de ángulo envueltas. Para obtener una lista completa de las conversiones, consulte .Coordinar transformaciones y trayectorias

Temas relacionados