Saltar al contenido principal
Etapa 5 · Capítulo 23 · Teoría

23. Fundamentos Matemáticos del Brazo Robótico y Sistemas de Coordenadas

Capítulo 23 del Curso de Introducción a la IA Física de Seeed: marcos de coordenadas y transformaciones homogéneas: marcos mundo, base, articulación, efector final y cámara; vectores y matrices; matrices de traslación y rotación; encadenamiento de transformaciones; y ángulos de Euler frente a cuaterniones.

Hardware necesario para esta etapa​

Qué preparar para esta etapa. La lista completa para cada etapa está en el Capítulo 3.

Unidad de control principal

ÍtemComprarCant.
reComputer Robotics J4012🛒1
NVIDIA Jetson AGX Thor 128G🛒1

También se requiere un ordenador de sobremesa o portátil: Ubuntu 22.04, GTX 4080 o superior con 12GB+ de VRAM, 16GB+ de RAM.

Para esta etapa

ÍtemComprarCant.
reBot Arm B601 DM/RS🛒1
Visión general

Dónde se sitúa esta etapa en el curso

El contenido introducido en estos capítulos pertenece al control tradicional, es decir, controlar el brazo robótico mediante programación codificada a mano. El control tradicional se utiliza en la gran mayoría de los proyectos desplegados. Su ventaja es la estabilidad y la fiabilidad, lo cual es especialmente valioso en escenarios de producción industrial. Su desventaja es que en un entorno nuevo requiere volver a ajustar antes de poder funcionar de forma estable.

CapítuloTítuloTipoEnfoque
23Fundamentos Matemáticos del Brazo Robótico y Sistemas de CoordenadasTeoríaMarcos, vectores, transformaciones homogéneas, representaciones de rotación
24Cinemática Directa, Cinemática Inversa y el JacobianoTeoríaCómo se conectan los ángulos articulares y la pose del efector final
25Planificación de Trayectorias y Control del Brazo RobóticoTeoríaTrayectoria geométrica vs trayectoria temporal, interpolación, feedforward + feedback
26Pinocchio y MeshCatPrácticaEjecutar CD / CI / planificación de trayectorias en el modelo real del reBot Arm
tip

Los capítulos 23–25 son material de referencia: en proyectos reales el URDF y la biblioteca de cinemática hacen el trabajo matricial por ti. Léelos una vez para entender qué significan los números, y luego consérvalos como referencia de consulta mientras trabajas en el Capítulo 26.

Por qué la etapa 5 viene después de la etapa 4. La etapa 3 y la etapa 4 enseñaron al brazo a imitar y a seguir el lenguaje. Esos sistemas son aprendidos: ven el mundo y actúan sobre él, pero no garantizan nada. En el momento en que necesitas una costura de soldadura recta, una sujeción repetible o una parada de emergencia segura, necesitas la capa determinista por debajo: las matemáticas y el control de movimiento de esta etapa. La imagen de arriba es el contraste en una sola imagen: un VLM describe el mundo, un VLA actúa sobre él, y todo lo que aprendes aquí decide cómo se ejecuta realmente la acción.

AspectoVLM (Vision-Language Model)VLA (Vision-Language-Action Model)
EntradaImagen + preguntaImagen + instrucción de tarea (+ estado del robot)
SalidaUna descripción en textoUna secuencia de acciones del robot
PropósitoEntender y describirEntender y actuar
Modelos típicosLLaVA, Qwen-VLGR00T, pi0
Usado enPercepción, anotación, depuraciónControl de robots reales (Etapa 4)

23.1 Objetivos de Aprendizaje​

Después de este capítulo deberías ser capaz de:

  1. Explicar qué es un marco de coordenadas y por qué un brazo robótico necesita varios de ellos.
  2. Nombrar el marco mundo, el marco base, el marco de espacio articular, el marco de efector final/herramienta y el marco de cámara, y decir a qué está unido cada uno.
  3. Escribir una traslación y una rotación como una matriz de transformación homogénea 4x4, y multiplicar dos de ellas a mano.
  4. Explicar por qué existen las coordenadas homogéneas y qué se pierde con la notación "no homogénea".
  5. Decir cuándo usar ángulos de Euler y cuándo usar cuaterniones.

23.2 Conceptos Básicos de Vectores y Matrices​

La cinemática directa e inversa (tratadas en el siguiente capítulo) implican una gran cantidad de vectores y matrices, por lo que es importante construir una base sólida en matrices. En el control real no necesitamos participar nosotros mismos en los cálculos de bajo nivel, así que este capítulo se proporciona solo como referencia.

  • Un vector describe una magnitud con dirección y módulo: una posición, una velocidad, una fuerza.
  • Una matriz describe una aplicación lineal: cómo un vector en un marco se convierte en un vector en otro marco.
  • Los tres objetos usados en todas partes en robótica son el vector de posición 3x1 p\mathbf{p}, la matriz de rotación 3x3 RR, y la transformación homogénea 4x4 TT.

Una comprobación útil de cordura para cualquier matriz de rotación RR:

R⊤R=I(ortonormal)det⁡(R)=+1(una rotacioˊn propia, sin espejado)\begin{aligned} R^\top R &= I && \text{(ortonormal)} \\ \det(R) &= +1 && \text{(una rotación propia, sin espejado)} \end{aligned}
Microejemplo resuelto: leer una transformación 4x4
T=(0010.300100.05−1000.420001),R=(001010−100),t=(0.300.050.42)T = \begin{pmatrix} 0 & 0 & 1 & 0.30 \\ 0 & 1 & 0 & 0.05 \\ -1 & 0 & 0 & 0.42 \\ 0 & 0 & 0 & 1 \end{pmatrix}, \qquad R = \begin{pmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ -1 & 0 & 0 \end{pmatrix}, \qquad \mathbf{t} = \begin{pmatrix} 0.30 \\ 0.05 \\ 0.42 \end{pmatrix}

Lee las columnas de RR como los ejes del marco hijo expresados en el marco padre:

  • x hijo = [0, 0, −1]⊤[0,\ 0,\ -1]^\top -> apunta hacia abajo en el marco padre
  • y hijo = [0, 1, 0]⊤[0,\ 1,\ 0]^\top -> igual que el eje y del padre
  • z hijo = [1, 0, 0]⊤[1,\ 0,\ 0]^\top -> apunta a lo largo del eje x del padre

y lee t\mathbf{t} como el lugar donde se sitúa el origen del marco hijo. Eso es todo lo que es una transformación.

23.3 Marco Mundo y Marco Base​

Marco mundo frente a marco base

El marco mundo puede entenderse como el sistema de coordenadas del entorno en el que se encuentra el brazo robótico; el marco base se establece en la base del robot. En el diseño del brazo reBot, como la base del robot está fija, el marco mundo y el marco base coinciden.

Por ejemplo: el brazo se coloca sobre una mesa, con el centro de la base del brazo como origen, la superficie de la mesa como plano xy, y la dirección vertical de las patas de la mesa como eje z; el marco mundo sigue la regla de la mano derecha. El marco base también coincide con el marco mundo. (Marco cartesiano de uso común).

Regla de la mano derecha, RGB = XYZ

Convención de colores de los tres ejes XYZ en robótica/visión (RGB = XYZ)

EjeColorNombre común
X🔴 RojoRojo
Y🟢 VerdeVerde
Z🔵 AzulAzul
nota

Regla de la mano derecha: apunta +X a lo largo del dedo índice y +Y a lo largo del dedo corazón; el pulgar da +Z. Las rotaciones alrededor de +X, +Y, +Z son positivas en sentido antihorario cuando se mira hacia atrás a lo largo del eje hacia el origen. Todas las herramientas de robótica (RViz, MeshCat, SolidWorks, URDF) usan esta misma convención, por lo que vale la pena memorizar la correspondencia de colores RGB = XYZ.

23.4 Marco de Espacio Articular y Marco del Efector Final​

El marco de espacio articular es el marco más utilizado en el control de robots. Se establece en las articulaciones del robot; el número de dimensiones es igual al número de articulaciones que tiene el robot.

Marco de espacio articular

El reBot B601 tiene seis articulaciones rotativas más una pinza, por lo que su marco de espacio articular es de 6 dimensiones (7 dimensiones si la pinza se lleva como un eje adicional).

Marco del efector final

  • Origen: punto central de la herramienta (TCP)
Marco del efector final / TCP

El marco del efector final se establece en el extremo del robot; también hay un marco de herramienta. Cuando necesitamos que el extremo alcance una determinada posición, nos importa la coordenada del efector final; si en el extremo se monta una pinza, nos importa la coordenada de la pinza.

MarcoUnido aOrigenUso típico
Mundo {world}\{world\}El entornoUn punto fijo en la mesa / celdaCoordenadas a nivel de tarea, trabajo con cámaras
Base {base}\{base\}La base del robotCentro de la baseRaíz de la cadena cinemática
Articulación {ji}\{j_i\}Articulación iiEje de la articulación iiCálculo interno de CD / CI
BridaSalida de la última articulaciónCentro de la bridaDonde se monta una herramienta
Herramienta / TCPLa propia herramientaPunto central de la herramientaPlanificación de trayectorias, puntos de agarre

En una frase: el marco mundo es el marco que los humanos entendemos de forma más intuitiva, mientras que el robot se basa en el marco de espacio articular para cambiar la posición de la pinza final. Así que fijamos objetivos usando coordenadas del mundo, y usamos el marco de espacio articular para hacer que el robot se mueva como queremos. La conexión entre ellos es la transformación de coordenadas.

23.5 Marco de la Cámara​

El marco de la cámara y el marco del efector final suelen obtenerse mediante una transformación de traslación.

  • Origen: centro óptico de la cámara
  • Convención: eje z hacia delante a lo largo del eje óptico, x hacia la derecha, y hacia abajo (convención de OpenCV; algunas herramientas de OpenGL/ROS usan y hacia arriba)
ConvenciónxyzMano derecha
OpenCV / visiónderechaabajohacia adelante (en la escena)sí
OpenGL / algunas herramientas ROSderechaarribahacia atrássí
ROS camera_optical_framederechaabajohacia adelantesí
aviso

Nunca mezcles silenciosamente las dos convenciones. Una cámara con "y hacia abajo" y una cámara con "y hacia arriba" difieren en una rotación de 180° alrededor de x, y una calibración mano-ojo calculada con una convención enviará el efector final al lado equivocado del objeto cuando se use con la otra.

Dónde aparece el marco de la cámara en una canalización de agarre visual:

pıˊxel (u,v) → intrıˊnsecos K marco de la caˊmara → mano-ojo Tcam→tcp marco del efector final → FK marco base → IK aˊngulos articulares\begin{aligned} \text{píxel } (u, v) &\ \xrightarrow{\ \text{intrínsecos } K\ } \text{marco de la cámara} \\ &\ \xrightarrow{\ \text{mano-ojo } T_{\text{cam}\to\text{tcp}}\ } \text{marco del efector final} \\ &\ \xrightarrow{\ \text{FK}\ } \text{marco base} \\ &\ \xrightarrow{\ \text{IK}\ } \text{ángulos articulares} \end{aligned}

23.6 Representación matricial de las transformaciones de coordenadas​

Rotaciones elementales de marco i, j, k

La representación homogénea unifica "transformación lineal + traslación" en una sola multiplicación matricial.

En la representación no homogénea, la traslación es una suma fuera de la matriz y no puede combinarse con la rotación en una sola matriz.

Transformación homogénea general

T=(Rt0⊤1),R: 3×3 rotacioˊn (orientacioˊn),t: 3×1 traslacioˊn (posicioˊn)T = \begin{pmatrix} R & \mathbf{t} \\ \mathbf{0}^\top & 1 \end{pmatrix}, \qquad R:\ 3\times3 \text{ rotación (orientación)}, \qquad \mathbf{t}:\ 3\times1 \text{ traslación (posición)}

Transformación de traslación

p′=p+tT=(100tx010ty001tz0001)\mathbf{p}' = \mathbf{p} + \mathbf{t} \qquad \mathbf{T} = \begin{pmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{pmatrix}

Escrita completamente, no homogénea a la izquierda y homogénea a la derecha:

\begin{pmatrix} x' \\ y' \\ z' \end{pmatrix} = \begin{pmatrix} x \\ y \\ z \end{pmatrix} + \begin{pmatrix} t_x \\ t_y \\ t_z \end{pmatrix} = \begin{pmatrix} x + t_x \\ y + t_y \\ z + t_z \end{pmatrix} \qquad\Longleftrightarrow\qquad \begin{pmatrix} x' \\ y' \\ z' \\ 1 \end{pmatrix} = \begin{pmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ z \\ 1 \end{pmatrix} = \begin{pmatrix] x + t_x \\ y + t_y \\ z + t_z \\ 1 \end{pmatrix}

Transformación de rotación

Las tres matrices de rotación elementales. Escribir c=cos⁡θc = \cos\theta y s=sin⁡θs = \sin\theta mantiene las matrices legibles; expándelas sustituyendo de nuevo cuando las calcules a mano.

Rx(θ)=(1000c−s0sc)Ry(θ)=(c0s010−s0c)Rz(θ)=(c−s0sc0001)R_x(\theta) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & c & -s \\ 0 & s & c \end{pmatrix} \qquad R_y(\theta) = \begin{pmatrix} c & 0 & s \\ 0 & 1 & 0 \\ -s & 0 & c \end{pmatrix} \qquad R_z(\theta) = \begin{pmatrix} c & -s & 0 \\ s & c & 0 \\ 0 & 0 & 1 \end{pmatrix}

La versión homogénea de cada rotación mantiene el mismo bloque 3x3 con una columna de traslación cero, así que una matriz de rotación RR se convierte en

(R00⊤1)p. ej.Rz(θ)=(c−s00sc0000100001)\begin{pmatrix} R & \mathbf{0} \\ \mathbf{0}^\top & 1 \end{pmatrix} \qquad\text{p. ej.}\qquad R_z(\theta) = \begin{pmatrix} c & -s & 0 & 0 \\ s & c & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}
EjeNo homogéneaHomogénea
Eje XRx(θ)R_x(\theta)(10000c−s00sc00001)\begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & c & -s & 0 \\ 0 & s & c & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}
Eje YRy(θ)R_y(\theta)(c0s00100−s0c00001)\begin{pmatrix} c & 0 & s & 0 \\ 0 & 1 & 0 & 0 \\ -s & 0 & c & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}
Eje ZRz(θ)R_z(\theta)(c−s00sc0000100001)\begin{pmatrix} c & -s & 0 & 0 \\ s & c & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}
nota

Por qué la fila inferior es [0 0 0 1][0\ 0\ 0\ 1]. No tiene significado físico; existe para que el producto matricial de dos transformaciones sea de nuevo una transformación, y para que un punto (x,y,z,1)(x, y, z, 1) y una dirección (x,y,z,0)(x, y, z, 0) puedan ser transformados por la misma matriz: la dirección ignora la traslación, el punto no.

Composición de transformaciones — encadenar es simplemente multiplicación de matrices, y la inversa es barata:

Tac=Tab Tbccomposicioˊn (regla de la cadena)(Tab)−1=Tba=(R⊤−R⊤t0⊤1)(R⊤ en lugar de una inversioˊn 3×3)\begin{aligned} T_a^c &= T_a^b \, T_b^c && \text{composición (regla de la cadena)} \\ \left( T_a^b \right)^{-1} = T_b^a &= \begin{pmatrix} R^\top & -R^\top \mathbf{t} \\ \mathbf{0}^\top & 1 \end{pmatrix} && (R^\top \text{ en lugar de una inversión } 3\times3) \end{aligned}

23.7 Ángulos de Euler y cuaterniones​

Alabeo, cabeceo, guiñada

Ángulos de Euler vs. cuaterniones

  • Ángulos de Euler: 3 números, intuitivos, tienen bloqueo de cardán
  • Cuaterniones: 4 números (1 restricción), no intuitivos, sin bloqueo de cardán
AspectoÁngulos de Euler (roll/pitch/yaw)Cuaternión
Números34, con la restricción w2+x2+y2+z2=1w^2+x^2+y^2+z^2 = 1
IntuitivoSí, fácil de leer y registrarNo
SingularidadBloqueo de cardán cuando el ángulo intermedio alcanza +/-90°Ninguna
InterpolaciónMala (saltos, multivaluada)Buena (slerp)
Riesgo de convención24 convenciones diferentes (orden, intrínseca/extrínseca)Única convención (solo ambigüedad de signo)
Uso típicoEntrada humana, archivos de configuración, registrosCálculo interno, mensajes ROS, estimación de estado

En ingeniería: usa ángulos de Euler para humanos, cuaterniones para la máquina.

tip

En el reBot Arm esto aparece de forma concreta: MeshCat y Pinocchio piensan en matrices de rotación y objetos SE(3), mientras tú escribes roll/pitch/yaw en grados en la terminal. Las demostraciones del Capítulo 26 convierten entre ambos por ti (rpyToMatrix, matrixToRpy).

  • Un marco son tres ejes más un origen; el brazo necesita al menos marcos de mundo, base, articulación, herramienta y cámara.
  • {world}={base}\{world\} = \{base\} en el reBot Arm porque la base está atornillada.
  • Una transformación homogénea empaqueta rotación y traslación en una sola matriz 4x4; encadenar es multiplicar.
  • Ángulos de Euler para humanos, cuaterniones para la máquina.
  • Próximo capítulo: usar estas transformaciones para calcular la pose del efector final a partir de los ángulos articulares — y viceversa.
Loading Comments...