Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Tarea 1
Robótica industrial 410328
Modelo diferencial.
ÍNDICE DE CONTENIDOS
1 Desarrolle la cinemática directa con DH. ............................................................................................. 5
1.1 Asignacion de sistemas coordenados............................................................................................ 5
1.2 Tabla de DH. ................................................................................................................................ 6
1.3 Programe la cinemática directa según DH en Matlab como una función. .................................... 6
1.4 Programe la representación gráfica del robot. .............................................................................. 6
2 Desarrolle la cinemática inversa del robot............................................................................................ 7
2.1 Posicionamiento de muñeca. ........................................................................................................ 7
2.2 Orientación de la muñeca. ............................................................................................................ 8
2.3 Programe la cinemática inversa como una función. ................................................................... 11
3 Matriz jacobiana geométrica y analítica. ............................................................................................ 12
3.1.1 Matriz Jacobiana geométrica. ............................................................................................. 12
3.1.2 Matriz Jacobiana analítica. ................................................................................................. 13
4 Ecuación del Jacobiano y puntos singulares....................................................................................... 15
4.1 Ecuación del Jacobiano. ............................................................................................................. 15
4.2 Puntos Singulares. ...................................................................................................................... 15
5 Test de jacobiana directa. ................................................................................................................... 16
6 Test de jacobiana inversa lejos de un punto singular. ........................................................................ 19
7 Test de jacobiana inversa próximo a un punto singular. .................................................................... 22
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Índice de Figuras
Fig. 1 Estructura robótica estudiada. ............................................................................................................ 5
Fig. 1.1.1 Estructura robótica estudiada. ...................................................................................................... 5
Fig. 1.4.1 Representación gráfica del robot. ................................................................................................. 6
Fig. 2.1.1 Esquema 1 para el posicionamiento de la muñeca. ...................................................................... 7
Fig. 2.1.2 Esquema 2 para el posicionamiento de la muñeca. ...................................................................... 7
Fig. 2.2.1 vectores de posición ..................................................................................................................... 9
Fig. 2.2.2 Matriz de orientación R36. ......................................................................................................... 10
Fig. 2.3.1 Coordenadas para el estado inicial del robot. ............................................................................. 11
Fig. 5.1 Robot 3D. ...................................................................................................................................... 16
Fig. 5.2 Posiciones y velocidades articulares de q1,q2 y q3....................................................................... 17
Fig. 5.3 Posiciones y velocidades articulares de q4, q5 y q6...................................................................... 17
Fig. 5.4 Posiciones y velocidades lineales espaciales (x, y, z). .................................................................. 18
Fig. 5.5 Posiciones y velocidades angulares espaciales (x, y, z). ............................................................... 18
Fig. 6.1 Robot 3D, lejano al punto singular. ............................................................................................... 19
Fig. 6.2 Posiciones y velocidades articulares de q1,q2 y q3....................................................................... 20
Fig. 6.3 Posiciones y velocidades articulares de q4, q5 y q6...................................................................... 20
Fig. 6.4 Posiciones y velocidades lineales espaciales (x, y, z). .................................................................. 21
Fig. 6.5 Posiciones y velocidades angulares espaciales (x, y, z). ............................................................... 21
Fig. 7.1 Robot 3D, cercano al punto singular. ............................................................................................ 22
Fig. 7.2 Posiciones y velocidades articulares de q1,q2 y q3....................................................................... 22
Fig. 7.3 Posiciones y velocidades articulares de q4, q5 y q6...................................................................... 23
Fig. 7.4 Posiciones y velocidades lineales espaciales (x, y, z). .................................................................. 23
Fig. 7.5 Posiciones y velocidades angulares espaciales (x, y, z). ............................................................... 24
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Índice de Tablas
Tabla 1.2.1 Denavit de Hartenberg ............................................................................................................... 6
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
A5
A4
Y1 Y6
Y3 E4 A6
E1 A2 A3
Y4
Z1 X1 Z3 Z6
E2 E3 X4
X3 Z4 E5
Y2 Y5 X6
A1
Z0
Y0
Z5
E0 Z2
X0
X2 X5
1 q1 L1 0 90
2 q2-90 0 0 -90
3 0 q3+L2 0 0
4 q4 L3 0 90
5 q5 0 0 -90
6 q6 L4 0 0
La programación de esta sección se encuentra en el archivo adjunto, para utilizarla debe ingresar los
valores de los GDL al vector Coord_Art_dadas que se encuentra en la línea de código 16, este es ingresado
a la función “CDDH” (línea de código 95), que desarrolla la cinemática directa y arroja como resultado la
posición y orientación de la herramienta con respecto a la base.
Posicionamiento de la muñeca del robot, en función de la posición donde es necesario que se encuentre
la herramienta del artefacto.
Z0
pz
Y0
X0 r px
py
q1
pz
q2
r
Fig. 2.1.2 Esquema 2 para el posicionamiento de la muñeca.
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Del esquema presentado en Fig. 2.1.2, es posible obtener los dos grados de libertad faltantes, para q3
simplemente se considera el uso de Pitágoras de la siguiente manera,
q3 + l 3 + l 2 = pz 2 + r 2
(1.3)
q3 = px 2 + py 2 + pz 2 − l 3 − l 2
pz
sin ( q 2 ) =
l 2 + q3 + l 3
cos ( q 2 ) = 1 − sin ( q 2 ) (1.4)
sin ( q 2 )
q 2 = arctan
cos ( q 2 )
Finalmente, se han establecido las formas de calcular los tres primeros grados de libertad del robot, y
con esto posicionar la muñeca según px, py y pz, que más adelante será obtenido a partir de la posición de
la herramienta. Sin embargo, dadas las formas de obtener los GDL presentes, ocurren algunas restricciones
o apreciaciones, las cuales se exponen a continuación:
➢ Para q2, este solo podrá variar entre ± 89, no podrá tomar el valor de ±90°, dado que al hacerlo
genera que los ejes px y py sean de valor cero, esto provoca que la magnitud de la articulación uno
se fije en cero y no tome ningún valor asignado, ya que su cálculo trigonométrico depende de estas
dos variables únicamente. Además, no puede tomar valores en los cuadrantes 2 y 3, ya que afecta
igualmente a la percepción de los cuadrantes en que se encuentran otros GDL, sin embargo, a pesar
de esta restricción, el robot podrá trabajar en prácticamente toda el área que puede alcanzar, ya que
q1 es libre en 360°.
➢ Para q3, ya que es una articulación prismática, se establece que no puede tomar valores negativos,
y para efectos de visualización, no podrá tener magnitudes mayores a 3.
Para determinar los valores que deben tomar los últimos 3 grados de libertad, los que se encargan de
orientar la muñeca de tal modo que la herramienta quede según lo definido por el usuario, se utiliza el
método de desacoplamiento cinemático.
Primeramente, se establecen dos vectores relativos al robot en estudio, de la siguiente manera:
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
A5
A4
Y1 Y6
Y3 E4 A6
E1 A2 A3
Y4
Z1 X1 Z3 Z6
E3 X4
E2 pm X3 Z4 E5
X6
Y2 Y5
A1
Z0 pr
Y0
Z5
E0 Z2
X0
X2 X5
pm = pr − l 4 z 6 (1.5)
La orientación del extremo del robot está dada por la submatriz de rotación (R06) de la matriz
homogénea obtenida a partir de la cinemática directa (T06), la cual puede ser expresada como:
0
R6 =0 R3 3 R6 (1.6)
De la ecuación (1.6), la matriz de orientación de 0 a 3 está determinada por los primeros tres grados de
libertad, en otras palabras, por la sección de posición de la muñeca, por lo tanto, debe ser calculada
anteriormente en función de q1,q2 y q3, por otro lado, R36 es la matriz que indica la orientación que tendrá
la herramienta relativa a la muñeca, y es la que se busca calcular para obtener los últimos GDL
R36 puede ser despejado de la ecuación (1.6) y ser calculada de la siguiente manera:
R6 = ( 0 R3 ) 0 R6 = ( 0 R3 ) 0 R6
3 −1 T
(1.7)
Para obtener las relaciones que permiten calcular los GDL, se visualiza la matriz de orientación R36
de forma simbólica a continuación,
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
r11 = C4 C5 C6 − S 4 S6
r12 = -C6 S 4 − C4 C5 S6
r13 = -C4 S5
r21 = C4 S6 + C5C6 S 4 (1.8)
r22 = C4 C6 − C5 S 4 S6
r23 = -S4 S5
r33 = C5
para q4:
−r 23 −r 23 S4 S5
q 4 = arctan , donde : = = tan ( q4 ) (1.9)
−r13 −r13 C4 S5
para q5:
−C r13 − S 4 r 23
q5 = arctan 4
r 33
donde : (1.10)
=1
−C4 r13 − S 4 r 23 C4 2 S5 + S4 4 S5 S5 ( C4 + S4 )
2 2
= = = tan ( q5 )
r 33 C5 C5
− S r11 + C4 r 21
q6 = arctan 4 (1.11)
− S4 r12 + C4 r 22
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
donde :
=1
Finalmente, en este caso q4 solo podrá tomar el valor que se le establezca como articulación cuando él
esté en el primer o cuarto cuadrante y q5 no sea cero, además, solo podrá trabar en el rango ± 89, ya que
en ± 90 genera un error en la percepción de los cuadrantes para los otros GDL, aunque es corregido por
ellos para orientar correctamente la herramienta, sin embargo, no se llega a las mismas magnitudes
articulares seteadas.
Para asignar fácilmente los valores de coordenadas espaciales, es posible utilizar la línea 32 del código, y
establecer coordenadas articulares a la cinemática directa, para que esta sección se encargue de asignar las
coordenadas espaciales a la cinemática inversa, otra opción es comentar esta línea y asignar directamente
las coordenadas espaciales en la línea 33.
La Matriz jacobiana geométrica relaciona las velocidades articulares y las velocidades lineales (v) y
angulares (w) del extremo del robot expresadas habitualmente en el sistema de referencia de la base del
robot {So}.
vX q1
v
y
vz
= J (1.12)
wx
wy
wz qn
Para obtener la Jacobiana existen dos métodos, el primero se desarrolla de forma analítica, derivando el
vector p se obtiene la submatriz de velocidades lineales, y luego la de velocidades angulares, por la relación
Ω = 𝑅̇ ∗ 𝑅 𝑇 , explicado entre las páginas 152 y 157 del libro Fundamentos de la Robótica, el segundo es el
método de propagación de velocidades, el cual es fácilmente implementado computacionalmente y permite
i −1
obtener cada una de las columnas de la jacobiana, a partir de las matrices Ai que definen el modelo
cinemático.
Debe considerase que las matrices i −1 Ai tienen, para un robot determinado, una estructura genérica en
función de qi, por lo tanto, puede ser obtenida de forma simbólica, para observar la expresión general de la
jacobiana, o como numérica, para conocer la jacobiana geométrica instantánea en una posición particular,
debido a ello, el algoritmo desarrollado permite ambas opciones según el valor que usted ingrese en la
variable “symb”.
i −1 i −1 n i −1
oi i −1
ai pi
i −1
Las matrices Ai = i posee la información de los vectores directores y origen
0 0 0 1
del sistema{Si} respecto a {Si-1}. De este modo 0 zi estará definido por los primeros tres componentes de la
tercera columna de 0 Ai (al ser 0 A0 la matriz identidad, 0 z0 será el vector (0,0,1)).
Se denominará i pn al vector que va desde el origen del sistema {Si} hasta el extremo del robot expresado
respecto a la base. Dado que la cuarta columna de 0 An incorpora las coordenadas del extremo del robot y
0
Ai las del origen del sistema {Si}, ambas respecto a la base, i pn se obtiene de la resta de las 3 primeras
componentes de las cuartas columnas de cada una de ellas.
i
pn =0 An (1: 3, 4) −0 Ai (1: 3, 4 ) (1.13)
Definido lo anterior, la matriz Jacobiana que relaciona las velocidades articulares con las velocidades
de traslación y rotación del extremo del robot expresadas en el sistema de coordenadas de la base, se puede
obtener como una matriz 6 × n (donde n es el número de grados de libertad) expresada por columnas como:
J = J1 | J 2 | ....... | Jn (1.14)
donde,
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
0 zi −1 i −1 zn
0 si el eslabón i es de rotación
zi −1
Ji = (1.15)
zi −1
0
si el eslabón i es de traslación
0
Para obtener la Jacobiana analítica existen dos métodos, el primero expresado desde la página 147 a la
página 152 del libro Fundamentos de Robótica o utilizando directamente la relación entre esta y la
Jacobiana geométrica, la cual viene dada por:
I 0
Ja = −1
×J (1.17)
0 Q
Donde las matrices I y 0 son la matriz identidad y nula de dimensión (3x3) respectivamente, y la matriz
Q, viene definida por la expresión:
0 − S C S
Q = 0 C S S (1.18)
1 0 C
Donde ( , θ, ) son los ángulos de Euler WVW asociados a la submatriz de rotación R = n o a y que
pueden ser obtenidos de ésta comparándola con:
C C C − S S −C C S − S C C S
R = Rotz ( ) Roty ( ) Rotz ( ) = S C C + C S S C S + C C S S (1.19)
− S C S S C
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Resulta importante recalcar que si es 0 o , la matriz Q queda con determinante nulo y, por lo tanto,
no sería posible invertirla ni obtener la matriz Jacobiana analítica.
Dado que la matriz Q solo requiere conocer las componentes( , θ), se procede a obtener únicamente
estos grados, y para ello, se establece que:
R ( 2,3) S S
= = T
R (1,3) C S
(1.20)
R ( 2,3)
a tan 2 = y permite determinar el cuadrante
R (1,3)
R ( 3,3) = C
(1.21)
a cos ( R ( 3,3) ) =
Utilizando estas dos últimas ecuaciones en la submatriz de rotación arrojada por la cinemática directa
con el método de DH, se obtienen los ángulos de Euler necesarios para determinar la matriz Q, en cada
instante que se requiera. El único problema generado de obtener los grados de esta manera, es que el arco
coseno no permite identificar si se está en el segundo o tercer cuadrante, sin embargo, se comporta de la
misma manera que la función tr2eul del Toolbox de Peter Corke, por lo tanto, el resultado se considera
suficiente.
Aplicando los ángulos a la matriz Q y utilizando la relación entre ambas matrices, se obtiene la Jacobiana
analítica, Sin embargo, el resultado es demasiado extenso, por lo tanto, se solicita que ejecute la sección
ubicada en la línea de código 40 si desea visualizarla de forma simbólica.
Debido a lo anteriormente mencionado, se decidió obtenerla evaluándola para la posición articular de
reposo del robot, y se compara con la geométrica a continuación:
0 0 1 0 0 0 0 0 1 0 0 0
5 0 0 0 0 0 5 0 0 0 0 0
0 5 0 0 2 0 0 5 0 0 2 0
Ja = yJ = (1.22)
1 0 0 0 0 0 0 0 0 1 0 1
0 −1 0 0 −1 0 0 −1 0 0 −1 0
0 0 0 1 0 1 1 0 0 0 0 0
Se aprecia que las diferencias se presentan en las últimas filas, lo cual es completamente esperable, ya
que las primeras tres poseen las mismas configuraciones.
Todo lo anterior fue programado en la función “jacobianas” ubicada en la línea de código 294 función
jacobianas, la cual solicita como entrada el vector de posiciones articulares y la variable “symb” que indica
si se trabaja de forma simbólica o numérica, .
UNIVERSIDAD DEL BÍO BÍO
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Se denomina Jacobiano al determinante de las matrices Jacobianas, las cuales no podrán ser invertibles
si este posee un valor nulo, en tal caso, se dice que se está en presencia de un punto singular.
Otra dificultad existente a esta altura es cuando la matriz Jacobiana no es invertible debido a que no es
una matriz cuadrada, un ejemplo de ello es cuando el número de grados de libertad del robot no coincide
con la dimensión del espacio de la tarea. Dado esto el movimiento del robot se verá cortado y se someterá
a algunas restricciones.
Con esto dicho se procederá a calcular mediante Matlab el determinante correspondiente a la Jacobiana
geométrica.
Ecuación Jacobiano procedente de la matriz Jacobiana geométrica.
−C2 S5 ( l2 + l3 + q3 )
2
(1.23)
Con lo presentado anteriormente, es posible determinar los puntos singulares del robot, los cuales son:
Para desarrollar este test, se establecen dos vectores, uno indica la posición articular inicial del robot y
el segundo la velocidad a la que se mueven estas, para este caso en particular, se solicita que esta velocidad
sea constante en el tiempo.
Estos vectores pueden ser definidos en la sección de código ubicada en la línea 56 del archivo
“Trabajo1_RI_equipo3”. Los valores deben ser ingresados en grados o unidad de medida longitudinal,
cuando corresponda.
Las posiciones y velocidades se ingresan a la función “test_jacobiana_directa”, la cual evalúa la
jacobiana geométrica en cada instante de tiempo para cada posición articular generada de la posición inicial
más la variación aportada por sus velocidades, cabe señalar, que al establecer las coordenadas articulares,
estas describen una trayectoria definida, y son las coordenadas espaciales de posición y velocidad las que
se obtienen como resultado.
En este caso se deben establecer dos vectores, uno de posición espacial y otro de velocidades espaciales,
los cuales serán las entradas para la función “test_jacobiana_inversa” ubicada en la línea de código 564.
Con el vector de posición y de velocidad se determinan la trayectoria espacial que deberá describir el
robot en estudio, y para ello, es necesario obtener las coordenadas articulares para cada instante de tiempo
en que varié esta trayectoria espacial, con el fin de evaluar la Jacobiana y obtener las velocidades a las que
deben moverse las articulaciones.
Los vectores deben ser definidos en la sección ubicada en la línea de código 67, en grados cuando
corresponda. A continuación, se presentan los resultados obtenidos al establecer coordenadas espaciales
de posiciones y velocidades que garantizaran un movimiento lejano a los puntos singulares expresados en
la sección 4.2.
Para esta sección se considera lo mismo que se mencionó al inicio del capítulo anterior, sin embargo, la
diferencia radica en que se definen vectores espaciales que generen un paso próximo por algún punto
singular, en este caso, para q5 = 0.