Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Transformaciones de coordenadas en robótica

En las aplicaciones de robótica, pueden usarse muchos sistemas de coordenadas diferentes para definir dónde están ubicados los robots, los 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. Existen varias representaciones posibles para estos valores, y algunas de ellas son específicas para ciertas aplicaciones. Traslación y rotación son términos alternativos para posición y orientación. Robotics System Toolbox™ admite las representaciones que se usan comúnmente en robótica y permite la conversión entre ellas. Puede transformar los sistemas de coordenadas entre sí cuando aplica estas representaciones a puntos 3D. Luego se detallan estas representaciones admitidas junto con explicaciones de su uso y el equivalente numérico en MATLAB®. Existe una abreviatura para el nombre de cada representación. Se utiliza en la nomenclatura de los argumentos y las funciones de conversión que se admiten en esta toolbox.

Al final de esta sección se incluye información sobre las funciones de conversión que ofrecemos para convertir de una representación a otra.

Robotics System Toolbox asume que las posiciones y las orientaciones están definidas en un sistema de coordenadas cartesianas a la derecha.

Ángulo del eje

Abreviatura: axang

Rotación en el espacio 3D descrita por una rotación escalar en torno a un eje fijo definido por un vector.

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

Por ejemplo, una rotación de pi/2 radianes en torno al eje y sería:

axang = [0 1 0 pi/2]

Ángulos de Euler

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 en torno a un determinado eje del marco de coordenadas. Robotics System Toolbox admite dos órdenes de rotación. El orden del eje 'ZYZ' se usa con frecuencia en aplicaciones de robótica. También se admite el orden del eje 'ZYX', denominado también “Roll Pitch Yaw (rpy)”. Es importante conocer el orden de eje que se usa para aplicar la rotación a los puntos y al convertir a otras representaciones.

Representación numérica: Vector de 1 por 3 de ángulos escalares

Por ejemplo, una rotación en torno al eje y de pi se expresaría como:

eul = [0 pi 0]

Nota: El orden del eje no se almacena en la transformación, por lo que debe conocer el orden de rotación que se debe aplicar.

Matriz de transformación homogénea

Abreviatura: tform

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

Representación numérica: matriz de 4 por 4

Por ejemplo, una rotación de ángulo α en torno al eje y y una traslación de 4 unidades a lo largo del eje y se expresaría como:

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

Debe premultiplicar la matriz de transformación con sus coordenadas homogéneas, que se representan como una matriz de vectores fila (matriz de puntos de n por 4). Utilice la trasposición (') para girar 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 útiles porque evitan los problemas de singularidad inherentes en otras representaciones. El primer elemento, w, es un escalar para normalizar el vector en el que los otros tres valores, [x y z], definen el eje de rotación.

Representación numérica: Vector de 1 por 4

Por ejemplo, una rotación de pi/2 en torno al eje y se expresaría como:

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 cuadrada ortonormal con un determinante de 1.

Representación numérica: Matriz de 3 por 3

Por ejemplo, una rotación de α grados en torno al eje x sería:

rotm =

     1     0         0
     0     cos α     -sin α
     0     sin α     cos α

Debe premultiplicar la matriz de rotación con sus coordenadas, que se representan como una matriz de vectores fila (matriz de puntos de n por 3). Utilice la trasposición (') para girar los puntos para la multiplicación de matrices. Por ejemplo:

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

Vector de traslación

Abreviatura: trvec

Un vector de traslación se representa en el espacio euclidiano 3D como coordenadas cartesianas. Solo implica la traslación de coordenadas aplicada de la misma forma a todos los puntos. No implica rotación.

Representación numérica: Vector de 1 por 3

Por ejemplo, una traslación de 3 puntos a lo largo del eje x y de 2,5 unidades a lo largo del eje z se expresaría como:

trvec = [3 0 2.5]

Funciones de conversión y transformaciones

Robotics System Toolbox proporciona funciones de conversión para las representaciones de transformación mencionadas anteriormente. Una función dedicada no admite todas las conversiones. Luego se muestra una tabla con las conversiones admitidas (en azul). También se muestran las abreviaturas de las representaciones de rotación y traslación.

 Convertir aÁngulo del eje (axang)Ángulos de Euler (eul)Cuaternión numérico (quat)Objeto de cuaterniones (quaternion)Matriz de rotación (rotm)Matriz de transformación (tform)Vector de traslación (trvec)
Convertir de 
Ángulo del eje (axang)axang2quatquaternionaxang2rotmaxang2tform
Ángulos de Euler (eul)eul2quatquaternioneul2rotmeul2tform 
Cuaternión numérico (quat)quat2axangquat2eulquaternionquat2rotmquat2tform 
Objeto de cuaterniones (quaternion)eulercompact  
Matriz de rotación (rotm)rotm2axangrotm2eulrotm2quatquaternionrotm2tform 
Matriz de transformación (tform)tform2axangtform2eultform2quattform2rotmtform2trvec
Vector de traslación (trvec)trvec2tform

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

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

Existen otras funciones de conversión para convertir entre radianes y grados, coordenadas cartesianas y homogéneas, así como para calcular diferencias de ángulo reajustado. Para obtener una lista completa de las conversiones, consulte Transformaciones de coordenadas.

Temas relacionados