Volver a Learn

Los marcos y las transformaciones de la robótica: una guía clara

Comprender los marcos de coordenadas y las transformaciones homogéneas para el mundo de la robótica, la base de los robots, las herramientas y los marcos de las cámaras con ejemplos de conversión.

[← Aprender]

Casi todos los errores en un sistema robótico que hacen que el brazo se mueva en la dirección equivocada son errores en el marco de las coordenadas.

Por qué son importantes los cuadros de coordinación

Cada sensor, cada enlace robótico y cada objeto en el entorno tiene su propio sistema de coordenadas su propia definición de "avanzar," "hacer," y "derecha". Cuando su cámara detecta un objeto en posición (0.1, -0.05, 0.3) en el marco de la cámara, el robot no puede actuar directamente sobre esto. Necesita la posición del objeto en el marco del robot para controlar el brazo.

La transformación de posiciones y orientaciones entre marcos es el trabajo de las transformaciones de coordenadas.

Transformaciones homogéneas

Una transformación homogénea T0 es una matriz 4×4 que codifica simultáneamente la rotación y la traducción:

T = [[R, t], [0, 0, 0, 1]]

donde T2 es una matriz de rotación 3×3 (ortogonal, det(R) =1) y T3 es un vector de traducción 3×1.

La notación T4 significa "la posición del marco B expresada en el marco A" o equivalentemente, "la transformación que convierte las coordenadas en el marco B en coordenadas en el marco A".

Representaciones de rotación

La rotación es una cantidad de 3 DOF, pero hay múltiples formas de representarla.

  • ** Matriz de rotación (3×3):** La representación más geométricamente correcta. La restricción de ortogonalidad (9 valores para 3 DOF) lo hace sobreparametrizado.
  • ** Ángulos de Euler (roll, pitch, yaw):** Intuitivo: "rota 45° alrededor del eje z". Pero sufrir de gimbal lock en ciertas configuraciones, dos ejes se alinean y se pierde un grado de libertad. ** No utilice ángulos de Euler en el código que se ejecuta continuamente en hardware.** Sólo se utiliza para registro legible por el hombre.
  • ** Cuaternión (qx, qy, qz, qw):** 4 valores (constricción de unidad da 3 DOF). No hay cerradura de gimbal. Compacto. Interpola sin problemas (SLERP). El estándar para el software robot. Use esto en su código. Note la doble cubierta: q y -q representan la misma rotación comprobar si hay señales de cambio al comparar.
  • Rotación 6D (dos columnas de R): Mejor para las salidas de redes neuronales representación continua sin interrupciones. Reconstruir R completa a través de Gram-Schmidt. Utilizado en las políticas modernas de aprendizaje de robots.

Enmarcos comunes de robots

Una configuración típica de manipulación implica al menos cuatro marcos de coordenadas:

  • Cadre mundial: La referencia global fija. Por lo general definida en el punto de montaje del robot o en un objetivo de calibración en la mesa.
  • Rámara base del robot: Origen en el centro de la flanja de montaje del robot.
  • ** Efector final / marco de herramienta:** Origen en la punta del agarre (el "punto central de la herramienta" o TCP). Esto es lo que se ordena cuando se especifica un objetivo cartesiano.
  • Cámara de cámara: Origen en el centro óptico de la cámara. El eje z apunta a lo largo del eje óptico de la cámara (en la escena).

Transforma la cadena

Para convertir una pose de objeto detectada en el marco de la cámara en el marco del mundo, en cadena las transformaciones:

T_world_obj = T_world_robot × T_robot_ee × T_ee_camera × T_camera_obj

Lea esto de derecha a izquierda: primero transforma el objeto en el marco de la cámara (identidad ya está allí), luego en el marco de efecto final, luego en el marco base del robot, luego en el marco mundial.

Cada transformación es una matriz de 4×4; la cadena es simplemente una multiplicación de matriz. En ROS2, la biblioteca T9 gestiona todas estas transformaciones automáticamente y le permite buscar cualquier transformación de marco a marco con una sola llamada.

Calibración de la mano y el ojo

Para utilizar la cadena de transformación de arriba, se necesita T10 la posición de la cámara en relación con el efector final del robot.

El proceso: mover el robot a muchas configuraciones conjuntas diferentes (al menos 1520) mientras que un objetivo de calibración (marcador ArUco o tablero de ajedrez) es visible en la escena. En cada configuración, grabar la posición del factor final computado FK del robot y la observación de la cámara del objetivo. Esto da un sistema de ecuaciones AX = XB, donde X es el desconocido T11. Los solventes estándar (T12 de OpenCV) resuelven esto en segundos.

Recalibrar siempre que: la cámara se mueva físicamente o se golpea, se instala una nueva cámara o se observan errores sistemáticos de captura de compensación.

Herramientas prácticas de Python

  • scipy.spatial.transform.rotation: Convertir entre la matriz de rotación, el cuaternion, los ángulos de Euler y el ángulo de eje.
  • ROS2 tf2 (Python rclpy): Gestión de árboles de transformación en tiempo real.
  • pytransform3d: Biblioteca Python pura para todas las operaciones SE(3) con excelente visualización para el depuración.
  • numpy: La multiplicación matriz de las transformaciones homogéneas 4×4 es sólo T15.

Para más recursos y tutoriales sobre robótica, consulte la sección de recursos de la RCSV (en inglés) T17.