Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

3 Cinemática directa

La cinemática directa permite determinar la posición y orientación del elemento terminal de un manipulador a partir de sus coordenadas articulares. Es uno de los problemas fundamentales de la robótica y constituye la base para estudiar posteriormente la cinemática inversa, las velocidades y la dinámica.

En el capítulo anterior introdujimos las matrices de rotación y las transformaciones homogéneas para describir sistemas de referencia. Ahora emplearemos esas herramientas para construir modelos de manipuladores seriales. Comenzaremos con la composición directa de transformaciones y después estudiaremos la convención de Denavit–Hartenberg (DH), que facilita la asignación sistemática de sistemas.

La Figura Figure 1 ilustra la relación entre cinemática directa e inversa. La primera parte de las coordenadas articulares; la segunda busca configuraciones articulares que produzcan una pose deseada.

Relación entre cinemática directa e inversa.

Figure 1:Relación entre cinemática directa e inversa.

Al finalizar el capítulo, deberías poder describir la cadena cinemática de un manipulador serial, establecer sistemas de referencia apropiados, obtener un modelo de cinemática directa y comprobar que sus resultados son coherentes con la geometría del robot.

3.1El problema de la cinemática directa

Consideremos un manipulador serial con nn articulaciones de un grado de libertad. Representamos las variables articulares mediante el vector

q=[q1q2⋯qn]T.q=\begin{bmatrix}q_1&q_2&\cdots&q_n\end{bmatrix}^T.

Una articulación revoluta (R) permite la rotación relativa entre dos eslabones alrededor de un eje; su variable qiq_i es un ángulo. Una articulación prismática (P) permite la traslación relativa a lo largo de un eje; su variable qiq_i es un desplazamiento lineal. Ambas poseen un grado de libertad, y los valores de las variables articulares determinan la configuración del manipulador.

También se utilizan los términos junta revoluta y junta prismática como sinónimos de articulación. En teoría de mecanismos, al describir el movimiento relativo permitido entre los eslabones, es habitual hablar de pares cinemáticos: par revoluto y par prismático. En adelante, utilizaremos preferentemente articulación revoluta y articulación prismática.

La cinemática directa busca la transformación homogénea que describe la pose del sistema terminal {n}\{n\} respecto del sistema de la base {0}\{0\}:

Tn0(q)=[Rn0(q)ron 0(q)0 T1].T_n^0(q)= \begin{bmatrix} R_n^0(q)&\vec r_{o_n}^{\,0}(q)\\ \vec 0^{\,T}&1 \end{bmatrix}.

El bloque Rn0(q)R_n^0(q) representa la orientación del sistema terminal y el vector ron 0(q)\vec r_{o_n}^{\,0}(q) representa la posición de su origen, ambos respecto de la base. Así, una transformación homogénea describe la pose, no únicamente la posición.

Aunque la cinemática directa se calcula componiendo transformaciones, la expresión obtenida depende de la geometría del manipulador y de los sistemas elegidos. Un mismo robot admite diferentes descripciones matemáticas sin que cambie su comportamiento físico.

3.1.1Espacio articular y espacio operacional

El espacio articular reúne las configuraciones del robot, expresadas por los valores de q1,…,qnq_1,\ldots,q_n. Sus coordenadas no tienen por qué compartir unidades: las articulaciones revolutas se describen mediante ángulos y las prismáticas mediante distancias.

El espacio operacional representa las tareas en términos de variables asociadas a la posición y orientación del elemento terminal. Si únicamente interesa posicionar un punto, pueden bastar sus coordenadas (x,y,z)(x,y,z). Si también importa la orientación, necesitamos una representación adicional, como las matrices de rotación estudiadas en el capítulo anterior.

La cinemática directa establece una correspondencia desde las configuraciones articulares hacia las poses alcanzadas:

q⟼Tn0(q).q\longmapsto T_n^0(q).

No todas las poses son necesariamente alcanzables: la arquitectura, las dimensiones y los límites articulares restringen los movimientos posibles. Por otra parte, diferentes configuraciones pueden dar lugar a una misma pose; estudiaremos esta cuestión en el capítulo de cinemática inversa.

3.2Cadenas cinemáticas y sistemas de referencia

Un manipulador serial es una cadena cinemática abierta de eslabones rígidos conectados por articulaciones. Si posee nn articulaciones de un grado de libertad, tiene n+1n+1 eslabones, incluida la base fija, que identificamos con el índice 0.

Numeramos las articulaciones de 1 a nn y los eslabones de 0 a nn. La articulación ii conecta el eslabón i−1i-1 con el eslabón ii, como ilustra la Figura Figure 2.

Numeración de eslabones y articulaciones de una cadena serial.

Figure 2:Numeración de eslabones y articulaciones de una cadena serial.

Asociamos un sistema de referencia {i}\{i\} rígidamente al eslabón ii. Así, las coordenadas de un punto fijo al eslabón permanecen constantes cuando se expresan en su propio sistema, aunque cambien al describirlas desde la base.

Sistemas de referencia asociados a los eslabones.

Figure 3:Sistemas de referencia asociados a los eslabones.

La transformación Tii−1T_i^{i-1} describe la pose de {i}\{i\} respecto de {i−1}\{i-1\}. Si los sistemas se asignan de manera apropiada a los eslabones y cada articulación posee un grado de libertad, esa transformación depende de la variable qiq_i correspondiente y de parámetros geométricos constantes.

Por composición, la pose del sistema terminal se obtiene mediante

Tn0(q)=T10(q1) T21(q2)⋯Tnn−1(qn).\boxed{ T_n^0(q)=T_1^0(q_1)\,T_2^1(q_2)\cdots T_n^{n-1}(q_n). }

El orden de los factores es esencial: las transformaciones homogéneas no conmutan en general. Los índices indican qué sistemas se relacionan y ayudan a comprobar que se está utilizando un orden compatible. Si la herramienta requiere un sistema terminal diferente, podremos añadir su transformación correspondiente.

3.3Diagramas cinemáticos de manipuladores seriales

Un diagrama cinemático representa de forma simplificada los eslabones y las articulaciones de un manipulador. Su propósito es mostrar la conectividad y la disposición de los ejes articulares sin reproducir todos los detalles constructivos del robot.

En estos apuntes estudiaremos principalmente manipuladores con articulaciones revolutas (R) y prismáticas (P). La Figura Figure 4 presenta símbolos para representarlas.

Representación de articulaciones revolutas (R) y prismáticas (P).

Figure 4:Representación de articulaciones revolutas (R) y prismáticas (P).

En una articulación revoluta espacial, el eje del cilindro dibujado indica la dirección del eje de giro. En una prismática, la dirección longitudinal del prisma indica la dirección de deslizamiento. Los eslabones se representan con segmentos de línea.

El diagrama no pretende describir fielmente la forma o el volumen de cada eslabón. Al realizar el análisis distinguimos las distancias relevantes para la cinemática de los detalles constructivos que no modifican la relación entre las articulaciones.

3.4Cinemática directa mediante transformaciones elementales

Antes de introducir una convención sistemática, consideremos un manipulador planar RR con dos eslabones de longitudes l1l_1 y l2l_2. Ambos ejes de giro son paralelos al eje zz.

Situamos el sistema {0}\{0\} en la primera articulación, el sistema {1}\{1\} en el extremo del primer eslabón y el sistema {2}\{2\} en el extremo del segundo. Elegimos cada eje xix_i en la dirección longitudinal del eslabón correspondiente.

Para pasar de {0}\{0\} a {1}\{1\}, rotamos q1q_1 alrededor de zz y trasladamos l1l_1 a lo largo del eje xx del sistema rotado. Repetimos la construcción para el segundo eslabón:

T10=Rot⁡z(q1)Trans⁡x(l1),T21=Rot⁡z(q2)Trans⁡x(l2).T_1^0=\operatorname{Rot}_z(q_1)\operatorname{Trans}_x(l_1), \qquad T_2^1=\operatorname{Rot}_z(q_2)\operatorname{Trans}_x(l_2).

Por composición,

T20=Rot⁡z(q1)Trans⁡x(l1)Rot⁡z(q2)Trans⁡x(l2).T_2^0= \operatorname{Rot}_z(q_1)\operatorname{Trans}_x(l_1) \operatorname{Rot}_z(q_2)\operatorname{Trans}_x(l_2).

De esta expresión obtenemos las coordenadas del extremo:

x=l1cos⁡q1+l2cos⁡(q1+q2),y=l1sin⁡q1+l2sin⁡(q1+q2).x=l_1\cos q_1+l_2\cos(q_1+q_2), \qquad y=l_1\sin q_1+l_2\sin(q_1+q_2).

La orientación del sistema terminal en el plano se describe mediante una rotación alrededor de zz de ángulo q1+q2q_1+q_2. Más adelante reconstruiremos el modelo completo con Denavit–Hartenberg.

Este ejemplo demuestra que podemos obtener la cinemática directa sin DH si conocemos la secuencia de transformaciones elementales. En manipuladores espaciales más complejos, sin embargo, puede resultar difícil elegir sistemas y transformaciones de manera consistente.

3.4.1¿Por qué utilizar una convención sistemática?

La asignación de sistemas de referencia no es única. Diferentes elecciones pueden producir expresiones matriciales distintas, aunque describan el mismo movimiento físico cuando se consideran las transformaciones entre sus respectivas bases y sistemas terminales.

La convención de Denavit–Hartenberg proporciona reglas geométricas para asignar sistemas y expresar cada transformación consecutiva mediante cuatro parámetros. Así reducimos decisiones arbitrarias y seguimos un procedimiento común para diferentes robots.

Aquí utilizaremos la convención DH clásica o estándar. Existen otras formulaciones, como DH modificada, y otros enfoques, como el producto de exponenciales. Sus reglas de asignación y los órdenes de las transformaciones no deben confundirse.

3.5Convención de Denavit–Hartenberg

En la convención DH clásica, la pose del sistema {i}\{i\} respecto de {i−1}\{i-1\} se describe mediante cuatro parámetros: θi\theta_i, did_i, aia_i y αi\alpha_i. La transformación entre sistemas consecutivos se construye en este orden:

Tii−1=Rot⁡z(θi)Trans⁡z(di)Trans⁡x(ai)Rot⁡x(αi).\boxed{ T_i^{i-1}= \operatorname{Rot}_z(\theta_i) \operatorname{Trans}_z(d_i) \operatorname{Trans}_x(a_i) \operatorname{Rot}_x(\alpha_i). }

Las rotaciones y traslaciones son transformaciones homogéneas de 4×44\times4, como se definieron en el capítulo anterior. El orden es parte de la convención y no puede alterarse arbitrariamente.

Al efectuar el producto obtenemos

Tii−1=[cθi−sθicαisθisαiaicθisθicθicαi−cθisαiaisθi0sαicαidi0001].T_i^{i-1}= \begin{bmatrix} c_{\theta_i}&-s_{\theta_i}c_{\alpha_i}&s_{\theta_i}s_{\alpha_i}&a_ic_{\theta_i}\\ s_{\theta_i}&c_{\theta_i}c_{\alpha_i}&-c_{\theta_i}s_{\alpha_i}&a_is_{\theta_i}\\ 0&s_{\alpha_i}&c_{\alpha_i}&d_i\\ 0&0&0&1 \end{bmatrix}.

Aquí cφ=cos⁡φc_\varphi=\cos\varphi y sφ=sin⁡φs_\varphi=\sin\varphi. Los parámetros describen la geometría relativa de los sistemas; uno de ellos incorpora la variable articular de la junta ii.

3.5.1Asignación de los sistemas de referencia

La matriz (9) tiene la forma anterior solo cuando los sistemas se asignan de acuerdo con la convención DH clásica. Comenzamos por identificar los ejes de las articulaciones.

1. Ejes zz. El eje zi−1z_{i-1} se coloca sobre el eje de movimiento de la articulación ii: eje de giro para una revoluta o dirección de deslizamiento para una prismática, con i=1,…,ni=1,\ldots,n.

2. Sistema base {0}\{0\}. Su origen se sitúa sobre el eje z0z_0 de la primera articulación. Los ejes x0x_0 e y0y_0 se eligen para completar un sistema derecho. La elección del sistema base influye en los parámetros y en la pose calculada respecto de él.

3. Sistemas intermedios. Para definir el sistema {i}\{i\}, examinamos las rectas que contienen zi−1z_{i-1} y ziz_i. En la convención DH clásica, el eje xix_i debe cumplir dos condiciones geométricas respecto de zi−1z_{i-1}:

  1. Ser perpendicular a zi−1z_{i-1}.

  2. Intersecar a zi−1z_{i-1}.

Estas condiciones se refieren a las rectas que contienen los ejes, no a que sus orígenes deban coincidir. Para completar la construcción, xix_i se elige como una normal común a zi−1z_{i-1} y ziz_i: también es perpendicular a ziz_i y lo interseca en el origen oio_i del sistema {i}\{i\}. De esta manera, la elección de xix_i es compatible con la secuencia de transformaciones de la matriz DH clásica.

La manera de trazar esa normal común depende de la disposición relativa de los ejes zz:

  • Ejes no coplanares (rectas alabeadas): los ejes no son paralelos ni se intersecan. Existe una única normal común que une ambas rectas con distancia mínima; su dirección define xix_i.

  • Ejes paralelos y distintos: existen múltiples normales comunes. Una elección habitual es la que pasa por el origen anterior.

  • Ejes que se intersecan: xix_i se elige perpendicular al plano de ambos ejes, con dirección compatible con zi−1×ziz_{i-1}\times z_i.

  • Ejes coincidentes: puede elegirse xix_i perpendicular al eje común y alineado con xi−1x_{i-1} en una configuración de referencia. Esto no implica que la alineación se mantenga durante el movimiento.

En todos los casos, yiy_i se determina para completar un sistema coordenado derecho.

4. Sistema terminal {n}\{n\}. Una vez identificado el eje zn−1z_{n-1} de la última articulación, el sistema final admite cierta libertad de elección. Es frecuente tomar znz_n paralelo a zn−1z_{n-1} para simplificar el modelo, pero no es una obligación universal. El último sistema DH tampoco tiene que coincidir con el punto de operación de la herramienta.

Estas reglas permiten comprobar la disposición geométrica de los sistemas antes de obtener los parámetros. En particular, al revisar un diagrama DH, conviene verificar que cada eje xix_i sea perpendicular a zi−1z_{i-1} y lo interseque.

3.5.2Parámetros de Denavit–Hartenberg

Una vez establecidos los sistemas, obtenemos los parámetros DH. Antes de identificarlos en un manipulador conviene visualizar dónde se miden. En la Figura Figure 5 se representa un caso general de dos ejes consecutivos no coplanares. El eje xix_i es una normal común que corta a zi−1z_{i-1} en el punto HH y a ziz_i en el origen oio_i.

Interpretación geométrica de los cuatro parámetros de Denavit–Hartenberg clásicos: d_i y \theta_i se miden a lo largo y alrededor de z_{i-1}, respectivamente; a_i y \alpha_i se miden a lo largo y alrededor de x_i, respectivamente. Las líneas auxiliares grises y delgadas prolongan las direcciones de los ejes para identificar el punto H y facilitar la interpretación geométrica.

Figure 5:Interpretación geométrica de los cuatro parámetros de Denavit–Hartenberg clásicos: did_i y θi\theta_i se miden a lo largo y alrededor de zi−1z_{i-1}, respectivamente; aia_i y αi\alpha_i se miden a lo largo y alrededor de xix_i, respectivamente. Las líneas auxiliares grises y delgadas prolongan las direcciones de los ejes para identificar el punto HH y facilitar la interpretación geométrica.

Los parámetros son desplazamientos y ángulos con signo, medidos según el sentido positivo de los ejes elegidos:

  • θi\theta_i: ángulo de rotación alrededor de zi−1z_{i-1} desde la dirección de xi−1x_{i-1} hacia la de xix_i. Para comparar ambas direcciones, puede trasladarse paralelamente xi−1x_{i-1} hasta el punto HH.

  • did_i: desplazamiento a lo largo de zi−1z_{i-1} desde el origen oi−1o_{i-1} hasta el punto HH, donde el eje xix_i interseca a zi−1z_{i-1}.

  • aia_i: desplazamiento a lo largo de xix_i desde HH hasta el origen oio_i, donde xix_i interseca a ziz_i.

  • αi\alpha_i: ángulo de rotación alrededor de xix_i desde la dirección de zi−1z_{i-1} hasta la de ziz_i. Para interpretarlo, puede trasladarse paralelamente zi−1z_{i-1} hasta el origen oio_i.

En resumen, θi\theta_i y did_i se asocian al eje zi−1z_{i-1}, mientras que aia_i y αi\alpha_i se asocian al eje xix_i. Esta agrupación permite recordar el orden de operaciones de la transformación Tii−1T_i^{i-1}. Aunque la figura muestra ejes no coplanares para distinguir las cuatro mediciones, las mismas definiciones se aplican cuando los ejes son paralelos, se intersecan o coinciden, utilizando las reglas de asignación explicadas anteriormente.

En una articulación R, el parámetro variable es θi\theta_i y did_i es constante. En una articulación P, el parámetro variable es did_i y θi\theta_i es constante. Los parámetros geométricos aia_i y αi\alpha_i son constantes en ambos casos.

Conviene distinguir el parámetro DH de la coordenada articular empleada por el controlador o el enunciado. Según el origen y el sentido elegidos para qiq_i, puede ser necesario incorporar un desplazamiento constante o invertir el signo. Si los sentidos positivos coinciden, por ejemplo:

θi=qi+θi,0(revoluta),di=qi+di,0(prismaˊtica).\theta_i=q_i+\theta_{i,0}\quad\text{(revoluta)}, \qquad d_i=q_i+d_{i,0}\quad\text{(prismática)}.

No debemos suponer que el cero articular del robot físico coincide automáticamente con el utilizado para construir su tabla DH.

Una vez determinados los parámetros de todos los sistemas, los organizamos como se muestra en la Tabla Table 1. Cada fila representa una articulación y reúne la información para construir su transformación Tii−1T_i^{i-1}.

Table 1:Parámetros de Denavit–Hartenberg (convención clásica).

iiaia_iαi\alpha_idid_iθi\theta_i
1a1a_1α1\alpha_1d1d_1θ1\theta_1
2a2a_2α2\alpha_2d2d_2θ2\theta_2
⋮\vdots⋮\vdots⋮\vdots⋮\vdots⋮\vdots
nnana_nαn\alpha_ndnd_nθn\theta_n

La tabla contiene una fila por articulación de un grado de libertad. No describe necesariamente transformaciones adicionales entre la base DH y el sistema del mundo, ni entre el último sistema DH y el punto de operación de una herramienta.

3.5.3Construcción del modelo de cinemática directa

Con los sistemas de referencia asignados y una tabla de parámetros como la Tabla Table 1, sustituimos cada fila en la ecuación (9) para obtener las transformaciones consecutivas Tii−1T_i^{i-1}.

La pose del sistema terminal respecto de la base es el producto ordenado

Tn0(q)=T10(q1)T21(q2)⋯Tnn−1(qn).T_n^0(q)=T_1^0(q_1)T_2^1(q_2)\cdots T_n^{n-1}(q_n).

Para interpretar el resultado separamos la orientación y la posición:

Tn0(q)=[Rn0(q)ron 0(q)0 T1].T_n^0(q)= \begin{bmatrix} R_n^0(q)&\vec r_{o_n}^{\,0}(q)\\ \vec 0^{\,T}&1 \end{bmatrix}.

La matriz depende de las coordenadas articulares y de los parámetros geométricos. A continuación aplicaremos este procedimiento a manipuladores sencillos y después a un robot industrial de seis articulaciones.

3.6Ejemplos resueltos

Aplicaremos la convención DH clásica a manipuladores de complejidad creciente. En cada caso, el objetivo no es solo realizar el producto de matrices, sino justificar la asignación de sistemas, identificar los parámetros y comprobar la interpretación geométrica del resultado.

Ejemplo. Cinemática directa de un manipulador RR. Determine la transformación del sistema terminal del manipulador planar mostrado en la Figura Figure 6, empleando la convención DH clásica.

Manipulador RR: a) estructura geométrica; b) sistemas de referencia asociados.

Figure 6:Manipulador RR: a) estructura geométrica; b) sistemas de referencia asociados.

Solución. El robot tiene dos articulaciones revolutas de ejes paralelos y eslabones de longitudes l1l_1 y l2l_2. Colocamos z0z_0 sobre el eje de la primera articulación y z1z_1 sobre el de la segunda. Tomamos z2z_2 paralelo a los anteriores en el extremo del segundo eslabón. Los ejes x1x_1 y x2x_2 apuntan a lo largo de sus eslabones respectivos, como se muestra en la parte b de la Figura Figure 6.

Como los ejes zz son paralelos y tienen el mismo sentido, los ángulos de torsión α1\alpha_1 y α2\alpha_2 son nulos. Las normales comunes tienen longitudes l1l_1 y l2l_2, de modo que a1=l1a_1=l_1 y a2=l2a_2=l_2. Los orígenes elegidos están a la misma altura, por lo cual d1=d2=0d_1=d_2=0. Finalmente, al ser articulaciones revolutas, θ1=q1\theta_1=q_1 y θ2=q2\theta_2=q_2.

iiaia_iαi\alpha_idid_iθi\theta_i
1l1l_100q1q_1
2l2l_200q2q_2

De la ecuación (9) obtenemos:

T10=[c1−s10l1c1s1c10l1s100100001],T21=[c2−s20l2c2s2c20l2s200100001].T_1^0 = \begin{bmatrix} c_1&-s_1&0&l_1c_1\\ s_1&c_1&0&l_1s_1\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}, \qquad T_2^1 = \begin{bmatrix} c_2&-s_2&0&l_2c_2\\ s_2&c_2&0&l_2s_2\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}.

Aquí ci=cos⁡qic_i=\cos q_i y si=sin⁡qis_i=\sin q_i. Tras multiplicar las transformaciones y utilizar las identidades trigonométricas

c12=cos⁡(q1+q2),s12=sin⁡(q1+q2),c_{12}=\cos(q_1+q_2),\qquad s_{12}=\sin(q_1+q_2),

obtenemos el modelo:

T20=T10T21=[c12−s120l1c1+l2c12s12c120l1s1+l2s1200100001].\boxed{ T_2^0=T_1^0T_2^1= \begin{bmatrix} c_{12}&-s_{12}&0&l_1c_1+l_2c_{12}\\ s_{12}&c_{12}&0&l_1s_1+l_2s_{12}\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}. }

La cuarta columna proporciona la posición del extremo en la base, mientras que el bloque superior izquierdo representa una rotación de q1+q2q_1+q_2 alrededor de zz. Este resultado coincide con el obtenido previamente mediante transformaciones elementales.

Comprobación. Para q1=q2=0q_1=q_2=0, los dos eslabones quedan alineados sobre el eje x0x_0 y el extremo debe estar en (l1+l2,0,0)(l_1+l_2,0,0). Al sustituir ambos ángulos en T20T_2^0 obtenemos exactamente esa posición y una orientación igual a la de la base.

3.6.1Comprobación simbólica del manipulador RR con SymPy

Una vez obtenido el modelo de manera analítica, podemos utilizar SymPy para reproducir el producto de matrices y comprobar las identidades trigonométricas. El siguiente programa construye la matriz DH clásica a partir de sus cuatro parámetros, calcula T20T_2^0 y muestra la matriz obtenida para compararla con la expresión deducida anteriormente. Finalmente, añade una comprobación automática de que ambas coinciden.

El código constituye una comprobación, no un sustituto de la asignación geométrica de sistemas ni de la determinación de los parámetros. Puedes ejecutarlo en un notebook de Python para visualizar la matriz simbólica; la construcción del libro no ejecuta automáticamente estos fragmentos.

import sympy as sp

q1, q2, l1, l2 = sp.symbols("q1 q2 l1 l2", real=True)

def dh(a, alpha, d, theta):
    ct, st = sp.cos(theta), sp.sin(theta)
    ca, sa = sp.cos(alpha), sp.sin(alpha)
    return sp.Matrix([
        [ct, -st*ca,  st*sa, a*ct],
        [st,  ct*ca, -ct*sa, a*st],
        [0,       sa,     ca,    d],
        [0,        0,      0,    1],
    ])

T = sp.trigsimp(dh(l1, 0, 0, q1) * dh(l2, 0, 0, q2))
print("Transformación T_2^0 calculada con SymPy:")
sp.pprint(T)

T_esperada = sp.Matrix([
    [sp.cos(q1 + q2), -sp.sin(q1 + q2), 0,
     l1*sp.cos(q1) + l2*sp.cos(q1 + q2)],
    [sp.sin(q1 + q2),  sp.cos(q1 + q2), 0,
     l1*sp.sin(q1) + l2*sp.sin(q1 + q2)],
    [0, 0, 1, 0],
    [0, 0, 0, 1],
])

assert sp.simplify(T - T_esperada) == sp.zeros(4)
print("El modelo simbólico coincide con la solución analítica.")

Primero, compara visualmente la matriz mostrada con la solución analítica del ejemplo RR. La instrucción assert añade una comprobación automática: si la diferencia simplificada entre ambas matrices es nula, el programa continúa e imprime el mensaje de confirmación; si no lo es, señala que la comparación no se cumplió. La validación es simbólica y no requiere asignar valores numéricos a q1q_1, q2q_2, l1l_1 o l2l_2.

Para explorar: modifica alguno de los parámetros DH e identifica qué elemento de la matriz resultante cambia y cuál es su interpretación geométrica.

Ejemplo. Cinemática directa de un manipulador espacial RRR. Determine la transformación del extremo del robot mostrado en la Figura Figure 7.

Manipulador espacial de tres articulaciones revolutas.

Figure 7:Manipulador espacial de tres articulaciones revolutas.

Solución. En este robot, el eje de la primera articulación es perpendicular al de la segunda, mientras que los ejes de las articulaciones segunda y tercera son paralelos. La Figura Figure 8 muestra una asignación de sistemas compatible con DH clásica.

Asignación de sistemas de referencia para el manipulador RRR.

Figure 8:Asignación de sistemas de referencia para el manipulador RRR.

Los ejes z0z_0 y z1z_1 se intersecan; de ahí que a1=0a_1=0 y, con la orientación mostrada, α1=90∘\alpha_1=90^\circ. Los ejes z1z_1, z2z_2 y z3z_3 son paralelos, por lo que α2=α3=0\alpha_2=\alpha_3=0. Las distancias de los eslabones corresponden a a2=l2a_2=l_2 y a3=l3a_3=l_3. El origen del segundo eje se encuentra a una altura constante d1d_1 respecto de la base.

iiaia_iαi\alpha_idid_iθi\theta_i
1090∘90^\circd1d_1q1q_1
2l2l_200q2q_2
3l3l_300q3q_3

Al sustituir en la matriz DH, obtenemos

T10=[c10s10s10−c10010d10001],T21=[c2−s20l2c2s2c20l2s200100001],T_1^0= \begin{bmatrix} c_1&0&s_1&0\\ s_1&0&-c_1&0\\ 0&1&0&d_1\\ 0&0&0&1 \end{bmatrix}, \qquad T_2^1= \begin{bmatrix} c_2&-s_2&0&l_2c_2\\ s_2&c_2&0&l_2s_2\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix},
T32=[c3−s30l3c3s3c30l3s300100001].T_3^2= \begin{bmatrix} c_3&-s_3&0&l_3c_3\\ s_3&c_3&0&l_3s_3\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}.

Es conveniente multiplicar primero las dos últimas matrices, cuyos ejes de giro son paralelos. Si definimos c23=cos⁡(q2+q3)c_{23}=\cos(q_2+q_3) y s23=sin⁡(q2+q3)s_{23}=\sin(q_2+q_3), el producto se simplifica a

T21T32=[c23−s230l2c2+l3c23s23c230l2s2+l3s2300100001].T_2^1T_3^2= \begin{bmatrix} c_{23}&-s_{23}&0&l_2c_2+l_3c_{23}\\ s_{23}&c_{23}&0&l_2s_2+l_3s_{23}\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}.

Finalmente,

T30=[c1c23−c1s23s1c1(l2c2+l3c23)s1c23−s1s23−c1s1(l2c2+l3c23)s23c230d1+l2s2+l3s230001].\boxed{ T_3^0= \begin{bmatrix} c_1c_{23}&-c_1s_{23}&s_1&c_1(l_2c_2+l_3c_{23})\\ s_1c_{23}&-s_1s_{23}&-c_1&s_1(l_2c_2+l_3c_{23})\\ s_{23}&c_{23}&0&d_1+l_2s_2+l_3s_{23}\\ 0&0&0&1 \end{bmatrix}. }

Interpretación. La distancia horizontal al eje de la primera articulación es l2c2+l3c23l_2c_2+l_3c_{23}; el ángulo q1q_1 determina su dirección en el plano xyxy. La coordenada vertical es d1+l2s2+l3s23d_1+l_2s_2+l_3s_{23}. Cuando q2=q3=0q_2=q_3=0, el extremo está a altura d1d_1 y a distancia radial l2+l3l_2+l_3, lo que permite comprobar los términos de posición del modelo.

Aunque el manipulador tiene tres articulaciones, no puede alcanzar arbitrariamente todas las orientaciones espaciales: sus movimientos y su arquitectura restringen las poses posibles.

Ejemplo. Calcule la cinemática directa del manipulador RRP mostrado en la figura.

Esquema de un manipulador RRP.

Figure 9:Esquema de un manipulador RRP.

Solución. En este manipulador la primera y segunda articulación son no coplanares, entonces x1x_1 se coloca en la dirección de la normal común a z0z_0 a z1z_1. La segunda y tercera articulación se intersecan, entonces x2x_2 debe colocarse perpendicular al plano formado por z1z_1 y z2z_2. Finalmente, dado que z2z_2 y z3z_3 son colineales, entonces podemos establecer x3x_3 en la misma dirección que x2x_2 de tal manera que θ3=0°\theta_3=0°.

Manipulador RRP con los sistemas de referencia establecidos.

Figure 10:Manipulador RRP con los sistemas de referencia establecidos.

Para la obtención de parámetros se debe tener en cuenta que la primera y segunda articulación son revolutas, entonces θ1=q1\theta_1 = q_1 y θ2=q2\theta_2 = q_2, de manera similar dado que la tercera junta es prismática entonces d3=q3d_3 = q_3. A continuación, se muestra la tabla de parámetros:

iiaia_iαi\alpha_idid_iθi\theta_i
1a1a_190∘90^\circd1d_1q1q_1
2090∘90^\circ0q2q_2
300q3q_30

Sustituyendo cada fila de parámetros en la ecuación (9):

T10=[c10s1a1c1s10−c1a1s1010d10001]T_1^0 = \begin{bmatrix} c_1 & 0 & s_1 & a_1 c_1 \\ s_1 & 0 & -c_1 & a_1 s_1 \\ 0 & 1 & 0 & d_1 \\ 0 & 0 & 0 & 1 \end{bmatrix}
T21=[c20s20s20−c20010d10001]T_2^1 = \begin{bmatrix} c_2 & 0 & s_2 & 0 \\ s_2 & 0 & -c_2 & 0 \\ 0 & 1 & 0 & d_1 \\ 0 & 0 & 0 & 1 \end{bmatrix}
T32=[10000100001q30001]T_3^2 = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & q_3 \\ 0 & 0 & 0 & 1 \end{bmatrix}

Finalmente, calculamos T30T_3^0:

T30=T10T21T32=[c1c2s1c1s2a1c1+q3c1s2s1c2−c1s1s2a1s1+q3s1s2s20−c2d1−q3c20001]T_3^0 = T_1^0 T_2^1 T_3^2 = \begin{bmatrix} c_1 c_2 & s_1 & c_1 s_2 & a_1 c_1 + q_3 c_1 s_2 \\ s_1 c_2 & -c_1 & s_1 s_2 & a_1 s_1 + q_3 s_1 s_2 \\ s_2 & 0 & -c_2 & d_1 - q_3 c_2 \\ 0 & 0 & 0 & 1 \end{bmatrix}

Ejemplo. Cinemática directa de un robot industrial ABB IRB 140. Construyamos un modelo geométrico de seis articulaciones revolutas a partir de las dimensiones y los ejes articulares del manipulador.

Dimensiones del robot ABB IRB 140 utilizadas en el modelo.

Figure 11:Dimensiones del robot ABB IRB 140 utilizadas en el modelo.

Solución. Para modelar un robot industrial, necesitamos identificar las direcciones de sus ejes articulares y las distancias entre ellos, no todos los detalles constructivos de sus eslabones. La Figura Figure 11 contiene dimensiones de referencia; se puede consultar también la documentación técnica empleada para el ejemplo.

En la Figura Figure 12 se presenta el diagrama cinemático con una asignación DH clásica. Al recorrer los ejes:

  • z0z_0 y z1z_1 son no coplanares; x1x_1 se coloca sobre su normal común.

  • z1z_1 y z2z_2 son paralelos; su normal común define x2x_2.

  • z2z_2 y z3z_3, z3z_3 y z4z_4, y z4z_4 y z5z_5 se intersecan; se eligen los ejes x3x_3, x4x_4 y x5x_5 perpendiculares a los planos correspondientes.

  • z5z_5 y z6z_6 son coincidentes. Elegimos x6x_6 coincidente con x5x_5 en la configuración articular de referencia; durante el movimiento relativo, el ángulo entre ambos varía con q6q_6.

Diagrama cinemático y sistemas de referencia del ABB IRB 140.

Figure 12:Diagrama cinemático y sistemas de referencia del ABB IRB 140.

Para los sistemas representados, los parámetros se reúnen en la Tabla Table 2. Suponemos que las variables qiq_i coinciden con los ángulos DH de este modelo, sin introducir compensaciones adicionales para los ceros articulares.

Table 2:Parámetros DH del ABB IRB 140. Longitudes en milímetros; ángulos en grados.

iiaia_iαi\alpha_idid_iθi\theta_i
17090∘90^\circ352q1q_1
236000q2q_2
3090∘90^\circ0q3q_3
40−90∘-90^\circ380q4q_4
5090∘90^\circ0q5q_5
60065q6q_6

Como ilustración, al sustituir las filas primera y cuarta en la ecuación (9) obtenemos

T10=[c10s170c1s10−c170s10103520001],T43=[c40−s40s40c400−103800001].T_1^0= \begin{bmatrix} c_1&0&s_1&70c_1\\ s_1&0&-c_1&70s_1\\ 0&1&0&352\\ 0&0&0&1 \end{bmatrix}, \qquad T_4^3= \begin{bmatrix} c_4&0&-s_4&0\\ s_4&0&c_4&0\\ 0&-1&0&380\\ 0&0&0&1 \end{bmatrix}.

Las otras cuatro transformaciones se calculan del mismo modo. El modelo completo es

T60(q)=T10(q1)T21(q2)T32(q3)T43(q4)T54(q5)T65(q6).T_6^0(q)=T_1^0(q_1)T_2^1(q_2)T_3^2(q_3) T_4^3(q_4)T_5^4(q_5)T_6^5(q_6).

El desarrollo simbólico de sus doce entradas no constantes es extenso y poco ilustrativo. En cambio, para interpretar el resultado, evaluemos una configuración concreta del modelo:

q=(0∘,90∘,0∘,0∘,0∘,0∘)T.q=(0^\circ,90^\circ,0^\circ,0^\circ,0^\circ,0^\circ)^T.

Al sustituir estos valores en las seis transformaciones y multiplicarlas se obtiene

T60=[0015150−1001007120001].\boxed{ T_6^0= \begin{bmatrix} 0&0&1&515\\ 0&-1&0&0\\ 1&0&0&712\\ 0&0&0&1 \end{bmatrix}. }

Por tanto, en esta configuración el origen del sistema {6}\{6\} se encuentra en (515,0,712)(515,0,712) mm respecto de la base. Las tres primeras columnas describen su orientación: el eje x6x_6 apunta según +z0+z_0, el eje y6y_6 según −y0-y_0 y el eje z6z_6 según +x0+x_0. La altura 712 mm incluye 352+360352+360, mientras que la componente horizontal 515 mm proviene de 70+380+6570+380+65 con los signos y sentidos definidos por los sistemas del modelo.

Esta evaluación comprueba una configuración del modelo DH adoptado, sin afirmar que sea necesariamente una posición de operación permitida por los límites articulares reales. Para relacionarlo con los valores de un controlador industrial habrá que comprobar sus convenciones de cero y sentido positivo.

3.6.2Evaluación numérica de un robot industrial con NumPy

Para un manipulador de seis articulaciones, resulta más práctico evaluar las transformaciones numéricamente que desarrollar todas las entradas del producto simbólico. En el siguiente ejemplo utilizamos NumPy y los parámetros DH del ABB IRB 140 definidos anteriormente.

La tabla del ejemplo expresa los ángulos en grados, mientras que las funciones trigonométricas de NumPy utilizan radianes. Por eso realizamos la conversión explícitamente. Conservamos las distancias en milímetros y multiplicamos las transformaciones en el mismo orden que la cadena cinemática.

import numpy as np

def dh(a, alpha, d, theta):
    ct, st = np.cos(theta), np.sin(theta)
    ca, sa = np.cos(alpha), np.sin(alpha)
    return np.array([
        [ct, -st*ca,  st*sa, a*ct],
        [st,  ct*ca, -ct*sa, a*st],
        [0,       sa,     ca,    d],
        [0,        0,      0,    1],
    ], dtype=float)

# (a_i en mm, alpha_i en grados, d_i en mm)
parametros = [
    (70, 90, 352),
    (360, 0, 0),
    (0, 90, 0),
    (0, -90, 380),
    (0, 90, 0),
    (0, 0, 65),
]
q = np.deg2rad([0, 90, 0, 0, 0, 0])

T = np.eye(4)
for (a, alpha_grados, d), theta in zip(parametros, q):
    T = T @ dh(a, np.deg2rad(alpha_grados), d, theta)

np.set_printoptions(precision=3, suppress=True)
print("Transformación T_6^0 calculada con NumPy (posición en mm):")
print(T)

T_esperada = np.array([
    [0, 0, 1, 515],
    [0, -1, 0, 0],
    [1, 0, 0, 712],
    [0, 0, 0, 1],
])
np.testing.assert_allclose(T, T_esperada, atol=1e-10)
np.testing.assert_allclose(T[:3, :3].T @ T[:3, :3], np.eye(3), atol=1e-10)
np.testing.assert_allclose(np.linalg.det(T[:3, :3]), 1.0, atol=1e-10)
print("Las comprobaciones numéricas se cumplieron.")

Al ejecutar el código, la matriz impresa permite comparar visualmente el resultado con el obtenido en el ejemplo: la posición del extremo es (515,0,712)(515,0,712) mm. El resultado esperado, omitiendo residuos numéricos cercanos a cero, es

[[  0.   0.   1. 515.]
 [  0.  -1.   0.   0.]
 [  1.   0.   0. 712.]
 [  0.   0.   0.   1.]]

Algunas entradas podrían aparecer como -0. por efectos del redondeo en punto flotante; se interpretan como cero. Las instrucciones np.testing.assert_allclose realizan además comprobaciones automáticas con una tolerancia pequeña, necesaria por el redondeo numérico. Las dos últimas verifican que el bloque de orientación es ortogonal y tiene determinante unitario. Si alguna comparación falla, el programa indica el error; si todas se cumplen, aparece el mensaje de confirmación.

Este programa utiliza exclusivamente NumPy y no depende de una biblioteca especializada de robótica. Más adelante podremos utilizar herramientas de mayor nivel para modelar y visualizar manipuladores sin repetir todo el cálculo matricial.

3.7Interpretación y comprobación de resultados

Obtener el producto de matrices es solo una parte del análisis. También necesitamos comprobar que el modelo representa la geometría y las convenciones que hemos adoptado.

Una primera comprobación consiste en evaluar una configuración conocida —por ejemplo, con algunas articulaciones en cero— y comparar la pose calculada con la que se espera del diagrama cinemático. Las longitudes y desplazamientos deben expresarse en unidades compatibles.

Si extraemos la submatriz de orientación Rn0R_n^0 de una transformación homogénea válida, debe cumplirse

(Rn0)TRn0=I3,det⁡(Rn0)=1.(R_n^0)^T R_n^0=I_3, \qquad \det(R_n^0)=1.

La última fila de la transformación debe ser [0  0  0  1][0\;0\;0\;1]. En cálculos numéricos pueden aparecer pequeñas diferencias por redondeo; las discrepancias considerables suelen indicar errores en el orden de composición, los signos de los ángulos o la tabla de parámetros.

El sistema {n}\{n\} no tiene por qué coincidir con el punto central de herramienta (Tool Center Point, TCP). Si conocemos una transformación fija desde el último sistema DH hasta la herramienta, podemos obtener

TTCP0(q)=Tn0(q) TTCPn.T_{\mathrm{TCP}}^0(q)=T_n^0(q)\,T_{\mathrm{TCP}}^n.

En aplicaciones computacionales posteriores podremos utilizar Python para evaluar estas expresiones y contrastar los resultados simbólicos, numéricos y geométricos.

3.7.1Guía para construir y revisar un modelo DH

En un problema nuevo, conviene seguir una secuencia de trabajo definida:

  1. Identificar las articulaciones y numerarlas desde la base, señalando sus ejes de movimiento y variables qiq_i.

  2. Asignar los sistemas de referencia según las reglas de DH clásica, comprobando las condiciones geométricas de los ejes xix_i y zi−1z_{i-1}.

  3. Obtener los cuatro parámetros de cada articulación e indicar los desplazamientos constantes, los sentidos positivos y las unidades.

  4. Construir cada transformación Tii−1T_i^{i-1} y multiplicarlas en el orden de la cadena para obtener Tn0(q)T_n^0(q).

  5. Interpretar y comprobar la posición y orientación resultantes en al menos una configuración cuya geometría se comprenda fácilmente.

Este procedimiento no determina una única tabla DH para un robot: la asignación de sistemas y los ceros articulares pueden variar. Lo importante es que la tabla, las transformaciones y el significado de las variables sean coherentes entre sí.

3.8Problemas

Las actividades siguientes están organizadas por complejidad. En los ejercicios de modelado, justifica la asignación de los sistemas de referencia y documenta los parámetros y las unidades empleados. Salvo indicación contraria, utiliza la convención DH clásica estudiada en este capítulo.

En los problemas que requieran la transformación completa, presenta por separado el bloque de orientación y el vector de posición, e incluye al menos una comprobación geométrica sencilla.

3.8.1Interpretación de transformaciones

Antes de construir modelos más elaborados, revisa qué características geométricas deben cumplir los sistemas de referencia para que una transformación tenga la forma DH clásica.

En la Figure 13 se muestran tres sistemas de referencia {0}\{0\}, {1}\{1\} y {2}\{2\}. De las transformaciones T10T_1^0, T20T_2^0 y T21T_2^1, ¿cuáles pueden describirse directamente mediante los cuatro parámetros de una transformación DH clásica con los sistemas de la figura? Justifica tu respuesta comprobando las restricciones geométricas que debe cumplir el eje xix_i.

Sistemas de referencia para analizar la compatibilidad con la convención DH clásica.

Figure 13:Sistemas de referencia para analizar la compatibilidad con la convención DH clásica.

3.8.2Modelado de manipuladores

En los siguientes problemas pasarás de un diagrama cinemático a una tabla DH y a la transformación del extremo. Comprueba tanto la asignación de los ejes como la coherencia de los resultados.

En la Figure 14 se muestra un manipulador de 3 GDL (RPP). Establezca los sistemas de referencia siguiendo la metodología de Denavit-Hartenberg, obtenga la tabla de parámetros DH, forme las matrices Tii−1 T_i^{i-1} y calcule la matriz T30 T_3^0 que describe la posición y orientación del extremo del manipulador con respecto a la base.

Manipulador RPP para la asignación de sistemas DH.

Figure 14:Manipulador RPP para la asignación de sistemas DH.

Dado el manipulador mostrado en la Figure 15 y los sistemas de referencia esquematizados, determine la posición (x,y,z)(x,y,z) del extremo manipulador si q1=30∘q_1=30^\circ, q2=45∘q_2=45^\circ y q3=150 mmq_3=150\,\mathrm{mm}. Considera a1=180 mma_1=180\,\mathrm{mm} y d2=220 mmd_2=220\,\mathrm{mm}. Interpreta los sentidos de las variables según los sistemas esquematizados.

Manipulador RRP

Figure 15:Manipulador RRP

En la Figure 16 se muestra un manipulador de 4 GDL cuyas dimensiones son las indicadas. Realice lo siguiente:

  • Establezca los sistemas de referencia siguiendo la metodología de DH.

  • Obtenga la tabla de parámetros (aia_i,αi\alpha_i,did_i,θi\theta_i).

  • Forme las matrices de transformación Tii−1T_i^{i-1}

  • Calcule la matriz de transformación T40T_4^0.

Manipulador RRRR

Figure 16:Manipulador RRRR

Considere un manipulador SCARA con dos articulaciones revolutas de ejes verticales que proporcionan el posicionamiento horizontal, una articulación prismática que permite el desplazamiento vertical y una cuarta articulación revoluta, coaxial con la prismática, que modifica la orientación de la herramienta alrededor del eje vertical. Calcule la cinemática directa.

Esquema de la morfología SCARA. Considere también la articulación revoluta terminal de la muñeca para completar la cadena RRPR.

Figure 17:Esquema de la morfología SCARA. Considere también la articulación revoluta terminal de la muñeca para completar la cadena RRPR.

3.8.3Práctica adicional con manipuladores espaciales

Para cada manipulador de las figuras siguientes, construye una tabla DH clásica y obtén su modelo de cinemática directa. Puedes verificar los resultados calculando una configuración articular de referencia.

Los esquemas representan configuraciones diferentes; no supongas que una tabla de parámetros puede reutilizarse sin revisar la orientación y posición de los ejes articulares.

Para el manipulador mostrado en la Figure 18 establezca una tabla DH y calcule la transformación homogénea del sistema terminal respecto de la base.

Manipulador RRR

Figure 18:Manipulador RRR

Para el manipulador mostrado en la Figure 19 establezca una tabla DH y calcule la transformación homogénea del sistema terminal respecto de la base.

Manipulador RRR

Figure 19:Manipulador RRR

Para el manipulador mostrado en la Figure 20 establezca una tabla DH y calcule la transformación homogénea del sistema terminal respecto de la base.

Manipulador RRR

Figure 20:Manipulador RRR

Para el manipulador mostrado en la Figure 21 establezca una tabla DH y calcule la transformación homogénea del sistema terminal respecto de la base.

Manipulador RRR

Figure 21:Manipulador RRR

Para el manipulador mostrado en la Figure 22 establezca una tabla DH y calcule la transformación homogénea del sistema terminal respecto de la base.

Manipulador RRR

Figure 22:Manipulador RRR

3.8.4Aplicaciones a robots industriales

Para cada uno de los siguientes robots, utilizando la documentación dimensional enlazada:

  1. Dibuja un diagrama cinemático que identifique sus articulaciones y ejes de movimiento.

  2. Asigna sistemas de referencia conforme a la convención DH clásica y justifica las elecciones para ejes paralelos o que se intersecan.

  3. Construye la tabla de parámetros DH, indicando unidades y cualquier desplazamiento entre las coordenadas articulares y los parámetros de la tabla.

  4. Escribe el producto de transformaciones que determina la pose del sistema terminal respecto de la base y comprueba al menos una configuración conocida.

Nota: las dimensiones de una ficha técnica no siempre especifican todos los parámetros necesarios para reproducir los ceros articulares del controlador. Si debes adoptar una convención adicional, documéntala explícitamente.

3.9Actividades computacionales

Estas actividades utilizan Python para evaluar, comprobar y visualizar modelos cinemáticos. Puedes trabajar con NumPy, SymPy y Matplotlib, según el tipo de problema; no es necesario utilizar una biblioteca especializada de robótica.

Presenta el código y explica las entradas, las unidades, las convenciones de signos y los resultados. Como mínimo, verifica una configuración conocida y comprueba la validez de la matriz de orientación obtenida cuando corresponda.


Desarrolle un programa de computadora que, dados como entrada el conjunto de parámetros de Denavit-Hartenberg para una cadena cinemática abierta, calcule la transformación homogénea completa del sistema terminal respecto de la base. Incluye una prueba con un manipulador RR y valida que la submatriz de orientación sea ortogonal y tenga determinante igual a uno.

Se tiene un manipulador RR como el mostrado en la figura Figure 23. Si se sabe que los valores de las coordenadas articulares están dados por: q1=cos⁡tq_1 = \cos t y q2=sin⁡tq_2 = \sin t , y que sus dimensiones son l1=l2=350 l_1 = l_2 = 350 mm. Desarrolle un programa que calcule y trace, utilizando Matplotlib, la trayectoria descrita por el extremo del manipulador para 0≤t≤2π0\leq t\leq2\pi. Considere que q1q_1 y q2q_2 están expresados en radianes y que tt es un parámetro adimensional.

Manipulador RR

Figure 23:Manipulador RR

Desarrolle un programa de computadora que permita calcular la posición y orientación del extremo del robot industrial ABB IRB 140 dados como datos de entrada los valores articulares. Usa los parámetros del ejemplo resuelto, convierte los ángulos a radianes para evaluar las funciones trigonométricas y compara la configuración (0∘,90∘,0∘,0∘,0∘,0∘)(0^\circ,90^\circ,0^\circ,0^\circ,0^\circ,0^\circ) con el resultado mostrado anteriormente.


Desarrolle un programa de computadora que dados como entrada los valores articulares q1q_1 y q2q_2, del manipulador PPPP mostrado en la figura Figure 24, calcule la posición del extremo del manipulador. El programa deberá también esquematizar la posición del manipulador.

Manipulador PP

Figure 24:Manipulador PP