Está en la página 1de 8

Enero 8, 2010

UPC, Inteligencia Artificial aplicada a la Robótica

Modelado Cinemático Inverso de Robots Manipuladores utilizando


Redes Neuronales
Wilbert Aguilar Castillo

e-mail: cyb_wil@hotmail.com

Resumen: En el presente artículo se describe la grados de libertad (se utiliza 3 grados de libertad para
utilización de algoritmos de BACKPROPAGATION disminuir la complejidad del ejercicio, y el tiempo de
de redes neuronales para la obtención del modelado simulación en MatLab del mismo), por lo cual
cinemático inverso de un Robot Manipulador de 3 únicamente se solventará el problema de traslación
grados de libertad, a partir de una matriz de espacial, y no así el de orientación del elemento final
transformación de 3x4. En esta última, únicamente TCP. Sin embargo, utilizando la misma concepción, este
se considera la traslación, con el objetivo de dar ejemplo puede ser extrapolado para un Robot con n
consistencia a las ecuaciones resultantes del grados de libertad o articulaciones.
sistema y garantizar la convergencia hacia una
configuración única. En la sección II se presenta una breve explicación del
método matemático tradicional para el cálculo del
Palabras Clave: Redes Neuronales Artificiales, modelo cinemático directo e inverso, que permitirá
BACKPROPAGATION, Cinemática. obtener el conjunto de entrenamiento de la red
neuronal. En la sección III, se explicará concisamente
I. Introducción algunos de los algoritmos de BACKPROPAGATION de
rápida convergencia, así como la estructura de red
Cuando se trabaja en la programación y planificación de
neuronal a la cual se somete al proceso de
movimiento de Manipuladores Robóticos Industriales,
entrenamiento. La simulación y los resultados obtenidos
sin importar el tipo al cual estos pertenezcan, es
son presentados en la sección IV y finalmente en la
imprescindible, la obtención tanto del modelo cinemático
sección V se presentan las respectivas conclusiones y
directo como del modelo cinemático inverso.
trabajos futuros.
Una vez obtenido el primero, cuya dificultad radica en el
II. Cinemático Directo e Indirecta
numero de articulaciones y la dimensionalidad
respectiva que se genera en las matrices de Para la obtención del modelo cinemático directo del
transformación, la obtención del modelo cinemático Robot Manipulador de 3 grados de libertad (Fig.1) se
inverso se consigue mediante asociación directa de la utiliza la representación de DENAVIT-HATENBERG.
matriz de transformación obtenida del este modelo
cinemático directo y con la matriz de rotación y
traslación del punto en el que se desea ubicar al brazo
robótico.
20

Sin embargo, esta tarea, no siempre es sencilla; sobre


10
todo, cuando se trabaja con Robots Redundantes y con y x
z
un número elevado de articulaciones. A este nivel, el 0
Z

noname
cálculo de la cinemática inversa se complica
-10
considerablemente, sin mencionar la presencia de una
serie de no linealidades en el sistema, por lo que, una -20
alternativa factible para la solución del mismo problema, 20
10 20
es la utilización de redes neuronales en la obtención de 0 10
0
una aproximación de dicho modelo. -10 -10
Y -20 -20
X
Para la demostración de la utilización del algoritmo de
Figura 1. Robot Manipulador de 3 grados de libertad en su posición
redes neuronales, se utilizará como ejemplo didáctico
original (las 3 articulaciones ubicadas en cero).
un manipulador robótico de tipo antropomórfico con 3
En cuyo modelo es posible definir la tabla de En el Modelo Cinemático Inverso, por su parte, se
0
parámetros de giro y desplazamiento de los ejes de plantea una matriz de rotación y traslación T3 del punto
referencia que se presenta a continuación: deseado:

Articulación αi ai θi di

1 90 0 θ1 0 (6)
2 0 10 θ2 0

3 0 10 θ3 0
0 0 1 2
Tabla 1. Parámetros de giro y desplazamiento de los ejes de
El mismo que es comparado con T3= A1* A2* A3
referencia. previamente obtenido. Igualando término a término la
0
Matriz de Rotación y Traslación T3 del punto deseado
En este punto se determina la Matriz de rotación y con la Matriz del Modelo Cinemático Directo de las 3
i-1
traslación Ai para cada una de las articulaciones de articulaciones, obtenemos 12 ecuaciones con 6
giro. incógnitas, lo que de antemano supone la existencia de
información redundante si las matrices son linealmente
(1)
independientes:

(7)

(8)

(9)

Seguidamente, se remplaza los valores de la tabla 1, en


(10)
la matriz (1) de cada una de las articulaciones,
dejándolas expresadas como:
0
Matriz de Rotación y Traslación A1
(11)

(12)
(2)
(13)

(14)
1
Matriz de Rotación y Traslación A2

(15)
(3)
(16)

(17)
2
Matriz de Rotación y Traslación A3
(18)

Resolviendo el del sistema de ecuaciones se determina


(4) el Modelo Cinemático Inverso.

III. Red Neuronal

Una vez que se ha determinado el modelo cinemático,


Finalmente el Modelo Cinemático Directo se encuentra tanto directo como inverso, se puede definir un conjunto
a partir de: de entrenamiento de muestras en el espacio
operacional, y sus respectivos valores (Calculados con
0 0 1 2
(5) T3= A1* A2* A3 la Cinemática Inversa) en el espacio articular.

A continuación definimos las características de la red EW = ∑
t
− a
 (19)

neuronal en la Tabla 2:

Característica Red Neuronal En el cual, se varían los pesos en la dirección que


permita obtener el máximo descenso en la superficie del
Número de Entradas 3 error. Esta dirección de cambio se obtiene mediante el
gradiente. Por lo tanto la regla de actualización de
Número de Salidas 3
pesos es:
Número de Capas Ocultas 2
EW = α ∑∈t
− a
 x
, (20)
Función de Transferencia TANSIG

Algoritmo de entrenamiento BACKPROPAGATION Simulando el algoritmo con ayuda de la función


TRAINGD se obtiene la grafica de la figura 2.
Tabla 2. Características de la Red Neuronal
2
Performance is 24.9899, Goal is 0
A partir de este momento, la velocidad de convergencia 10

del sistema hacia un punto del conjunto solución, será el


criterio que se desea maximizar.

Para ello, se trabaja con una Red Neuronal con 3


entradas y 3 salidas (Tabla 2), las cuales corresponden

Training-Blue
1
respectivamente, a las coordenadas del punto en el 10

espacio operacional, y a los valores de las 3


articulaciones del Robot Manipulador.

Asimismo, por la naturaleza altamente No Lineal del


Sistema, se utiliza 2 capas ocultas (Tabla 2) cuyas
funciones de transferencia son de tipo Tangente. Esta 0
10
0 10 20 30 40 50 60 70 80 90 100
función, como consecuencia de forma asintótica, 100 Epochs

permite la convergencia del algoritmo en un menor Figura 2. Gráfica de Entrenamiento del Gradiente Descendiente
número de iteraciones.
B. GRADIENTE DESCENDIENTE CON MOMENTO:
Finalmente el algoritmo de entrenamiento que se utiliza Una variación del Algoritmo de Gradiente Descendiente
es el de BACKPROPAGATION o Retro-propagación. es la aplicación del Momento para optimizar la
BACKPROPAGATION es un tipo de algoritmia de convergencia del algoritmo. Y su respectiva simulación
aprendizaje supervisado utilizado en redes neuronales se consigue aplicando TRAINGDM.
artificiales, generalmente de tipo FEEDFORWARD, los
Performance is 22.9523, Goal is 0
mismos que por su naturaleza no lineal requieren de la 2
10
utilización de una configuración multicapa.

La idea fundamental de BACKPROPAGATION es la


minimización del error a través de distintos procesos de
entrenamiento.
Training-Blue

1
10
Sin embargo existe una serie de algoritmos,
desarrollado por diversos investigadores, que
efectivizan del tiempo de convergencia. Entre los cuales
se citarán y simularan 10 algoritmos diferentes, con la
misma red neuronal, el mismo conjunto de
entrenamiento y el mismo número de iteraciones (100): 0
10
0 10 20 30 40 50 60 70 80 90 100
100 Epochs
A. GRADIENTE DESCENDIENTE: El algoritmo
Figura 3. Gráfica de Entrenamiento de Gradiente Descendiente con
estándar se basa en el gradiente descendiente, en el
Momento
que los pesos de la red se mueven a lo largo de la
pendiente negativa de la función de rendimiento. C. TASA DE APRENDIZAJE ADAPTATIVO: La Tasa de
Aprendizaje Adaptativo, TRAINGDX en MatLab,
El gradiente descendiente intenta encontrar los pesos disminuye considerablemente el número de iteraciones
que mejor se ajustan a los valores de entrenamiento y necesarias para obtener el mismo Performance.
cuyo error puede ser expresado como el cuadrático:
2
Performance is 21.505, Goal is 0 esta fue diseñado para evitar el tiempo de búsqueda y
10
su respectivo costo computacional. Su idea básica es
combinar el modelo de enfoque de la región de
confianza con el método del gradiente conjugado.

Las simulaciones de los 4 últimos algoritmos se


Training-Blue

1
presentan en las figuras 5, 6, 7 y 8 respectivamente,
10
junto a su función de MatLab.

2
Performance is 19.4202, Goal is 0
10

0
10
0 10 20 30 40 50 60 70 80 90 100
100 Epochs

Training-Blue
Figura 4. Gráfica de Entrenamiento de Tasa Aprendizaje Adaptativo
1
10

D. E. F. GRADIENTE CONJUGADO: Como se ha


podido constatar, el algoritmo BACKPROPAGATION
básico ajusta los pesos en la dirección de mayor
descenso (gradiente negativo). Sin embargo, aunque la
función disminuya con mayor rapidez a lo largo del
0
gradiente negativo, esto no garantiza la velocidad 10
0 10 20 30 40 50 60 70 80 90 100
100 Epochs
aproximación. En los algoritmos de gradiente conjugado
se realiza una búsqueda a lo largo de direcciones Figura 5. Gráfica de Entrenamiento del Gradiente conjugado
FLETCHER–REEVES
conjugada, capaces de aumentar la rapidez de
convergencia. Performance is 16.2322, Goal is 0
2
10

Este algoritmo básicamente consta de 5 pasos:

1. Se calcula la dirección de descenso más rápido.


Δ = −∇   (21)
Training-Blue

2. Se calcula  de acuerdo al método de actualización 1


10
utilizado.

D. FLETCHER–REEVES:

  
  = (22)
  
0
10
0 10 20 30 40 50 60 70 80 90 100
E. POLAK–RIBIERE: 100 Epochs

   " 


Figura 6. Gráfica de Entrenamiento del Gradiente conjugado POLAK–
 ! = (23) RIBIERE
  

Performance is 14.8217, Goal is 0


F. HESTENES-STIEFE: 2
10

   " 


 #$ = (24)
   " 

3. Se actualiza la dirección conjugada. Δ = Δ +


Training-Blue

 Δ" (25)
1
10

4. Se realiza una búsqueda óptima en línea.


&'()*+  + - Δ  (26)

5. Se actualiza la posición. . =  + - Δ (27)

H. GRADIENTE CONJUGADO ESCALADO. Cada uno 0


10
0 10 20 30 40 50 60 70 80 90 100
de los gradientes conjugados requiere de una búsqueda 100 Epochs
en cada iteración, la cual es computacionalmente
Figura 7 Gráfica de Entrenamiento del Gradiente conjugado
costosa. El algoritmo del gradiente conjugado escalado HESTENES-STIEFE
2
Performance is 18.1282, Goal is 0 (TRAINOSS en MatLab) combina los algoritmos de
10
gradiente conjugado y cuasi-Newton, por lo que no
almacena la matriz completa de Hesse en cada
iteración. Su ventaja adicional es el cálculo de una
nueva dirección de la búsqueda sin necesidad una
matriz inversa.
Training-Blue

1
10
2
Performance is 17.7943, Goal is 0
10

Training-Blue
10
0 10 20 30 40 50 60 70 80 90 100
1
100 Epochs 10

Figura 8. Gráfica de Entrenamiento del Gradiente conjugado escalado

TRAINCGF para FLETCHER–REEVES. TRAINCGP


para POLAK–RIBIERE. TRAINCGB para HESTENES-
STIEFE. TRAINSCG para ESCALADO.
0
10
J. ALGORITMO CUASI-NEWTON BFGS: el método de 0 10 20 30 40 50 60 70 80 90 100
100 Epochs
Newton es una alternativa a los métodos de gradiente
Figura 10. Gráfica de Entrenamiento del Algoritmo de la secante
conjugado para una rápida optimización, el cual,
converge a menudo más rápido que el resto de métodos L. BACKPROPAGATION RESISTENTE: Es un
de gradiente conjugado. Lamentablemente, es complejo algoritmo de aprendizaje heurística utilizado
y de un costo de cálculo muy elevado. Sin embargo hay comúnmente en las redes multicapas de funciones
un algoritmo que se basa en el método de Newton, pero sigmoides. Estas funciones son a menudo llamadas
que no requiere del cálculo de las segundas derivadas. funciones de deformación, ya que comprime una
Se denomina algoritmo Cuasi-Newton (o secante). Se entrada infinita en una amplia gama de salidas
actualiza una matriz de Hesse aproximada en cada finitas. Las funciones sigmoides se caracterizan por el
iteración del algoritmo, calculada en función del hecho de que su pendiente debe tender a cero a medida
gradiente. El método cuasi-Newton, que ha demostrado que la entrada aumenta progresivamente. El propósito
tener más éxito, según los estudios publicados es el del algoritmo de entrenamiento de
BROYDEN, FLETCHER, GOLDFARB Y SHANNO BACKPROPAGATION resistente es eliminar los efectos
(BFGS), el mismo que puede ser simulado en MatLab nocivos (pequeños cambios en los pesos, sesgos y los
con la función TRAINBFG. perjuicios sobre el valor optimo) de las magnitudes de
las derivadas parciales.
2
Performance is 5.96362, Goal is 0
10

2
Performance is 11.473, Goal is 0
10
Training-Blue

1
10
Training-Blue

1
10

0
10
0 10 20 30 40 50 60 70 80 90 100
100 Epochs 0
10
0 10 20 30 40 50 60 70 80 90 100
Figura 9. Gráfica de Entrenamiento de Cuasi-Newton BFGS 100 Epochs

Figura 11. Gráfica de Entrenamiento del algoritmo de


K. ALGORITMO DE LA SECANTE: Dado que el
BACKPROPAGATION resistente
algoritmo de BFGS requiere mayor capacidad de
almacenamiento y cálculo para cada iteración del En este algoritmo sólo se considera el signo de
algoritmo de gradiente conjugado, es necesaria una la derivada parcial sobre todos los patrones (no la
aproximación secante con requerimientos mínimos de magnitud), y actúa de forma independiente en cada
almacenamiento y cálculo. El método de la secante peso "." Por cada peso, si hay un cambio de signo de la
derivada parcial de la función de error total en Las Graficas de las figuras 13, 14 y 15 corresponden al
comparación con la última iteración, el valor de Performance de la misma Red Neuronal, cuyos puntos
actualización para que el peso se multiplica por un (en el espacio articular) son obtenidos con el
factor η-, donde η- <1. Si la última iteración produce el entrenamiento de la misma para una sola salida.
mismo signo, el valor de actualización se multiplica por Gracias a ello, se puede observar que la No Linealidad
un factor de η+, donde η+ > 1. Finalmente, cada peso es aumenta en la tercera articulación respecto a la
cambiado por su valor propio de actualización, en el segundo y a su vez de la segunda respecto a la primera.
sentido contrario de ese peso en derivadas parciales, a Por tanto es lógico pensar que el Performances
fin de minimizar la función de error total. alcanzado en la Primera Articulación será el más
cercano a cero.
El BACKPROPAGATION resistente, como se puede
apreciar en la simulación de la figura 11, es uno de los 2
Performance is 0.27361, Goal is 0
10
mecanismos de actualización de peso más rápidos; por
lo cual será el que se utilice en el Modelado Cinemático
Inverso del Manipulador con la función TRAINRP.
1
10
IV. Simulación y Resultados

Training-Blue
Una vez obtenido el modelo teórico del sistema, se
desarrolla su correspondiente algoritmo de
0
programación. Sin embargo, se cuenta con la Toolbox 10

en MatLab de Robótica, con la cual se puede


determinar, en un menor número de líneas de código, el
Modelo Cinemático Directo e Inverso.
-1
10
0 100 200 300 400 500 600 700 800 900 1000
Para generar un conjunto de entrenamiento para la Red 1000 Epochs

Neuronal, se toman 1000 muestras del espacio Figura 13. Gráfica de Entrenamiento de la Primera Articulación
operacional y se determina su respectivo reflejo en el
Performance is 1.70937, Goal is 0
espacio Articular utilizando la función de Cinemática 10
2

Inversa de la Toolbox (o en su defecto, un algoritmo con


los resultados obtenidos en el apartado II). De esta
forma se tienen dos conjuntos de valores, T del espacio
operacional y P del espacio de articulaciones. Este
procedimiento se programa en un script en MatLab
Training-Blue

1
llamado Ki_nn1_Teo.m. 10

A continuación, en el script Ki_nn2_Sim.m, se programa


tanto el entrenamiento de la Red Neuronal con las
especificaciones del apartado III, como sus respectivas
simulaciones presentadas en las figuras 12-20. En la
primera grafica (Figura 12) se presenta el proceso de 10
0

0 100 200 300 400 500 600 700 800 900 1000
entrenamiento de la Red Neuronal, cuyo performance 1000 Epochs

es de 3.11824 luego de 1000 iteraciones. Figura 14. Gráfica de Entrenamiento de la Segunda Articulación

Performance is 3.11824, Goal is 0 2


Performance is 7.2179, Goal is 0
2
10 10
Training-Blue
Training-Blue

1 1
10 10

0 0
10 10
0 100 200 300 400 500 600 700 800 900 1000 0 100 200 300 400 500 600 700 800 900 1000
1000 Epochs 1000 Epochs

Figura 12. Gráfica de Entrenamiento de las 3 Articulaciones Figura 15. Gráfica de Entrenamiento de la Tercera Articulación
A continuación se presentan las gráficas comparativas 20
Posición en X

(figura 16, 17 y 18) entre los valores teóricos (obtenidos


0
a través del Modelo Cinemático Inverso) y los
calculados (obtenidos mediante la Red Neuronal -20
1 2 3 4 5 6 7 8
entrenada) de los puntos en el espacio articular para Posición en Y
20
cada uno de los grados de libertad del Robot.
0

Primera Articulación -20


20 1 2 3 4 5 6 7 8
Posición en Z
20
15 0

-20
10 1 2 3 4 5 6 7 8

Figura 19. Respuesta de la Red Neuronal en el Espacio Operacional


5

En la última gráfica (figura 20) se presenta una posición


0 aleatoria del Manipulador.

-5

-10
0 100 200 300 400 500 600 700 800 20
x
y z
Figura 16. Respuesta de la Red Neuronal en el Espacio Articular 10

Segunda Articulación 0
Z

25 noname

20 -10

15
-20
20
10
10 20
5 0 10
0
-10 -10
0
Y -20 -20
X
-5
Fig.20. Robot Manipulador de 3 grados de libertad en una posición
-10
aleatoria.
-15

-20 V. Conclusiones y Trabajos Futuros


-25
0 100 200 300 400 500 600 700 800 Como se pudo constatar en el apartado III, el
entrenamiento de la Red Neuronal que modela un la
Figura 17. Respuesta de la Red Neuronal en el Espacio Articular
Cinemática Inversa de un Manipulador Robótico de n
Tercera Articulación
grados de libertad, aumenta su velocidad de
50 convergencia al utilizar el algoritmo de
40 BACKPROPAGATION; método que se ajusta muy bien
30 a la naturaleza altamente no lineal del sistema.
20
Asimismo, existen un sinnúmero de procedimientos para
10
efectivizar la etapa de entrenamiento del algoritmo de
0 retro-propagación, que fueron simulados en MatLab,
-10 bajo las mismas condiciones, con el objetivo de
-20 comparar su Performance. Sin embargo, tras analizar
-30
los resultados de las figuras 3-11, para el caso puntual
de un Robot Industrial Antropomórfico de n grados de
-40
libertad, el método que mejor se ha ajustado
-50
0 100 200 300 400 500 600 700 800 experimentalmente es el de RESILIENT.

Figura 18. Respuesta de la Red Neuronal en el Espacio Articular Es importante mencionar que los performance de la Red
Neuronal entrenando a las 3 articulaciones por
De igual manera se simula, en la figura 19, los puntos separado y simultáneamente, muestran el incremento
en el espacio operacional de cada una de las
de un comportamiento No lineal de las articulaciones 2 y
coordenadas (x, y, z).
3, en las cuales el Performance se aleja de cero
considerablemente.

En las graficas comparativas de la curva de puntos en el


espacio articular (figuras 16, 17 y 18) y operacional
(figura 19), se puede divisar que los valores obtenidos, a
partir del Modelo Cinemático Inverso, se asemejan a los
provenientes de la Red Neuronal Artificial entrenada.

Finalmente se puede concluir, experimentalmente, que


la cinemática inversa bien puede ser modelada a través
de algoritmos de BACKPROPAGATION para el
entrenamiento de Redes Neuronales Artificiales
Multicapa. Asimismo, este concepto puede ser
extrapolado para sistemas con un mayor número de
grados de libertad, e incluso, en el Modelado Dinámico
de Robots Articulados.

VI. Bibliografía

[1] Tom M. Mitchell, MACHINE LEARNING,


McGraw-Hill, cop. 1997.

[2] Stuart J. Russell, Peter Norvig,


INTELIGENCIA ARTIFICIAL: UN ENFOQUE
MODERNO, segunda edición, Pearson Educación,
Madrid, cop. 2004.

[3] Bruno Siciliano, Lorenzo Sciavicco, Luigi


Villani, Giuseppe Oriolo, ROBOTICS: MODELLING,
PLANNING AND CONTROL, Springer, cop. 2009.

[4] Ethem Alpaydin, INTRODUCTION TO


MACHINE LEARNING, the MIT Press, Massachusetts,
cop. 2004.

[5] Howard Demuth, Mark Beale, Martin Hagan,


NEURAL NETWORK TOOLBOX USER’S GUIDE, cop.
2007.

También podría gustarte