Вы находитесь на странице: 1из 150

COMPLEMENTOS DE MECÁNICA DE ROBOTS Y MANIPULADORES

Jesús Benet Mancho


ÍNDICE

Fundamentos de mecánica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Transformaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Problema cinemático directo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Problema cinemático inverso.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Cálculo de velocidades y fuerzas estáticas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Problema dinámico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Generación de trayectorias.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Problemas complementarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Descripción programas de prácticas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2
FUNDAMENTOS DE MECÁNICA

3
1. El mecanismo de la figura consta de una
barra articulada AB de longitud l, que puede
girar alrededor de la articulación A, estando
definido dicho giro por el ángulo è. La
articulación A está montada sobre un collarín el
cual puede girar alrededor del eje vertical OC,
si bien en este caso dicha rotación no se
considera, al mismo tiempo el collarín se
desplaza verticalmente a una velocidad
constante u. Se pide determinar.
a) La velocidad angular de la barra ù.
b) La aceleración angular de la barra á.
c) La velocidad del extremo B.
d) La aceleración del extremo B.
e) La velocidad del cdg G, situado en el punto
medio de la barra.
f) La aceleración de G.
Particularizar los resultados para los siguientes valores :
è = 30º, è’= 4 rad/ seg, è’’= 2 rad/ seg2 (horarios), u = 0,8 m/s, Ù = Ù’ = 0 rad/seg, l =1m.

a) y b) Al ser en este caso nula la rotación alrededor de OC, se tendrá directamente, para la
velocidad y aceleración angular, teniendo en cuenta además el sistema de ejes de la figura:

El signo negativo en la componente x de la velocidad y aceleración es debido a que el ángulo de


apertura è y en consecuencia su variación temporal está definido en sentido de las agujas del
reloj, y por tanto, en sentido negativo del eje Ox.

c) Aplicando las ecuaciones de la cinemática, teniendo en cuenta que rB/A = [0,sen30º, cos30º]T
= [0, 0'5, 0'866]T, y vA = [0,0,0'8]T, se tiene para las velocidades:

d) Para las aceleraciones, teniendo en cuenta que aA = 0, se tiene:

4
Siendo:

Resultando:

e) Volviendo a aplicar las ecuaciones de la cinemática, teniendo en cuenta ahora que rG/A = [0,
0'5.sen30º, 0'5. cos30º]T = [0, 0'25, 0'433]T , se tiene para las velocidades:

f) Y para las aceleraciones:

5
Siendo:

Resultando:

6
2. El mecanismo de la figura consta de una
barra articulada AB de longitud l, que puede
girar alrededor de la articulación A, estando
definido dicho giro por el ángulo è. La
articulación A está montada sobre un collarín el
cual puede girar alrededor del eje vertical OC a
una velocidad variable Ù al mismo tiempo el
collarín se desplaza verticalmente a una
velocidad constante u. Se pide determinar.
a) La velocidad angular de la barra ù.
b) La aceleración angular de la barra á.
c) La velocidad del extremo B.
d) La aceleración del extremo B.
e) La velocidad del cdg G, situado en el punto
medio de la barra
f) La aceleración de G.
Particularizar los resultados para los siguientes
valores:
è = 30º, è’= 4 rad/ seg, è’’= 2 rad/ seg2(horarios), u = 0,8 m/s, Ù = 10 rad/seg, Ù’ = 5
rad/seg (anti-horarios), l =1m.

a) Se trata de un problema similar al anterior pero en donde la rotación alrededor de Oz, presenta
una velocidad y una aceleración. Para determinar la velocidad angular de AB, necesitaremos
aplicar conceptos de movimiento relativo, para ello, supondremos dos sistemas de referencia:
el móvil Oxyz, y el fijo OXYZ, no representado, coincidentes ambos en el instante considerado.
El sistema móvil gira con la barra alrededor de Oz, a una velocidad ù1 = Ù. La barra AB por su
parte tendrá dos rotaciones, una rotación alrededor de Oz de velocidad angular ù1 = Ù y otra
rotación alrededor de A, de velocidad angular ù2 = è’ con la dirección de Ox . Aplicando el
principio de composición de rotaciones, se tendrá que la velocidad angular total de AB, será la
suma vectorial de las velocidades angulares parciales:

Como se comentó el signo negativo en la componente x de ù2, se debe a que el ángulo è y


variación se definen, de acuerdo con la figura, en sentido de las agujas del reloj, y por tanto en
sentido negativo de Ox, mientras que Ù y su derivada se toma en sentido positivo de Oz, siempre
de acuerdo con la figura.

b) El vector aceleración angular, será el vector derivada temporal del velocidad:

7
Sin embargo la derivada de la velocidad angular ù2 correspondiente a la rotación de la barra
sobre la articulación , es un vector que varía en módulo y dirección, y su derivada se calculará
a partir de la fórmula de la derivada de un vector, considerando los sistemas fijo y móvil,
teniendo en cuenta que el vector ù2 no varía de dirección en el sistema móvil:

Resultando:

c) Aplicando las ecuaciones de la cinemática, teniendo en cuenta que rB/A = [0,sen30º, cos30º]T
= [0, 0'5, 0,866]T, y vA = [0,0,0'8]T, se tiene para las velocidades:

d) Para las aceleraciones, teniendo en cuenta que aA = 0, se tiene:

Siendo:

8
Y también:

Resultando:

e) Volviendo a aplicar las ecuaciones de la cinemática, teniendo en cuenta ahora que rG/A = [0,
0'5.sen30º, 0'5. cos30º]T = [0, 0'25, 0'433]T , se tiene para las velocidades:

f) Y para las aceleraciones:

Siendo:

9
Y también:

Resultando:

10
3. El mecanismo de la figura consta de una
barra articulada AB de longitud l, que puede
girar alrededor de la articulación A, estando
definido dicho giro por el ángulo è. La
articulación A está montada sobre un collarín el
cual puede girar alrededor del eje vertical OC a
una velocidad variable Ù al mismo tiempo el
collarín se desplaza verticalmente a una
velocidad constante u. Sobre la varilla desliza
otro collarín D que se desplaza sobre la varilla
a una velocidad v y una aceleración v’ hasta
contactar con el tope B. Se pide determinar.
a) La velocidad del collarín D cuando éste llegue
a contactar con el tope B.
b) La aceleración del collarín D cuando éste
llegue a contactar con el tope B.
Particularizar los resultados para los siguientes
valores:
è = 30º, è’= 4 rad/ seg, è’’= 2 rad/ seg2(horarios), u = 0,8 m/s, v = 0,8 m/s, v’ = 0,5 m/s2,
Ù = 10 rad/seg, Ù’ = 5 rad/seg2 (anti-horarios), l =1m.

a) Se trata de un sistema guía-corredera (varilla-collarín) en donde el análisis cinemático se


efectuará aplicando las ecuaciones de la composición de movimientos (movimiento relativo).
Supondremos un sistema de referencia solidario a la varilla y consideraremos que en el instante
considerado en D coinciden en realidad dos puntos, el punto D1 solidario a la varilla y el punto
D2 que es en realidad el collarín D propiamente dicho. Además en el instante en que D llega a
B, se tendrá que D1 = B. Se cumplirá que para la velocidad absoluta de D:

En donde vD1 = vB , representa la velocidad de arrastre, vD2/D1 la velocidad relativa, mientras que
vD = vD2 la velocidad absoluta. De problemas anteriores, se sabe que:

Por su parte, la velocidad relativa, será un vector de módulo v y dirección AB:

11
Resultando para la velocidad absoluta de D:

b) Aplicando la fórmula de la composición de aceleraciones:

De problemas anteriores, se tiene para la aceleración de arrastre:

La aceleración de Coriolis, teniendo en cuenta la velocidad angular de la barra calculada en un


problema anterior y que la velocidad relativa también es conocida:

La aceleración relativa será un vector de módulo v’ y de dirección AB:

La aceleración absoluta del collarín D:

12
13
4. El mecanismo de la figura consta de una
barra articulada AB de longitud l, que puede
girar alrededor de la articulación A, estando
definido dicho giro por el ángulo è. La
articulación A está montada sobre un collarín el
cual puede girar alrededor del eje vertical OC,
si bien en este caso dicha rotación no se
considera, al mismo tiempo el collarín se
desplaza verticalmente a una velocidad
constante u. Una fuerza F conocida actúa en el
extremo B de la barra y un momento M de
módulo desconocido y dirección Ox actúa en la
articulación A.
Se pide determinar el momento M y la reacción
en A.
Particularizar los resultados para los siguientes
valores:
è = 30º, è’= 4 rad/ seg, è’’= 2 rad/ seg2 (horarios), u = 0,8 m/s, Ù = Ù’ = 0 rad/seg, l =1m.
El vector fuerza F en B: F = [ 0, -6, 10 ]t N.
La masa de la barra: m =10 kg.
El momento de inercia: IG = 1/12 m.l2 = 0,8333 kg.m2

Se trata de un problema de análisis dinámico


de un sólido rígido en dos dimensiones. Para
nuestro análisis partiremos de las ecuaciones
dinámicas en dos dimensiones. Supondremos
que en A aparece una reacción desconocida en
módulo y dirección, de componentes Ay , Az,
al mismo tiempo, en A actúa un momento M
desconocido, de dirección Ox, que
presumiblemente está producido por un
actuador. Por hipótesis a las reacciones
incógnitas (fuerzas y momento) se les ha dado
una orientación positiva al representarlas en el
diagrama, lo mismo se ha hecho para las
componentes de la fuerza en F en B, si bien
posteriormente al sustituir en las ecuaciones,
se tendrá en cuenta el valor de la componente
con su signo correspondiente. Para nuestro
análisis partiremos además de los resultados del análisis cinemático: aceleración de G y
aceleración angular de la varilla, considerados ya en un problema anterior, resultando:

14
Se sabe: aGy = - 3,134, aGz = - 7,428, á = - 2, Sustituyendo por los valores conocidos, obtenemos
directamente los valores de las reacciones en A y del momento M:

15
TRANSFORMACIONES

16
1. (Problema 2.1 Craig). Un vector AP se gira
è grados sobre ZA y posteriormente ö grados
sobre XA. Proporcionar la matriz de rotación
que realice estas operaciones en el orden
dado:

Se trata de dos rotaciones en el sistema de ejes


fijos, la rotación total será el producto de
rotaciones en orden inverso:

Siendo:

Resultando:

17
2. (Problema 2.5 Craig). AB R es una matriz 3 x 3 con valores propios 1, eai, e-ai, siendo i =
%-1,. Cuál es el significado físico del vector propio de AB R, asociado con el valor propio 1?

El problema del cálculo de los valores y vectores propios de una matriz A, se establece a partir
de una transformación sobre el vector X, que verifica:

Siendo ë una constante denominada valor propio, para que la ecuación anterior tenga una
solución no trivial, es necesario que:

Las soluciones de esta última ecuación anterior


son los valores propios ë de la matriz A. El
número de soluciones o valores propios depende
de las dimensiones de la matriz. En una matriz
de rotación tendremos pues tres valores propios.
Asociado a cada valor propio tendremos los
vectores propios o direcciones principales: X1,
X2, X3, ....Para la matriz de rotación, tendremos
en principio tres vectores propios. Como
sabemos por el teorema de Euler, cuando un
sólido rígido se mueve con un punto fijo,
cualquier posición del sólido en un instante
determinado, se puede obtener a partir de una
posición anterior mediante un giro de ángulo è,
alrededor de un eje K, que pasa por el punto fijo.
Esto es lo mismo que la matriz de rotación se puede obtener a partir de una rotación de ángulo
è alrededor de un eje K, que pasa por el origen. En este caso entendemos la matriz de rotación
como un operador de rotación sobre un vector. Si A es la matriz de rotación y X representa un
vector de posición X = AP1, sólo existe un caso para que se verifique la condición:

Es decir que al girar el vector P1 una rotación dada por R, el vector permanezca inalterado, ese
caso corresponde cuando P1 tiene la dirección del eje de rotación. Este vector representará el
vector propio asociado al valor propio 1. Como únicamente existe esa posibilidad, el resto de
valores y vectores propios no se corresponden con números soluciones dentro del campo de los
números reales.

18
3. (Problema 2.6 Craig). Derivar la ecuación (2.80) correspondiente a la matriz de rotación
definida por el eje K =[kx,ky,kz]t y el ángulo è:

La matriz anterior se puede obtener mediante


transformaciones de rotación sucesivas. El
vector K que tiene una orientación definida por
los ángulos á y â, de acuerdo con la figura.
Podemos descomponer la rotación al rededor
de K como una serie de rotaciones alrededor de
los ejes fijos XA, YA, ZA :

1. Giro - á sobre ZA, definido por Rz( -á).


2. Giro - â sobre YA, definido por Ry(-â).
3. Giro è sobre ZA, definido por Rz(è).
4. Giro â sobre YA, definido por Ry(â).
5. Giro á sobre ZA, definido por Rz( á).

Teniendo en cuenta que se trata de rotaciones


sobre ejes fijos, la rotación total, será:

Sustituyendo las expresiones de las matrices de rotación parciales y efectuando las operaciones
correspondiente se obtiene la matriz de rotación total.

19
4.(Problema 2.20 Craig). Demostrar la fórmula de Rodrigues correspondiente a la
trasformación de rotación definida por el eje de vector unitario: K =[kx,ky,kz]t y el ángulo
è, sobre el vector Q:

Derivar a continuación la ecuación (2.80) correspondiente a la matriz de rotación de un


vector.

Al girar el vector Q, su extremo pasa del punto A al punto B de la figura, mientras que su origen
permanece fijo sobre el origen del sistema OXYZ. El extremo de Q describe una trayectoria
circular en un plano perpendicular al eje de giro definido por K. El resultado de la trasformación
será el vector Q’. Se tiene además la siguiente relación entre los vectores Q, Q’, ÄQ, b1, b2:

Cumpliéndose, de acuerdo con al figura, para el módulo del vector b1, y para el radio a,
correspondiente a la rotación del extremo del vector Q:

Al ser K un vector unitario. El vector b1 es perpendicular al plano definido por los vectores K
y Q, resultando:

20
El vector b2 es, de acuerdo con la figura, perpendicular al vector b1 y también perpendicular al
vector Q, al estar situado en el plano de rotación del extremo de dicho vector, cumpliéndose:

En la ecuación anterior, se ha tenido en cuenta que:

Teniendo en cuenta las propiedades del triple producto vectorial, se cumple:

El vector b2 se puede expresar como:

El extremo de Q pasa del punto A al punto B, definiendo el vector ÄQ, el cual verifica:

Resultando:

Quedando demostrada la fórmula de Rodrigues. Con objeto de demostrar la ecuación (2.80)


mediante la fórmula de Rodrigues, podemos expresar esta fórmula empleando una notación de
tipo matricial. Teniendo en cuenta que el producto vectorial se puede expresar matricialmente

21
como el producto de una matriz antisimétrica por un vector columna:

El producto escalar de dos vectores se puede también expresar matricialmente como el porducto
de la traspuesta de un vector columna por otro vector columna:

Expresando la fórmula de Rodrigues matricialmente:

En donde se ha tenido en cuenta, de acuerdo con las propiedades del producto de matrices:

Siendo además:

Se puede comprobar directamente que la matriz de rotación es:

22
5.(Problema 2.27, Craig). Tomando como
referencia la figura, calcular ABT:

Se tiene:

Resultando:

23
6.(Problema 2.33, Craig). Tomando como
referencia la figura, calcular BCT:

De acuerdo con la figura:

Se tiene además que el eje XC está en el


plano OXBZB y que las direcciones de los
ejes XB y XC forman entre sí un ángulo á =
36,9º. Se cumple también:

Resultando:

24
7. (Problema 2.3, Craig). Un sistema {B} se encuentra inicialmente coincidente con {A}.
Giramos {B} un ángulo è sobre ZB y luego giramos el sistema resultante un ángulo n sobre
YB. Determinar la matriz de rotación que cambie las descripciones de los vectores de BP a
A
P.

En este caso las rotaciones se efectúan sobre ejes de la trama transformada. Las matrices de
rotación:

25
8. ( Problema 2.7, Craig). Describa el algoritmo
que extraiga el ángulo equivalente y el eje de
una matriz de rotación. Considerar los caso
especiales de è = 0 y è = 180º.

De forma genérica, expresamos la matriz de


rotación como:

Donde:

De acuerdo con la teoría y tal como se aprecia de las ecuaciones, el ángulo de giro y el vector
de rotación, se pueden obtener a partir de:

Esta solución nos da los valores de è y K siempre que el ángulo è esté comprendido entre 0º y
180º, degenerando cuando è = 0º y cuando è = 180º. Analicemos cada caso por separado: en
principio suponemos que el ángulo se puede identificar siempre, siendo la solución para K la que
degenera. Cuando è = 0, el cuerpo no gira y K es indeterminado, sin embargo si el cuerpo no gira
no existe ninguna transformación y la matriz de rotación será siempre la matriz unidad I, de
manera que:

26
No siendo necesario en este caso identificar el vector rotación K.

Cuando è = 180º, la solución también degenera pero en este caso la matriz de rotación no es I,
existiendo un eje de rotación K que es necesario identificar. En este caso cosè = -1, resultando:

Procediendo de igual forma:

27
9. (Problemas 2.21, 2.22, Craig). Para rotaciones que sean suficientemente pequeñas como
para que las aproximaciones senè = 0, cosè = 1, è2 = 0, sean siempre ciertas, derivar la
matriz de rotación equivalente a una rotación è sobre un eje K. Con el resultado obtenido
demuestre que dos rotaciones infinitesimales conmutan.

Supongamos una rotación muy pequeña Äè alrededor de un eje K, se tiene:

En donde se han efectuado las aproximaciones:

Consideremos a continuación la rotación Äá alrededor del eje J, se tendrá haciendo las mismas
aproximaciones:

En el caso de considerar dos rotaciones seguidas, despreciándose infinitésimos de segundo


orden:

28
10. (Problema 2.38 Craig). Imagine dos vectores unitarios v1 y v2 incrustados en un cuerpo
rígido. Tenga en cuenta que, sin importar como se gire el cuerpo, el ángulo geométrico
entre estos dos vectores se preserva (es decir, la rotación de un cuerpo rígido es una
operación de “preservación de ángulo” ). Use esta propiedad para proporcionar una
prueba concisa (de cuatro o cinco líneas) de que la inversa de una matriz de rotación debe
de ser igual a su traspuesta y de que una matriz de rotación es ortonormal.

El producto escalar de dos vectores unitarios es igual al coseno del ángulo entre vectores:

Este resultado es independiente del sistema de referencia elegido. Supongamos a continuación


un sistema de referencia arbitrario siendo R la matriz de transformación. Se cumplirá:

29
PROBLEMA CINEMÁTICO DIRECTO

30
1. (Problema 3.8 Craig). En la figura no se conoce la ubicación exacta de la herramienta
W
TT. Usando el control de fuerza, el robot siente el entorno con la punta de la herramienta
hasta que la inserta en el receptáculo ( u objetivo) en la ubicación SGT. Una vez en esta
configuración de calibración ( en la que {G} y {T} son coincidentes). La posición del robot
B
W T se averigua tomando lectura de los sensores de los ángulos de articulación y calculando
la cinemática. Suponiendo que se conozcan BST y SGT, proporcionar la ecuación de
transformación para calcular el sistema de herramienta desconocido WTT.

En la calibración {G} y {T} son coincidentes. Se cumplirá:

31
2. (Problema 3.1 Craig). Determinar la cinemática del brazo articulado plano de la figura.

La tabla de parámetros cinemáticos del robot, es:

i ái-1 ai-1 di èi

1 0 0 0 è 1*
2 0 L1 0 è 2*
3 0 L2 0 è 3*
(*CG)

La forma general de las matrices de transformación:

Sustituyendo los valores de la tabla, se tiene:

32
Resultando la matriz de transformación total:

Siendo:

33
3. (Problema 3.3 Craig). En el brazo de 3GDL de la figura, obtener las ecuaciones
cinemáticas

La tabla de parámetros es:

i ái-1 ai-1 di èi
1 0º 0 0 è1 *
2 90º L1 0 è2 *
3 0º L2 0 è3 *
(*CG)

Las matrices de transformación serán:

La matriz de transformación total se obtendrá multiplicando las matrices como en el problema


anterior

34
4. (Problema 3.4 Craig). En el brazo de 3GDL de la figura, las articulaciones 1 y 2 son
perpendiculares y las 2 y 3 son paralelas. Según lo ilustrado, todas las articulaciones están
en su ubicación cero. Observe que se indica el sentido positivo del ángulo de la articulación.
Asigne los sistemas de barras y derive las matrices de transformación.

Aunque lo mas usual es hacer coincidir los sistemas base y de la barra 1, con è1 = 0, aquí se ha
preferido poner el sistema base en el soporte del manipulador, si bien esto no altera básicamente
el resultado final. La tabla de parámetros es:

i ái-1 ai-1 di èi
1 0º 0 L0+L1 è1 *
2 90º 0 0 è2 *
3 0º L2 0 è3 *
(*CG)

La matriz de trasformación general:

35
Resultando:

36
5. (Problema 3.11 Craig). La figura muestra el diagrama esquemático de una muñeca de
tres ejes que no son ortogonales. Asigne los sistemas a las barras y proporcione los
parámetros.

La tabla de parámetros es:

i ái-1 ai-1 di èi
1 0º 0 0 è1 *
2 n 0 0 è2 *
3 -n 0 0 è3 *
(*CG)

Resultando:

37
6. (Problema 3.16 Craig). Asigne los sistemas a las barras del robot plano RPR de la figura
y proporcione los parámetros de las articulaciones.

La tabla de parámetros es:

i ái-1 ai-1 di èi
1 0º 0 0 è1 *
2 90º L1 d2* 0
3 90º 0 0 è3 *
(*CG)

Resultando:

38
7. (Problema 3.17 Craig). Asigne los sistemas a las barras del robot espacial RRP de la
figura

La tabla de parámetros:

i ái-1 ai-1 di èi
1 0º 0 L1 è1 *
2 90º 0 0 è2 *
3 90º L2 d3* 90º
(*CG)

Las matrices de rotación:

39
La matriz de trasformación general se obtendrá:

Resultando:

40
8. (Problema 3.19 Craig). Asigne los sistemas a las barras del robot espacial de la figura

Se trata de un robot RPP. Se ha hecho coincidir el sistema de la barra (3) con el sistema de la
herramienta, al coincidir el origen con el extremo del elemento terminal. El esquema del robot
y la tabla de parámetros:

i ái-1 ai-1 di èi
1 0º 0 0 è1 *
2 0 0 d2* 0
3 -90º 0 d3* 0
(*CG)
Las matrices de rotación:

41
9. Asigne los sistemas a las barras del robot de la figura

Se trata de un robot RRP similar al SCARA. El esquema del robot y la tabla de parámetros:

i ái-1 ai-1 di èi
1 0º 0 0 è1 *
2 0º L1 0 è2 *
3 180º L2 d3* 0
(*CG)

Las matrices de rotación:

42
10. (Problema 3.21 Craig) Asignar los sistemas a las barras del robot de la figura.

i ái-1 ai-1 di èi
1 0 0 d1* 0
2 -90º 0 d2* 90
3 90º 0 d3* 0
(*CG)
Las matrices de rotación:

43
11. (Craig 3.2) Imagine un brazo como el PUMA 560 excepto que se remplaza la articulación
3 por una articulación prismática. Derive las ecuaciones cinemáticas.

Se tendrá un robot esférico tipo “Stanford” RRPRRR. El esquema del robot y la tabla de
parámetros :

i ái-1 ai-1 di èi
1 0º 0 0 è1 *
2 -90º 0 d2 è2*
3 90º 0 d3* 0
4 0º 0 0 è4 *
5 90º 0 0 è5 *
6 -90 0 0 è6 *
(* CG)

Sustituyendo los valores de la tabla, se tiene:

44
La matriz de transformación total:

45
PROBLEMA CINEMÁTICO INVERSO

46
1. Resolver el problema cinemático inverso del robot de la figura mediante el método
algebraico. Suponemos como datos de partida la posición de P extremo de la segunda barra
y la inclinación de la última barra (ver Craig 4.4).

Se trata de un robot plano de tres barras RRR. La posición del elemento terminal vendrá dada por
las coordenadas cartesianas del extremo del robot P(x,y) y por la inclinación ö de la última barra
o elemento terminal. De acuerdo con la figura suponemos que P es en realidad el extremo de la
segunda barra. La tabla de parámetros cinemáticos del robot, es:

i ái-1 ai-1 di èi

1 0 0 0 è 1*
2 0 L1 0 è 2*
3 0 L2 0 è 3*
(*CG)

Resultando la matriz de transformación total:

47
Siendo:

A partir de los datos de partida: coordenadas del elemento terminal e inclinación P(x,y), n, el
subespacio de matriz de transformación del elemento terminal respecto del sistema base BwT se
puede expresar también como:

Siendo:

En este caso trataremos de determinar los ángulos è1,è2 y è3, mediante ecuaciones algebraicas a
través de la matriz de transformación. Elevando al cuadrado las expresiones de x e y, y sumando:

De donde:

Para que esta ecuación tenga solución es necesario que el lado derecho esté comprendido entre
-1 y +1. Lo contrario implica que el punto P está fuera del espacio de trabajo. Suponiendo que hay
solución, se tendrá:

48
Existiendo pues dos soluciones para è2, según los dos signos de s2. Estas soluciones corresponden
a las posiciones codo hacia arriba o codo hacia abajo. Para la determinación de è2 hemos utilizado
la función arco tangente en la forma atan2 que se encuentra en algunos lenguajes informáticos:
C, Matlab, etc. Los argumentos son s2 y c2, con los dos signos de s2, lo cual nos permite
determinar el ángulo è2 situándolo en el cuadrante adecuado.
Volviendo a las expresiones de x e y:

Siendo:

Es posible resolver las ecuación anteriores de x e y para è1, para ello efectuamos un cambio de
variable, de manera que:

Resultando:

Teniendo pues:

Resultando dos soluciones para è1 al haber dos soluciones para è2. Para el ángulo è3:

En este caso se comprueba que sólo existe una solución para è3.

49
2. Resolver el problema cinemático inverso del robot de la figura mediante el método
geométrico. En este caso tomamos como dato de partida la posición del extremo de la
tercera barra P y la inclinación de ésta ö (ver Craig 4.4).

La posición del elemento terminal vendrá dada por las coordenadas cartesianas del extremo del
robot P(x,y) y por la inclinación ö de la última barra o elemento terminal. A diferencia del caso
anterior suponemos que P no es el extremo de la segunda barra sino el extremo de la tercera barra.
Es posible obtener la posición de Q, en la articulación de las barras 2 y 3:

Se puede observar de la figura que existen dos disposiciones geométricas: una para el codo hacia
abajo y otra para el codo hacia arriba. Aplicando el teorema del coseno al triángulo OAQ
suponiendo la solución de codo hacia abajo:

Para que exista solución el cosè2 tiene que estar comprendido entre -1 y 1, de lo contrario el punto
Q cae fuerza del espacio de trabajo. En este caso resolvemos la ecuación anterior para el ángulo
è2 entre 0 y 180º. Para la posición de codo hacia arriba se tendrá la solución de è’2= - è2.

De acuerdo con la figura el ángulo â que forma OQ con el eje X, es:

50
Aplicando nuevamente el teorema del coseno:

En este caso 0# ø#180º. Resultando para è1:

En donde se utiliza el signo positivo para la posición codo hacia arriba y el signo negativo para
el codo hacia abajo. Para el ángulo è3 se tendrá:

51
3. (Problema 4.14 Craig) ¿Existen robots de 6 GDL para los que la cinemática inversa no
puede resolverse en forma cerrada?: Si, únicamente existe solución cerrada cuando los tres ejes
de la muñeca se intersectan en un punto
¿Existen algún robot de 3 GDL para el que la cinemática de posición no pueda resolverse
en forma cerrada?: En general no

4. (Problema 4.22 Craig) Considere el manipulador PPP de la figura ¿Cuantas soluciones


de posición poseen las ecuaciones cinemáticas?

En este caso existe una única solución, en donde los parámetros que definen las posiciones de las
barras, se corresponden con las coordenadas del punto P.

52
5. (Problema 4.18 Craig) Considere el manipulador RRP de la figura ¿Cuantas soluciones
de posición poseen las ecuaciones cinemáticas? Resolver el problema cinemático inverso.

En este caso se ha supuesto que el sistema base y


el de las dos primeras barras tienen su origen
coincidente. Según la figura, existen dos
soluciones, ya que el brazo se puede posicionar
de dos formas diferentes. Es posible resolver el
problema cinemático inverso geométricamente,
para ello, de acuerdo con al figura, la posición del
extremo P del manipulador, es:

Estas mismas ecuaciones se podrían haber


obtenido mediante la matriz de trasformación. Consideremos un de las soluciones. Dividiendo
entre sí las dos primera ecuaciones, se tendrá:

53
De la figura:

Existen dos soluciones para è2, de la figura:

Para el signo menos de á, el signo de d3 será negativo pero con el mismo valor absoluto. Para que
exista solución, se tiene que cumplir:

54
6. (Problema4.19 Craig) Considere el manipulador RRR de la figura ¿Cuantas soluciones
de posición poseen las ecuaciones cinemáticas? Resolver el problema cinemático inverso.

Según la figura, existen dos soluciones, ya que


el brazo se puede posicionar de dos formas
diferentes. Es posible resolver el problema
cinemático inverso geométricamente, para ello,
de acuerdo con al figura, la posición del
extremo P del manipulador, es:

Estas mismas ecuaciones se podrían haber obtenido mediante la matriz de trasformación.


Consideremos una de las soluciones. Dividiendo entre sí las dos primera ecuaciones, se tendrá:

55
Se tendrá además, de acuerdo con la figura, aplicando el teorema del coseno al triángulo O2 O3
P:

Resultando:

Volviendo a aplicar el teorema del coseno:

Se tiene también:

56
Para la segunda solución, se tendrá:

Y también:

Para que exista solución, se tiene que verificar siempre:

57
7. (Problema 4.11 Craig). Una tabla de posicionamiento de 2GDL se utiliza para orientar
piezas para soldadura de arco. La cinemática directa que ubica la cubierta de la mesa
(elemento 2), con respecto a la base (elemento 0), es:

Dada cualquier dirección unitaria fija en el sistema de cubierta (elemento 2) representada


por 2V, proporcionar la solución cinemática inversa para è1, è2, de manera tal que este
vector esté orientado con 0Z ( es decir, hacia arriba). ¿Hay múltiples soluciones? ¿Existe una
sola condición para la que no pueda obtenerse una solución única?

La transformación corresponde a la realizada


mediante los ángulos de Euler Z-Y-Z, de
ángulos: á, â, ã, en donde á = 0, â = è1 , y
ã = è2

Se tiene que cumplir la transformación:

58
Resultando las siguientes ecuaciones:

Considerando las dos primeras ecuaciones, se tiene de (2):

Existiendo dos soluciones para è2:

A continuación, la ecuación (1), se puede resolver para è1:

Resultando una ecuación de la forma:

Cuya solución se expresa como:

Existiendo dos soluciones de è1 para cada solución de è2 , siempre que el radical del segundo sea
mayor que cero. Como existen siempre dos soluciones para è2, pueden existir hasta cuatro
soluciones para è1 y cuatro soluciones en total.

Otra posibilidad es que 2Vx = 2Vy = 0, en ese caso se produciría una indeterminación en è2,
existiendo infinitas soluciones para è2, sin embargo para è1 seguirían existiendo dos soluciones,
ya que la ecuación (1), se tiene:

Supongamos pues que 2Vx y 2Vy son diferentes de cero y consideremos una de las dos soluciones

59
para è2, dentro del intervalo 0, 180º. Para que existe una solución única en è1, se tiene que
cumplir que el último término de la anterior ecuación se anule, esto es:

Para que no exista solución para è1, se tiene que cumplir que el término del radical sea menor que
cero, esto es:

60
8. (Problema 4.12 Craig). En la figura se ilustran dos mecanismos 3R. En ambos casos los
tres ejes se intersectan en un punto ( y, sobre todas las configuraciones posibles, este punto
permanece fijo en el espacio). El mecanismo (a) tiene un ángulo de torsión de barra (ái) de
90º el mecanismo de la figura (b) presenta unos ángulos de torsión de n y 180-n. Se puede
ver que el mecanismo (a) está en correspondencia con los ángulos de Euler Z-Y-Z y por
tanto sabemos que basta con orientar el elemento {3} con la flecha de la figura
arbitrariamente con respecto del elemento {0} fijo. Como n … 90º, el mecanismo (b) no
puede orientar el elemento (3) de manera arbitraria. Describir el conjunto de orientaciones
inalcanzables con el mecanismo (b) . Todas las articulaciones pueden girar 360º.

En este caso es preferible razonar en términos de ángulos de Euler: el sistema OXYZ es el sistema
fijo y el OX’Y’Z’ es el sistema móvil asociado a elemento 3. Los ángulos de Euler á, â, ã,
representan al mismo tiempo los giros de los elementos:

61
Al final de la transformación, la herramienta tendrá una posición dada por los ángulos de Euler:
á, â, y ã. La orientación del vector herramienta vendrá dada por los ángulos á, y â, mientras que
ã dará la rotación propia. El vector herramienta corresponderá al eje OZ’ de la figura. Existirá
una limitación en el ángulo â que mide el ángulo entre el primer y tercer eje ( o entre OZ y OZ’),
en (a) puede valer entre 0 y 360º pero en (b) siempre ha de ser mayor que 90- n, y menor que 360-
(90 - n) = 270º + n.

62
9. Resolver el problema cinemático inverso para un robot de 6 barras en donde los ejes de
las tres últimas barras se intersectan (método de Pipeper, ver Craig 4.6).

Cuando se intersectan los tres últimos ejes, los orígenes de las tramas-sistemas de los vínculos-
barras {4},{5} y {6} coinciden con el punto de intersección que suponemos además como el
extremo del robot, el cual se expresa en coordenadas base como:

(1)

Siendo pues x,y,z las coordenadas del extremo del robot expresadas en el sistema base, que
suponemos conocidas. Teniendo en cuenta la expresión general de la matriz de transformación
para el caso de 34T, cuarta columna:

(2)

Volviendo nuevamente a aplicar la expresión de la matriz de transformación para 23T:

(3)

Siendo:

(4)

En donde:

63
(5)

Volviendo nuevamente a aplicar la expresión de la matriz de transformación para 01T y 12T :

(6)

Siendo:

(7)

Cumpliéndose:

(8)

Cumpliéndose además teniendo en cuenta la anterior ecuación y la expresión tercera componente


de 0P4ORG, z = g3, resulta:

(9)

En donde:

(10)

En la ecuación (9) los parámetros r y z son conocidos y los hemos podido expresar de forma
independiente de è1. En primer lugar trataremos de determinar è3, existen tres casos:

64
1. Si a1 = 0, de la primera ecuación (9), r = k3, en donde r es conocido, k3 obteniendo una ecuación
que se puede resolver para è3.
2. Si sá1 = 0, de la segunda ecuación (9), z = k4, en donde se conoce z, obteniendo nuevamente
una ecuación que se puede resolver para è3.
3. En caso de no cumplirse las ecuaciones anteriores, es posible eliminar s2 y c2 de (9) ,
obteniendo:

(11)

Pudiendo resolverse para è3 mediante una ecuación de cuarto grado. A continuación la ecuación
(9) se puede resolver para è2 y la (6) para è1. Resultando ecuaciones trascendentes en la forma:

(12)

Y también:

(13)

A continuación, queda por calcular è4, è5, è6, se puede considerar que para gran parte de los
manipuladores estos ángulos se corresponden con los ángulos Z-Y-Z de Euler. Para el cálculo
determina en primer lugar (04R)è4=0, esta matriz da la orientación de la trama-sistema {4} relativa
a la base cuando è4 = 0. La orientación de {6} difiere de esta orientación por la acción de las tres
últimas articulaciones, resultando:

(14)

Los ángulos è4, è5, è6 se determinaran a partir de (46R)è4=0, identificándose estos ángulos como
los ángulos de Euler Z-Y-Z.

En los desarrollos anteriores, es útil tener en cuenta:

65
10. (Problema 4.16 Craig). Un manipulador 4R se muestra esquemáticamente en la figura.
Los parámetros de las barras diferentes de cero son a1 = 1, á2 = 45º, d3 = %2 y el mecanismo
se ilustra en la configuración correspondiente a È = [ 0º, 90º, -90º, 0] T. Cada articulación
tiene ± 180º como límite. Encontrar los valores de è2 tales que: 0P4ORG = [1'1, 1'5, 1'707 ]T:

La tabla de parámetros del manipulador, es:

á i-1 a i-1 di è i-1


1 0 0 0 è1 *
2 0 1 0 è2 *
3 45º 0 %2 è3 *
4 0 %2 0 è4 *

Resolvemos el problema por el método de Pieper, mediante un programa de ordenador en lenguaj


C, resultando:

66
Problema cinemático inverso para un robot articulado de 3 barras,
resuelto por el metodo de Pieper

posición elemento terminal (m): xp 1.100000 yp 1.500000 zp 1.707000

primera solución: theta1_1, theta2_1, theta3_1


theta1_1 (grados )= 28.870250, theta2_1 (grados) = 212.374826
,theta3_1 (grados) = 134.987761
comprobación posición primera sol mediante matriz: xp= 1.100000, yp =
1.500000 , zp 1.707000
*******************************************

segunda solución: theta1_2, theta2_2, thetha3_1


theta1_2 (grados )= 78.622075, theta2_2 (grados) = 114.984612
,theta3_1 (grados) = 134.987761
comprobación posición segunda sol mediante matriz: xp= 1.100000, yp
= 1.500000 , zp 1.707000
********************************************

tercera solución: theta1_3, theta2_3, theta3_2:


theta1_3 (grados )= 28.870250, theta2_3 (grados) = 65.015388
,theta3_2 (grados) = 45.012239
comprobación posición tercera sol mediante matriz: xp= 1.100000, yp =
1.500000 , zp 1.707000
*************************************************

cuarta solución: theta1_4, theta2_4, theta3_2, theta 4_4, theta 5_4,


theta 6_4:
theta1_4 (grados )= 78.622075, theta2_4 (grados) = -32.374826
,theta3_2 (grados) = 45.012239
comprobación posición cuarta sol mediante matriz: xp= 1.100000, yp =
1.500000 , zp 1.707000
*************************************

67
11. (Problema 4.17 Craig, cambiando la posición del punto 0P4ORG ya que con los valores del
texto no existía solución). Un manipulador 4R se muestra esquemáticamente en la figura.
Los parámetros de las barras diferentes de cero son: d2 = 1, á1 = 45º, d3 =1 y a3 = 1, y el
mecanismo se ilustra en la configuración correspondiente a È = [ 0º, 0º, 90º, 0] T. Cada
articulación tiene ± 180º como límite. Encontrar los valores de è2 tales que: 0P4ORG = [0'2, 1'0,
1'414 ]T:

La tabla de parámetros del manipulador, es:

á i-1 a i-1 di è i-1


1 0 0 0 è1 *
2 -90º 0 1 è2 *
3 45º 0 1 è3 *
4 0 1 0 è4 *

Resolvemos el problema por el método de Pieper mediante un programa de ordenador en lenguaje


C, resultando:

68
Problema cinemático inverso para un robot articulado de 3 barras,
resuelto por el metodo de Pieper

posición elemento terminal (m): xp 0.200000 yp 1.000000 zp 1.414000

primera solución: theta1_1, theta2_1, theta3_1


theta1_1 (grados )= -12.135659, theta2_1 (grados) = 8.945570 ,theta3_1
(grados) = 256.444374
comprobación posición primera sol mediante matriz: xp= 0.200000, yp =
1.000000 , zp 1.414000
*******************************************

segunda solución: theta1_2, theta2_2, thetha3_1


theta1_2 (grados )= -10.484206, theta2_2 (grados) = -349.863455
,theta3_1 (grados) = 256.444374
comprobación posición segunda sol mediante matriz: xp= 0.200000, yp =
1.000000 , zp 1.414000
********************************************

tercera solución: theta1_3, theta2_3, theta3_2:


theta1_3 (grados )= -12.135659, theta2_3 (grados) = 349.863455
,theta3_2 (grados) = -76.444374
comprobación posición tercera sol mediante matriz: xp= 0.200000, yp =
1.000000 , zp 1.414000
*************************************************

cuarta solución: theta1_4, theta2_4, theta3_2, theta 4_4, theta 5_4,


theta 6_4:
theta1_4 (grados )= -10.484206, theta2_4 (grados) = -8.945570 ,theta3_2
(grados) = -76.444374
comprobación posición cuarta sol mediante matriz: xp= 0.200000, yp =
1.000000 , zp 1.414000
*************************************

69
12. Como se sabe de la teoría, el método de Pieper permite resolver el problema cinemático
inverso de un robot de 6 barras siempre que los ejes de las últimas tres barras se intersecten
en un punto que se correspondería con el origen común de los sistemas de referencia
asociados a las últimas tres barras y que para mayor simplicidad podemos considerar
también como el punto que define la posición de elemento terminal (o efector final) del
manipulador. La posición del elemento terminal definida a partir sus coordenadas en el
espacio cartesiano, nos permitirá conocer la posición de las tres primeras barras: è1, è2, è3,
mientras que la orientación del elemento terminal nos definirá la posición de las tres
últimas barras:è4, è5, è6. Para el cálculo de la posición de las tres primeras barras, se utiliza
el algoritmo explicado en la teoría ( ver Craig 4.6 y el problema 9), mientras que para el
cálculo de la posición de las tres últimas barras se puede utilizar un procedimiento basado
en los ángulos de Euler. Explicar este procedimiento y aplicarlo a una situación real de un
robot articulado PUMA.

Como se explica en la teoría para completar el cálculo de las coordenadas è4, è5, è6, puesto que
los ejes asociados a los giros se intersectan, estas coordenadas definirán la orientación de la última
barra ( elemento terminal o efector final). Podemos definir estos ángulos a parir de la rotación
parcial tomada a partir de la orientación final de la última barra, definida mediante la matriz de
rotación final 06 R. Una vez determinadas las coordenadas è1, è2, è3, se computa la matriz (04R)è4=0,
esta matriz define la orientación de la barra 4 cuando dicha barra no gira. La orientación final de
la barra (6) difiere de esta orientación, únicamente por el giro de las últimas tres barras. Puesto
que la matriz de rotación de la última barra: 06 R, se supone que es un dato conocido, es posible
computar la rotación de las últimas tres últimas barras respecto de la barra 4 con è4 = 0, definida
por la matriz (46R)è4=0, mediante la expresión:

La matriz (46R)è4=0, una vez computada, nos permite determinar los ángulos è4, è5, è6,
completándose el problema cinemático inverso. Para el cálculo de estos ángulos podemos utilizar
los ángulos de Euler á, â, ã, empleados para definir la orientación de un objeto en el espacio
tridimensional. Es un hecho comúnmente aceptado que para muchos manipuladores, estos tres
ángulos se corresponden exactamente con los ángulos de Euler Z-Y-Z. Vamos a aplicar todo esto
al estudio del problema cinemático inverso de un robot PUMA, considerando las últimas tres
barras, empleando los sistemas de referencia tal como aparecen en el texto de J.J. Craig. La tabla
de parámetros tal como aparece en el texto, es:

i ái-1 a i-1 di èi
1 0 0 0 è1*
2 -90º 0 0 è2*
3 0 a2 d3 è3 *
4 -90º a3 d4 è4 *

70
5 90º 0 0 è5 *
6 -90º 0 0 è6 *

Las matrices de rotación asociadas a las últimas tres barras, serán:

Sin embargo en nuestro estudio tenemos que hacer una distinción en la posición de la barra 4:
consideramos la posición de 4 cuando è4 = 0, a esta posición la representamos por la barra
imaginaria 4', diferente de la barra real 4 cuya posición se corresponde con la posición real de la
barra. La posición de 4 respecto de 4' , será una rotación respecto del eje Z4, cumpliéndose:

Es fácil de comprobar además:

La posición de la última barra respecto de 4' será una rotación dada por la matriz:

En donde además:

Operando con las matrices, se obtendrá:

71
Y también:

Para comprobar que la posición de las últimas tres barras, dada por los ángulos è4, è5, è6, se
corresponde con los ángulos de Euler Z-Y-Z, comparamos esta matriz de rotación con la matriz
obtenida para esta transformación y que podemos encontrar en cualquier texto de robótica. Se
comprueba que es muy simular pero no exactamente igual, ya que en los términos en donde
aparece s5 , el signo cambia.. Se puede comparar también con la matriz obtenida en otras
transformaciones según los ángulos de Euler pero las diferencias son todavía mayores. A la vista
de los resultados, podemos pensar que la transformación de las tres barras del robot se
corresponde con la obtenida con los ángulos de Euler Z-Y-Z pero en donde el sentido de giro
según el eje OY (OZ5) ha sido cambiado. Podemos pensar además que esto sucede porque no
hemos orientado el eje OZ5 adecuadamente ( la notación de Hartenber-Denavit nos define la
dirección de eje OZ pero nos permite elegir el sentido). Con objeto de establecer una correcta
analogía con los ángulos de Euler efectuamos la siguiente modificación en la tabla de parámetros
parámetros de las últimas tres barras:

i ái-1 a i-1 di èi
4 -90º a3 d4 è4 *
5 -90º 0 0 è5 *
6 90º 0 0 è6 *

72
En donde se han cambiado los signos de los ángulos, quedando á4 = -90º , á5 = 90º , con objeto
de obtener una completa analogía con los ángulos de Euler Z-Y-Z. Con esta modificación, las
matrices de transformación son:

Resultando:

Que en este caso se corresponde completamente con la transformación de Euler Z-Y-Z:

73
CÁLCULO DE VELOCIDADES Y FUERZAS ESTÁTICAS

74
1. ( ejemplo 5.3 y problema 5.1. Craig). En la
figura se muestra un manipulador de dos
barras con articulaciones giratorias. Calcular
la velocidad de la punta del brazo en función
de las articulaciones, así como el jacobiano
correspondiente. Obtener las configuraciones
singulares. Expresar los resultados en
términos del sistema {3} (herramienta) y del
sistema {0}.

Establezcamos en primer lugar la tabla de


parámetros del robot:

i ái-1 a i-1 di èi
1 0 0 0 è1*
2 0 L1 0 è2*
3 0 L2 0 0

Las matrices de transformación:

Las velocidades angulares de las barras y de los orígenes de los sistemas:

75
Se verifica también:

Y también:

El jacobiano asociado a la velocidad lineal del origen O3, considerando dos dimensiones:

La matriz de rotación del sistema herramienta {3} al sistema base {0}:

Operando:

76
El jacobiano expresado en el sistema base {0}, considerando dos dimensiones:

Es posible efectuar, en la expresión anterior, las siguientes simplificaciones:

Resultando, finalmente:

Las configuraciones singulares, se obtendrán mediante cualquiera de las dos condiciones:

Considerando la primera posibilidad:

77
Es decir:

El jacobiano anterior corresponde a las velocidades lineales, el jacobiano completo tendrá en


cuenta las velocidades lineales y angulares del elemento terminal, en este caso se tendría una
matriz de 3x2:

Otra forma de obtener el jacobiano lineal es directamente mediante la geometría del robot,
derivando la posición del elemento terminal del robot, resultando:

La posición del elemento terminal se puede obtener también a partir de la matriz de


transformación.

78
2 (Problema 5.8 Craig). Algunas veces los
mecanismos generales tienen ciertas
configuraciones llamadas “puntos isotrópicos”,
en donde las columnas del jacobiano se vuelven
ortogonales y de igual magnitud. Para el
manipulador plano de dos barras, encontrar si
existen puntos isotrópicos. Sugerencia ¿existe
algún requerimiento sobre L1 y L2?

El jacobiano del robot plano de dos barras,


sabemos que es:

Para que exista un punto isotrópico, la única


posibilidad es que el jacobiano sea:

Suponiendo en primer lugar el signo negativo en L2. Comparando ambas matrices de 3J:

La relación entre L1 y L2 y el valor del ángulo è2:

Así mismo:

El punto isotrópico es independiente de è1. La velocidad en el elemento terminal:

Es decir las componentes de la velocidad son independientes entre sí y dependen cada una de una

79
única CG, lo cual equivale a decir que el robot se comporta en ese punto como un robot
cartesiano. Para la otra solución, se tiene:

80
3. (Problema 5.13 Craig) Para un manipulador plano de dos barras, ignorando la gravedad,
calcular los momentos de torsión requeridos de las articulaciones para que aplica en el
elemento terminal un vector fuerza 0F = [10, 0]t:

En este caso trabajaremos con el jacobiano expresado en el sistema base {0}:

81
4. (Problema 5.2. Craig). Encontrar el jacobiano del manipulador plano RRR de la figura.
Escribirlo en términos del sistema base {0} y del sistema {4} (herramienta) ubicado en la
punta del elemento terminal con la misma orientación que {3}

La matriz de trasformación del sistema {4} al {0}, se puede expresar directamente a partir de una
rotación de ángulo è1 +è2 +è3 sobre el eje OZ:

La forma más directa de obtener el jacobiano lineal expresando la posición del elemento terminal
P en el sistema base, bien por geometría o a partir de la matriz de trasformación:

82
Derivando las expresiones anteriores respecto del tiempo obtenemos la velocidad lineal de P:

Es decir:

La velocidad angular del sistema {4}:

Prescindiendo de las dos primeras filas por innecesarias se tiene el jacobiano relativo a las
rotaciones:

Los jacobianos en el sistema {4}, se obtendrán multiplicando por la matriz de rotación:

83
5. Encontrar el jacobiano del manipulador RRR. Ubicarlo en el sistema base {0} y en el
sistema {4} ubicado en la punta del elemento terminal con la misma orientación que {3}

La matriz de trasformación del sistema {4} al {0}, sabemos que es:

Suponemos que el elemento terminal P/O4 está situado en el origen del sistema {4}. Expresando
la posición del elemento terminal en el sistema base, bien por geometría o a partir de la matriz de
trasformación:

Derivando las expresiones anteriores respecto del tiempo, obtenemos la expresión de la velocidad
lineal de P:

84
Es decir

El jacobiano de las rotaciones se obtendrá a partir de la expresión de la velocidad angular en {0}.


De acuerdo con la figura, se tendrá:

Es decir:

85
Los jacobianos en el sistema {4} se obtendrán multiplicando por la matriz de rotación

86
6. Encontrar el jacobiano del manipulador RRP Ubicarlo en el sistema base {0} y en el
sistema {3}.

La matriz de trasformación general es:

Suponemos que el elemento terminal P/O3 está situado en el origen del sistema {3}. Expresando
la posición del elemento terminal en el sistema base, bien por geometría o a partir de la matriz de
trasformación:

87
Derivando las expresiones anteriores respecto del tiempo, obtenemos la expresión de la velocidad
lineal de P:

Es decir:

La velocidad angular del sistema {3} será, de acuerdo con la figura:

Es decir:

88
89
7. En la figura se muestra un manipulador
plano de dos barras con articulaciones
giratorias. En el extremo se ejerce la fuerza 3f,
calcular los momentos de torsión y fuerzas en
las articulaciones ( ejemplo 5.7 Craig)

En el extremo de la segunda barra que coincide


con el origen del sistema-trama {3}, se tendrá, al
ser los sistemas-tramas {2} y {3} coincidentes:

Resultando:

Los pares torsores en las articulaciones son:

Donde se puede comprobar que la matriz es la traspuesta del jacobiano.

90
8.(problema 5.17 Craig). Desarrollar un
algoritmo para generar numéricamente
el jacobiano de un manipulador de n
barras a partir del análisis de
velocidades.
Supongamos el manipulador de n barras de
la figura y sea H el extremo de la última
barra del robot (también herramienta o
elemento terminal). A continuación
consideraremos la contribución de cada
articulación a la velocidad de H, 0vH para
ello supongamos que inmovilizamos todas
las articulaciones excepto la articulación i
a la que le comunicamos un giro de
velocidad è’i, la contribución de la
articulación i a la velocidad total de H, para
el caso de un par de rotación será:

Para el caso de par prismático en i en vez de articulación o par de rotación:

La contribución de i a la velocidad angular de la última barra para el caso de par de rotación, será:

Para el caso de par prismático:

Generalizando las expresiones anteriores a todas las articulaciones del robot, se tendrá

En donde È’ representa el vector de las velocidades en las coordenadas generalizadas y JLi , i


=1..n, es un vector columna de la matriz jacobiana en donde:

91
Adoptándose una solución u otra, según se trate de un par prismático o de un par de rotación. Para
la velocidad angular, se tendrá igualmente:

Siendo:

Finalmente para la determinación de 0PH y 0Pi emplearemos las matrices de trasformación.

92
PROBLEMA DINÁMICO

93
1. Establecer las ecuaciones dinámicas
en forma cerrada de un manipulador
plano de dos barras aplicando las
ecuaciones recursivas de Newton-
Euler. Para mayor sencillez, suponer
que las masas de las barras son
puntuales y concentradas en las
articulaciones (Craig 6.7).

Para la resolución del problema


aplicaremos el algoritmo recursivo
basado en las ecuaciones de Newton-
Euler, pero de forma simbólica, ya que
de lo que se trata es de obtener las
ecuaciones en forma “cerrada” o
explícita.

Como las masas son puntuales, los


vectores de posición de las masas en sus
sistemas de referencia son:

En base también a lo anterior, los tensores o matrices de inercia de las barras serán nulos:

Como suponemos que no hay fuerzas sobre el elemento terminal, se tendrá:

Como la base del robot está quieta:

Para incluir las fuerzas de gravedad se supondrá sin embargo una aceleración positiva de la
gravedad en el sistema base:

Las matrices de rotación entre las tramas-sistemas:

94
Aplicando las ecuaciones iterativas hacia adelante, barra-vínculo 1:

Para la barra-vínculo 2:

Considerando a continuación las ecuaciones iterativas hacia atrás, paa la barra-vínculo 2, se tiene:

95
Para la barra-vínculo 1, la fuerza es:

El momento es:

Para determinar los momentos de torsión, extraemos las componentes Z de las ini:

De forma genérica las ecuaciones dinámicas del manipulador de n GDL se pueden escribir como:

96
En donde ô representa el vector n x 1 de los momentos torsores, M(È) la matriz de masas n x n
o de inercia del manipulador, V(È,È’) es el vector n x 1 de las fuerzas centrífugas y de Coriolis,
G(È) es el vector n x1 de los términos gravitatorios y È el vector de las coordenadas
generalizadas. También es común en otros textos representar el vector de coordenadas
generalizadas por q, y la matriz de masas M(È) como H(q). En este problema:

97
2. Establecer las ecuaciones dinámicas del
manipulador plano RP de la figura,
empleando la formulación de Lagrange
(Craig ejemplo 6.5).

Los tensores o matrices de inercia de las barras


o vínculos, son:

De acuerdo con la notación de Hartenberg-Denavit, utilizaremos la asignación de sistemas-tramas


de la figura con las coordenadas generalizadas tal como se muestran. La expresión de la energía
cinética de un sólido rígido plano:

Las velocidades angulares de las barras, se tiene directamente:

Para la primera barra, se tendrá por geometría:

Este mismo resultado se podría haber también obtenido directamente a partir de las ecuaciones
de la cinemática. Para la segunda barra, se obtendrá también por geometría:

98
La energía cinética de la barras-vínculos:

La energía cinética total:

La energía potencial, tomando como origen de potenciales el eje OX:

Resultando un energía potencial total:

Resultando las siguientes derivadas parciales:

Sustituyendo en las ecuaciones de Lagrange:

99
Estas ecuaciones se pueden escribir en la forma clásica matricial:

Siendo:

100
3. (Problema 6.18 Craig) Proporcione dos propiedades que debería poseer cualquier modelo
de fricción razonable en la ecuación dinámica:

De acuerdo con la teoría, la fricción introducirá un par resistente que se opondrá siempre al par
matriz en cada articulación. Existen dos tipos de resistencia de de fricción:

1. La fricción viscosa, que es proporcional a la velocidad de la barra ( como una amortiguación


en el movimiento vibratorio):

2. La fricción debida al rozamiento de Coulomb. Se supone constante y opuesta a la velocidad:

De manera que el par resistente debido a la fricción en cada articulación, es:

Este término habrá de incluirse para cada articulación, formando el vector F(È,È’).

101
4. Establecer las ecuaciones dinámicas
en forma cerrada de un manipulador
plano de dos barras aplicando la
formulación de Lagrange.

De acuerdo con la notación de


Hartenberg-Denavit, utilizaremos la
asignación de sistemas-tramas de la
figura con las coordenadas
generalizadas tal como se muestran. La
expresión de la energía cinética de un
sólido rígido plano:

Al tratarse de masas puntuales, se


cumplirá:

Para la primera barra, se tendrá por geometría:

Este mismo resultado se podría haber también obtenido directamente a partir de las ecuaciones
de la cinemática. Para la segunda barra, se obtendrá también por geometría:

Derivando respecto del tiempo y ordenando:

Elevando al cuadrado:

102
Sumando las expresiones anteriores, teniendo en cuenta que: sen2 x +cos2 x=1, y que de acuerdo
con la fórmula trigonométrica del coseno de la diferencia de ángulos: c1c12 + s1s12 =c2 y volviendo
a ordenar términos:

La energía cinética de la barras-vínculos:

La energía cinética total:

La energía potencial, tomando como origen de potenciales el eje OX:

Resultando un energía potencial total:

Resultando las siguientes derivadas parciales:

103
Sustituyendo en las ecuaciones de Lagrange:

Estas ecuaciones se pueden escribir en la forma clásica matricial:

Siendo:

Resultados que coinciden con los del problema 1, en donde se ha estudiado la dinámica del robot
mediante las ecuaciones de Newton-Euler.

104
5. Dado el manipulador cartesiano PP de
la figura, formado por dos barras
homogéneas con cdg en el punto medio,
se pide establecer las ecuaciones del
modelo dinámico mediante la formulación
de Lagrange. Para mayor simplicidad se
supondrá que los centros de gravedad
están en los extremos de las barras, tal
como se muestra en la figura.

En este caso las barras presentan un


movimiento lineal sin ninguna rotación,
resultando una expresión de la energía
cinética total del robot:

La energía potencial, tomando como origen de potenciales el eje OY0:

Resultando las siguientes derivadas parciales:

Sustituyendo en las ecuaciones de Lagrange:

105
6. Establecer las expresiones generales para las ecuaciones cerradas de un robot articulado
de n barras, mediante la formulación de Lagrange.

Las ecuaciones de Lagrange nos permiten obtener una formulación matemática explícita de las
acciones o pares en los actuadores del robot y las coordenadas generalizadas. Las ecuaciones de
Lagrange, se pueden escribir como:

(1)

En donde el término L, representa el denominado lagrangiano o función lagrangiana, que equivale


a la energía cinética k menos la energía potencial u, È corresponde al vector de coordenadas
generalizadas y Q es el vector de fuerzas generalizadas asociadas a las fuerzas exteriores
directamente aplicadas sobre el robot: pares torsores sobre las articulaciones y fuerzas del
entorno. Para el desarrollo de estas ecuaciones, hemos de expresar el lagrangiano en función de
las coordenadas generalizadas y sus derivadas:

(2)

Teniendo pues en cuenta que la energía cinética depende de las coordenadas generalizadas y sus
derivadas y que la energía potencial depende únicamente de las coordenadas, las ecuaciones de
Lagrange se pueden expresar como:

(3)

Necesitaremos pues expresar las energías cinética y potencial en función de las coordenadas
generalizadas y sus derivadas. La expresión general de la energía cinética un sólido rígido, es:

(4)

Para el caso de un robot de n barras, la energía cinética total del robot será la suma de las n
energías cinéticas de la barras:

(5)

Es necesario a continuación, expresar las velocidades lineales y angulares en función de las


coordenadas generalizadas. Existen procedimientos que permiten obtener esto de forma
sistemática, empleando bien las matrices de transformación o los jacobianos. En particular,
empleando la matriz jacobiana, se tiene:

106
(6)

En donde JLi representa el jacobiano lineal asociado a la velocidad de Gi y JRi es el jacobiano


angular asociado a la velocidad angular de la barra i. JLji , JRji, representan las columnas j de las
matrices jacobianas, È = [è1,è2..èn]T son los vectores de las coordenadas generalizadas del robot.
En particular las matrices jacobianas se han de expresar como:

(7)

Hay que resaltar que, puesto que el movimiento de la barra i depende de las articulaciones 1ª- i,
los vectores columna son 0 para j>=i. Esta notación, nos permite obtener los jacobianos lineales
y angulares de cada barra de forma sistemática, en particular, se puede demostrar, tal como
aparece explicado en algunos textos de robótica que los jacobianos se pueden obtener:

(8)

Siendo rj,Gi el vector de posición del cdg de la barra i, referido al origen del sistema j, y zj es el
vector unitario 3x1 de la dirección del eje j-1. No obstante si el robot no presenta gran
complejidad, los jacobianos también se pueden obtener directamente, a partir de las expresiones
de las velocidades lineales y angulares. Sustituyendo las expresiones de las velocidades lineales
y angulares (5), en las expresiones de la energía cinética (3) y(4):

(9)

La matriz M recibe el nombre de matriz de inercia del manipulador. Se trata de una matriz
cuadrada n x n que comprende las matrices o tensores de inercia de cada barra. Es una matriz
simétrica definida positiva que cambia de valor para cada posición del robot al variar los
jacobianos, es decir es función del vector de coordenadas generalizadas È. Empleando una
notación en forma de subíndice, la energía cinética se puede expresar también como:

(10)

107
En lo que respecta a la energía potencial, existirá una energía potencial gravitatoria. Si g
representa el vector 3 x 1 de la aceleración de la gravedad referido al sistema base, la energía
potencial del robot se expresará como:

(11)

Donde la posición del cdg de la barra Gi depende de la configuración de la barra. La energía


potencial es función de la coordenadas generalizadas.

En lo que respecta a las fuerzas generalizadas, hay que incluir todas las acciones: fuerzas y
momentos exteriores que actúan sobre el robot, prescindiendo de las fuerzas de inercia y de la
fuerzas de gravedad. Estas fuerzas serán los pares en los actuadores del robot, definidos por el
vector: ô = [ ô 1,....,ô n]T, así como la fuerza en el extremo del robot que se representa como Fext,
si r representa el vector de posición del elemento terminal del robot, el trabajo virtual del robot,
será:

(12)

En la ecuación anterior, se ha tenido en cuento que: är = J äÈ. El término Q = [Q1,..Qn ]T, recibe
el nombre de fuerza generalizada y es un vector de n dimensiones, siendo:

(13)

En ausencia de fuerzas exteriores, la ecuación anterior se simplifica:

(14)

Una vez se tiene una expresión de la energía cinética y potencial, en función de las coordenadas
generalizadas y sus derivadas, ecuaciones (10) y (11), es posible desarrollar las ecuaciones
dinámicas del movimiento del robot en forma cerrada, a partir de las ecuaciones de Lagrange.
Para el primer término de la ecuación (3), teniendo en cuenta (9) y que además la energía
potencial del robot dada por (10), depende de las coordenadas generalizadas pero no de sus
derivadas:

(15)

La matriz de inercia del manipulador M varía de acuerdo con las coordenadas generalizadas È,

108
resultando:

(16)

Para el segundo término de (3), se tendrá:

(17)

El término gravitatorio Gi, correspondiente a la energía potencial, se obtiene a partir de las


derivadas parciales de la energía potencial:

(18)

Puesto que la derivada parcial del vector de posición r0,Gj con respecto a èi es lo mismo que el
vector columna (i) de la matriz jacobiana J Li(j), definido por las ecuaciones (6)-(8). Sustituyendo
las expresiones (13)-(18) en (3), se tiene:

(19)

En donde:

(20)

La expresión (19) constituye las ecuaciones dinámicas del robot en forma cerrada, y nos da el
valor de los pares torsores en los actuadores de las barras en función de las coordenadas
generalizadas del robot è1..èn, y sus derivadas, así como de las características mecánicas y
geométricas del robot. Los valores de las coordenadas generalizadas y sus derivadas, vienen
impuestos por las características de la trayectoria impuesta y son por tanto conocidos. De acuerdo
con (14), si no existe una fuerza externa actuando sobre el elemento terminal del robot, la fuerza
generalizada Qi, nos da directamente el valor del par torsor en el actuador. En caso contrario, hay
que tener en cuenta el término adicional correspondiente a la fuerza exterior de acuerdo con la
ecuación (13). El primer término de la ecuación (19) corresponde al par producido por las fuerzas
de inercia sobre la barra, el segundo término corresponde al par producido por las fuerzas
centrífugas y de coriolis. Como se ha visto en el problema 1 estas mismas ecuaciones (19) se

109
pueden obtener también empleando la formulación de Newton-Euler, si bien las ecuaciones de
Lagrange permiten establecer estas ecuaciones de forma más sistemática y directa para un robot
de n barras de cualquier configuración, mientras que la formulación de Newton-Euler es mas
adecuada para calcular numéricamente los pares en los actuadores de forma recursiva con menos
operaciones aritméticas y menor coste computacional. Las ecuaciones dinámcas se pueden
escribir también en forma matricial, presentado la forma clásica:

(21)

110
7. Establecer las ecuaciones dinámicas en
forma cerrada para un manipulador plano
de dos barras empleando la formulación de
Lagrange.

En este caso partiremos de los jacobianos


asociados a las barras, los cuales los
obtendremos directamente a partir de las
expresiones de las velocidades angulares y
lineales. Para las velocidades angulares, se
tendrá:

(1)

Siendo È = [ è1, è2]T . Las velocidades lineales se han obtenido derivando los vectores de
posición. Para la primera barra, se tiene:

(2)

Para la segunda barra, se tiene igualmente:

(3)

Las ecuaciones (1), (2) y (3) nos dan los jacobianos lineales y angulares. Sustituyendo estas
expresiones en la segunda expresión de la ecuación (9) del problema anterior, se tiene:

(4)

111
Los componentes del tensor de inercia del manipulador son los coeficientes Mij de la ecuación
dinámica, ecuación (19) del problema anterior. El segundo término se obtiene de la primera
expresión de la ecuación (20), resultando:

(5)

El tercer término es el gravitatorio, se obtendrá a partir de la segunda expresión de la ecuación


(20) del problema anterior:

(6)

Y también:

(7)

Resultando unas ecuaciones dinámicas de la forma:

(8)

Que en forma matricial, resulta:

(9)

Siendo:

(10)

112
8. El manipulador plano de dos barras de la figura
está accionado por dos actuadores, de manera que
el actuador de la barra 2 está situado en la base y
transmite su potencia a través de una cadena. El
actuador de la barra 1 está también situado sobre
la base y transmite la potencia directamente.
Establecer las ecuaciones dinámicas.

Se trata de un robot plano de dos barras en donde los


diferentes términos de la ecuación diferencial del
movimiento: tensor de inercia, términos centrífugos
y de coriolis y términos gravitatorios ya han sido
establecidos en problemas anteriores, sin embargo el
término correspondiente a las fuerzas generalizadas sí
que experimentará variaciones respecto de la
disposición clásica con los actuadores situados en
cada barra. En este caso el trabajo virtual realizado
por los actuadores, suponiendo además que no existe
una fuerza en el extremo del robot, será:

Comparando esta expresión con la expresión general de la fuerza generalizada:

En donde las coordenadas generalizadas siguen siendo los ángulos de las barras: q1 = è1, q2 = è2,
resultando para las fuerzas generalizadas:

Siendo el resto de los términos idénticos a los ya desarrollados.

113
GENERACIÓN DE TRAYECTORIAS

114
1. El extremo P del robot plano articulado-
prismático RP de la figura, se mueve entre
los puntos P1(0'1,0) m, P2( -0'6,0'5) m del
sistema de trabajo OXY de la figura,
describiendo una trayectoria
polinomial/cúbica en 10 seg, se pide:
Definir las trayectorias polinómicas y sus
derivadas, así como los valores de las
acciones en los actuadores para la
trayectoria supuesta, suponer 11 puntos de
muestra repartidos de forma uniforme en los
10 segundos del período de la trayectoria (0
seg, 1 seg.....10 seg).
Datos:
m1 = 5 kg, m2 = 6 kg , L1 = 0'4 m, L2 = 0'1 m
IG1 = 10 kgm2, IG2 = 15 kgm2, g=9'81 m/seg2.

En primer lugar resolveremos el problema dinámico inverso para las posiciones inicial y final.
Posición inicial:

Posición final:

La expresión general de los desplazamientos para la trayectoria polinomial\cúbica, en ambas


articulaciones es:

Los valores de los coeficientes para la primera articulación, serán:

115
Estando expresada la posición en rad. Para la segunda articulación:

Estando expresada la posición en m. Las velocidades y aceleraciones en las coordenadas


generalizadas se obtendrán de forma inmediata derivando respecto del tiempo La ecuación de los
desplazamientos, resultando en ambas articulaciones una expresión general:

A continuación se particularizan las expresiones anteriores correspondientes a los desplazamientos,


velocidades y aceleraciones en las coordenadas generalizadas, para los instantes pedidos en la
trayectoria, esto es t = 0 seg, 1 seg, 2 seg, .....10 seg y se sustituyen en las ecuaciones dinámicas
del robot obtenidas en el problema 2. Los resultados nos permitirán obtener las acciones en los
actuadores para cada instante, resolviéndose el problema dinámico inverso para la trayectoria
propuesta. Se muestran los resultados en la página siguiente. Estos resultados se han obtenido por
ordenador mediante un programa en leguaje C.

116
trayectoria polinóm ica, problem a dinám ico inverso problem a del m anual

características m anipulador:
longitudes barras (m ), L1 : 0.400000, L2 : 0.100000
m asas barras (kg), m 1 : 5.000000, m 2 : 6.000000
m di barras (kgm 2), I1 : 10.000000, I2 : 15.000000
período trayectoria (seg), tf : 10.000000
coordenadas puntos (m ), inicial : xp1 : 0.100000, yp1 : 0.000000 , final xp2: -0.600000, yp2: 0.500000

problema cinemático inverso:


C G 1: thet10(rad):0.000000, thet1f(rad): 2.446854 , thet10(gr):0.000000, thet1f(gr): 140.194429
C G 2: d20(m ):0.000000, d2f(m ): 0.681025

valores coeficientes trayectoria:


prim er polinom io: a0: 0.000000, a1: 0.000000, a2: 0.073406 a3: -0.004894
segundo polinom io: a0: 0.000000, a1: 0.000000, a2: 0.020431 a3: -0.001362

R esultados problema dinámico inverso:

t(seg) thet1(rd) dthet1(rd/seg) ddthet1(rd/s2) d2(m ) dd2(m /seg) ddd2(m /seg2) tau1(N m ) f2(N )
0.000000 0.000000 0.000000 0.146811 0.000000 0.000000 0.040861 23.407731 0.245169
1.000000 0.068512 0.132130 0.117449 0.019069 0.036775 0.032689 23.725274 4.223595
2.000000 0.254473 0.234898 0.088087 0.070827 0.065378 0.024517 25.311102 14.940792
3.000000 0.528521 0.308304 0.058725 0.147101 0.085809 0.016345 25.989332 29.694701
4.000000 0.861293 0.352347 0.029362 0.239721 0.098068 0.008172 22.840699 44.526688
5.000000 1.223427 0.367028 0.000000 0.340512 0.102154 0.000000 13.655342 55.069163
6.000000 1.585562 0.352347 -0.029362 0.441304 0.098068 -0.008172 -1.282073 58.475827
7.000000 1.918334 0.308304 -0.058725 0.533924 0.085809 -0.016345 -18.831718 54.938443
8.000000 2.192382 0.234898 -0.088087 0.610198 0.065378 -0.024517 -34.697116 47.501497
9.000000 2.378342 0.132130 -0.117449 0.661956 0.036775 -0.032689 -45.631859 40.422893
10.000000 2.446854 0.000000 -0.146811 0.681025 0.000000 -0.040861 -50.063024 37.436085

La prim era colum na corresponde al tiempo, la segunda, tercera y cuarta colum na al desplazamiento, velocidad y aceleración en la prim era articulación, la quinta, sexta y séptim a colum na al desplazamiento, velocidad y aceleración en la segunda articulación,
la octava colum na es el m om ento torsor en la prim era articulación y la novena colum na la fuerza en la segunda articulación.

117
PROBLEMAS COMPLEMENTARIOS

118
DESCRIPCIÓN PROGRAMAS DE PRÁCTICAS DE ROBÓTICA EN LEGUAJE C Y
MATLAB

1
Programas en lenguaje C

Programa cindir1.

Descripción: programa que calcula las matrices de


transformación y el problema cinemático directo de un
robot plano de tres barras RRR, similar al problema 2,
del capítulo problema cinemático directo de los apuntes.

Para la elaboración y ejecución del programa, se utilizan


los siguientes archivos:

cincir1_en.text: entrada de datos.


cindir1_sal.txt: salida de datos.
cindir1.cpp: código fuente en lenguaje C.
cindir1.exe: archivo ejecutable.
Figura 1

Los archivos de entrada- salid de datos son archivos de texto que se pueden abrir con un
procesador de texto. Es conveniente utilizar el programa Wordpad ó el Block de Notas que vieen
siempre por defecto en el Windows.
El archivo de código fuente es también un archivo de texto que se puede abrir con un procesador
de tecto como los anteriores, sin embargo es conveniente utilizar el procesador del compilador
Descripción del código del programa, archivo cindir1.cpp:

Consta de un programa principal y de las funciones:


matmul: multiplica las matrices A y B, obteniendo la matriz C: C = A*B.
matrix: define la matriz de transformación homogénea entre dos barras T, empleando la
convención Hartenberg-Denavit, versión J.J. Craig, a partir de los valores de la tabla de
parámetros.
matvecmul: multiplica el vector b por la matriz A, obteniendo el vector c: c = A*b.
traspuesta: obtiene la matriz AT, traspuesta de la matriz A.

Programa principal:
Se leen los datos de entrada del archivo cincir1_en.text:
Longitudes de las barras (m) L1, L2, L3.
Ángulos supuestos de las tres barras (grados): theta1, theta2, theta3.
Se define la tabla de parámetros de acuerdo con la convención Hartenberg-Denavit, versión J.J.
Craig.
Se define el vector p3 que corresponde extremo P de la barra 3 en el sistema de referencia local.
Se definen las matrices de transformación homogénea entre cada pareja de barras:
T01: de la barra 1 al sistema base.
T12: de la barra 2 a la 1.
T23: de la barra 3 a la 2.

2
Se forma la matriz de transformación de la barra 3 al sistema base T03, para ello se utiliza la
función matmul dos veces que multiplica una pareja de matrices:
T13 = T12*T23; T03 = T01*T13;
Se define la posición del elemento terminal P en el sistema base, obteniendo el vector p0, para ello
se utiliza la función matvecmul que multiplica una matriz por un vector: p0 = T03*p3.
Se extrae la matriz de rotación R03 de la matriz de trasformación T03.
Se forma la traspuesta RT03 de la matriz de rotación de R03, mediante la función traspuesta.
Finalmente el programa comprueba que la matriz R03 es ortogonal ya que al multiplicarla por su
traspuesta, se obtiene la matriz unidad: I = R03*RT03, para ello se emplea la función matmul.

Los resultados que muestra el programa son:


Matriz de trasformación T03.
Comprobación de la posición del elemento terminal del robot calculada geométricamente, que
debe de coincidir con la cuarta columna de T03.
Resultado de la multiplicación de la matriz de rotación R03 por su traspuesta, que debe de ser la
matriz unidad.
Estos resultados se muestran en el archivo de salida, cindir1_sal.txt.

Programa cindir2.

Descripción: programa que calcula las matrices de transformación y el problema cinemático


directo de un robot espacial de tres barras RRR, similar al problema 4, del capítulo problema
cinemático directo de los apuntes.

Figura 2

Para la elaboración y ejecución del programa, se utilizan los siguientes archivos:

cincir2_en.text: entrada de datos.


cindir2_sal.txt: salida de datos.
cindir2.cpp: código fuente en lenguaje C.
cindir2.exe: archivo ejecutable.

3
Descripción del código del programa, archivo cindir2.cpp:

Consta de un programa principal y de las funciones:


matmul: multiplica las matrices A y B, obteniendo la matriz C: C = A*B.
matrix: define la matriz de transformación homogénea entre dos barras T, empleando la
convención Hartenberg-Denavit, versión J.J. Craig, a partir de los valores de la tabla de
parámetros.
matvecmul: multiplica el vector b por la matriz A, obteniendo el vector c: c = A*b.
traspuesta: obtiene la matriz AT, traspuesta de la matriz A.

Programa principal:

Se leen los datos de entrada del archivo cincir1_en.text:


Longitudes de las barras (m) L1, L2, L3.
Ángulos supuestos de las tres barras (grados): theta1, theta2, theta3.
Se define la tabla de parámetros de acuerdo con la convención Hartenberg-Denavit, versión J.J.
Craig.
Se define el vector p3 que corresponde extremo P de la barra 3 en el sistema de referencia local.
Se definen las matrices de transformación homogénea entre cada pareja de barras:
T01: de la barra 1 al sistema base.
T12: de la barra 2 a la 1.
T23: de la barra 3 a la 2.
Se forma la matriz de transformación de la barra 3 al sistema base T03, para ello se utiliza la
función matmul dos veces que multiplica una pareja de matrices:
T13 = T12*T23; T03 = T01*T13;
Se define la posición del elemento terminal P en el sistema base, obteniendo el vector p0, para ello
se utiliza la función matvecmul que multiplica una matriz por un vector: p0 = T03*p3.
Se extrae la matriz de rotación R03 de la matriz de trasformación T03.
Se forma la traspuesta RT03 de la matriz de rotación de R03, mediante la función traspuesta.
Finalmente el programa comprueba que la matriz R03 es ortogonal ya que al multiplicarla por su
traspuesta, se obtiene la matriz unidad: I = R03*RT03, para ello se emplea la función matmul.

Los resultados que muestra el programa son:


matriz de trasformación T03.
Comprobación de la posición del elemento terminal del robot calculada geométricamente, que
debe de coincidir con la cuarta columna de T03.
Resultado de la multiplicación de la matriz de rotación R03 por su traspuesta, que debe de ser la
matriz unidad.
Estos resultados se muestran en el archivo de salida, cindir2_sal.txt.

Programa cindir3.

Descripción: programa que calcula las matrices de transformación y el problema cinemático


directo de un robot espacial de tres barras RRP, similar al problema 7, del capítulo problema
cinemático directo de los apuntes.

4
Figura 3

Para la elaboración y ejecución del programa, se utilizan los siguientes archivos:

cincir3_en.text: entrada de datos.


cindir3_sal.txt: salida de datos.
cindir3.cpp: código fuente en lenguaje C.
cindir3.exe: archivo ejecutable.

Descripción del código del programa, archivo cindir3.cpp:


Consta de un programa principal y de las funciones:
matmul: multiplica las matrices A y B, obteniendo la matriz C: C = A*B.
matrix: define la matriz de transformación homogénea entre dos barras T, empleando la
convención Hartenberg-Denavit, versión J.J. Craig, a partir de los valores de la tabla de
parámetros.
matvecmul: multiplica el vector b por la matriz A, obteniendo el vector c: c = A*b.
traspuesta: obtiene la matriz AT, traspuesta de la matriz A.

Programa principal:

Se leen los datos de entrada del archivo cincir1_en.text:


Longitudes de las barras (m) L1, L2.
Coordenadas generalizadas : theta1(grados), theta2(grados), d3(m).

5
Se define la tabla de parámetros de acuerdo con la convención Hartenberg-Denavit, versión J.J.
Craig.
Se define el vector p3 que corresponde extremo P de la barra 3 en el sistema de referencia local.
En este caso el punto P coincide con el origen del sistema de la barra 3
Se definen las matrices de transformación homogénea entre cada pareja de barras:
T01: de la barra 1 al sistema base.
T12: de la barra 2 a la 1.
T23: de la barra 3 a la 2.
Se forma la matriz de transformación de la barra 3 al sistema base T03, para ello se utiliza la
función matmul dos veces que multiplica una pareja de matrices:
T13 = T12*T23; T03 = T01*T13;
Se define la posición del elemento terminal P en el sistema base, obteniendo el vector p0, para ello
se utiliza la función matvecmul que multiplica una matriz por un vector: p0 = T03*p3.
Se extrae la matriz de rotación R03 de la matriz de trasformación T03.
Se forma la traspuesta RT03 de la matriz de rotación de R03, mediante la función traspuesta.
Finalmente el programa comprueba que la matriz R03 es ortogonal ya que al multiplicarla por su
traspuesta, se obtiene la matriz unidad: I = R03*RT03, para ello se emplea la función matmul.

Los resultados que muestra el programa son:


Matriz de transformación T03.
Comprobación de la posición del elemento terminal del robot calculada geométricamente, que
debe de coincidir con la cuarta columna de T03.
Resultado de la multiplicación de la matriz de rotación R03 por su traspuesta, que debe de ser la
matriz unidad.
Estos resultados se muestran en el archivo de salida, cindir3_sal.txt.

Programa cininver1.

Descripción: programa que calcula el problema


cinemático inverso de un robot plano articulado
de tres barras RRR con posicionamiento angular
en la última barra, empleando el método
geométrico, similar al problema 2 del capítulo
problema cinemático inverso de los apuntes.

Para la elaboración y ejecución del programa, se


utilizan los siguientes archivos:

cininver1_en.text: entrada de datos.


cininver1_sal.txt: salida de datos.
cininver1.cpp: código fuente en lenguaje C.
cininver1.exe: archivo ejecutable.

Descripción del código del programa, archivo


cininver1.cpp:
Consta únicamente de un programa principal
con la siguiente estructura:

6
Se leen los datos del archivo cininver1_en:
Longitudes de los brazos (m): L1,L2,L3.
Posición del elemento terminal, coordenadas y ángulo de inclinación de la tercera barra: xp(m),
yp(m), betha(grados).
Se resuelve el problema cinemático inverso geométricamente, considerando todas las soluciones:
codo hacia arriba y codo hacia abajo.
El programa muestra los siguientes resultados:
Solución problema cinemático inverso, codo hacia abajo, ángulos (grados): theta11,
theta21,theta31.
Comprobación mediante el problema cinemático directo, se comprueban las coordenadas del
elemento terminal xp(m), yp(m) y del ángulo de la tercera barra: betha(grados) para la solución
obtenida.
Se repiten los pasos anteriores para la solución de codo hacia arriba, ángulos: theta12,
theta22,theta32.

Programa cininver2.

Descripción: programa que calcula el problema cinemático inverso de un robot espacial articulado
de tres barras RRR sin descentramiento en el hombro, empleando el método geométrico, similar
al problema 6 del capítulo problema cinemático inverso de los apuntes.

Figura 5

Para la elaboración y ejecución del programa, se utilizan los siguientes archivos:


cininver2_en.text: entrada de datos.
cininver2_sal.txt: salida de datos.
cininver2.cpp: código fuente en lenguaje C.
cininver2.exe: archivo ejecutable.

Descripción del código del programa, archivo cininver2.cpp: consta únicamente de un programa
principal con la siguiente estructura:
Se leen los datos del archivo cininver1_en:

7
Longitudes de los brazos (m): L0,L1,L2,L3.
Posición del elemento terminal, (m): xp, yp, zp.
Se resuelve el problema cinemático inverso geométricamente, considerando todas las soluciones:
codo hacia arriba y codo hacia abajo.
El programa muestra los siguientes resultados:
Solución problema cinemático inverso, codo hacia abajo, ángulos (grados): theta1,
theta21,theta31.
Comprobación mediante el problema cinemático directo, se comprueban las coordenadas del
elemento terminal: xp(m), yp(m), zp(m).
Se repiten los pasos anteriores para la solución de codo hacia arriba, ángulos(grados): theta1,
theta22,theta32.

Programa cininver3.

Descripción: programa que calcula el problema cinemático inverso de un robot espacial esférico
de tres barras con dos pares de rotaión y un par prismático RRP, empleando el método
geométrico, similar al problema 5 del capítulo problema cinemático inverso de los apuntes.

Figura 6

Para la elaboración y ejecución del programa, se utilizan los siguientes archivos:


cininver3_en.text: entrada de datos.
cininver3_sal.txt: salida de datos.

8
cininver3.cpp: código fuente en lenguaje C.
cininver3.exe: archivo ejecutable.

Descripción del código del programa, archivo cininver3.cpp:


Consta únicamente de un programa principal con la siguiente estructura:
Se leen los datos del archivo cininver1_en:
Longitudes de los brazos (m): L1,L2.
Posición del elemento terminal, (m): xp, yp, zp.
Se resuelve el problema cinemático inverso geométricamente, considerando todas las soluciones:
codo hacia arriba y codo hacia abajo, de acuerdo con la metodología mostrada en los apuntes. En
este caso el origen del sistema sistema base O0 está desplazado una distancia L1 respecto del
origen O1, lo cual se ha tenido en cuenta en el programa.

El programa muestra los siguientes resultados:


Solución problema cinemático inverso, codo hacia arriba, ángulos: theta1 (grados),
theta21(grados), distancia d3(m).
Comprobación mediante el problema cinemático directo, se comprueban las coordenadas del
elemento terminal: xp(m), yp(m), zp(m).
Se repiten los pasos anteriores para la solución de codo hacia abajo, ángulos: theta1(grados),
theta22(grados),distancia d3(m).

9
programas en C incompletos
en este caso no se muestra el archivo de código del programa y la ejecución está limitada a
algunos casos

Programa invercin1b

Descripción: este programa que calcula el problema cinemático inverso de un robot de 6 barras,
6R, que consta de tres barras articuladas y muñeca giratoria de tres ejes que se cortan, empleando
el método de Pieper. El programa está modificado de forma que la coordenada xp que define la
posición del elemento terminal (punto de intersección de los ejes de la muñeca) es siempre xp
=1'3333 m, yp = zp = 0'3333 m. Se muestran únicamente los archivos de entrada-salida de datos
pero no el código del programa.

Al igual que en los casos anteriores el programa consta de los siguientes archivos:
invercin1b_en.txt: entrada de datos.
invercin1b_sal.txt: salida de datos.
invercin1b.cpp: código fuente en lenguaje C. Como se ha explicado, este archivo no se muestra.
invercin1b.exe: archivo ejecutable.

La lectura de datos desde el archivo de entrada se efectúa con el siguiente orden:


Posición del elemento terminal, m:xp,yp,zp.
Orientación de la herramienta, según los ángulos de Euler Z-Y-Z (grados): alfa, beta, gamma.
Tabla parámetros del robot con el siguiente orden:
á i-1 (grados), a i-1 (m), di (m), i=1..6.

Posteriormente el código del programa se modifica de forma que xp =1'3333 m, yp = zp = 0'3333


m, resolviendose el problema cinemático inverso de acuerdo con el método de Pieper.

La salida de resultados es la siguiente:


En primer lugar se muestran los datos de partida: posición del elemento terminal xp, yp, zp, así
como la orientación del elemento terminal según los ángulos de Euler Z-YZ: alfa, beta gamma.
A continuación a partir de estos datos de partida, el programa muestra la matriz de transformación
homogénea 4x4 del elemento terminal.
A continuación se muestran cuatro soluciones para el problema dinámico inverso: las cuatro codo
arriba-abajo, hombro izquierda-derecha. De las dos soluciones para los ángulos de Euler de la
muñeca, únicamente se ha considerado una solución correspondiente al radical positivo del ángulo
beta, presentándose pues cuatro soluciones con los seis valores de los ángulos èi (grados), i=1..6.
Para cada solución se ha resuelto el problema cinemático directo, calculando la matriz de
trasformación homogénea y comprobando que coincide con la obtenida a partir de los datos de
partida.

Programa invercin3b

Descripción: programa de características similares al invercin1b, si bien en este caso se trata de


un robot de tres barras, resolviendo el problema cinemático por el método de Pieper.
La lectura de datos desde el archivo de entrada se efectúa con el siguiente orden:

10
Posición del elemento terminal, m: xp,yp,zp.
Tabla parámetros del robot con el siguiente orden:
á i-1 (grados), a i-1 (m), di (m), i=1..4. En este caso se consideran los sistemas de cada barra, mas
un cuarto sistema adicional correspondiente al extremo de la tercera barra o elemento terminal,
coincidente con el origen del sistema.
Al igual que ocurre con el programa invercin1b, el código del programa modifica los datos de
entrada de manera que xp =1'3333 m, yp = zp = 0'3333 m.
El archivo de salida muestra cuatro resultados para èi (grados), i=1..3. Al igual que en el
programa invercin1b, para cada resultado se comprueba el problema cinemático directo
calculando la matriz de transformación, si bien en este caso no se muestra la matriz completa sino
únicamente los términos de la última columna correspondientes a las coordenadas del elemento
terminal.

Programa invercin4b

Descripción: este programa resuelve el problema cinemático inverso de un robot espacial


articulado de tres barras con tres pares de rotación RRR, empleando el método geométrico,
similar al cininver2 pero con descentramiento en el hombro. El programa está modificado de
forma que xp =1'3333 m, yp=zp=0'3333 m.

La lectura de los datos de entrada se hace de la siguiente manera:


Longitudes de los brazos y descentramiento (m): l0,l1,l2,l3,d3.
Posición del elemento terminal, (m): xp, yp, zp.
El archivo de salida muestra cuatro soluciones correspondientes a las dos posiciones codo y
hombro.

Programa invercin6b

Descripción: este programa resuelve el problema cinemático inverso de un robot espacial esférico
de tres barras con dos pares de rotación y un par prismático RRP, empleando el método
geométrico, similar al cininver3 pero con descentramiento en el hombro. El programa está
modificado de forma que xp =1'3333 m, yp = zp = 0'3333 m.

La lectura de los datos de entrada se hace de la siguiente manera:


Longitudes de los brazos y descentramiento (m): l0,l1,l2,l3,d3.
Posición del elemento terminal, (m): xp, yp, zp.
El archivo de salida muestra cuatro soluciones correspondientes a las dos posiciones codo y
hombro.

Programa inverdimb

Descripción: el programa resuelve el problema cinemático inverso de un robot genérico mediante


el algoritmo de Newton-Euler con trayectoria polinomial-cúbica en las articulaciones. El
programa está modificado de manera que el tiempo de ejecución de la trayectoria sea siempre de
180 seg.
La entrada de datos se efectúa de la siguiente manera:
Número de barras, número de puntos de estudio, intervalo de tiempo de trayectoria (seg).

11
Posteriormente este valor se modifica a 180 seg.
Tensor de inercia de cada barra, kg x m2. Los datos se introducen con el siguiente orden:
Ixx, Iyy,Izz,Ixy,Ixz,Iyz.
Masa de cada barra kg y coordenadas del cdg (m).
Posiciones inicial y final de cada barra (grados ó m).
Tabla de párametros para cada barra: á i-1 (grados), a i-1 (m), di (m), èi (m), arti (==1rotación ó ==
0 traslación). En donde el último valor es un código para indicar el tipo de articulación, i=1....
número de barras +1.
Fuerza y momento en el elemento terminal del robot (tres componentes en cada uno).
Vector aceleración de la gravedad (m/seg2).
En el archivo de salida se muestran diferentes resultados: posición, velocidad, aceleración, etc,
y el par o fuerza en cada actuador.

12
Programas simulación en C
Programas que resuelven problemas cinemáticos, calculan jacobianos y pares torsores a lo largo
de una trayectoria

programa cindirtray1

Descripción: este programa resuelve el programa cinemático directo y la simulación de trayectoria


de un robot plano de 3 barras RRR describiendo una trayectoria armónica en el espacio de las
articulaciones.

Para la elaboración y ejecución del programa, se utilizan los siguientes archivos:


cincirtray1_en.text: entrada de datos.
cindirtray1_sal.txt: salida de datos.
cindirtray1.cpp: código fuente en lenguaje C.
cindirtray1.exe: archivo ejecutable.

Descripción del código del programa, archivo cindirtray1.cpp: consta de una programa principal
y de las funciones:
matmul: multiplica las matrices A y B, obteniendo la matriz C: C = A*B.
matrix: define la matriz de transformación homogénea entre dos barras T, empleando la
convención Hartenberg-Denavit, versión J.J. Craig, a partir de los valores de la tabla de
parámetros.
matvecmul: multiplica el vector b por la matriz A, obteniendo el vector c: c = A*b.
traspuesta: obtiene la matriz AT, traspuesta de la matriz A.

Programa principal: Se leen los datos de entrada del archivo cincirtray1_en.text:


Longitudes de las barras (m) L1, L2, L3.
Ángulos supuestos de las tres barras al inicio de la trayectoria (grados): theta1i, theta2i, theta3i.
Ángulos supuestos de las tres barras al final de la trayectoria (grados): theta1f, theta2f, theta3f.
Período de la trayectoria (seg): tf, y número de posiciones a calcular en la simulación: n.
A continuación se definen los elementos de la tabla de parámetros así como la posición del
elemento terminal del robot p3 en el sistema de la barra 3.
A continuación se define un ciclo do-while en donde se efectúan varias iteraciones según los n
puntos o posiciones considerados para la simulación.
En cada ciclo se calcula el ángulo de cada articulación è como función del tiempo de acuerdo con
una función armónica:

Siendo èi , y èf los valores inicial y final del ángulo de la barra y tf el período de la trayectoria.
A continuación se forman las matrices de trasformación entre dos barras consecutivas mediante
la función matrix: T01, T12,T23.
Seguidamente se forma la función de transformación de la última barra respecto del sistema base
mediante la función matmul: T03 = T01*T12*T23.
A continuación se forma el vector p0 que define la posición del elemento terminal o extremo de

13
la tercera barra, respecto del sistema base mediante la función matvecmul: p0 = T03*p3.
Los resultados obtenidos de p0 se comprueban también geométricamente
Se repiten los cálculos para cada ciclo, mostrándose los diferentes valores de p0 para la
trayectoria armónica propuesta.

Programa cindirtray2

Descripción: programa similar a condirtray1pero para un robot espacial de tres barras RRR, con
desplazamiento en el sistema base y sin descentramiento en el hombro. Las características del
programa son similares a las del programa anterior. En este caso las variables de entrada son:
Desplazamiento del sistema base L0 y longitudes de las barras (m): L1, L2, L3.
Ángulos supuestos de las tres barras al inicio de la trayectoria (grados): theta1i, theta2i, theta3i.
Ángulos supuestos de las tres barras al final de la trayectoria (grados): theta1f, theta2f, theta3f.
Período de la trayectoria (seg): tf, y número de posiciones a calcular en la simulación: n.

Programa cindirtray3

Descripción: programa similar a los dos anteriores pero para un robot de varias barras, es decir
resuelve el problema cinemático directo y la simulación de la trayectoria para un robot de
cualquier número de barras. Los archivos tienen un significado similar a los dos programas
anteriores y las funciones son las mismas.

En cuanto a la estructura del programa principal:


Se leen los datos de entrada del archivo cindirtray3_en.text:
Número de barras o grados de libertad: nb, número de puntos de estudio o posiciones: n, intervalo
o período de trayectoria, seg: tf.
Posiciones inicial y final de las barras (grados o m): thet0[i], thet1[i], i=1..nb.
Parámetros del robot y tipo de articulación:
alf[i-1] (grados), a[i-1] (grados), d[i] (m), art[i] (i==1 para rotación, i==0 para traslación),
i=1..nb+1. Se ha supuesto un sistema adicional para elemento terminal paralelo al de la última
barra.
A continuación se define un ciclo do-whle en donde se efectúan varias iteraciones según los n
puntos o posiciones considerados para la simulación.
En cada ciclo se calcula el ángulo de cada articulación è como función del tiempo de acuerdo con
una función armónica:

A continuación se forman las matrices de transformación entre las barras consecutivas, en este
caso se hace mediante un ciclo for sin utilizar la función matrix.
Mediante la función matmul determinamos la matriz de trasformación del elemento terminal al
sistema base.
El programa muestra los elementos de las cuarta columna de la matriz de trasformación para cada
instante, correspondientes a las coordenadas del origen del sistema de referencia del elemento
terminal que se corresponde con el extremo de la última barra. Aunque el programa no lo hace
se podrían mostrar todos los términos de la matriz lo cual permitiría identificar la posición y

14
orientación del elemento terminal.

Programa jacobiantray1

Descripción: el programa calcula la matriz jacobiana de un robot genérico de varias barras


describiendo una trayectoria armónica. Los archivos tienen un significado similar a los dos
programas anteriores y las funciones son las mismas. Se emplea también la función pvec que
calcula el producto vectorial de dos vectores.

En cuanto a la estructura del programa principal:


Se leen los datos de entrada del archivo jacobiantray3_en.text:
Número de barras o grados de libertad: nb, número de puntos de estudio o posiciones: n, intervalo
o período de trayectoria, seg: tf.
Posiciones inicial y final de las barras (grados o m): thet0[i], thet1[i], i=1..nb.
Parámetros del robot y tipo de articulación:
alf[i-1] (grados), a[i-1] (grados), d[i] (m), art[i] (i==1 para rotación, i==0 para traslación),
i=1..nb+1. Se ha supuesto un sistema adicional para elemento terminal paralelo al de la última
barra.

A continuación se define un ciclo do-whle en donde se efectúan varias iteraciones según los n
puntos o posiciones considerados para la simulación.
En cada ciclo se calcula el ángulo de cada articulación è como función del tiempo de acuerdo con
una función armónica:

A continuación se forman las matrices de transformación entre las barras consecutivas, en este
caso se hace mediante un ciclo for sin utilizar la función matrix.
Se determinan las matrices de trasformación para el sistema de cada barra, referida al sistema
base.
A partir de la matriz de las matrices trasformación se definen los vectores unitarios 0zi i=1..nb+1
para cada articulación, así como los vectores de posición para cada origen del sistema de
referencia, expresados en el sistema base: pi
A continuación se forma el vector de posición del origen del último sistema respecto del origen
de cada barra:

A continuación se calcula la matriz jacobiana numéricamente, en este caso se utiliza la función


pvec para calcular el producto vectorial:

El programa muestra la velocidad lineal y angular del elemento terminal del robot (velocidad lineal

15
del origen del sistema de la barra nb+1 y velocidad angular del sistema nb+1) así como la matriz
jacobiana completa: lineal y angular del robot.

Programa jacobiantray2

Descripción: este programa resuelve el problema cinemático inverso, problema estático y calcula
el jacobiano de un robot plano articulado de dos barras, describiendo una trayectoria recta. Los
archivos tienen un significado similar a los programas anteriores.

La estructura del programa principal es la siguiente:


Se leen los datos del programa jacobiantray_en.txt con el siguiente orden:
Longitudes de los brazos (m): l1,l2.
Coordenadas del elemento terminal correspondientes a los extremos del segmento de recta de la
trayectoria (m): xp1,yp1,xp2,yp2.
Fuerzas en el elemento terminal (N): fx,fy.
Características de la trayectoria: período (seg): tf, número de puntos de estudio: n, código codo
abajo ==1, codo arriba == 2.
A continuación se define: longitud de la trayectoria L, velocidad de la trayectoria vp, paso de
tiempo para cada iteración: it, vector unitario de dirección de la recta ux, uy.
A continuación se define un ciclo do-while para cada instante de tiempo. En cada ciclo se calculan
las coordenadas xp yp correspondientes a la posición del elemento terminal sobre la trayectoria
recta, se resuelve el problema cinemático inverso, se calcula el jacobiano y los momentos torsores
estáticos. Los resultados de la simulación se muestran en el archivo jacobiantray2-sal.txt.

16
Programas en Matlab

En general los programas anteriores en lenguaje C pueden también versionarse de una forma más
sencilla y directa en lenguaje de Matlab. Matlab es una sistema informático especialmente
desarrollado para efectuar cálculos de tipo numérico y matricial, con muchas posibilidades
gráficas lo que lo hace ideal para trabajar en problemas de robótica.

Programa cindir1

Descripción: programa que calcula las matrices de transformación y el problema cinemático


directo de un robot plano de tres barras RRR, similar al problema 2, del capítulo problema
cinemático directo de los apuntes y similar al programa del mismo nombre en lenguaje C. En este
caso únicamente se ha empleado la función matrix para formar las matrices de trasformación entre
las barras, de acuerdo con la notación de Hartemberg-Denavit.

Programa cindir2

Descripción: programa que calcula las matrices de transformación y el problema cinemático


directo de un robot espacial de tres barras RRR, similar al problema 4, del capítulo problema
cinemático directo de los apuntes y similar al programa del mismo nombre en lenguaje C.

Programa cindir3

Descripción: programa que calcula las matrices de transformación y el problema cinemático


directo de un robot espacial de tres barras RRP, similar al problema 7, del capítulo problema
cinemático directo de los apuntes y similar al programa del mismo nombre en lenguaje C.

Programa cininver1

Descripción: programa que calcula el problema cinemático inverso de un robot plano articulado
de tres barras RRR con posicionamiento angular en la última barra, empleando el método
geométrico, similar al problema 2 del capítulo problema cinemático inverso de los apuntes y
similar al programa del mismo nombre en lenguaje C.

Programa jacobiantray1

Descripción: el programa calcula la matriz jacobiana de un robot genérico de varias barras


describiendo una trayectoria armónica similar al programa del mismo nombre en lenguaje C.

Programa jacobiantray2

Descripción: este programa resuelve el problema cinemático inverso, problema estático y calcula
el jacobiano de un robot plano articulado de dos barras, describiendo una trayectoria recta, similar
al programa del mismo nombre en lenguaje C. El programa muestra una representación gráfica
del espacio de trabajo del robot, de los ángulos de las barras, velocidades, pares torsores, así
como del determinate del jacobiano.

17
Programa Jacobiantray3

Descripción: este programa resuelve el problema cinemático inverso, problema estático y calcula
el jacobiano de un robot plano articulado de dos barras, describiendo una trayectoria elíptica
centrada en el origen. El programa muestra una representación gráfica del espacio de trabajo del
robot, de los ángulos de las barras, velocidades, pares torsores, así como del determinate del
jacobiano.

18

Вам также может понравиться