RESOLUCIÓN OFICIAL PASO A PASO
Examen 3ª Convocatoria (11 Diciembre 2019) — Problema 2 (3.5 Puntos)
Grado en Ing. Tecnologías Industriales
Escuela Superior de Ingenieros de Sevilla
Asignatura: Robótica
ENUNCIADO ORIGINAL DE EXAMEN:
"Se dispone de un brazo robótico en cuyo extremo está situada una cámara (ver figura). El brazo robótico tiene 4 articulaciones: 3 articulaciones de giro ($\theta_1, \theta_2 \text{ y } \theta_3$) y una articulación prismática ($d_4$). Los ejes $E_1$ y $E_2$ son verticales, y el eje $E_3$ está en el plano horizontal, perpendicular a $L_2$. El brazo sobre el que está situada la cámara tiene un tramo fijo de longitud $L_3$ y un tramo de longitud variable (articulación prismática $d_4$).
Se pide:
a) Obtener las posiciones del extremo en función de las variables articulares. Las posiciones del extremo se expresarán en un sistema de referencia fijo.
b) Calcular el modelo inverso, suponiendo que la articulación prismática toma un valor fijo $d_4=0$. Obtener todas las posibles soluciones y dibujarlas esquemáticamente.
c) Obtener todos los puntos singulares del manipulador, indicando gráficamente a qué posiciones del robot corresponde cada uno."

1. ASIGNACIÓN RIGUROSA DE EJES DENAVIT-HARTENBERG (D-H)

Aplicamos las reglas de la convención Denavit-Hartenberg estándar cumpliendo estrictamente con el convenio de la asignatura en la Universidad de Sevilla:

Paso 1: Asignación de los Ejes $Z$ (Ejes de Articulación)

Paso 2: Asignación de los Ejes $X_i$ y Orígenes $O_i$ según los 3 Casos Topológicos

Esquema Hiper-Claro de Ejes D-H
Figura 1: Esquema cinemático tridimensional en alta definición con todos los ejes Denavit-Hartenberg (Z en azul, X en rojo, Orígenes en amarillo).

Tabla Definitiva de Parámetros Denavit-Hartenberg (D-H Estándar)

Eslabón $i$ $\theta_i$ (Giro en $Z_{i-1}$) $d_i$ (Avance en $Z_{i-1}$) $a_i$ (Longitud en $X_i$) $\alpha_i$ (Torsión en $X_i$) Tipo Articular
1 $\theta_1$ (Variable) $0$ $L_1$ $0^\circ$ Rotación (Eje vertical $E_1$)
2 $\theta_2$ (Variable) $0$ $L_2$ $+90^\circ$ ($\pi/2$) Rotación (Eje vertical $E_2$)
3 $\theta_3 + 90^\circ$ (Variable) $0$ $0$ $+90^\circ$ ($\pi/2$) Rotación (Eje horizontal $E_3$)
4 $0^\circ$ $L_3 + d_4$ (Variable) $0$ $0^\circ$ Prismática (Extensión longitudinal)
Nota sobre $\theta_3$:** Se añade el desfase $+90^\circ$ en la tabla D-H estándar para que la variable $\theta_3 = 0^\circ$ corresponda físicamente al brazo en reposo horizontal en la dirección de $L_2$, y $\theta_3 > 0$ a la elevación angular hacia arriba.

2. APARTADO A: POSICIONES DEL EXTREMO (CINEMÁTICA DIRECTA)

Matrices Homogéneas Elementales $A_i$

Aplicando la fórmula oficial del examen $A_i = \text{Rot}(Z, \theta_i)\text{Tras}(Z, d_i)\text{Tras}(X, a_i)\text{Rot}(X, \alpha_i)$:

$$A_1 = \begin{bmatrix} \cos\theta_1 & -\sin\theta_1 & 0 & L_1 \cos\theta_1 \\ \sin\theta_1 & \cos\theta_1 & 0 & L_1 \sin\theta_1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \qquad A_2 = \begin{bmatrix} \cos\theta_2 & 0 & \sin\theta_2 & L_2 \cos\theta_2 \\ \sin\theta_2 & 0 & -\cos\theta_2 & L_2 \sin\theta_2 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}$$ $$A_3 = \begin{bmatrix} -\sin\theta_3 & 0 & \cos\theta_3 & 0 \\ \cos\theta_3 & 0 & \sin\theta_3 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \qquad A_4 = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & L_3 + d_4 \\ 0 & 0 & 0 & 1 \end{bmatrix}$$

Transformación Total de la Base al Extremo ($T_0^4 = A_1 A_2 A_3 A_4$)

Multiplicando sucesivamente las matrices homogéneas se obtiene la matriz de transformación de la cámara respecto a la base fija $\{S_0\}$:

$$T_0^4 = \begin{bmatrix} r_{11} & r_{12} & \cos(\theta_1+\theta_2)\cos\theta_3 & \mathbf{x(q)} \\ r_{21} & r_{22} & \sin(\theta_1+\theta_2)\cos\theta_3 & \mathbf{y(q)} \\ r_{31} & r_{32} & \sin\theta_3 & \mathbf{z(q)} \\ 0 & 0 & 0 & 1 \end{bmatrix}$$
ECUACIONES FINALES DE CINEMÁTICA DIRECTA: $$\mathbf{x(\theta_1, \theta_2, \theta_3, d_4) = L_1 \cos\theta_1 + \left[ L_2 + (L_3 + d_4)\cos\theta_3 \right] \cos(\theta_1 + \theta_2)}$$ $$\mathbf{y(\theta_1, \theta_2, \theta_3, d_4) = L_1 \sin\theta_1 + \left[ L_2 + (L_3 + d_4)\cos\theta_3 \right] \sin(\theta_1 + \theta_2)}$$ $$\mathbf{z(\theta_1, \theta_2, \theta_3, d_4) = (L_3 + d_4)\sin\theta_3}$$

Comprobación física intuitiva:

  • La coordenada vertical $z$ depende exclusivamente de la elevación $\theta_3$ y de la longitud total del brazo $(L_3 + d_4)$.
  • En el plano horizontal $XY$, la proyección radial del brazo telescópico es $(L_3 + d_4)\cos\theta_3$. Sumada a $L_2$, forma un segundo radio planar efectivo $R_2 = L_2 + (L_3 + d_4)\cos\theta_3$ orientado según el ángulo $(\theta_1 + \theta_2)$, sumándose vectorialmente al primer eslabón $L_1$ orientado según $\theta_1$.

3. APARTADO B: MODELO CINEMÁTICO INVERSO CON $d_4 = 0$ (4 SOLUCIONES)

Fijando $d_4 = 0$, la longitud del tercer brazo es constante e igual a $L_3$. Disponemos de un manipulador de 3 GDL con variables $(\theta_1, \theta_2, \theta_3)$ para alcanzar una posición objetivo $(x, y, z)$.

Paso 1: Despeje de la Articulación de Elevación $\theta_3$

$$z = L_3 \sin\theta_3 \implies \sin\theta_3 = \frac{z}{L_3}$$
  • Condición de existencia física: $|z| \le L_3$. Si $|z| > L_3$, el punto está fuera del espacio de trabajo.
  • Al ser una función seno, existen dos ramas angulares posibles para $\theta_3$: $$\theta_3^{(1)} = \text{atan2}\left( \frac{z}{L_3}, +\sqrt{1 - \left(\frac{z}{L_3}\right)^2} \right) \implies \cos\theta_3 > 0 \quad (\text{Brazo inclinado hacia adelante})$$ $$\theta_3^{(2)} = \text{atan2}\left( \frac{z}{L_3}, -\sqrt{1 - \left(\frac{z}{L_3}\right)^2} \right) = \pi - \theta_3^{(1)} \implies \cos\theta_3 < 0 \quad (\text{Brazo inclinado hacia atrás})$$

Paso 2: Reducción al Problema Planar 2R y Despeje de $\theta_2$

Para cada una de las ramas de $\theta_3$, calculamos el radio planar equivalente del segundo tramo:

$$R_2 = L_2 + L_3 \cos\theta_3$$

Las coordenadas en el plano horizontal $XY$ quedan gobernadas por el sistema planar clásico 2R:

$$x = L_1 \cos\theta_1 + R_2 \cos(\theta_1 + \theta_2), \qquad y = L_1 \sin\theta_1 + R_2 \sin(\theta_1 + \theta_2)$$

Elevando al cuadrado y sumando ($x^2 + y^2 = L_1^2 + R_2^2 + 2 L_1 R_2 \cos\theta_2$):

$$\cos\theta_2 = \frac{x^2 + y^2 - L_1^2 - R_2^2}{2 L_1 R_2}$$
  • Condición de alcance planar: $|\cos\theta_2| \le 1 \iff |L_1 - |R_2|| \le \sqrt{x^2 + y^2} \le L_1 + |R_2|$.
  • Para cada valor admisible de $R_2$, surgen dos soluciones para $\theta_2$: $$\sin\theta_2 = \pm \sqrt{1 - \cos^2\theta_2} \implies \mathbf{\theta_2 = \text{atan2}\left(\pm\sqrt{1-\cos^2\theta_2}, \cos\theta_2\right)}$$ donde el signo $(+)$ corresponde a configuración codo izquierda y el signo $(-)$ a codo derecha.

Paso 3: Despeje de la Articulación de la Base $\theta_1$

Desarrollando los términos trigonométricos por adición de ángulos:

$$x = (L_1 + R_2 \cos\theta_2)\cos\theta_1 - (R_2 \sin\theta_2)\sin\theta_1, \qquad y = (L_1 + R_2 \cos\theta_2)\sin\theta_1 + (R_2 \sin\theta_2)\cos\theta_1$$

Resolviendo el sistema lineal de 2 ecuaciones para $\cos\theta_1$ y $\sin\theta_1$:

$$\mathbf{\theta_1 = \text{atan2}(y, x) - \text{atan2}\left( R_2 \sin\theta_2, \; L_1 + R_2 \cos\theta_2 \right)}$$

Esquema Gráfico de las 4 Soluciones Cinemáticas Inversas

El acoplamiento de las 2 orientaciones del brazo ($\cos\theta_3 > 0$ o $\cos\theta_3 < 0$) con las 2 posturas de codo ($\sin\theta_2 > 0$ o $\sin\theta_2 < 0$) genera un total de 4 soluciones cinemáticas independientes:

P(x,y,z) SOLUCIÓN 1 Codo Izq | θ_3 Adelante O_0 O_1 θ_3 ∈ [0, π/2], θ_2 > 0 SOLUCIÓN 2 Codo Der | θ_3 Adelante θ_3 ∈ [0, π/2], θ_2 < 0 SOLUCIÓN 3 Codo Izq | θ_3 Atrás (R_2 menor) θ_3 ∈ [π/2, π], θ_2 > 0 SOLUCIÓN 4 Codo Der | θ_3 Atrás (R_2 menor) θ_3 ∈ [π/2, π], θ_2 < 0
Figura 2: Proyección planar esquemática de las 4 posibles configuraciones cinemáticas inversas para alcanzar el mismo punto cartesiano.

4. APARTADO C: PUNTOS SINGULARES DEL MANIPULADOR

Para determinar los puntos singulares, calculamos la matriz Jacobiana de posición $J_v(q) = \frac{\partial p}{\partial q}$ del manipulador (con $d_4=0$, es decir, 3 GDL):

$$J(q) = \begin{bmatrix} \frac{\partial x}{\partial \theta_1} & \frac{\partial x}{\partial \theta_2} & \frac{\partial x}{\partial \theta_3} \\ \frac{\partial y}{\partial \theta_1} & \frac{\partial y}{\partial \theta_2} & \frac{\partial y}{\partial \theta_3} \\ \frac{\partial z}{\partial \theta_1} & \frac{\partial z}{\partial \theta_2} & \frac{\partial z}{\partial \theta_3} \end{bmatrix} = \begin{bmatrix} -y & -R_2 \sin(\theta_1+\theta_2) & -L_3 \sin\theta_3 \cos(\theta_1+\theta_2) \\ x & R_2 \cos(\theta_1+\theta_2) & -L_3 \sin\theta_3 \sin(\theta_1+\theta_2) \\ 0 & 0 & L_3 \cos\theta_3 \end{bmatrix}$$

donde $R_2 = L_2 + L_3 \cos\theta_3$. Calculando el determinante de la matriz $3 \times 3$ por desarrollo por la tercera fila:

$$\det(J) = L_3 \cos\theta_3 \cdot \left[ -y R_2 \cos(\theta_1+\theta_2) - (-x R_2 \sin(\theta_1+\theta_2)) \right]$$

Sustituyendo $x = L_1 \cos\theta_1 + R_2 \cos(\theta_1+\theta_2)$ e $y = L_1 \sin\theta_1 + R_2 \sin(\theta_1+\theta_2)$, el corchete se reduce a $L_1 R_2 \sin\theta_2$. Por tanto, el determinante factorizado resulta:

DETERMINANTE ANALÍTICO DEL JACOBIANO: $$\mathbf{\det(J) = L_1 \cdot L_3 \cdot \left( L_2 + L_3 \cos\theta_3 \right) \cdot \sin\theta_2 \cdot \cos\theta_3 = 0}$$

Las posiciones singulares del robot corresponden a la anulación de cualquiera de los factores trigonométricos o geométricos:

SINGULARIDAD 1: ALINEAMIENTO DEL CODO ($\sin\theta_2 = 0 \implies \theta_2 = 0^\circ \text{ o } 180^\circ$)
  • Postura $\theta_2 = 0^\circ$ (Frontera exterior): Los eslabones 1 y 2 están completamente alineados y extendidos en el plano horizontal. El robot alcanza su radio máximo en $XY$. Se pierde la capacidad de generar velocidad radial hacia el exterior ($\dot{r} > 0$).
  • Postura $\theta_2 = 180^\circ$ (Frontera interior): El eslabón 2 está completamente plegado hacia atrás sobre el eslabón 1. Se pierde la capacidad de generar velocidad radial hacia el interior.
SINGULARIDAD 2: BRAZO DE LA CÁMARA VERTICAL ($\cos\theta_3 = 0 \implies \theta_3 = \pm 90^\circ$)
  • Interpretación física: El brazo que sostiene la cámara está apuntando estrictamente vertical hacia arriba ($\theta_3 = +90^\circ$) o vertical hacia abajo ($\theta_3 = -90^\circ$).
  • Pérdida de grado de libertad: Al derivar, $\frac{\partial z}{\partial \theta_3} = L_3 \cos\theta_3 = 0$. Cualquier movimiento instantáneo de giro $\dot{\theta}_3$ en esta postura no produce cambio en la altura $z$. Con $d_4 = 0$, el robot se bloquea y es incapaz de generar velocidad en el eje vertical $Z$ ($\dot{z} = 0$).
SINGULARIDAD 3: EXTREMO SOBRE EL EJE VERTICAL $E_2$ ($R_2 = 0 \implies L_2 + L_3 \cos\theta_3 = 0$)
  • Condición geométrica: Ocurre si $\cos\theta_3 = -L_2 / L_3$ (factible físicamente si $L_3 \ge L_2$).
  • Interpretación física: La proyección horizontal del brazo apunta hacia atrás y cancela exactamente la longitud $L_2$. El extremo del robot se sitúa exactamente sobre el eje de giro vertical $E_2$ (la segunda articulación).
  • Pérdida de grado de libertad: La columna 2 del Jacobiano se anula idénticamente ($\frac{\partial p}{\partial \theta_2} = 0$). En este punto, rotar la articulación 2 no desplaza el extremo de la cámara.
SINGULARIDAD 1: Codo Alineado θ_2 = 0° (Extensión máxima en XY) E_1 E_2 Cámara No hay velocidad radial v_r > 0 SINGULARIDAD 2: Brazo Vertical θ_3 = ±90° (Cámara en máximo Z) E_3 Z máximo Bloqueo vertical: dz/dt = 0 SINGULARIDAD 3: Sobre Eje E_2 R_2 = L_2 + L_3 cos(θ_3) = 0 E_2 E_3 Eje E_2 no produce desplazamiento
Figura 3: Representación gráfica de las tres configuraciones singulares del robot.

5. SCRIPTS DE MATLAB UTILIZADOS PARA SOLUCIONAR CADA PASO

En la suite de Robótica del proyecto, cada fase de la resolución se apoya en scripts modulares de MATLAB diseñados para verificación simbólica y ejecución numérica:

Paso / Apartado Script de MATLAB Operación que Realiza
Paso D-H Inicial Core_Simbolico/dh_matrix.m Calcula la matriz elemental $A_i(\theta_i, d_i, a_i, \alpha_i)$ con los parámetros de la tabla D-H.
Apartado a) Cinemática Directa Core_Simbolico/forward_kinematics.m
02_Cinematica/CinematicaDirecta_Examen_Dic2019.m
Calcula simbólicamente $T_0^4 = A_1 A_2 A_3 A_4$ y evalúa numéricamente $(x, y, z)$ a partir de $(\theta_1, \theta_2, \theta_3, d_4)$.
Apartado b) Cinemática Inversa 02_Cinematica/CinematicaInversa_Examen_Dic2019.m Calcula las 4 soluciones analíticas para $(\theta_1, \theta_2, \theta_3)$ a partir de $(x, y, z)$ con comprobación de rango.
Apartado c) Jacobiano y Singularidades Core_Simbolico/find_singularities.m Calcula la matriz Jacobiana $J(q)$, su determinante analítico $\det(J)$ y extrae las raíces simbólicas de singularidad.
Solución Integral Completa Robots_Examen/examen_diciembre_2019_p2.m Ejecuta en un único script los 3 apartados del examen, mostrando la comprobación numérica con error $< 10^{-15}\text{ m}$.

Ejemplo de Llamada en MATLAB

% 1. Ejecución completa del examen con verificación:
run('C:\Tercera_Convocatoria\Robotica\Matlab\Robots_Examen\examen_diciembre_2019_p2.m');

% 2. Evaluación numérica de Cinemática Directa:
xyz = CinematicaDirecta_Examen_Dic2019([pi/6; pi/3; pi/4; 0.1]);

% 3. Cálculo de las 4 soluciones de Cinemática Inversa:
[q_sols, fueraRango] = CinematicaInversa_Examen_Dic2019([0.4; 0.2; 0.15]);
disp('Soluciones articulares q (en grados):');
disp(rad2deg(q_sols));