ROBÓTICA — COMPENDIO HISTÓRICO DE EXÁMENES
Resolución Oficial Detallada: Convocatorias 2018 y 2019
Grado en Ingeniería de Tecnologías Industriales
Universidad de Sevilla | Convocatorias de Junio y Septiembre
Banco Completo de Problemas y Teoría

1. EXAMEN JUNIO 2018 — PROBLEMAS CLAVE Y TEORÍA

Problema 1.3 (Lenguaje ACL): Realizar un programa en lenguaje ACL para que un robot manipulador recoja piezas de una cinta transportadora dotada de sensor óptico en IN[1] y active la cinta mediante OUT[1], depositándolas en POSFIN de forma indefinida.

1.1. Programa Oficial en Lenguaje ACL (Advanced Command Language)

; ========================================================
; PROGRAMA DE RECOGIDA CONTINUA EN CINTA TRANSPORTADORA
; ========================================================
LABEL 10                ; Bucle principal indefinido
  SET OUT[1] = 1        ; Arrancar motor de la cinta transportadora
LABEL 20                ; Bucle de espera activa de pieza
  IF IN[1] == 0 GOTO 20 ; Si no hay pieza detectada por el sensor óptico, esperar

  SET OUT[1] = 0        ; Parar la cinta inmediatamente (la pieza está en POSINI)
  OPEN 1                ; Abrir pinza del robot
  MOVE POSAPPR          ; Posición de aproximación sobre la cinta (evita colisiones)
  MOVE POSINI           ; Posicionarse sobre la pieza
  CLOSE 1               ; Cerrar pinza y sujetar la pieza
  DELAY 20              ; Pausa de 200 ms para asegurar agarre neumático
  MOVE POSAPPR          ; Retirar la pieza verticalmente

  MOVE POSFIN_APPR      ; Aproximación a la zona de destino
  MOVE POSFIN           ; Bajar a la posición de descarga
  OPEN 1                ; Soltar la pieza
  MOVE POSFIN_APPR      ; Retirar herramienta verticalmente

  GOTO 10               ; Repetir ciclo indefinidamente para la siguiente pieza

1.2. Configuraciones de Robots Móviles con Ruedas (Cuestión 1.2)

Configuración Cinemática y Accionamiento Ventajas Desventajas
Diferencial (2 motrices + 1 loca) $\omega = \frac{v_d - v_i}{L}$, $v = \frac{v_d + v_i}{2}$ Giro sobre su propio centro geométrico ($R=0$). Sencillez mecánica y cinemática elemental. Sensible a deslizamientos laterales. Rueda loca genera vibraciones en cambios de sentido.
Triciclo Clásico (1 directriz motriz + 2 fijas) Una rueda delantera con tracción y dirección; dos traseras libres no orientables. Control de tracción y dirección centralizado en una sola rueda. Excelente tracción delantera. Radio de giro limitado ($R > 0$). Inestabilidad de vuelco si el centro de gravedad está alto.
Tipo Automóvil / Ackerman 2 ruedas directrices acopladas (trapecio de Ackerman) + 2 ruedas motrices traseras. Altísima estabilidad dinámica a velocidades elevadas. Comportamiento idéntico al del coche. Cinemática no holónoma restrictiva. No puede girar sobre sí mismo ($R_{\min} \gg 0$). Maniobras complejas de aparcamiento.
Omnidireccional (Mecanum / Omniwheels) 3 o 4 ruedas con rodillos pasivos a $45^\circ$ o $90^\circ$ sobre su periferia. Holonómico: 3 GDL instantáneos ($v_x, v_y, \omega$). Se desplaza en cualquier dirección sin rotar previamente. Baja adherencia sobre superficies irregulares. Mayor coste y complejidad de control multieje.

1.3. Flujo de Ejecución de una Instrucción de Movimiento (Cuestión 1.4)

  1. Intérprete del Programa: Lee la orden de alto nivel (e.g., MOVE P1) y valida límites de espacio de trabajo y sintaxis.
  2. Planificador de Trayectorias: Define el tipo de movimiento (PTP o cartesiano) y genera el perfil temporal (trapezoidal o spline) discretizado a la frecuencia del lazo principal (ej. $1\text{ ms}$).
  3. Mapeo Cinemático Inverso: En movimientos cartesianos, convierte cada vector $(x_k, y_k, z_k)$ en consignas articulares $(q_{r1}, \dots, q_{rn})$.
  4. Interpolador / Lazo de Control de Eje: Calcula en cada servomotor el error de posición $e = q_r - q_m$ y aplica el algoritmo de control (PID con *feedforward*).
  5. Etapa de Potencia: El convertidor de potencia (inversor/chopper PWM) suministra la corriente correspondiente al motor para generar el par electromagnético deseado.

2. EXÁMENES SEPTIEMBRE 2018 Y JUNIO 2019

Cuestión 2 (Septiembre 2018): Clasificar los métodos de estimación de posición en robótica móvil: M1 (Odometría con encoders), M2 (GPS absoluto) y M3 (GPS diferencial - DGPS) según Resolución (C1), Frecuencia (C2) y Coste (C3).
Método C1: Resolución / Precisión C2: Frecuencia de Medida C3: Coste Económico
M1: Odometría con encoders Muy alta a corto plazo (submilimétrica), pero deriva acumulativa ilimitada por patinamiento. Muy alta ($100\text{ Hz} - 1\text{ kHz}$), lectura inmediata de pulsos en el microcontrolador. Muy bajo (sensores integrados en los motores de las ruedas).
M2: GPS Absoluto Comercial Baja (error típico entre $2\text{ m}$ y $5\text{ m}$ en exteriores, nulo en interiores). Baja ($1\text{ Hz} - 10\text{ Hz}$). Bajo (receptores estándar muy económicos).
M3: GPS Diferencial (DGPS / RTK) Muy alta y sin deriva ($1\text{ cm} - 2\text{ cm}$) gracias a la estación base de referencia fija. Media ($5\text{ Hz} - 20\text{ Hz}$). Alto / Muy alto (requiere estación base propia o suscripción a redes GNSS activas).

2.2. Propagación de Aceleraciones Angulares en Newton-Euler (Junio 2019 - P5)

En el algoritmo hacia adelante (*forward recursion*) de Newton-Euler, la velocidad angular de un eslabón $i$ se propaga como: $$\boldsymbol{\omega}_i = \boldsymbol{\omega}_{i-1} + \dot{\theta}_i \mathbf{z}_{i-1}$$ Derivando temporalmente respecto a un sistema inercial de referencia: $$\boldsymbol{\alpha}_i = \frac{d\boldsymbol{\omega}_i}{dt} = \frac{d\boldsymbol{\omega}_{i-1}}{dt} + \frac{d}{dt}(\dot{\theta}_i \mathbf{z}_{i-1}) = \boldsymbol{\alpha}_{i-1} + \ddot{\theta}_i \mathbf{z}_{i-1} + \dot{\theta}_i \left(\frac{d\mathbf{z}_{i-1}}{dt}\right)$$ Dado que el eje $\mathbf{z}_{i-1}$ es solidario al eslabón $i-1$, su variación temporal se debe a la rotación de dicho eslabón: $\frac{d\mathbf{z}_{i-1}}{dt} = \boldsymbol{\omega}_{i-1} \times \mathbf{z}_{i-1}$. Por consiguiente:

$$\boldsymbol{\alpha}_i = \boldsymbol{\alpha}_{i-1} + \boldsymbol{\omega}_{i-1} \times (\dot{\theta}_i \mathbf{z}_{i-1}) + \ddot{\theta}_i \mathbf{z}_{i-1}$$

Proyectando en los ejes del propio sistema de coordenadas del eslabón $\{i\}$: $$\boldsymbol{\alpha}_i^{(i)} = \mathbf{R}_i^{i-1, T} \left( \boldsymbol{\alpha}_{i-1}^{(i-1)} + \boldsymbol{\omega}_{i-1}^{(i-1)} \times (\dot{\theta}_i \mathbf{z}_0) + \ddot{\theta}_i \mathbf{z}_0 \right)$$ donde $\mathbf{z}_0 = [0, 0, 1]^T$. (Para articulación prismática $\dot{\theta}_i = \ddot{\theta}_i = 0 \implies \boldsymbol{\alpha}_i^{(i)} = \mathbf{R}_i^{i-1, T} \boldsymbol{\alpha}_{i-1}^{(i-1)}$).

2.3. Transformación de Coordenadas XYZ a UVW (Junio 2019 - P2)

Un sistema $XYZ$ se transforma en $UVW$ mediante un giro $\alpha = 30^\circ$ en torno al eje $Z$, seguido de un desplazamiento a lo largo del nuevo eje $X$ de $d = 1\text{ m}$. La matriz homogénea de cambio de base que expresa puntos de $UVW$ en $XYZ$ es: $$T_{XYZ}^{UVW} = \text{Rot}(Z, 30^\circ) \cdot \text{Tras}(X, 1) = \begin{bmatrix} \cos 30^\circ & -\sin 30^\circ & 0 & \cos 30^\circ \cdot 1 \\ \sin 30^\circ & \cos 30^\circ & 0 & \sin 30^\circ \cdot 1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{3}}{2} & -\frac{1}{2} & 0 & \frac{\sqrt{3}}{2} \\ \frac{1}{2} & \frac{\sqrt{3}}{2} & 0 & \frac{1}{2} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}$$ Para el punto $p^{(UVW)} = [0, 1, -1]^T$: $$\begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{3}}{2} & -\frac{1}{2} & 0 & \frac{\sqrt{3}}{2} \\ \frac{1}{2} & \frac{\sqrt{3}}{2} & 0 & \frac{1}{2} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 0 \\ 1 \\ -1 \\ 1 \end{bmatrix} = \begin{bmatrix} -\frac{1}{2} + \frac{\sqrt{3}}{2} \\ \frac{\sqrt{3}}{2} + \frac{1}{2} \\ -1 \\ 1 \end{bmatrix} \approx \begin{bmatrix} 0.366 \\ 1.366 \\ -1.0 \\ 1 \end{bmatrix}$$ Comandos en MATLAB: T = trotz(deg2rad(30)) * transl(1, 0, 0); p_xyz = T * [0; 1; -1; 1];