Escolar Documentos
Profissional Documentos
Cultura Documentos
TESIS
MAESTRO EN CIENCIAS
CON ESPECIALIDAD EN INGENIERA MECNICA
P R E S E N T A:
DIRIGIDA POR:
DR. EMMANUEL ALEJANDRO MERCHN CRUZ
DR. LUIS HCTOR HERNNDEZ GMEZ
i
2.2.3 Operadores difusos .............................................................................................................32
2.2.4 Control difuso.....................................................................................................................33
2.2.4.1 Fusificacin .................................................................................................................34
2.2.4.2 Base de reglas difusas .................................................................................................35
2.2.4.3 Mecanismo de inferencia ............................................................................................37
2.2.4.4 Defusificacin .............................................................................................................37
2.3 Redes neuronales .......................................................................................................................39
2.3.1 Inspiracin biolgica ..........................................................................................................39
2.3.2 Modelo de una neurona artificial .......................................................................................40
2.3.3 Red neuronal ......................................................................................................................40
2.3.3.1 Estructura de una red neuronal ....................................................................................41
2.3.3.2 Modelos de redes neuronales ......................................................................................41
2.3.4 Funciones de transferencia .................................................................................................43
2.3.5 Entrenamiento ....................................................................................................................44
2.3.5.1 Aprendizaje supervisado .............................................................................................44
2.3.5.2 Aprendizaje no supervisado .......................................................................................45
2.4 Sumario .....................................................................................................................................46
3. Redes neuro-difusas ........................................................................................................................48
3.1 Definicin de computacin flexible (soft-computing) ..............................................................48
3.2 Sistema de inferencia difuso basado en una red adaptiva (ANFIS) ..........................................48
3.2.1 Caractersticas de ANFIS ...................................................................................................49
3.2.2 Arquitectura ANFIS ...........................................................................................................50
3.2.3 Algoritmo de aprendizaje empleado ..................................................................................53
3.2.4 Ajuste de parmetros antecedentes y consecuentes ...........................................................54
3.2.4.1 Parmetros antecedentes premisa (parmetros de las funciones de membresa) .....54
3.2.4.2 Parmetros consecuentes (parmetros de las reglas difusas de tipo Takagi-Sugeno) .57
3.3 Identificacin de parmetros .....................................................................................................57
3.3.1 Estimador de cuadrados mnimos ......................................................................................57
3.3.2 Estimador de cuadrados mnimos recursivos .....................................................................60
3.4 Aplicacin de ANFIS ................................................................................................................62
3.4.1 Modelado de una funcin no lineal de dos entradas ..........................................................62
3.4.2 Modelado de una funcin no lineal de tres entradas ..........................................................66
3.4.2.1 Porcentaje promedio de error ......................................................................................67
3.5 Sumario .....................................................................................................................................68
4. Caso de estudio ...............................................................................................................................70
4.1 Consideraciones del primer caso de estudio .............................................................................70
ii
4.2 Cinemtica del manipulador .....................................................................................................71
4.2.1 Problema cinemtico directo ..............................................................................................73
4.2.2 Problema cinemtico inverso .............................................................................................74
4.2.3 Singularidades ....................................................................................................................74
4.2.4 Solucin a la cinemtica inversa por el mtodo algebraico ...............................................76
4.2.5 Solucin a la cinemtica inversa por el mtodo numrico de Newton ..............................78
4.3 Solucin a la cinemtica inversa por medio del sistema neuro-difuso (ANFIS) ......................78
4.3.1 Rango de movilidad y espacio de trabajo del manipulador ...............................................79
4.3.2 Generacin de los pares de datos de entrenamiento ...........................................................80
4.3.3 Entrenamiento de la red neuro-difusa ................................................................................81
4.3.4 Funciones de membresa empleadas ..................................................................................81
4.3.5 Aprendizaje de la cinemtica inversa de 1........................................................................82
4.3.6 Aprendizaje de la cinemtica inversa de 2........................................................................85
4.4 Obtencin de la velocidad y aceleracin angular del manipulador plano ................................86
4.4.1 Velocidad angular ..............................................................................................................86
4.4.2 Aceleracin angular ...........................................................................................................87
4.5 Determinacin de la trayectoria de movimiento del manipulador ............................................88
4.5.1 Polinomios de quinto orden ...............................................................................................88
4.5.2 Determinacin de la aceleracin mxima permitida ..........................................................94
4.6 Determinacin de la dinmica del manipulador........................................................................95
4.6.1 Trayectorias de movimiento dinmicas .............................................................................96
4.6.2 Cambios en la carga del manipulador ................................................................................98
4.7 Control del manipulador robtico .............................................................................................99
4.8 Segundo caso de estudio: solucin a la cinemtica inversa de un manipulador plano de tres
grados de libertad mediante ANFIS ..............................................................................................103
4.9 Tercer caso de estudio: solucin a la cinemtica inversa de un manipulador de tres grados de
libertad con movimiento espacial mediante ANFIS .....................................................................106
4.9.1 Solucin a la cinemtica directa del manipulador de tres grados de libertad ..................108
4.9.2 Generacin de los datos de entrenamiento .......................................................................110
4.9.3 Entrenamiento de las redes neuro-difusas ........................................................................112
4.10 Sumario .................................................................................................................................113
5. Anlisis y discusin de resultados.................................................................................................115
5.1 Consideraciones generales ......................................................................................................115
5.2 Anlisis de resultados del primer caso de estudio ...................................................................115
5.2.1 Validacin de 1 y 2 inferidos por ANFIS .....................................................................115
5.2.2 Error en el control de movimiento mediante el mtodo del par calculado ......................118
iii
5.3 Anlisis de resultados del segundo caso de estudio ................................................................119
5.3.1 Validacin de 1, 2 y 3 inferidos por ANFIS ................................................................119
5.4 Anlisis de resultados del tercer caso de estudio ....................................................................120
5.4.1 Validacin de 1, 2 y 3 inferidos por ANFIS ................................................................120
5.3 Sumario ...................................................................................................................................122
Conclusiones y recomendaciones para trabajos futuros....................................................................124
Conclusiones generales. ................................................................................................................124
Recomendaciones para trabajos futuros ........................................................................................126
Referencias ........................................................................................................................................128
Anexos...............................................................................................................................................132
Anexo 1. Cdigo desarrollado.......................................................................................................132
Anexo 2. Publicaciones. ................................................................................................................143
iv
ndice de Figuras
Figura 1.1 Control de aplanado por rodillos mediante un sistema neuro-difuso. El patrn escaneado
de la superficie de la placa es reconocido por una red neuronal. Las salidas de las redes neuronales
son empleadas para ajustar las reglas difusas........................................................................................7
Figura 2.1 Problema cinemtico directo e inverso (Fu et al., 1988) ..................................................10
Figura 2.2 Asignacin de los marcos i e i-1 para un manipulador (Craig, 1955) ..............................12
Figura 2.3 Manipulador de tres eslabones, mostrando dos posibles configuraciones para alcanzar un
mismo punto (Craig, 1955) .................................................................................................................14
Figura 2.4 Movimiento del efector final debido al eslabn i (Spong & Vidyasagar, 1999) ...............17
Figura 2.5 Manipulador planar de 2 eslabones con sus respectivos parmetros (Fu et al., 1988) .....25
Figura 2.6 Diagrama de bloques de control bsico de un manipulador robtico (Fu et al., 1988) .....27
Figura 2.7 Esquema de control basado en un modelo (Mtodo del Par Calculado) ...........................28
(Craig, 1988) .......................................................................................................................................28
Figura 2.7 Funciones caractersticas de un conjunto difuso (a) y un conjunto clsico (b) ................30
Figura 2.8 Arquitectura bsica de un controlador lgico difuso (CLD) .............................................34
Figura 2.9 Esquema de una neurona biolgica (Hagan et al., 1996) .................................................39
Figura 2.10 Modelo de McCulloch y Pitts de una neurona con mltiples entradas (McCulloch &
Pitts, 1943) ..........................................................................................................................................40
Figura 2.11 Red de perceptrn con una sola neurona (Hagan et al., 1996) .......................................42
Figura 2.12 Red de Hamming (Hagan et al., 1996) .........................................................................43
Figura 3.1 (a) Modelo difuso de primer orden de tipo Sugeno de dos entradas con dos reglas. (b)
Arquitectura ANFIS equivalente (Roger Jang, 1993) .........................................................................51
Figura 3.2 Significado fsico de los parmetros de la funcin de membresa de tipo campana
generalizada.........................................................................................................................................55
Figura 3.3 Significado de la variacin del parmetro a ..................................................................55
Figura 3.4 Significado de la variacin del parmetro b ..................................................................56
Figura 3.5 Significado de la variacin del parmetro c ..................................................................56
Figura 3.6 Funciones de membresa de tipo campana generalizada asignadas a las variables de
entrada x, y ..........................................................................................................................................63
Figura 3.7 Estructura del modelo neuro-difuso propuesto para aproximar la funcin no lineal.........64
Figura 3.9 Estructura del sistema neuro-difuso propuesto para aproximar la funcin no lineal.........66
Figura 4.1 (a) Modelo del manipulador planar propuesto (b) Esquema del manipulador .................70
Figura 4.2 Problema cinemtico directo en un manipulador plano de dos grados de libertad con
articulaciones de tipo revolucin ........................................................................................................71
Figura 4.3 Problema cinemtico inverso en un manipulador plano de dos grados de libertad con
articulaciones de tipo revolucin ........................................................................................................72
Figura 4.4. Manipulador plano en diferentes posiciones del efector final variando los valores
angulares 1, 2 de las articulaciones...................................................................................................73
Figura 4.5 Configuraciones singulares del manipulador.....................................................................76
Figura 4.6 Dos soluciones al problema cinemtico inverso (Spong & Vidyasagar, 1999) ................77
Figura 4.7 Solucin algebraica a la cinemtica inversa, para dos posiciones distintas del efector
final .....................................................................................................................................................77
Figura 4.8 Solucin a la cinemtica inversa mediante el mtodo numrico de Newton, para dos
posiciones distintas del efector final ...................................................................................................78
Figura 4.9 Esquema de la forma en que se aborda y resuelve el problema cinemtico inverso .........79
Figura 4.10 Rango de movilidad de los eslabones del manipulador plano .........................................79
Figura 4.11 Espacio de trabajo del manipulador plano .......................................................................80
v
Figura 4.12 (a) Fusificacin de la entrada x con 4 funciones de membresa .....................................82
(b) Fusificacin de la entrada y con 4 funciones de membresa .........................................................82
Figura 4.13 Identificacin de 1 por medio de ANFIS empleando 4 funciones de membresa ..........83
Figura 4.14 Identificacin de 1 por medio de ANFIS empleando 5 funciones de membresa ..........83
Figura 4.15 Red neuro-difusa propuesta para la identificacin de 1 ................................................84
Figura 4.16 Identificacin de 2 por medio de ANFIS .......................................................................85
Figura 4.17 Red neuro-difusa propuesta para la identificacin de 2 .................................................85
Figura 4.18 Solucin a la cinemtica inversa del manipulador mediante ANFIS .............................89
Figura 4.19 Trayectoria de posicin de la articulacin uno ...............................................................90
Figura 4.20 Trayectoria de velocidad de la articulacin uno .............................................................91
Figura 4.21 Trayectoria de aceleracin de la articulacin uno ...........................................................91
Figura 4.22 Trayectoria de posicin de la articulacin dos................................................................93
Figura 4.23 Trayectoria de velocidad de la articulacin dos..............................................................93
Figura 4.24 Trayectoria de aceleracin de la articulacin dos ...........................................................94
Figura 4.25 Esquema representativo de la metodologa para la obtencin del historial de torque ....96
Figura 4.26 Torque requerido para generar la trayectoria de movimiento de la articulacin 1 .........97
Figura 4.27 Torque requerido para generar la trayectoria de movimiento de la articulacin 2 ..........97
Figura 4.28 Historial de torque requerido en la articulacin 1 al aumentar la carga en el efector final
en 0.4 y 0.8 kg .....................................................................................................................................98
Figura 4.29 Historial de torque requerido en la articulacin 2 al aumentar la carga en el efector final
en 0.4 y 0.8 kg .....................................................................................................................................99
Figura 4.30 Sistema de control del manipulador basado en su modelo dinmico (Mtodo del par
calculado) ..........................................................................................................................................100
Figura 4.31 Control de la trayectoria de posicin deseada de la articulacin 1 por medio del mtodo
del par calculado ...............................................................................................................................101
Figura 4.32 Control de la trayectoria de posicin deseada de la articulacin 2 por medio del mtodo
del par calculado ...............................................................................................................................101
Figura 4.33 Torque producido por medio del mtodo del par calculado para controlar el movimiento
de la articulacin 1 ............................................................................................................................102
Figura 4.34 Torque producido por medio del mtodo del par calculado para controlar el movimiento
de la articulacin 2 ............................................................................................................................102
Figura 4.35 Manipulador plano de tres grados de libertad...............................................................103
Figura 4.36 Solucin a la cinemtica inversa del manipulador mediante tres sistemas ANFIS .......104
Figura 4.37. Aprendizaje de 1 por parte de ANFIS del toolbox de Matlab Ver. R2007b ............105
Figura 4.38 Aprendizaje de 2 por parte de ANFIS del toolbox de Matlab Ver. R2007b .............105
Figura 4.39 Aprendizaje de 3 por parte de ANFIS del toolbox de Matlab Ver. R2007b .............106
Figura 4.40 Manipulador de tres grados de libertad con movimiento espacial.................................107
Figura 4.41 Solucin a la cinemtica inversa del manipulador mediante tres sistemas ANFIS .......107
Figura 4.42 Puntos mapeados dentro del espacio de trabajo del manipulador de tres grados de
libertad...............................................................................................................................................108
Figura 4.43 Asignacin de los marcos de los sistemas de coordenadas cartesianas .........................108
Figura 4.44 Identificacin de 1 ........................................................................................................112
Figura 4.45 Identificacin de 2 ........................................................................................................112
Figura 4.46 Identificacin de 3 ........................................................................................................113
Figura 5.1 Esquema de las etapas de solucin al problema cinemtico inverso ...............................115
Figura 5.2 Error entre 1 predecido por ANFIS y 1 calculado .........................................................117
Figura 5.3 Error entre 2 predecido por ANFIS y 2 calculado ........................................................118
Figura 5.4 Error entre la trayectoria de posicin deseada y la trayectoria real de la articulacin 1 118
Figura 5.5 Error entre la trayectoria de posicin deseada y la trayectoria real de la articulacin 2 119
vi
ndice de Tablas
Tabla 2.1 Caracterizacin matemtica de una funcin triangular de membresa (Passino &
Yurkovich, 1998) ................................................................................................................................31
Tabla 2.2 Caracterizacin matemtica de una funcin Gaussiana de membresa (Passino &
Yurkovich, 1998) ................................................................................................................................32
Tabla 2.3 Reglas de implicacin difusa (Lin & Lee, 1996) ...............................................................37
Tabla 2.4 Funciones de transferencia ms empleadas (Hagan et al., 1996) ......................................43
Tabla 3.1 Tcnicas que constituyen a la computacin flexible ...........................................................48
Tabla 3.2 Procedimiento de aprendizaje hbrido de ANFIS en dos pasos (Roger Jang, 1993) .........53
Tabla 3.3 Parmetros de las funciones de membresa de tipo campana generalizada (Antecedentes)
.............................................................................................................................................................64
Tabla 3.4 Reglas difusas de tipo Takagi-Sugeno para la red neuro-difusa propuesta .......................65
Tabla 4.1 Parmetros y valores de los eslabones del manipulador .....................................................71
Tabla 4.2 Dimensiones de los parmetros del manipulador................................................................95
Tabla 4.3 Parmetros de Denavit-Hartenberg ..................................................................................109
Tabla 5.1. Comparacin de resultados obtenidos mediante ANFIS y el mtodo algebraico ............116
Tabla5.2. Comparacin entre resultados obtenidos mediante ANFIS y el mtodo de Newton ........120
Tabla 5.3. Comparacin entre resultados obtenidos mediante ANFIS y el mtodo de Newton .......121
vii
Agradecimientos
Mi ms profundo agradecimiento y gratitud a mis padres y a mi familia por estar siempre conmigo
alentndome en todo momento.
A mis amigos, por todo el apoyo, consejos y vivencias adquiridas a lo largo de esta etapa de mi
vida.
A mis directores de tesis y a todos mis profesores, los cuales fueron parte fundamental para la
culminacin de este trabajo.
viii
Resumen
Para demostrar la factibilidad de emplear una red neuro-difusa como alternativa de solucin, se
analizan tres casos de estudio: dos manipuladores planos de dos y tres grados de libertad y otro con
configuracin espacial de revolucin de tres grados de libertad. En todos los casos se obtienen
resultados satisfactorios y son validados mediante la comparacin con aquellos resultados generados
por la aproximacin algebraica y el mtodo numrico de Newton.
ix
Abstract
This work presents the development and implementation of neuro-fuzzy networks (ANFIS) applied
to the solution of the problem of the inverse kinematics of planar and spatial robot manipulators.
Due to the nature of the neuro-fuzzy networks, which its parallel structure allows them to identify
and approximate nonlinear functions, therefore it is of great interest to explore its application to the
solution of a nonlinear problem such as the inverse kinematics of manipulators.
Finally, a methodology for the generation of the dynamic trajectory of motion of the two-degree of
freedom planar manipulator is developed, as well as the establishment of a control algorithm applied
to the motion of that manipulator.
x
Objetivo
Desarrollar y simular un sistema neuro-difuso aplicado a la solucin de la cinemtica inversa de tres
manipuladores robticos de dos y tres grados de libertad.
Objetivos particulares
1. Establecer una metodologa para la generacin de datos de entrenamiento que sirvan para
entrenar a los sistemas neuro-difusos propuestos.
2. Disear una red neuro-difusa que aprenda la cinemtica inversa de un manipulador plano de
dos grados de libertad con articulaciones de tipo revolucin como caso de estudio.
3. Disear una red neuro-difusa que aprenda la cinemtica inversa de un manipulador plano de
tres grados de libertad con articulaciones de tipo revolucin como caso de estudio.
5. Disear una red neuro-difusa que aprenda la cinemtica inversa de un manipulador de tres
grados de libertad con movimiento espacial con articulaciones de tipo revolucin como caso
de estudio.
xi
Justificacin.
Los sistemas redes neuro-difusas presentan una gran flexibilidad y capacidad de generalizacin, en
cuanto a la identificacin y modelacin de funciones altamente no lineales. La combinacin de sus
grandes potenciales, los cuales son la gran capacidad de aprendizaje y generalizacin de las redes
neuronales y la facilidad de manejo de informacin vaga e incertidumbres de la lgica difusa, hace
que la aplicacin de un sistema neuro-difuso orientada a la solucin de un problema no lineal, como
es el caso de la solucin a la cinemtica inversa, sea de mucho inters y motivacin.
Una revisin de los diversos trabajos de investigacin que se han desarrollado en la SEPI y en
especfico en la M. en C. en Ing. Mecnica con respecto al rea de robtica, muestra que an no se
han efectuado aplicaciones de la inteligencia artificial a tal rea de estudio. Es por eso que se
propone relacionar el campo de las actuales tcnicas de computacin inteligente (soft-computing)
con el rea de la robtica. La aplicacin tendr lugar especficamente en la solucin de uno de los
ms grandes problemas que se tienen en la mecnica de movimiento de manipuladores robticos,
que es la solucin a su cinemtica inversa.
xii
Introduccin
El presente trabajo de investigacin se encuentra distribuido en cinco captulos, los cuales se
detallan a continuacin:
El primer captulo muestra una recopilacin de los trabajos que se han realizado en lo que se refiere
a lgica difusa y redes neuronales aplicadas a la solucin del problema de la cinemtica inversa. As
mismo, se presentan los trabajos de investigacin sobre sistemas neuro-difusos y se observa que son
an pocos los realizados en cuanto a la materia que se estudia en esta tesis.
En el segundo captulo de este trabajo se establecen los fundamentos tericos en los cuales se apoya
todo el estudio de movimiento de manipuladores robticos, desde la cinemtica (movimiento de un
cuerpo sin atender las causas que lo originan), dinmica (estudio de las causas que originan el
movimiento de un cuerpo) y control de movimiento, hasta los principios de la lgica difusa y la
teora de las redes neuronales artificiales.
El tercer captulo presenta de manera formal a las redes neuro-difusas (ANFIS), de las cuales se
habla de su arquitectura, funcionamiento, entrenamiento y aplicacin. Se detalla cul es su
metodologa de aprendizaje y se realizan dos casos de estudio en los que se emplean dos funciones
no lineales, las cuales se identifican y aproximan. De esta manera se deja el material listo para su
posterior aplicacin en la solucin al problema de la cinemtica inversa.
En el cuarto captulo se muestra y desarrolla la aplicacin del ANFIS a la solucin del problema de
la cinemtica inversa de manipuladores robticos. Se generan los pares de entrenamiento que sern
presentados a las redes neuro-difusas, se realiza el aprendizaje de las redes y finalmente se aplica a
la solucin del problema. Se presentan tres casos de estudio, dos de manipuladores planos de dos y
tres grados de libertad y otro de un manipulador con movimiento espacial de tres grados de libertad.
Finalmente en el quinto captulo se comparan y analizan los resultados obtenidos mediante la red
neuro-difusa y el mtodo algebraico, en el caso de la solucin a la cinemtica inversa del
manipulador plano de dos grados de libertad. As mismo, se analizan los resultados obtenidos
mediante ANFIS y el mtodo numrico de Newton para el caso de los dos manipuladores de tres
grados de libertad.
xiii
ESTADO DEL ARTE
1
Estado del Arte
El estudio de la robtica tiene que ver con el deseo de sintetizar algunos aspectos de las funciones
humanas, mediante el uso de mecanismos, sensores, actuadores y computadoras. Muchas son las
ramas de la ciencia que aportan ideas y conocimientos a la robtica, entre las cuales se menciona a
La lgica difusa fue desarrollada como un intento de captar y modelar la naturaleza inexacta del
mundo real. Una de las principales caractersticas de la lgica difusa es que en su estructura emplea
el conocimiento experto de alguna persona en el control y supervisin de alguna tarea,
representando este conocimiento mediante sentencias if-then (s-entonces).
Debido al impacto positivo que han tenido los productos comerciales en donde se han incorporado
elementos que emplean lgica difusa, se hace confiable y se recurre cada vez ms al diseo e
implementacin de ste tipo de sistemas difusos en manipuladores y aplicaciones robticas.
Actualmente los sistemas de inferencia difusa encuentran su mayor aplicacin en aparatos elctricos
que son de uso domstico, entre ellos se menciona a las lavadoras, mquinas de coser y cmaras de
video. As mismo, se puede mencionar su aplicacin en controladores inteligentes, identificadores,
sistemas de reconocimiento de imgenes y patrones, entre otros.
de un esquema basado en lgica difusa recursiva para resolver el problema de la cinemtica inversa
en manipuladores seriales. Adems, las funciones de membresa de la lgica difusa son ajustadas y
optimizadas usando algoritmos genticos. Finalmente, este esquema basado en lgica difusa elimina
el problema de las singularidades cinemticas.
En (Howard & Zilouchian, 1998) se emplea como modelo de estudio un robot comercial con tres
grados de libertad, en el cual de aplica un controlador difuso descentralizado para cada articulacin
del manipulador. Para la solucin a la cinemtica inversa se desarrollan unas Memorias Asociativas
Difusas (FAM por sus siglas en ingls), las cuales realizan un mapeo cinemtico inverso entre las
coordenadas cartesianas deseadas y los ngulos de las articulaciones, todo ello en un modo
supervisado. Finalmente, se demuestra que el mtodo difuso propuesto resulta ser efectivo en el
control del robot.
Por otra parte, el cerebro humano est constituido por una enorme cantidad de neuronas altamente
interconectadas, mediante enlaces con fuerzas de adhesin variables y operando en configuracin
paralela. Para lograr simular las caractersticas de procesamiento distribuido masivamente en
paralelo del cerebro, redes neuronales artificiales han sido investigadas y desarrolladas ampliamente
desde el primer trabajo presentado en la materia por (McCulloch & Pitts, 1943), basado en neuronas
modeladas como elementos de toma de decisiones discretas. Ms an, como el cerebro humano, las
redes neuronales artificiales tienen la habilidad de aprender y generalizar.
Las singularidades y las incertidumbres en las diferentes configuraciones de un brazo robtico son
algunas de las dificultades que se presentan en la solucin de su cinemtica inversa. Es por ello que
en (Hasan et al., 2006) se realiza un aprendizaje adaptativo mediante el uso de una red neuronal
artificial. Con la finalidad de solucionar el problema de la cinemtica inversa, la red neuronal es
entrenada para aprender un conjunto de posiciones angulares de las articulaciones, dado previamente
un conjunto de posiciones del efector final. Este mapeo es realizado dentro del espacio de trabajo del
manipulador y una vez que la red ha sido entrenada se valida su capacidad de prediccin y
generalizacin mediante la introduccin a la red de un conjunto de nuevos datos. Los resultados
experimentales demuestran una buena capacidad de generalizacin.
En (Tejomurtula & Kak, 1999) se propone una solucin al problema cinemtico inverso de
manipuladores robticos basada en redes neuronales estructuradas que puedan ser entrenadas
rpidamente. La solucin a la cinemtica inversa resulta ser precisa y conveniente para aplicaciones
en tiempo real.
Desarrollo de un sistema neuro-difuso para la solucin
a la cinemtica inversa de manipuladores robticos 5
Estado del Arte
Muchas son ya las soluciones al problema cinemtico inverso de manipuladores redundantes, que se
basan en redes neuronales artificiales; sin embargo, tales soluciones resultan ser no muy confiables,
debido al error que se presenta al final del entrenamiento de la red. En (Kker, 2005) se plantea la
utilizacin de una red neuronal basada en confiabilidad para la solucin a la cinemtica inversa de
un manipulador de seis grados de libertad. La estrategia consiste en emplear tres redes neuronales
tipo Elman diseadas en paralelo, las cuales minimizan el error total del sistema. Al final, los
resultados de cada red neuronal son evaluados usando las ecuaciones cinemticas directas para
determinar la red que proporcione el mejor resultado.
En (Martn & Miln, 2000) se presenta un mtodo neuronal que calcula la cinemtica inversa de
cualquier tipo de robot manipulador. La solucin se obtiene a travs de la inversin de una red
neuronal que fue previamente entrenada para aproximar la cinemtica directa del manipulador.
Una red neuronal esttica con multicapas es empleada para resolver el problema de la cinemtica
inversa de un brazo robtico plano de dos grados de libertad (Nedungadi, 1991). El esquema de
aprendizaje de la red se basa en el algoritmo de Levenberg-Marquardt. Los resultados de las
simulaciones muestran que la estructura ANFIS propuesta es exitosa para la solucin al problema
cinemtico inverso.
1.4 ANFIS
ANFIS significa Sistema de Inferencia Neuro-Difuso y fue inicialmente presentado en (Roger Jang,
1993). La idea fundamental de ANFIS es tomar un sistema de inferencia difusa (FIS) y sintonizarlo
y/o ajustarlo mediante un algoritmo de retro-propagacin basado en alguna coleccin de datos de
entrada-salida (Roger Jang & Gulley, 2007). Esto le permite al sistema difuso aprender de la
informacin presentada a la red y posteriormente tendr la capacidad de generalizar y aproximar
informacin que no fue necesariamente presentada.
Una de las aplicaciones reales que emplean este tipo de sistema de control es el desarrollado por la
empresa Hitachi (Nakajima et al., 1993). Una mquina de aplanado por rodillos se controla
mediante el empleo de sistemas difusos y neuronales. Este modelo neuro-difuso se emplea para
controlar 20 rodillos que aplanan placas de hierro, acero inoxidable y aluminio para obtener un
espesor uniforme. La figura 1.1 muestra el sistema:
Figura 1.1 Control de aplanado por rodillos mediante un sistema neuro-difuso. El patrn escaneado de la superficie de la
placa es reconocido por una red neuronal. Las salidas de las redes neuronales son empleadas para ajustar las reglas
difusas.
Una de las aplicaciones prcticas ms exitosas que emplean sistemas neuro-difusos es la que se
expone en (Jafari & Jarvis, 2004). En este trabajo se presenta un nuevo mtodo hbrido de llevar a
cabo una coordinacin del ojo con la mano, para que el robot llamado COERSU ejecute tareas de
manipulacin. Para este caso se emplea una combinacin optimizada de dos aproximaciones neuro-
difusas y un sintonizador gentico, los cuales en conjunto contribuyen a encontrar una posicin
ptima final de la mano robtica con la finalidad de manipular algn objeto.
Cuando la estructura del manipulador se vuelve compleja como para poder aplicar mtodos
tradicionales a la solucin de su cinemtica inversa, se hace entonces factible la exploracin y
aplicacin de una red ANFIS a la solucin de tal problema. En (Alavandar & Nigam, 2008) se
1.5 Sumario
9
Marco Terico
2. Marco terico
2.1 Mecnica de manipuladores robticos
Un manipulador mecnico es una cadena cinemtica articulada en lazo abierto compuesta por varios
eslabones (cuerpos rgidos) conectados en serie por una articulacin de revolucin o prismtica
impulsada por actuadores. Un extremo de la cadena se fija a una base soporte, mientras que el otro
extremo est libre y unido con una herramienta (efector final) para manipular objetos o realizar
tareas de ensamble (Fu et al., 1988).
2.1.1 Cinemtica
La cinemtica de un manipulador es el estudio de la geometra de su movimiento, con respecto a un
sistema de referencia fijo, como una funcin del tiempo, pero sin atender las causas y fenmenos
que lo originan tales como fuerzas y momentos, y tomando en consideracin los tipos de uniones
(articulaciones) entre los eslabones (Fu et al., 1988).
La cinemtica de un manipulador se divide para su estudio en cinemtica directa y cinemtica
inversa. La figura 2.1 muestra la manera en que se relacionan la cinemtica directa e inversa con los
ngulos de las articulaciones y los parmetros geomtricos de cada eslabn.
Parmetros Geomtricos
de los eslabones
ngulos de
las articulaciones Cinemtica Directa Posicin y orientacin del
q1(t),qn(t) efector final
Parmetros Geomtricos
de los eslabones
ngulos de
las articulaciones Cinemtica Inversa
q1(t),qn(t)
A BA B
B (2.1)
A
Donde la submatriz B representa la matriz de rotacin ( orientacin de un marco movible B con
respecto a un marco de referencia A); la submatriz A p representa el vector de posicin del origen del
sistema de coordenadas rotado B con respecto al sistema de referencia; la submatriz f indica la
transformacin de perspectiva y finalmente la submatriz representa el factor de escala global, que
para el caso de la cinemtica de manipuladores el factor de escala es 1 y la submatriz de
transformacin de perspectiva es puesta a cero.
1) Localizar los ejes de las articulaciones y marcar lneas a lo largo de ellos, considerando las
lneas adyacentes como ejes i e i+1.
2) Observar el punto donde se encuentra la perpendicular comn entre los ejes o punto de
interseccin; aqu estar el origen del marco del eslabn i- simo.
3) Asignar el eje Z i apuntando a lo largo del eje de la articulacin i- sima.
4) Asignar el eje X i apuntando a lo largo de la perpendicular comn, o si los ejes se
intersectan, X i ser normal al plano donde se encuentran esos dos ejes.
5) El eje Y i ser asignado de tal forma que se complete un sistema de coordenadas de la mano
derecha. Las asignaciones de los marcos se muestran en la figura 2.2:
Figura 2.2 Asignacin de los marcos i e i-1 para un manipulador (Craig, 1955)
La convencin se basa en el hecho de que un manipulador puede ser descrito cinemticamente slo
mediante cuatro valores para cada eslabn, siendo los siguientes los parmetros de Denavit-
Hartenberg (Denavit & Hartenberg, 1955):
ai = Distancia de Z i a Z i +1 medida a lo largo de X i
ai = ngulo entre Z i y Z i +1 medido alrededor de X i
di = Distancia de X i -1 a X i medida a lo largo de Z i
qi = ngulo entre X i -1 y X i medido alrededor de Z i
La matriz del par del brazo es la matriz que relaciona los parmetros de Denavit-Hartenberg de
dos eslabones consecutivos, siendo definida esta matriz como:
cos qi - senqi 0 ai -1
senq cos a cos qi cos a i -1 - sena i -1 - sena i -1di
i -1 i -1
iT =
i
(2.2)
senqi s ena i -1 cos qi s ena i -1 cos a i -1 cos a i -1di
0 0 0 1
Esta matriz permite concatenar dos eslabones consecutivos, es decir obtener las matrices de
transformacin individuales, y una vez hecho esto se puede calcular la matriz de transformacin que
relaciona el marco de coordenadas del ltimo eslabn con el marco de referencia de la base.
Simplemente hay que multiplicar las matrices individuales de cada par de eslabones en el orden
conveniente y tomar en cuenta que el producto de matrices no es conmutativo. Habiendo hecho lo
anterior se obtiene la matriz que contiene los siguientes elementos:
nx sx ax px
n sy ay p y
T = y (2.3)
nz sz az pz
0 0 0 1
Siendo:
n = Vector normal de la mano
s = Vector de deslizamiento de la mano
a = Vector de aproximacin de la mano
p = Vector de posicin de la mano
Finalmente se han obtenido las doce ecuaciones cinemticas de diseo del manipulador, que son
realmente la solucin a la cinemtica directa del manipulador:
nx , ny , nz , sx , s y , sz , ax , a y , az , px , p y , pz (2.4)
El problema de resolver las ecuaciones cinemticas de un manipulador es del tipo no lineal; debido a
ello, en la resolucin del sistema de esas ecuaciones no lineales aparecen mltiples soluciones, lo
cual implica que se lleve a cabo un anlisis para as poder determinar cul es la mejor solucin
posible. La figura 2.3 muestra dos posibles configuraciones de los eslabones para dar solucin a la
cinemtica inversa de un manipulador plano.
Figura 2.3 Manipulador de tres eslabones, mostrando dos posibles configuraciones para alcanzar un mismo punto (Craig,
1955)
Existen diversos mtodos y tcnicas mediante los cuales se pude resolver el problema cinemtico
inverso, entre ellos se pueden mencionar los siguientes:
v Soluciones numricas
V = J ( ) & (2.5)
vx
v
y
v vz
V = = (2.5.1)
x
y
z
Siendo
v = Vector 3 x 1 de velocidad lineal
= Vector 3 x 1 de velocidad angular o rotacional
J
J = v (2.5.2)
J
Adems, las velocidades angulares pueden ser sumadas vectorialmente, siempre y cuando estn
expresadas con respecto a un sistema de coordenadas en comn (Spong & Vidyasagar, 1999). Por lo
tanto, la velocidad angular total del efector final en el marco de referencia de la base se define como:
Donde, z i -1 = Roi -1 k denota el vector unitario k del sistema i-simo expresado en la orientacin del
marco de referencia de la base, y pi es igual a la unidad si la articulacin es de revolucin y a cero
La velocidad lineal del efector final es slo d&on , que para el caso de una articulacin de revolucin se
tiene:
zi -1
i
z0 d in-1
d 0i -1
x0 y0 d 0n
Figura 2.4 Movimiento del efector final debido al eslabn i (Spong & Vidyasagar, 1999)
Y de la figura 2.4 se observa que d oi -1 y Roi -1 son constantes, slo en el caso de que la articulacin i-
sima sea actuada. Debido a ello, derivando (2.9) se obtiene:
Y dado que el movimiento de la articulacin i es una rotacin qi alrededor de zi-1 se tiene que:
d on
= zi -1 ( on - oi -1 )
qi (2.14)
Definindose el Jacobiano de velocidades lineales como:
J v = [ J v1 ... J vn ] (2.15)
J vi = zi -1 ( on - oi -1 ) (2.16)
J vi = zi -1 (2.17)
Y finalmente se pueden agrupar los Jacobianos de velocidades angulares y lineales, resultando:
J = [ J 1 J 2 ..... J n ] (2.18)
Donde cada columna Ji, se expresa para una articulacin de revolucin como:
z ( on - oi -1 )
J i = i -1 (2.19)
zi -1
z
J i = i -1 (2.20)
0
Las expresiones para la determinacin del Jacobiano requieren del conocimiento de los vectores
unitarios zi, y de los vectores que van del origen Oo a los orgenes de los sistemas de coordenadas de
cada articulacin O1, , On.
Haciendo un anlisis de esta necesidad, se deduce que el vector zi est dado por los primeros tres
elementos de la tercera columna de la matriz de transformacin homognea Toi , mientras que Oi est
dado por los primeros tres elementos de la cuarta columna de la misma matriz (Spong &
Vidyasagar, 1999).
d
X&& = J ( q ) q&& + J ( q ) q& (2.22)
dt
Resultando finalmente que las ecuaciones de velocidad y aceleracin inversas para un manipulador
de seis grados de libertad, quedan definidas como:
(2.23)
q& = J ( q ) X&
-1
-1 d
q&& = J ( q ) X&& - J ( q ) q&
dt (2.24)
2.1.2 Dinmica
Sea i
ri un punto fijo y en reposo sobre el elemento i, y expresado con respecto al sistema local de
coordenadas del elemento i, esto se define como (Fu et al., 1988):
xi
ri = yi = ( xi , yi , zi )
T
i
(2.25)
zi
0
ri = 0 Ai i ri (2.26)
Siendo
0
Ai = 0 A1 1 A2 .... i -1 Ai (2.26.1)
i 0 Ai i
Vi =
0 d 0
dt
( ri ) = ( 0 Ai i ri ) =
d
dt
q& r
j =1 q j i
(2.27)
j
0 Ai
Para facilitar la obtencin de la derivada parcial , se hace uso de una matriz auxiliar Qi, siendo
qj
0 -1 0 0 (2.28)
1 0 0 0
Qi =
0 0 0 0
0 0 0 0
i -1 Ai
= Qi i -1 Ai (2.29)
qi
0 Ai
Ui j = (2.31)
qj
0 A Q j -1
Ai para j i
U i j = j -1 j (2.32)
0 para j > i
i
Vi = U i j q& j i ri (2.33)
j =1
Es posible tambin encontrar los efectos que se producen en el movimiento, debido a la interaccin
de las articulaciones j y k sobre el elemento i. Para ello se obtiene la derivada parcial de Uij con
respecto a qk, resultando que (Fu et al., 1988):
0 Aj -1Q j j -1
Ak -1Qk k -1
Ai ik j
U i j k -1 j -1
= Ui j k = 0 Ak -1Qk Aj -1Q j Ai i j k
qk (2.34)
0 i < j, i < k
La energa cintica de una partcula con masa diferencial dm en el elemento i, se expresa como:
dK i = 1
2 ( x&
2
i + y&i2 + z&i2 ) dm (2.35)
Con el fin de evitar un producto escalar de vectores y obtener la matriz de inercia del elemento i-
simo, se emplea el operador traza, el cual se define como la suma del cuadrado de los elementos de
la diagonal principal de una matriz. Entonces, empleando el operador traza se tiene que (Fu et al.,
1988):
i i
i
i
T
dK i = Tr U i j q& j ri U i k q&k ri dm
1
2
j =1 k =1
i i
dK i = 12 Tr U i j i ri i riT U i k T q& j q&k dm (2.37)
j =1 k =1
dK i = 12 Tr U i j ( i ri dm i riT ) U i k T q& j q&k
i i
j =1 k =1
i
U ( )
i
K i = dK i = 12 Tr ij
i
ri i riT dm U iTk q& j q&k (2.38)
j =1 k =1
xi2 dm
x y dm
i i x z dm
i i x dm
i
x y dm
i i y dm y z dm y dm
2
J i = i ri i riT dm =
i i i i
x z dm (2.39)
i i y z dm z dm z dm
2
i i i i
x dm
i y dm i z dm
i dm
Esta matriz es conocida como la matriz de pseudoinercia, ya que contiene otros trminos que son
distintos a la inercia propia de los puntos en el elemento i-simo.
Empleando el tensor de inercia Ii j, el cual se define como (Fu et al., 1988):
I i j = i j xk2 - xi x j dm
k (2.40)
Donde:
i j = Delta de Kronecker
- I xx + I yy + I zz
I xy I xz mi x i
2
I xx - I yy + I zz
J i =
I xy I yz mi y i
2
(2.41)
I xx + I yy - I zz
I xz I yz mi z i
2
mi x i mi y i mi z i mi
Siendo esta matriz de inercia simtrica, positiva y dependiente solamente de la distribucin de masa
del elemento i-simo, y no depende de su posicin o velocidad; debido a ello, se requiere calcular
solamente una vez la matriz Ji con el fin de obtener la energa cintica de un manipulador.
Finalmente se obtiene la energa cintica total de un manipulador:
n n i i
K = Ki = 1
2 Tr U ij J i U i k T q& j q&k
i =1 i =1 j =1 k =1 (2.42)
(2.40)
Tr (U J i U i k T ) q& j q&k
n i i
K= 1
2 ij
i =1 j =1 k =1
0
Pi = - mi g r i = - mi g (A r)
0
i
i
i (2.43)
Donde:
mi = Masa del eslabn i-simo
g = Vector fila de gravedad
g = ( g x , g y , g z , 0 ) = ( 0, 0, -9.8062, 0 )
( A r)
n n
Pi = Pi = - mi g
i
0
i i (2.44)
i =1 i =1
Tr (U J i U i k T ) q& j q& k + mi g ( A r)
n i i n
i
L= K -P = 1
2 ij
0
i i (2.45)
i =1 j =1 k =1 i =1
d L L
= Tr (U j k J j U j iT ) q&&k + Tr (U j k m J j U jiT ) q&k q&m - m j gU j i r j
n j n j j n
j
i = - (2.46)
dt q&i qi j =1 k =1 j =1 k =1 m =1 j =1
La figura 2.5 muestra un manipulador plano de 2 eslabones en los cuales se ilustran los parmetros
geomtricos, cinemticos y dinmicos que influyen en su movimiento.
m2 , I2
l2
2
l1 m1 , I1
1 1
Figura 2.5 Manipulador planar de 2 eslabones con sus respectivos parmetros (Fu et al., 1988)
Con la finalidad de generar una trayectoria que sea continua y suave (smooth trajectory) se emplean
unas funciones geomtricas conocidas como funciones spline. Estas funciones de ajuste emplean
polinomios para aproximar la trayectoria deseada entre los puntos va, y despus son concatenadas
con la condicin de que las posiciones, velocidades y aceleraciones del manipulador sean continuas
en los puntos va. La secuencia de estas funciones ligadas una a otra representa la trayectoria
deseada que generar a su vez un movimiento suave del manipulador (Koivo, 1989).
Lo que se pretende es controlar a las variables de articulacin del manipulador, es por ello que la
trayectoria deseada debe estar expresada en trminos de las variables de articulacin (espacio de las
articulaciones). El orden de polinomios a emplear para aproximar la trayectoria deseada, expresada
Despus de determinar los coeficientes del polinomio de 5 orden, la funcin basada en el polinomio
que generar la trayectoria entre dos puntos va adyacentes en el k-simo intervalo de tiempo, se
puede expresar as (Koivo, 1989):
( t ')
2
t'=
( t - tk ) 0 t ' 1 1 k ( n - 1) (2.49.1)
( tk +1 - tk )
k = Intervalo de tiempo
t k = Tiempo al inicio del intervalo k-simo
Y adems se definen a:
q&is ( t j ) = ( tn - t1 ) q&i ( t j ) j = 1, n
q&&is ( t j ) = ( tn - t1 ) q&&i ( t j ) j = 1, n
2
(2.49.2)
2.1.4 Control
En (Slotine & Li, 1987) se define el problema del diseo del controlador como:
Dada la trayectoria deseada q d ( t ) , y con algunos todos los parmetros del manipulador siendo
desconocidos, derivar una ley de control para los torques del actuador y una ley de estimacin para
los parmetros desconocidos, tal que la salida del manipulador q(t ) siga las trayectorias deseadas
despus de un poco de adaptacin inicial.
Los mtodos de control suponen que se especifica el movimiento deseado mediante una trayectoria
temporal del manipulador y en coordenadas de articulacin cartesiana (Fu et al., 1988). La figura
2.6 muestra un diagrama de control de un manipulador robtico:
Especificaciones
de la tarea a
realizar
Interface
Figura 2.6 Diagrama de bloques de control bsico de un manipulador robtico (Fu et al., 1988)
mediante el clculo de los torques de los actuadores, requeridos para ocasionar que el manipulador
siga una trayectoria deseada (Craig, 1988). La figura 2.7 muestra el esquema de control basado en
un modelo.
&&d + M ( Q ) + Manipulador
&
h ( Q, Q
&)
Kp KV
+
&d
-
d -
Figura 2.7 Esquema de control basado en un modelo (Mtodo del Par Calculado)
(Craig, 1988)
&& * + h ( Q, Q
T = M (Q )Q &) (2.50)
Donde:
M ( Q ) = Matriz estimada de inercia del manipulador
h ( Q , Q
& ) = V (Q , Q
& ) + G ( Q ) + F ( Q
& ) = Matriz estimada de torque de Coriolis, centrfugo, gravitatorio y
de friccin
y,
&& * = Q
Q && + K E& + K E (2.50.1)
d v p
E = Qd - Q
E& = Q
& -Q
d
& (2.50.2)
La ecuacin que emplea este tipo de control es comnmente conocida como Mtodo del Par
Calculado; adems, se asume que cualquier trayectoria del efector final del manipulador es
conocida, y que se expresa como funcin del tiempo de la posicin d ( t ) , velocidad &d ( t ) y
aceleracin &&d ( t ) de la articulacin.
Sin embargo, existen 3 problemas que hacen que esta estrategia sea difcil de implementar:
En (Arimoto & Miyazaki, 1985) se propone que un manipulador, tomando la ecuacin vectorial de
movimiento, puede ser controlado mediante la ecuacin:
&
T = G ( Q) + K p E - K d Q (2.51)
Donde:
G (Q) = Vector n x 1 que representa los torques debido a la aceleracin de la gravedad
E = Q d - Q = Vector n x 1 de errores
Este tipo de control no forza al manipulador a seguir una trayectoria, sino que mueve al manipulador
a un punto especfico a lo largo de una ruta especificada mediante la dinmica del manipulador y
despus regula aqu la posicin. La ley de control requiere que slo el modelo gravitatorio sea
conocido.
A= {( x, m A ( x )) x U } (2.52)
y estando,
m A ( x)
0.5
0
0 3 6 9
x U
x U
(a) (b)
Figura 2.7 Funciones caractersticas de un conjunto difuso (a) y un conjunto clsico (b)
asociada con una variable lingstica, proporciona su valor de pertenencia en el intervalo [0,1].
Existen varias formas de funciones de membresa, y su eleccin depende de la aplicacin y de la
experiencia e intuicin del diseador. La caracterizacin matemtica de una funcin de membresa
triangular es mostrada en la tabla 2.1:
Tabla 2.1 Caracterizacin matemtica de una funcin triangular de membresa (Passino & Yurkovich, 1998)
1 S u c I
Izquierda (u ) =
I
cI - u
mx 0,1 + De otra manera
0.5w I
u -c
Centro mx 0,1 + 0.5w S u c
C ( u ) =
mx 0,1 + c - u
L
De otra manera
0.5w
u - cD
mx 0,1 + S u c D
D (u ) = 0.5w D
Derecha
1 De otra manera
La tabla 2.2 muestra la caracterizacin matemtica de una funcin de membresa de tipo Gaussiana:
Tabla 2.2 Caracterizacin matemtica de una funcin Gaussiana de membresa (Passino & Yurkovich, 1998)
1 S u c I
Izquierda
(u ) =
I
u - c I 2
exp - 12 I De otra manera
u - c 2
( u ) = exp - 12
Centro
u - c D 2
exp - 2 D S u c
1 D
D (u ) =
Derecha
1 De otra manera
Complemento :
-
El complemento A de un elemento de un conjunto difuso A est dado por la diferencia entre la
unidad y su grado de membresa correspondiente m A ( x) , siendo definido como:
m - ( x) = 1 - m A ( x ) "x U (2.53)
A
Interseccin:
La interseccin entre dos conjuntos difusos A y B, se denota como:
Unin:
La unin de los conjuntos difusos A y B se define como:
Igualdad:
Dos conjuntos difusos A y B son iguales si:
A = B m A ( x) = m B ( x) "x U (2.56)
Subconjunto:
A es un subconjunto de B, si y slo si:
A B m A ( x ) mB ( x ) "x U (2.57)
Producto cartesiano:
El producto cartesiano de A1 , A2 ,..., An es un conjunto difuso en el espacio del producto
mA1A2...An ( x1, x2 ,..., xn ) = mn mA1 ( x1 ) , mA2 ( x2 ) ,..., mAn ( xn ) x1 U1, x2 U2 ,..., xn Un (2.58)
Suma algebraica
La suma A+B de dos conjuntos difusos est dada por:
m A+ B ( x ) = m A ( x ) + mB ( X ) - m A ( x ) mB ( X ) (2.59)
Producto algebraico
El producto algebraico A B se define como:
m AB ( x ) = m A ( x ) mB ( x ) (2.60)
Su empleo se ha extendido bastante rpido debido a que existen procesos demasiado complejos para
controlar de manera tradicional, y que por otro lado pueden ser controlados por un operador humano
experimentado que tenga suficiente conocimiento y habilidades.
El objetivo principal del control difuso es tratar de incorporar toda la experiencia y habilidades que
un ser humano aplica en controlar algn proceso o accin, en la creacin de un controlador lgico
difuso (CLD); de esta manera, se evita la compleja tarea de realizar un modelado dinmico del
proceso, que en la mayora de los casos resulta muy laborioso y difcil.
Bsicamente un controlador lgico difuso se puede concebir como un instrumento de toma de
decisiones autnomo, y que opera en un sistema de lazo cerrado. La informacin que es
proporcionada al CLD proviene de un humano experto en controlar ese proceso.
Un controlador lgico difuso est conformado bsicamente por cuatro componentes principales, los
cuales se muestran en la figura 2.8:
Base de
reglas
difusas
2.2.4.1 Fusificacin
Un fusificador tiene la funcin de transformar los valores de las variables de entrada proporcionados
de forma exacta (cuantitativa), en valores lingsticos apropiados, y que a su vez puedan ser
agrupados en conjuntos difusos. Es la primera etapa del controlador lgico difuso y en l se lleva a
cabo la asignacin de una etiqueta lingstica para un cierto valor especfico, y encontrando a su vez
los valores numricos de las funciones de membresa que previamente han sido definidos para esa
variable.
Una variable lingstica es una variable que tiene como valores palabras o enunciados que son
expresados en un lenguaje natural del ser humano, es decir artificial. El propsito de una variable de
este tipo, es proporcionar los medios suficientes para describir o catalogar un fenmeno o magnitud
fsica, el cual es muy difcil o existe poca informacin para poder describirlo en trminos
cuantitativos.
Los trminos anteriores se pueden representar mediante conjuntos difusos, que a su vez tiene cada
uno su funcin de membresa. Las variables lingsticas describirn cada una de las entradas y
salidas del controlador difuso; su eleccin es arbitraria, pero est ntimamente relacionada con la
variable numrica que representa. Los valores lingsticos son simplemente los valores que las
variables lingsticas pueden tomar al transcurrir el tiempo y las condiciones de operacin del
sistema o proceso. Se emplean para indicar la magnitud de un valor numrico en relacin a un valor
lingstico. Las variables y valores lingsticos son una til herramienta para que el experto plasme
o cuantifique su conocimiento de la dinmica del proceso.
Una regla lingstica plasma el conocimiento que un operador experto posee acerca del control de
algn sistema o proceso, es decir, lo que se debe hacer cuando se presenta una determinada
situacin. Las reglas lingsticas estn formadas nicamente por variables y valores lingsticos, y
se caracterizan por tener la forma condicin accin, y que expresadas en la forma de modus
ponens se escriben:
Si premisa (Antecedente) Entonces Consecuencia (Accin)
Siendo x,.., y variables lingsticas que representan las variables de estado del proceso y z la
variable de control. Adems Ai ,..., Bi y Ci son los valores lingsticos de las variables en el
universo del discurso U,, V y W, respectivamente. Las variables de estado normalmente utilizadas
en las reglas lgicas difusas son el error, la variacin del error, etc. Las reglas deciden las acciones
de control a seguir, siendo estas salidas valores lingsticos.
Donde:
No. RP = Nmero de reglas posibles
No. VL = Nmero de valores lingsticos
No. VE = Nmero de variables de entrada
El modelo difuso de Sugeno tambin conocido como modelo difuso TSK, fue propuesto por
Takagi, Sugeno y Kang en un esfuerzo por desarrollar una aproximacin sistemtica para generar
reglas difusas a partir de un conjunto de datos de entrada-salida.
Las reglas difusas de Sugeno tienen la forma (Takagi & Sugeno, 1985):
Si x es A y y es B , ENTONCES z = f ( x , y ) (2.63)
Ya que cada regla tiene una salida ntida, la salida total es obtenida a travs de un promedio
ponderado, lo cual evita la defusificacin y por ende se ahorra tiempo de cmputo.
Rc : operacin mn [Mamdani] = m A ( u ) mB ( v )
Debido a que las variables de entrada al controlador estn cambiando continuamente, los valores de
las funciones de membresa de las premisas para cada regla contenida en la base de reglas, estn
modificndose tambin constantemente. Cuando los valores de las variables lingsticas son
definidos por distintas funciones de membresa, se presenta entonces el caso de tener ms de una
regla activada. Cuando esto sucede, el mecanismo de inferencia obtiene el valor de membresa de las
premisas de cada una de las reglas activadas en ese instante, mediante las implicaciones difusas
mostradas anteriormente.
2.2.4.4 Defusificacin
La defusificacin es la operacin de pasar del espacio de las acciones de control difusas, es decir, las
conclusiones obtenidas por el controlador, al espacio de las acciones de control no difusas, es decir,
obtener un valor numrico. Esto es necesario porque el mecanismo de inferencia proporcionar una
salida con un valor lingstico, el cual no puede ser entendido directamente por el proceso que se
est controlando. Se requiere obtener una salida en trminos numricos, para lo cual existen dos
mtodos comnmente empleados de defusificacin.
Mediante el mtodo del centro de gravedad se obtienen los valores de membresa de la salida, el cual
es la mejor representacin de la conclusin obtenida por las reglas activadas. En el caso de un
universo continuo, se tiene que (Passino & Yurkovich, 1998):
b m i i
u= i (2.64)
m i
i
Donde:
u = Valor numrico de la salida de control
bi = Centro de la funcin de membresa de accin de la regla
Sin embargo, el empleo de este mtodo requiere del clculo del rea de la grfica de la funcin de
membresa correspondiente.
Mediante el mtodo del centro de promedios se obtiene un promedio del valor de los centros de las
funciones de membresa de salida. Para el caso discreto se obtiene mediante (Passino & Yurkovich,
1998):
u=
bm
i i premisa ( i )
m i premisa ( i )
(2.65)
Siendo:
u = Valor numrico de la salida de control
Este mtodo es mucho ms simple de usar, ya que la forma geomtrica de la grfica de la funcin de
membresa no importa, y slo se requiere conocer el valor del centro de cada funcin de membresa.
Dendritas
Axn
Cuerpo de la
clula
Sinapsis
Las seales que se transmiten de una neurona a otra son impulsos elctricos, los cuales a su vez
tienen su origen en la generacin de una sustancia creada mediante procesos qumicos demasiado
complejos en el cerebro. La intensidad del impulso elctrico transmitido por un axn determinar la
magnitud del potencial elctrico de la neurona receptora, y a su vez se activar un disparo si el
potencial elctrico alcanza un valor de umbral. De esta manera se produce una seal o pulso que es
luego transportado por el axn a otras neuronas.
p1
Peso
w1,1
s
p2
w1,2 y Salida
n
f
Entradas p
3 w1,3
b Funcin de
activacin
pR w1,R Bias
Figura 2.10 Modelo de McCulloch y Pitts de una neurona con mltiples entradas (McCulloch & Pitts, 1943)
Las redes neuronales se disearon para realizar las funciones que normalmente desempea el
cerebro humano de forma espontnea y natural, que bsicamente se pueden dividir en:
Habilidad para aprender
Habilidad para generalizar basndose en patrones anteriores
El nmero de entradas a la red neuronal as como el nmero de salidas de la misma, est en funcin
de la naturaleza del problema. Esto significa que el nmero de variables externas a procesar
corresponder al nmero de entradas a la red neuronal, as mismo, el nmero de salidas que se
requieren obtener en el problema ser igual al nmero de neuronas en la capa de salida. As tambin,
la funcin de transferencia debe ser elegida segn los requerimientos de la seal de salida.
La capa que proporciona la salida de la red neuronal se llama capa de salida, y las capas previas a
sta se conocen como capas ocultas. Las conexiones en una red neuronal son realizadas a travs de
los pesos, los cuales se encargan de interconectar las capas que a su vez contienen a las neuronas. El
tipo de conexin de la red determina la funcin de cada neurona en esa red en particular.
A finales de los aos 50s, Frank Rosenblatt desarroll algunas variaciones al modelo inicial
propuesto por McCulloch y Pitts. Este modelo de red neuronal se llam perceptrn, y una de sus
p1
w1,1
p2
w1,2 n y
p3 w1,3
b
pR w1,R 1
y = hardlim ( Wp + b ) = hardlim ( n )
Figura 2.11 Red de perceptrn con una sola neurona (Hagan et al., 1996)
1 S n 0
y = hardlim ( n ) = (2.66)
0 S n < 0
La red de Hamming est compuesta por dos capas; la primera capa desarrolla una correlacin entre
el vector de entrada y los vectores prototipo, mientras que la segunda capa lleva a cabo una
competicin entre neuronas, para de esta manera determinar cul de los vectores prototipo est ms
cerca al vector de entrada. La figura 2.12 muestra la estructura de una red de Hamming (Hagan et
al., 1996):
p n 2 ( t + 1) y 2 ( t + 1) y 2 (t )
W1 n1
y 1
Rx1
SxR W1 D
Sx1 Sx1 Sx1
Sx1 Sx1
b1 S SxS
1 S
Sx1
R
Las salidas de la capa uno son los productos de los vectores prototipo y las entradas, ms el vector
R; la funcin de transferencia empleada es una de tipo lineal. Estos productos indican qu tan
cercano est cada vector prototipo al vector de entrada correspondiente. La segunda capa es llamada
competitiva, y sus neuronas son inicializadas con las salidas de la primera capa; despus estas
neuronas entran en competencia, ya que cada una de ellas se excita a s misma e inhibe a las otras.
La neurona ganadora ser aqulla que al final de la competicin tenga una salida diferente de cero,
lo cual indica a su vez, el tipo de categora de entrada que fue presentada a la red.
Lineal a=n
a=0 n<0
Lineal saturado a=n 0 n 1
a =1 n >1
Log-Sigmoid a=
1
1 + e- n
2.3.5 Entrenamiento
Un algoritmo de entrenamiento es un procedimiento para modificar los pesos y bias de una red
neuronal, mediante una regla de aprendizaje en particular. Esto con la finalidad de que la red
desempee alguna tarea o funcin en especfico. Existen bsicamente dos tipos de aprendizaje, el
aprendizaje supervisado y el aprendizaje no supervisado.
Donde:
pq = Entrada q a la red
tq = Salida q deseada correspondiente
Primero se obtiene el error producido entre la salida de la red neuronal y, y la salida deseada t:
e = tq - y (2.68)
Entonces, la regla de aprendizaje de perceptron ajusta los pesos y bias de la red con la finalidad de
reducir el error entre ambas salidas. A partir del clculo del error se pueden establecer tres diferentes
casos para llevar a cabo la variacin de los pesos, esto es:
D w = ( t - y ) p = ep (2.69)
D b = ( t - y )(1) = e
(2.70)
Finalmente se puede establecer la Regla de Aprendizaje de Perceptrn como:
W actual = W anterior + ep
(2.71)
b actual = b anterior + e
Cuando un axn de una clula A est lo suficientemente cerca para excitar a una clula B, y
repetida persistentemente interviene en activarla, algn proceso de crecimiento cambio
metablico tiene lugar en una ambas clulas, tal que la eficiencia de la clula A, como una de las
clulas que activan a B, se incrementa
La regla no supervisada de Hebb solamente incrementa el peso entre la entrada a una neurona y la
salida, en proporcin directa a su producto:
Donde:
wij = Peso entre la entrada y la salida de una neurona
pj = Entrada de la neurona
yi = Salida de la neurona
= Factor de aprendizaje, que indica cuntas veces un estmulo y respuesta deben ocurrir antes
de que sea hecha una asociacin
El aprendizaje se obtiene en respuesta a una serie de entradas presentadas una a la vez, es decir, un
entrenamiento secuencial:
p (1) , p ( 2 ) ,....., p ( Q )
2.4 Sumario
Es importante conocer los conceptos y fundamentos tericos bsicos en los cuales se apoya la
robtica, desde el punto de vista de la mecnica de su movimiento, para poder generar su trayectoria
dinmica de movimiento con la finalidad de que el manipulador ejecute una accin en especfico.
Con esto en mente, es necesario entonces analizar su cinemtica de posicin, velocidad y
aceleracin, as como los efectos dinmicos que intervienen en tal movimiento. Despus, a partir de
las especificaciones de la tarea a realizar, se debe generar una trayectoria de movimiento dinmico,
para finalmente establecer una estrategia de control que sea ad hoc a la situacin.
En esta seccin se discuten adems los principales postulados tericos de la lgica difusa, en la cual
se trata continuamente con incertidumbres e inexactitudes en la informacin procesada;
demostrando as la alta capacidad de la lgica difusa para computar con palabras en vez de nmeros.
Por ltimo se mencionan algunos de los conceptos de la teora de redes neuronales artificiales,
incluyendo, entre otros, las diferentes arquitecturas y topologas y los tipos de entrenamientos
supervisados y no supervisados.
47
Red Neuro-Difusa
3. Redes neuro-difusas
3.1 Definicin de computacin flexible (soft-computing)
El trmino de computacin flexible fue propuesto por Lotfi A. Zadeh en 1992 y es una prctica
alternativa para resolver problemas computacional y matemticamente complejos. Se puede definir
segn (Zadeh, 1994) as:
El soft-computing se constituye de varias teoras computacionales, tales como las redes neuronales,
la teora de conjuntos difusos, el razonamiento aproximado y mtodos de optimizacin como los
algoritmos genticos y los algoritmos evolutivos. La tabla 3.1 resume las principales caractersticas
de las tcnicas que en su conjunto constituyen el soft computing:
Los sistemas de inferencia difusa pueden modelar los aspectos cualitativos del conocimiento
humano y los procesos de razonamiento, sin la necesidad de realizar anlisis cuantitativos precisos.
Sin embargo, se presentan en el modelado difuso bsicamente dos problemas:
2) Existe una necesidad de encontrar mtodos efectivos para el ajuste de las funciones de
membresa, con el objetivo de minimizar la medida del error de salida de maximizar el
ndice de desempeo.
En 1993, Roger Jang propuso una novedosa arquitectura llamada Sistema de Inferencia Difusa
basada en una Red Adaptiva (ANFIS), la cual puede servir como plataforma para construir un
conjunto de reglas difusas si-entonces (if-then) con funciones apropiadas de membresa, con la
finalidad de generar un mapeo (correspondencia) entre pares de datos estipulados de entrada-salida y
del mismo conjunto de reglas difusas generado. La arquitectura se fundamenta en la insercin de un
sistema de inferencia difusa dentro de la estructura de redes adaptivas (Roger Jang, 1993).
Otra acepcin de ANFIS es la mencionada en (MATLAB, 2004), en donde se define como una
tcnica para ajustar automticamente sistemas de inferencia de tipo Sugeno, con datos de
entrenamiento. El objetivo de ANFIS es el de integrar las mejores caractersticas de los sistemas
difusos y las redes neuronales. Algunas de las aplicaciones de ANFIS son para la sntesis de:
El espacio de las entradas es un trmino utilizado para definir el rango de todos los posibles
valores de esas entradas. Un sistema de inferencia difusa es el nombre que se le da a un
sistema que emplea un razonamiento difuso para relacionar (mapear) espacios de entrada a
espacios de salida.
Los datos de revisin (checking data) son empleados para probar la capacidad de
generalizacin del sistema de inferencia difuso en cada poca. Estos datos tienen el mismo
formato que los datos de entrenamiento, y sus elementos son comnmente distintos de
aqullos de los de entrenamiento (MATLAB, 2004).
Una poca representa una completa presentacin de todos los datos del conjunto de
entrenamiento al sistema de inferencia difusa. Se presentan las entradas y luego se calculan
las salidas del sistema de inferencia difusa, posteriormente se comparan con las salidas
deseadas y se calcula el error entre ambas. Despus se ajustan los parmetros de las
funciones de membresa para reducir el error entre ambas salidas (Fuzzy Logic, 2004).
f1 = p1 x + q1 y + r1
w1 f1 + w2 f 2
f =
w1 + w2
= w1 f1 + w2 f 2
f 2 = p 2 x + q 2 y + r2
(a)
x y
A1 w1 w1
x P N w1 f1
A2
S f
B1
y P N w2 f 2
w2 w2
B2
x y
(b)
Figura 3.1 (a) Modelo difuso de primer orden de tipo Sugeno de dos entradas con dos reglas. (b) Arquitectura ANFIS
equivalente (Roger Jang, 1993)
Capa 1:
Todo nodo i en esta capa es un nodo cuadrado con la funcin,
Oi1 = A1 ( x) (3.2)
Siendo:
x = Entrada al nodo i
Ai = Etiqueta lingstica asociada a la funcin de este nodo
O i1 = Funcin de membresa de A1
1
A1 ( x) = bi
x - c 2 (3.3)
1 + i
i
a
Donde los valores ai , bi , ci son conocidos como parmetros premisa, y estn cambiando de manera
continua y en consecuencia la forma de la funcin de campana.
Capa 2:
Todo nodo en esta capa es un nodo circular etiquetado con , el cual multiplica las seales de
entrada y da salida al producto. Esto es,
wi = Ai ( x) Bi ( y ), i = 1, 2,..
(3.4)
Cada nodo representa la fuerza de disparo de una regla, y distintos operadores de norma-T pueden
ser empleados.
Capa 3:
Cada nodo en esta capa es un nodo circular etiquetado con N. Cada nodo calcula la relacin entre la
fuerza de disparo de las regla i y la suma de todas ellas. Esto se expresa como:
wi
wi = , i = 1, 2,..
w1 + w2 (3.5)
Capa 4:
Cada nodo de esta capa es un nodo cuadrado con la funcin:
Oi4 = wi f i = wi ( pi x + qi y + ri ) (3.6)
Capa 5:
El nodo de esta capa es un nodo circular etiquetado con , que calcula la salida total como la suma
de todas las seales de entrada.
O15 = wi f i =
wfi i i
(3.7)
i w i i
w1 w2
f = f1 + f2
w1 + w2 w1 + w2
= w1 f1 + w2 f 2
= w1 ( p1 x + q1 y + r1 ) + w2 ( p2 x + q2 y + r2 )
(3.8)
( ) ( ) ( ) ( )
= w1 x p1 + w1 y q1 + w1 r1 + w2 x p2 + w2 y q2 + w2 r2 ( ) ( )
Tabla 3.2 Procedimiento de aprendizaje hbrido de ANFIS en dos pasos (Roger Jang, 1993)
1
A ( x) =
x-c
2b
(3.9)
1+
a
Donde:
A ( x ) = Valor de membresa al conjunto difuso A de la variable de entrada x
x = Variable de entrada
c, a = Parmetros que controlan el centro y ancho de la campana respectivamente
b = Parmetro que controla la pendiente de la campana
0.9
0.8
Pendiente
-b / 2a
0.7
Valor de membresa
0.6
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7 8 9 10
c-a c+a
c
2a
Figura 3.2 Significado fsico de los parmetros de la funcin de membresa de tipo campana generalizada
Las figuras 3.3, 3.4 y 3.5 presentan la manera en que al variar los parmetros de la funcin lo hace
inmediatamente la forma de la campana generalizada, y por lo tanto el valor de la etiqueta
lingstica que representa a esa funcin de membresa en particular cambia tambin.
0.8
0.7
0.6
Valor de membresa
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7 8 9 10
Universo de valores posibles de x
0.8
0.7
0.6
Valor de membresa
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7 8 9 10
Universo de valores posibles de x
0.8
0.7
0.6
Valor de membresa
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7 8 9 10
Universo de valores posible de x
Como se mencion en el captulo 2, las reglas difusas implicaciones a utilizar son del tipo
propuesto por (Takagi & Sugeno, 1985), expresndose las reglas de la siguiente manera:
R i : S x1 es A1 y . y x k es A k
Siendo:
x1 - xk = Variables de entrada
y = Variable de salida
A1 Ak = Conjuntos difusos con funciones de membresa asignados
p 0 ..... p k = Parmetros consecuentes a ser estimados
cuadrado (Roger Jang et al., 1997). En el problema de cuadrados mnimos, la salida de un modelo
lineal y est dada por la expresin parametrizada linealmente (Roger Jang et al., 1997):
y = 1 f1 (u ) + 2 f 2 (u ) + ... + n f n (u ) (3.11)
Donde:
T
u = u1 ,....u p = Vector de entradas del modelo
Ahora bien, para identificar los parmetros desconocidos i normalmente se llevan a cabo
experimentos para obtener un conjunto de datos de entrenamiento compuestos de pares de datos de
entrada y salida. Estos pares de datos se conocen como entradas y salidas deseadas del sistema a ser
modelado y se expresan como respectivamente.
Si se sustituye cada par de datos de entrada-salida en la ecuacin 3.12, se obtiene el siguiente
sistema de m ecuaciones lineales (Roger Jang et al., 1997):
A = y (3.13)
Representando A una matriz m x n conocida comnmente como matriz de diseo, conteniendo los
elementos:
f1 (u1 ) L f n (u1 )
A= M M M (3.14)
f1 (um ) L f n (um )
= M
(3.15)
n
La i-sima fila de la matriz de datos [ AM y ] , denotada como aiT M yi , es relacionada con el i-simo
aiT = f1 ( ui ) ,..., fn ( ui )
(3.17)
As, se puede referir como aiT ; yi al i-simo par de datos del conjunto de datos de entrenamiento.
E ( ) = ( yi - aiT ) = eT e = ( y - A )
m
( y - A )
T
(3.20)
i =1
El cuadrado del error es minimizado cuando = , y es por eso que se le conoce como estimador de
cuadrados mnimos, y satisface la siguiente expresin conocida como ecuacin normal (Roger Jang
et al., 1997):
A T A = A T y (3.21)
= ( A T A ) A T y
-1
(3.22)
k = ( A T A ) A T y
-1
(3.23)
-1
A T A A y
T
k +1 = T aT aT y
(3.24)
a
Pk = ( A T A )
-1
-1
A T A
Pk +1 = T aT
a
(3.25)
-1
A
= AT a T
a
= ( AT A + aaT )
-1
k = Pk A T y (3.27.1)
k +1 = Pk +1 ( A T y + ay ) (3.27.2)
Por lo tanto, el vector k +1 puede ser expresado como una funcin del vector estimado anterior k y
los nuevos pares de datos a T ; y (Roger Jang et al., 1997).
Pk +1 = ( Pk-1 + aaT )
-1
(3.30)
Y aplicando la frmula de la inversin de una matriz se obtiene (Roger Jang et al., 1997):
Pk +1 = Pk - Pk a ( I + aT Pk a ) aT Pk
-1
P aaT P (3.31)
= Pk - k T k
1 + a Pk a
Entonces se puede concluir que el estimador de cuadrados mnimos recursivos para el problema
A = y, donde la k-sima fila (1 k m ) de [ AM y ] , denotada por akT M yk , es secuencialmente
Pk ak +1akT+1Pk
Pk +1 = Pk -
1 + akT+1Pk ak +1 (Estimador de cuadrados mnimos) (3.32)
k +1 = k + Pk +1ak +1 ( yk +1 - a
T
k +1 k )
Para inicializar el algoritmo recursivo normalmente se hace mediante las siguientes expresiones para
(Roger Jang et al., 1997):
P0 = I (3.33.1)
0 = 0 (3.33.2)
Donde:
= Cualquier nmero positivo grande
I = Matriz identidad
Con la finalidad de demostrar la elevada potencia que posee el ANFIS para modelar y/o identificar
funciones altamente no lineales, se presentan a continuacin dos ejemplos en los cuales se modelan
funciones que por sus caractersticas resultan altamente no lineales.
El espacio de las entradas para x, y est definido por el rango [-10,10] [-10,10] respectivamente.
Empleando la ecuacin 3.34 se obtienen los datos de entrenamiento de entradas-salida que sern
presentados al sistema neuro-difuso (ANFIS) para poder as realizar el mapeo correspondiente
(relacin entre entradas y salida). Se emplearon tres funciones de membresa del tipo campana
generalizada por cada entrada.
Las funciones de membresa para la red neuro-difusa son mostradas en la figura 3.6:
Desarrollo de un sistema neuro-difuso para la solucin
a la cinemtica inversa de manipuladores robticos 62
Red Neuro-Difusa
Grado de membresa
0.8
0.6
0.4
0.2
0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Pequeo Medio Alto
Espacio de x
Funciones de membresa para la variable y
1
Grado de membresa
0.8
0.6
0.4
0.2
0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Pequeo Medio Alto
Espacio de y
Figura 3.6 Funciones de membresa de tipo campana generalizada asignadas a las variables de entrada x, y
Los parmetros antecedentes, es decir, los parmetros de las funciones de membresa de tipo
campana generalizada son determinados a base de prueba y error, hasta que se logran obtener las
formas deseadas para poder as efectuar la fusificacin de las variables de entrada. Se emple
adems, el mdulo de lgica difusa (fuzzy logic toolbox) del programa MATLAB R2007b para
corroborar los valores de los parmetros de las funciones de membresa. Especficamente, se utiliz
la funcin anfisedit para validar los valores de tales parmetros. Para este caso, los valores de los
parmetros antecedentes son los mostrados en la tabla 3.3:
Tabla 3.3 Parmetros de las funciones de membresa de tipo campana generalizada (Antecedentes)
#E (3.35)
#FM = #R
Donde:
#FM = Nmero de funciones de membresa
#E = Nmero de entradas
#R = Nmero de reglas
Por lo tanto, el nmero de reglas difusas para este caso ser de nueve; la figura 3.7 presenta un
diagrama del modelo neuro-difuso propuesto para aproximar sta funcin no lineal.
Figura 3.7 Estructura del modelo neuro-difuso propuesto para aproximar la funcin no lineal
La figura 3.8 muestra cmo el ANFIS logra aproximar la funcin de manera muy precisa.
Aproximacin de una funcin no lineal empleando ANFIS
1.2
ANFIS
Funcin no lineal
0.8
0.6
Salida
0.4
0.2
-0.2
0 20 40 60 80 100 120 140
No. de pares de entrenamiento
Una vez que se ha efectuado la presentacin de los datos de entrenamiento a la red neuro-difusa, es
decir, el aprendizaje de la red, se obtienen las siguientes reglas difusas de tipo Takagi-Sugeno para
sta funcin en particular:
Tabla 3.4 Reglas difusas de tipo Takagi-Sugeno para la red neuro-difusa propuesta
Antecedente Consecuente
Los 27 valores de los parmetros consecuentes estimados durante la etapa de aprendizaje, son
entonces guardados y empleados como valores fijos de las reglas difusas. El sistema neuro-difuso
ser entonces capaz de aproximar valores que inicialmente no estaban incluidos en los datos de
entrenamiento generados por la funcin no lineal; es aqu donde se demuestra la gran potencia y
capacidad del ANFIS para poder efectuar una generalizacin.
Desarrollo de un sistema neuro-difuso para la solucin
a la cinemtica inversa de manipuladores robticos 65
Red Neuro-Difusa
Figura 3.9 Estructura del sistema neuro-difuso propuesto para aproximar la funcin no lineal
La figura 3.10 muestra la salida de la funcin comparada con la salida del sistema neuro-difuso
propuesto. Se observa que a partir de los datos de entrenamiento nmero 120 en adelante se presenta
una pequea variacin entre ambas salidas, sin embargo en general ANFIS logra aproximar la
funcin de forma adecuada.
15
14
Salida de la funcin
13
12
11
10
0 20 40 60 80 100 120 140 160 180
No. de pares de datos de entrenamiento
1 P T (i) - O(i)
PEP =
P
i =1 T (i)
100 (3.37)
Siendo:
PEP = Porcentaje promedio de error
P = Nmero de pares de entrenamiento
T( i ) = Salida deseada
O( i ) = Salida calculada
Aplicando la expresin anterior se obtiene el porcentaje promedio de error que resulta ser para este
caso de 0.43134%.
Cabe mencionar que durante las simulaciones del sistema neuro-difuso se pudo notar que el nmero
seleccionado de funciones de membresa a utilizar es un factor crtico en el desempeo del ANFIS;
de igual manera lo es el factor alfa ( ), el cual se emplea para inicializar la matriz P en el estimador
por mnimos cuadrados lineales recursivos. Se concluye que la eleccin ptima del nmero de
funciones de membresa y el valor de se obtiene a base de iteraciones (prueba y error).
Con las demostraciones efectuadas de la aplicacin del ANFIS para aproximar funciones altamente
no lineales, se puede ya comprender la intencin de llevar a cabo su aplicacin en la solucin a la
cinemtica inversa de un manipulador, el cual representa un problema con ecuaciones no lineales.
3.5 Sumario
En esta seccin se presentaron las caractersticas que distinguen a una red neuro-difusa, las cuales la
hacen ser una herramienta poderosa para la identificacin y estimacin de sistemas que dada su
naturaleza resultan ser altamente no lineales. Para ello, se emplearon dos funciones no lineales que
fueron identificadas por ANFIS, a travs de la presentacin a la red de datos de entrada-salida que
describen el comportamiento caracterstico de las funciones; posteriormente con el empleo de estos
datos se llevo a cabo el entrenamiento aprendizaje de la red, demostrando finalmente que las redes
neuro-difusas son capaces de identificar y aproximar de manera precisa una funcin sistema no
lineal.
El aprendizaje hbrido que utiliza una red neuro-difusa es lo que le proporciona su elevada
capacidad de identificacin; en este caso, se mantuvieron fijos los parmetros antecedentes a lo
largo de la etapa de entrenamiento, y se empleo el estimador de mnimos cuadrados lineales
recursivos filtro de Kalman para el ajuste de los parmetros consecuentes. Se combinan de sta
manera las ventajas de la lgica difusa y las redes neuronales, para obtener as un sistema hbrido
que ser despus aplicado a la solucin de un problema no lineal, como lo es el caso del problema
cinemtico inverso de manipuladores robticos.
69
Caso de Estudio
4. Caso de estudio
4.1 Consideraciones del primer caso de estudio
Y Y
m2
m2 l2 q2
l2 q2
g
m1 l1
l1 g
m1
q1 X q1
X
O
Figura 4.1 (a) Modelo del manipulador planar propuesto (b) Esquema del manipulador
Parmetro Valor
La cinemtica es la rama de la mecnica que se encarga del estudio del movimiento de los cuerpos
sin atender las causas que lo provocan. En robtica, el estudio de la cinemtica se divide en
cinemtica directa y cinemtica inversa. El problema cinemtico directo tiene que ver con encontrar
la posicin y orientacin del efector final con respecto a la base del manipulador, una vez que se
conocen los ngulos de las articulaciones de los eslabones del manipulador. La figura 4.2 muestra el
problema cinemtico directo:
x=?
Y y=?
q 2 = 35
q1 = 45
X
O
Figura 4.2 Problema cinemtico directo en un manipulador plano de dos grados de libertad con articulaciones de tipo
revolucin
En el problema cinemtico inverso se buscan conocer los ngulos de las articulaciones del
manipulador para lograr colocar al efector final en una posicin y orientacin deseada que es de
antemano conocida. Normalmente en las aplicaciones robticas lo que se requiere conocer son los
ngulos (en el caso de articulaciones de tipo revolucin) que configuran al manipulador en una
forma tal que colocan al efector final ltimo eslabn en una posicin y orientacin especfica, para
que de esta manera ejecute alguna accin en particular. La figura 4.3 presenta el problema
cinemtico inverso:
x =8
Y y = 12
q2 = ?
q1 = ?
X
O
Figura 4.3 Problema cinemtico inverso en un manipulador plano de dos grados de libertad con articulaciones de tipo
revolucin
Es por ello, que el presente trabajo de investigacin se centra en dar solucin al problema
cinemtico inverso, el cual representa el primer gran problema que se presenta en el estudio de la
robtica. Una vez que se logran obtener los ngulos de las articulaciones, lo que sigue es determinar
las velocidades y aceleraciones angulares de las mismas; posteriormente, se emplea alguna de las
formulaciones dinmicas que con respecto a manipuladores robticos existe, todo ello con la
finalidad de obtener los torques pares que se requieren aplicar en los motores, que a su vez darn
el movimiento a las articulaciones y por consiguiente al manipulador en su conjunto.
x = 7.939
Y y = 11.995 Y
q 2 = 35 x = 7.159
y = 6.918
q 2 = 105
q1 = 45
q1 = 15
X X
O O
a) b)
Y Y
q 2 = -95
q 2 = -60
x = 6.566
y = 8.553 x = 10
y = 8.660
q1 = 80
q1 = 60
X X
O O
c) d)
Figura 4.4. Manipulador plano en diferentes posiciones del efector final variando los valores angulares 1, 2 de las
articulaciones
Con las ecuaciones (4.1) se puede conocer rpidamente cul es la posicin del efector final con
respecto a la base del manipulador, conociendo obviamente los ngulos de las articulaciones. Para
poder visualizar la utilizacin de stas ecuaciones, los esquemas de la figura 4.4 ilustran las
diferentes posiciones que toma el manipulador en estudio, al variar los valores de los ngulos de las
articulaciones (1, 2).
4.2.3 Singularidades
Una singularidad ocurre en un manipulador cuando se pierde uno ms grados de libertad y por lo
tanto no se puede efectuar un movimiento deseado (Niku, 2001). Esto ocurre cuando se presentan
las siguientes dos condiciones:
1). Las articulaciones del manipulador alcanzan sus lmites fsicos de movimiento
2). Cuando los ejes z de dos articulaciones similares se orientan colinealmente.
Identificar las singularidades en los manipuladores es importante por varias razones (Spong &
Vidyasagar, 1999):
1) Las singularidades representan configuraciones desde las cuales algunas direcciones de
movimiento pueden ser inalcanzables.
2) En puntos singulares, las velocidades cartesianas del efector final pueden corresponder a
velocidades angulares no alcanzables por parte las articulaciones.
3) Comnmente las singularidades corresponden a puntos en la frontera del espacio de trabajo
del manipulador, esto es, a puntos de mximo alcance del manipulador.
4) Cerca de las singularidades no habr una solucin nica al problema cinemtico inverso.
Puede suceder que se presenten un nmero infinito de soluciones ninguna solucin.
En (Paul & Stevenson, 1983) se identifica la presencia de puntos singulares y para ello se propone
como solucin un correcto diseo acerca del acomodo fsico de las articulaciones para que de esta
manera se eviten en lo posible los puntos singulares.
Para encontrar los puntos singulares de un mecanismo lo que se debe hacer es examinar el
determinante de su Jacobiano. Donde el determinante sea igual a cero, el Jacobiano es singular
(Craig, 1955):
det J (q ) = 0 (4.2)
Para aplicar este concepto al manipulador plano de dos grados de libertad a partir de las ecuaciones
cinemticas directas, se realiza lo siguiente:
x x
q q 2 -l1 senq1 - l2 sen (q1 + q 2 ) -l2 sen (q1 + q 2 ) (4.3)
J (q ) = =
1
y y l1 cos q1 + l2 cos (q1 + q 2 ) l2 cos (q1 + q 2 )
q q 2
1
Empleando las siguientes identidades trigonomtricas para simplificar las expresiones anteriores:
Se obtiene finalmente:
Entonces las singularidades en este manipulador se presentan segn la expresin anterior cuando 2
es 0 180. Esto se traduce fsicamente como el brazo completamente extendido completamente
retrado sobre s mismo, en donde se pierde un grado de libertad. Esto se ilustra en la figura 4.5:
Y Punto singular Y
x = 10.606
y = 10.606
q 2 = 0 q 2 = 180
Punto singular
x = 3.535
q1 = 45
q1 = 45 y = 3.535
X X
O O
La solucin a la cinemtica inversa puede resultar en dos ms soluciones, esto significa que el
brazo puede presentar distintas configuraciones de los ngulos de las articulaciones para alcanzar un
mismo punto, esto se muestra en la figura 4.6:
Y
( x, y )
q2
q2 '
q1 q1 '
X
O
Figura 4.6 Dos soluciones al problema cinemtico inverso (Spong & Vidyasagar, 1999)
En la figura 4.7 se muestra la solucin cinemtica inversa resuelta algebraicamente para una
posicin deseada del efector final:
Y Y
x = 3.7677
y = 5.2318 x =8
y =8
q 2 = -33.4541
q 2 = 88.28
q1 = 65.2467 q1 = 18.78
X X
O a) O b)
Figura 4.7 Solucin algebraica a la cinemtica inversa, para dos posiciones distintas del efector final
1) La seleccin del valor de inicio para las iteraciones (guess value) es un factor fundamental
para la convergencia del mtodo.
2) El mtodo es inestable cuando se presenta algn punto singular.
En la figura 4.8 se muestran los valores obtenidos de 1, 2 mediante el mtodo de Newton para una
posicin deseada del efector final.
Y Y
x = 3.7677
y = 5.2318 x =8
y =8
q 2 = -33.4541
q 2 = 88.28
q1 = 65.2467 q1 = 18.78
X X
O a) O b)
Figura 4.8 Solucin a la cinemtica inversa mediante el mtodo numrico de Newton, para dos posiciones distintas del
efector final
4.3 Solucin a la cinemtica inversa por medio del sistema neuro-difuso (ANFIS)
Para llevar a cabo la solucin a la cinemtica inversa por medio de la red neuro-difusa, se propone
que sean dos las redes involucradas en tal solucin. Una red proporcionar 1, teniendo como
entradas los dos valores del punto cuya posicin en el plano es x, y; la otra red tiene como salida 2,
de igual forma teniendo como entradas la misma posicin x, y del punto cuya cinemtica inversa se
desea obtener. La figura 4.9 muestra la manera en que se planea resolver el problema cinemtico
inverso para este manipulador plano.
x q1
y ANFIS_1
x q2
y ANFIS_2
Figura 4.9 Esquema de la forma en que se aborda y resuelve el problema cinemtico inverso
(4.8)
0 q 2 180
0 q1 90
X
O
La figura 4.11 ilustra el espacio de trabajo del manipulador plano propuesto, considerando los
rangos de movimiento anteriormente descritos:
10
Y
0
-5 0 5 10 15
X
El tamao del incremento que se utilice determinar el nmero de pares de datos de entrenamiento
generados. Para este caso, el incremento es de 0.1.
Enseguida se generan dos matrices las cuales contienen copias de los vectores de 1 y 2, esto con la
finalidad de obtener todas las posibles combinaciones de estos vectores. Tal accin es realizada por
medio del comando meshgrid de MATLAB Versin R2007b. Este comando transforma el dominio
especificado por los vectores a y b, en los arreglos A y B, los cuales pueden ser usados para evaluar
funciones de dos variables. Las filas del arreglo de salida A son copias del vector a, mientras que las
columnas del arreglo de salida B son copias del vector b (MATLAB, 2004). Esto se expresa para
este caso como:
[Theta1, Theta2] = meshgrid (Teta1, Teta2) (4.10)
Ahora, usando las ecuaciones cinemticas directas se obtienen todos los valores posibles para x y y,
para toda combinacin de 1 y 2. Esta accin se lleva a cabo de la siguiente manera:
Hasta este punto se han obtenido ya los pares de datos de entrenamiento (entrada-salida) que sern
presentados a la red neuro-difusa para su aprendizaje, quedando de la siguiente forma:
lgico seleccionar algn tipo de funcin de membresa que realice una transicin suave entre los
distintos conjuntos difusos. Establecido lo anterior se puede entonces proceder a disear la red
neuro-difusa que tendr como entradas a x, y y como salida 1. Para seleccionar el nmero apropiado
de funciones de membresa para la fusificacin de las dos entradas, se entren a la red con 4 y 5
funciones para identificar 2 y se observaron los resultados. Las funciones son del tipo campana de
Gauss y el nmero de reglas difusas de tipo Takagi-Sugeno es de 9. La figura 4.12 ilustra las
funciones de membresa utilizadas para la fusificacin de las entradas.
0.8
0.8
Grado de membresa
0.7
0.7
Grado de membresa
0.6 0.6
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
-4 -2 0 2 4 6 8 10 12 14 0 5 10 15
Espacio de x Espacio de y
1.4
1.2
ANFIS
Funcin
1
Teta1
0.8
0.6
0.4
0.2
0
0 100 200 300 400 500 600
No. de pares de entrenamiento
Figura 4.13 Identificacin de 1 por medio de ANFIS empleando 4 funciones de membresa
1.4
1.2 ANFIS
Funcin
1
Teta 1
0.8
0.6
0.4
0.2
0
0 100 200 300 400 500 600
No. de pares de entrenamiento
Figura 4.14 Identificacin de 1 por medio de ANFIS empleando 5 funciones de membresa
ANFIS
2.5
Funcin
Teta 2
2
1.5
0.5
0
0 100 200 300 400 500 600
No. de pares de entrenamiento
La figura 4.16 muestra claramente que el sistema neuro-difuso logra aproximar la seal valor
deseado de una manera muy precisa, empleando para ello nicamente cuatro funciones de
membresa por cada una de las dos entradas. Se demuestra as la gran capacidad de identificacin de
sistemas altamente no lineales que poseen las redes neuro-difusas. De esta manera se ha realizado el
aprendizaje inverso de la cinemtica inversa del manipulador plano de dos grados de libertad. La
figura 4.17 muestra la estructura de la red neuro-difusa propuesta para identificar 2.
(4.13)
Donde:
Vector de velocidades cartesianas del efector final
Matriz Jacobiana del manipulador en funcin de
Vector de velocidades de las articulaciones
Entonces, como se puede ver, el Jacobiano de un manipulador permite obtener las velocidades
cartesianas (Vx, Vy) del efector final del manipulador, proporcionando simplemente las velocidades
de las articulaciones y empleando la funcin Jacobiana de ese manipulador. Sin embargo, para el
presente caso de estudio lo que se requiere obtener son las velocidades angulares de las
articulaciones del manipulador, a partir de las velocidades cartesianas del efector final. Entonces lo
que se requiere es despejar de la ecuacin anterior, quedando:
(4.14)
Por lo tanto, se requiere que la matriz inversa del Jacobiano del manipulador , sea no
singular e invertible en todo momento. Para demostrar el empleo de la ecuacin anterior, se propone
que la velocidad del efector final del manipulador sea de 0.1 m/s, tanto en x como en y. La
configuracin del manipulador en el instante en que se requieren conocer las velocidades angulares
es 1=45 y 2=15. Para obtener las velocidades angulares a las cuales se deben mover las
articulaciones para poder lograr las velocidades cartesianas deseadas del efector final, se aplica la
ecuacin 4.14, obtenindose:
Rad/seg
(4.15)
Donde:
Vector de aceleraciones cartesianas del efector final
Derivada con respecto al tiempo de la matriz Jacobiana
Y con la finalidad de obtener las aceleraciones angulares de las articulaciones, se puede despejar
de la ecuacin anterior, resultando que:
(4.16)
La ecuacin 4.16 de igual forma requiere que la matriz Jacobiana sea no singular e invertible; para
ilustrar el empleo de la ecuacin 4.16 y obtener las aceleraciones angulares de las articulaciones del
manipulador, se proponen unas aceleraciones lineales del efector final de 0.1 m/s2, tanto en x como
en y, as mismo las velocidades angulares son las calculadas anteriormente. La configuracin del
manipulador en el instante en que se realiza el clculo del Jacobiano es 1=45 y 2=15.
Rad/seg2
Con las ecuaciones anteriores se pueden entonces obtener las velocidades y aceleraciones angulares
de las articulaciones del manipulador, una vez que se conocen las velocidades y aceleraciones
cartesianas del efector final del manipulador. Dado que las ecuaciones 4.14 y 4.16 recurren a la
inversin de la matriz Jacobiana del manipulador, se debe por lo tanto tener especial cuidado en
evitar las posiciones que resultan singulares, ya que ello equivale a que la matriz Jacobiana llegue a
ser no invertible.
Mediante la cinemtica inversa resuelta por el sistema ANFIS se obtienen los valores de los ngulos
de las articulaciones que corresponden a las posiciones cartesianas solicitadas. Se obtuvieron los
siguientes valores de los ngulos de las articulaciones:
ANFIS 1
ANFIS 1
ANFIS 2
ANFIS 2
Los polinomios de quinto orden que sern utilizados para generar la trayectoria de movimiento de
posicin, velocidad y aceleracin angular de la articulacin uno son (Niku, 2001):
(4.17)
Para el polinomio de la articulacin uno se consideran como condiciones iniciales las siguientes:
(4.18)
Sustituyendo las condiciones iniciales y finales de frontera en las ecuaciones 4.17, y resolviendo las
ecuaciones simultneamente se obtiene que:
(4.19)
Ahora los 6 coeficientes calculados se sustituyen en las ecuaciones 4.17 para obtener finalmente los
polinomios que describirn la trayectoria de movimiento en funcin del tiempo de posicin,
velocidad y aceleracin de la articulacin uno.
(4.20)
Las figuras 4.19, 4.20 y 4.21 muestran la trayectoria de posicin, velocidad y aceleracin angulares
de la articulacin uno en funcin del tiempo.
80
Angulo 1 (grados)
75
70
65
60
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
0
Velocidad angular 1(grados/seg)
-2
-4
-6
-8
-10
-12
-14
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
10
Aceleracin angular 1 (grados/seg2)
-5
-10
-15
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
(4.21)
(4.22)
Finalmente sustituyendo los valores de los coeficientes en las ecuaciones polinomiales se obtienen:
(4.23)
Las figuras 4.22, 4.23 y 4.24 muestran la trayectoria de posicin, velocidad y aceleracin angulares
de la articulacin dos en funcin del tiempo.
-40
-50
Posicin angular 2 (grados)
-60
-70
-80
-90
-100
-110
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
35
Velocidad angular 2(grados/seg)
30
25
20
15
10
0
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
Figura 4.23 Trayectoria de velocidad de la articulacin dos
20
10
-10
-20
-30
-40
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
(4.24)
Tomando en consideracin los resultados obtenidos para las aceleraciones mximas de las
articulaciones, se puede entonces calcular el tiempo que deberan requerir las trayectorias para
efectuar los movimientos solicitados.
La dinmica es el campo de estudio de la mecnica que se encarga de estudiar las fuerzas que se
requieren para generar causar un movimiento en un cuerpo. Con la finalidad de acelerar un
manipulador desde su estado de reposo, mantener una velocidad del efector final constante, y
finalmente desacelerarlo para que se detenga, se deben aplicar en los actuadores de las articulaciones
del manipulador un conjunto de torques fuerzas (Fu et al., 1988). Las ecuaciones dinmicas que
producen el torque requerido en las articulaciones de tipo revolucin, estn en funcin de los
atributos temporales y espaciales de la ruta que toma el efector final del manipulador, as como
tambin de las propiedades de masa de los eslabones, fricciones en las articulaciones, carga en el
efector final, etc. (Fu et al., 1988). La tabla 4.2 describe las dimensiones de los parmetros fsicos
del manipulador plano:
1 10 0.8
2 5 0.4
Las ecuaciones dinmicas para el manipulador plano del caso de estudio son:
(4.25)
Entonces, con las ecuaciones 4.25 se pueden obtener los torques requeridos en las articulaciones de
tipo revolucin, para que el efector final del manipulador pueda seguir una trayectoria de
movimiento deseada y considerando las masas y todos los efectos que interaccionan durante el
movimiento de las articulaciones del manipulador.
Con la finalidad de demostrar el empleo de las ecuaciones dinmicas de movimiento de un
manipulador, se pretende ahora obtener el historial de torques requeridos en las articulaciones para
generar las trayectorias de movimiento antes solicitadas. La metodologa que se sigue para poder
obtener el historial de torques requeridos en las articulaciones para generar una trayectoria de
movimiento es la mostrada en la figura 4.25:
Tarea especificada
en el espacio Generador de trayectorias en el
cartesiano de trabajo espacio de las articulaciones
tiempo
Ecuaciones dinmicas
de movimiento de
Lagrange-Euler
Figura 4.25 Esquema representativo de la metodologa para la obtencin del historial de torque
Para la articulacin 2:
0.8
0.7
0.6
Torque (N*m)
0.5
0.4
0.3
0.2
0.1
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
0.1
0.08
0.06
Torque (N*m)
0.04
0.02
-0.02
-0.04
-0.06
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
Con los historiales de torques requeridos en las articulaciones del manipulador se puede entonces
conocer cul es la demanda de torque mximo y con ello determinar seleccionar un actuador
(motor) que proporcione el torque solicitado.
1.5
0.5
0
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
Figura 4.28 Historial de torque requerido en la articulacin 1 al aumentar la carga en el efector final en 0.4 y 0.8 kg
0.3
0.25
0.2
Torque (N*m)
0.15
0.1
0.05
0
Sin carga
-0.05 Aumento de 0.4 kg en la carga
Aumento de 0.8 kg en la carga
-0.1
-0.15
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
Figura 4.29 Historial de torque requerido en la articulacin 2 al aumentar la carga en el efector final en 0.4 y 0.8 kg
Como se puede observar en las figuras la demanda de torque por parte de las articulaciones aumenta
a medida que se incrementa la carga en el efector final del manipulador. Por otra parte, se puede
tambin observar que la demanda de torque en la articulacin 1 es mucho mayor que aqulla
solicitada en la articulacin 2, lo cual resulta obvio ya que la articulacin 1 debe soportar el peso
mismo del eslabn 1, del eslabn 2, la carga en el efector final y adems compensar los efectos no
deseados que ocurren cuando el manipulador est en movimiento (torque de Coriolis y centrfugo).
Una vez que el modelo dinmico del manipulador ha sido deducido, es decir, cuando se han
obtenido las ecuaciones de movimiento que gobiernan al manipulador, es ahora posible disear una
ley de control para todo el conjunto del manipulador mismo. Debido a que la ley de control
propuesta se basa en el modelo dinmico del manipulador, se conoce comnmente como mtodo de
control por momento par calculado (Craig, 1988) (Iigo & Vidal, 2004) (Ogata, 2003).
Retomando la ecuacin diferencial del comportamiento dinmico de un manipulador robtico, la
cual es:
(4.26)
Se puede emplear la ley servo (trmino en la ecuacin de control que compensa los errores)
siguiente (Craig, 1988):
(4.27)
Donde:
Par de compensacin del error
Error en la trayectoria de posicin del manipulador
Error en la trayectoria de velocidad del manipulador
Constante de proporcionalidad
Constante derivativa
Aceleracin deseada de la articulacin
(4.28)
(4.29)
La ecuacin 4.29 es conocida como ley de control por el mtodo del par calculado. Sin embargo, el
funcionamiento ideal de la ecuacin 4.29 no es posible obtenerlo realmente en la prctica debido
principalmente a las siguientes dos causas (Craig, 1988):
1) La naturaleza discreta de una implementacin en una computadora digital, contrasta con la
ley de control en tiempo continuo ideal.
2) Existe inexactitud en el modelo dinmico del manipulador empleado en la ley de control.
La figura 4.30 muestra el esquema de la ley de control del mtodo del par calculado:
M( ) Manipulador
+ + + +
+ +
Kp Kv V( ) G( )
+
-
+ -
Figura 4.30 Sistema de control del manipulador basado en su modelo dinmico (Mtodo del par calculado)
Las figuras 4.31 y 4.32 ilustran el control de las trayectorias deseadas de las dos articulaciones:
T rayectoria de posicin de la articulacin 1
85
75
70
65
60
0 0.5 1 1.5 2 2.5 3
Tiempo (segundos)
Figura 4.31 Control de la trayectoria de posicin deseada de la articulacin 1 por medio del mtodo del par calculado
-50
-60
-70
-80
-90
-100
-110
0 0.5 1 1.5 2 2.5 3
Tiempo (Segundos)
Figura 4.32 Control de la trayectoria de posicin deseada de la articulacin 2 por medio del mtodo del par calculado
Los torques calculados por este mtodo son entonces los que se requieren para lograr que el
manipulador robtico venza todos los efectos fsicos que intervienen en la trayectoria de su
movimiento. Estos torques demandados por las articulaciones del manipulador son los que se
ilustran en las figuras 4.33 y 4.34:
Obtencin del torque de la articulacin 1 por medio del mtodo del par calculado
0.9
0.8
0.7
Torque 1 (N*m)
0.6
0.5
0.4
0.3
0.2
0.1
0 0.5 1 1.5 2 2.5 3
Tiempo (Segundos)
Figura 4.33 Torque producido por medio del mtodo del par calculado para controlar el movimiento de la articulacin 1
Obtencin del torque de la articulacin 2 por medio del mtodo del par calculado
0.12
0.1
0.08
0.06
Torque 2 (N*m)
0.04
0.02
-0.02
-0.04
-0.06
0 0.5 1 1.5 2 2.5 3
Tiempo (Segundos)
Figura 4.34 Torque producido por medio del mtodo del par calculado para controlar el movimiento de la articulacin 2
l3
Y q3
l2 q2
l1
q1 X
La generacin de datos de entrenamiento para este caso fue realizada de la misma manera que en el
caso del manipulador plano de dos grados de libertad, a diferencia de que se agreg una variable
ms y por ende se necesita otra red neuro-difusa para predecir 3. Los rangos de movilidad
permitida de las tres articulaciones del manipulador son las siguientes:
Enseguida se gener un arreglo tridimensional para obtener de esta manera las posibles
combinaciones de las tres variables de articulacin, con la finalidad de realizar un mapeo del espacio
de trabajo del manipulador. Esto se efectu con el comando meshgrid de MATLAB versin
R2007b.
Luego estos arreglos se insertaron en las ecuaciones cinemticas directas para obtener los datos de
entrenamiento que sern presentados a la red neuro-difusa para su aprendizaje. Las ecuaciones
cinemticas directas para este caso son las que se presentan a continuacin:
(4.30)
x
q1
y
ANFIS_1
x
y q2
ANFIS_2
x q3
y ANFIS_3
Figura 4.36 Solucin a la cinemtica inversa del manipulador mediante tres sistemas ANFIS
Las figuras 4.37, 4.38 y 4.39 muestran como se efectu la identificacin (aprendizaje) de 1, 2 y 3
a travs de la funcin anfis de Matlab.
Figura 4.37. Aprendizaje de 1 por parte de ANFIS del toolbox de Matlab Ver. R2007b
La figura 4.37 presenta la correcta identificacin de 1 por parte de ANFIS despus de realizarse
200 pocas de entrenamiento, obtenindose un error de prueba promedio de 0.0391 %.
Figura 4.38 Aprendizaje de 2 por parte de ANFIS del toolbox de Matlab Ver. R2007b
Figura 4.39 Aprendizaje de 3 por parte de ANFIS del toolbox de Matlab Ver. R2007b
La figura 4.39 presenta el aprendizaje de 3, el cual demuestra ser muy denso y disperso. Sin
embargo, en general, se logran mapear de manera precisa los pares de datos de entrenamiento. En
este caso el error de prueba promedio producido es de 0.41807 %.
El manipulador propuesto para este caso de estudio es un manipulador de tres grados de libertad y
con articulaciones de tipo revolucin, tal como se muestra en la figura 4.40:
q3
q2
q1
De igual manera que para los casos de estudio anteriores, se emplear una red neuro-difusa por cada
variable de articulacin del manipulador, es decir, la cinemtica inversa del manipulador en cuestin
ser resuelta mediante tres sistemas ANFIS. La figura 4.41 muestra la estrategia a emplear para
solucionar el problema.
x
q1
y
ANFIS_1
z
x
y ANFIS_2
q2
z
x q3
y ANFIS_3
z
Figura 4.41 Solucin a la cinemtica inversa del manipulador mediante tres sistemas ANFIS
15
14
13
Z
12
11
10
4
3 6
5.5
2 5
4.5
Y 1 4
3.5 X
0 3
Figura 4.42 Puntos mapeados dentro del espacio de trabajo del manipulador de tres grados de libertad
Con la finalidad de conocer la relacin que existe entre las coordenadas cartesianas (x, y, z) del
efector final del manipulador y las variables de las articulaciones (1, 2, 3) de los eslabones del
mismo, se debe primero que nada obtener la cinemtica directa del manipulador. Para ello, se
asignan los sistemas de coordenadas cartesianas a cada una de las articulaciones del manipulador.
Esto se muestra en la figura 4.43:
l2 y3
x3
y2
y1 x2
x1 z3
q3 l3
z2
q2
z1
l1
zo
q1 yo
xo
Ahora bien, lo que sigue es obtener los parmetros de Denavit-Hartenberg de los eslabones del
manipulador. La tabla 4.3 presenta estos parmetros:
i a d
1 0 90 l1 1
2 l2 0 0 2
3 l3 0 0 3
Una vez que se han obtenido los parmetros Denavit-Hartenberg, se emplea ahora la matriz del
brazo, con la cual se obtiene a partir de multiplicaciones sucesivas de matrices homogneas, la
relacin de posicin y orientacin del efector final con respecto a la base del manipulador, es decir,
la solucin a la cinemtica directa deseada en este caso. La matriz del brazo que se emplea es la
siguiente (Fu et al., 1988):
0 sena i cos a i di
0 0 0 1
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
Ahora, dado que los ejes de las articulaciones 2 y 3 son paralelos, se pueden emplear las siguientes
identidades trigonomtricas para reducir las expresiones obtenidas de la multiplicacin anterior
(Craig, 1955):
cos (q1 + q 2 ) = c12 = c1c2 - s1s2
sen (q1 + q 2 ) = s12 = c1s2 + s1c2
Y se obtiene que:
Finalmente se obtiene la matriz que relaciona al efector final con la base del manipulador:
0 1 0 l1 0 0 1 0
0 0 0 1 0 0 0 1
c1c23 -c1s23 s1 c1 ( l3c23 + l2 c2 )
s1c23 - s1s23 -c1 s1 ( l3c23 + l2 c2 )
=
s23 c23 0 l3 s23 + l2 s2 + l1
0 0 0 1
En el presente caso de estudio slo se considera la solucin a la cinemtica inversa de posicin del
manipulador y no se toma en cuenta la orientacin del efector final, debido a ello se requiere
nicamente la informacin dada por la ltima columna de la matriz anterior, la cual es la que
describe la posicin del efector final con respecto a la base del manipulador en funcin del valor de
las variables de articulacin. Finalmente resulta:
x = c1 ( l3c23 + l2 c2 )
y = s1 ( l3c23 + l2 c2 )
z = l3 s23 + l2 s2 + l1
Con la solucin a la cinemtica directa se pueden ahora generar los datos de entrenamiento que
sern empleados para el aprendizaje de las tres redes neuro-difusas.
Lo primero que se hace para poder disear la estructura de la red neuro-difusa es obtener los datos
de entrenamiento, es decir, reunir la informacin necesaria de entradas-salida que en su momento
ser presentada a la red para su aprendizaje correspondiente. En este caso, para generar los datos de
entrenamiento se utilizan tres vectores fila, los cuales contienen los valores del rango de movilidad
de cada una de las tres variables de articulacin, esto es, valores de 1, 2 y 3.
teta1=0 q1 p 2 = 0 : 0.1: p 4
teta2=0 q 2 p 4 = 0 : 0.1: p 4
teta3=0 q 3 p 4 = 0 : 0.1: p 4
El incremento usado en la generacin de los vectores anteriores determinar el tamao de los datos
de entrenamiento; en este caso el incremento es de 0.1. Los vectores anteriores fueron generados en
el software MATLAB Ver. R2007b.
Enseguida se generan tres matrices las cuales contienen copias de los vectores de 1, 2 y 3, esto con
la finalidad de obtener todas las posibles combinaciones de estos vectores. Tal accin es realizada
por medio del comando meshgrid de MATLAB. Este comando transforma el dominio especificado
por los vectores a, b y c, en los arreglos tridimensionales A, B y C, los cuales pueden ser usados
para evaluar funciones de tres variables (MATLAB, 2004). Esto se expresa para este caso como:
Ahora, usando las ecuaciones cinemticas directas se obtienen todos los valores posibles para x, y, z,
para toda combinacin de 1, 2 y 3. Esta accin se lleva a cabo de la siguiente manera:
Con esto se han obtenido finalmente los datos de entrenamiento que sern presentados a los tres
sistemas neuro-difusos para la identificacin de 1, 2 y 3.
En resumen, han sido obtenidos cuatro vectores columna de 512 datos cada uno, correspondiendo a
las tres entradas y a la salida.
El porcentaje de error promedio para 1 fue de 0.000018 %, al finalizar 150 pocas de entrenamiento
4.10 Sumario
En este captulo se demostr la aplicacin de ANFIS a la solucin del problema cinemtico inverso
de un manipulador de dos grados de libertad; As mismo, una vez solucionado el problema
cinemtico inverso, se realiz la generacin de su trayectoria de movimiento dinmica y
posteriormente su control, mediante el mtodo del par calculado, con el cual se logr un excelente
seguimiento de la trayectoria de movimiento. Por otro lado, se aplic ANFIS a la solucin del
problema cinemtico inverso de un manipulador plano de tres grados de libertad, en cual se observ
que se obtienen buenos resultados para la identificacin de 1, 2 y 3. Finalmente, se resolvi la
cinemtica inversa de un manipulador con movimiento espacial de tres grados de libertad, en el cual
tambin se obtuvieron resultados precisos dentro del margen de error permitido.
114
Anlisis y Discusin de Resultados
El siguiente esquema presenta de manera breve las principales etapas que intervienen en la solucin
del problema cinemtico inverso del presente trabajo de investigacin:
Los tiempos de entrenamiento de las dos redes neuro-difusas para predecir 1 y 2, respectivamente,
son los siguientes:
Red neuro-difusa 1: 13.128562 segundos
Red neuro-difusa 2: 12.362061 segundos
La siguiente tabla muestra los resultados obtenidos al comparar las salidas 1 y 2 inferidas por
ANFIS y las salidas 1 y 2 que proporciona el mtodo algebraico de solucin.
Posicin Tiempo de
Posicin Error (%)
Mtodo de deseada ejecucin (s)
1* 2*
solucin
px py px py px py 1 2
El error que se produce entre 1 producido por ANFIS y 1 calculado por mtodos algebraicos se
muestra en la figura 5.2:
-3
x 10 Error entre Teta 1 predecido por ANFIS y Teta 1 calculado
12
10
4
Error
-2
-4
-6
-8
0 50 100 150 200 250 300 350 400 450
No. de pares de entrenamiento
Se puede ver claramente en la figura anterior que el error entre ambos mtodos es del orden de
milsimas, presentndose un error mximo de aproximadamente 10x10-3. Estos resultados
demuestran que la salida del sistema neuro-difuso, en este caso 1, es muy aproximada al valor
deseado, con lo cual se puede tener confiabilidad en los resultados obtenidos. Es muy importante
mencionar que el tipo de aplicacin a la que se someta el sistema neuro-difuso determinar si la
precisin obtenida es la ideal y por lo tanto aceptada como solucin. Si la precisin obtenida no es la
idnea se puede intentar minimizar el error de la red neuro-difusa, mediante el empleo de ms datos
de entrenamiento caractersticos del sistema a ser identificado, mayor nmero de funciones de
membresa, mayor nmero de pocas de entrenamiento, distintas funciones de membresa, etc., hasta
obtener la precisin requerida.
La figura 5.3 detalla el error obtenido al comparar la salida predecida de la red neuro-difusa y el
valor calculado mediante el mtodo algebraico tradicional. Se puede ver que el error en este caso es
ms alto que en el obtenido para 2, en donde el error estaba en el orden de milsimas. Aqu el error
est en el rango de centsimas y se encuentra un error mximo de 0.035. Nuevamente, como se
mencion anteriormente, el margen de error aceptable ser determinado por el tipo de aplicacin a la
que se someta el sistema neuro-difuso. Se puede explorar el funcionamiento del sistema cambiando
0.03
0.02
Error
0.01
-0.01
-0.02
0 50 100 150 200 250 300 350 400 450
No. de pares de entrenamiento
1
Error
-1
-2
-3
0 500 1000 1500 2000 2500 3000 3500
No. de puntos de la trayectoria
Figura 5.4 Error entre la trayectoria de posicin deseada y la trayectoria real de la articulacin 1
Como se puede observar en la figura 5.4, el error mximo que surge en el control de la trayectoria de
posicin de la articulacin uno es de 2.7 10-3. Sin embargo, se puede apreciar tambin que existe
una fluctuacin del valor del error a lo largo del seguimiento de la trayectoria. Es posible que se
tengan que ajustar los valores de las constantes de proporcionalidad y/o derivativa, con la finalidad
de sintonizar el controlador y hacerlo an ms estable.
x 10
-3 Error entre la trayectoria de posicin deseada y la trayectoria real de la articulacin 2
8
2
Error
-2
-4
-6
-8
0 500 1000 1500 2000 2500 3000 3500
No. de puntos de la trayectoria
Figura 5.5 Error entre la trayectoria de posicin deseada y la trayectoria real de la articulacin 2
La tabla siguiente detalla los resultados obtenidos mediante la aplicacin de ANFIS y el mtodo
numrico de Newton.
Posicin
Mtodo Posicin Error (%) Tiempo de ejecucin (s)
deseada
de 1*
2*
3*
solucin px py px py px py 1 2 3
ANFIS 0.5935 1.4628 1.0803 4.9566 10.0199 0.868 0.199 0.0092 0.0075 0.0113
Mtodo 5 10
numrico
5.0005 9.9998 0.01 0.002 0.0137 0.0137 0.0137
de 0.6941 0.8808 0.8331
Newton
ANFIS 0.6092 1.2406 0.7246 5.9807 11.0660 0.3216 0.6 0.0073 0.0080 0.0094
Mtodo 6 11
numrico
6.0004 10.9998 0.0066 0.0018 0.0136 0.0136 0.0136
de 0.6033 1.2472 0.7437
Newton
ANFIS 0.6941 0.8808 0.8331 6.9230 12.0664 1.1 0.5533 0.0088 0.0092 0.0091
Mtodo
numrico 7 12
0.6802 0.9049 0.7652 7 12.0002 0 0.0016 0.0141 0.0141 0.0141
de
Newton
*Valores de ngulos en radianes
La tabla siguiente muestra los resultados obtenidos mediante la aplicacin de ANFIS y el mtodo
numrico de Newton.
Tabla 5.3. Comparacin entre resultados obtenidos mediante ANFIS y el mtodo de Newton
Tiempo de ejecucin
Posicin deseada Posicin Error (%)
Mtodo (s)
de 1* 2* 3*
solucin
px py pz px py pz px py pz 1 2 3
ANFIS 0.2994 0.0556 0.2804 5.7042 1.7608 10.6007 0.074 0.045 0.0066 0.009 0.008 0.009
ANFIS 0.3016 0.0411 0.2618 5.6817 1.7675 10.5037 0.383 0.426 0.035 0.008 0.009 0.008
ANFIS 0.3031 -0.0348 0.6228 5.5633 1.7398 10.3807 0.655 0.582 0.089 0.009 0.008 0.009
Como se puede apreciar en las tablas 5.1 a 5.3, el tiempo de solucin para las variables en los tres
casos, una vez que la red ha sido entrenada, es menor que utilizando mtodos convencionales para la
solucin a la cinemtica inversa. Lo anterior confirma la pertinencia en el uso de un sistema basado
en redes neuro-difusas para un sistema cuyo espacio de solucin es no lineal.
5.3 Sumario
Durante el desarrollo del presente captulo se expusieron los resultados obtenidos al aplicar ANFIS a
la solucin del problema cinemtico inverso del manipulador plano de dos grados de libertad, se
observ que el error entre 1 y 2 identificados por ANFIS y 1 y 2 calculados por mtodo
algebraico es del orden de milsimas, por lo que se considera para este caso tolerable. As mismo se
demostr que el mtodo del par calculado es una buena estrategia para controlar el movimiento del
manipulador. La solucin del problema de la cinemtica inversa del manipulador plano de tres
grados de libertad presenta excelentes resultados al ser resuelto mediante ANFIS, siendo estos
resultados muy similares a los obtenidos mediante el mtodo numrico de Newton.
Finalmente, se observa que la aplicacin de ANFIS a la solucin del problema cinemtico inverso
para el manipulador con movimiento espacial de tres grados de libertad, demuestra en general
buenos resultados, siempre y cuando el rango de dominio de valores de las entradas sea pequeo y
dentro del espacio de trabajo del manipulador; ello, debido a que el generar un mapeo de puntos en
el espacio resulta en arreglos matriciales demasiado grandes, y en consecuencia se obtienen grandes
nmeros de pares de entrenamiento, lo cual se ve limitado por los recursos computacionales
disponibles.
123
Conclusiones y Recomendaciones para Trabajos Futuros
La solucin a la cinemtica inversa para los casos de estudio de manipuladores planos de dos y tres
grados de libertad se resolvi de manera satisfactoria y con bastante precisin en los resultados. Sin
embargo, se debe mencionar que la aplicacin de redes neuro-difusas a la identificacin y
aproximacin de alguna funcin, no obedece a ninguna regla procedimiento predeterminado, sino
que se determina primeramente la manera de generar los pares de entrenamiento. Esto es,
dependiendo el caso, laborioso y a veces complicado.
Por otro lado, se debe tambin experimentar la fusificacin de las entradas ntidas variando el
nmero y tipo de las funciones de membresa, de manera tal que stas representen lo ms fielmente
posible la naturaleza de los datos de entrenamiento. Ya estando en la etapa de entrenamiento de la
red se puede explorar tambin cul es el cambio que ocurre al variar el nmero de pocas de
entrenamiento. Una vez que se obtiene un error permisible tolerable, se ha efectuado entonces la
124
Conclusiones y Recomendaciones para Trabajos Futuros
Otro detalle que sera muy importante mencionar es el hecho del comportamiento de la red neuro-
difusa cuando se efecta la etapa de aprendizaje, al variar el valor de inicio del factor del filtro de
Kalman. La inicializacin de este factor es de trascendental importancia para la convergencia y
correcto entrenamiento de la red neuro-difusa. Se concluye que el valor elegido de este factor debe
ser un nmero bastante grande, el cual se determina a base de prueba y error hasta que se obtiene un
error permisible.
Para este caso el volumen de datos de entrenamiento es mucho mayor que en el caso anterior, debido
a que esta vez se har un mapeo entre tres entradas y una salida. La identificacin de la cinemtica
inversa del manipulador de tres grados de libertad result ser un caso ms complejo, ya que fue
necesario ser ms exhaustivo en el desarrollo de las redes neuro-difusas que lo solucionan. La
identificacin de 1, 2 y 3 fue muy exitosa.
125
Conclusiones y Recomendaciones para Trabajos Futuros
Con respecto al primer objetivo particular, establecer una metodologa para la generacin de datos
de entrenamiento que sirvan para entrenar a los sistemas neuro-difusos propuestos, fue necesario
establecer el estado del arte para comprender y aprender sobre las capacidades y limitaciones de los
sistemas neuro-difusos en el captulo 1. De igual manera, en el captulo 2 se establecieron los
fundamentos tericos necesarios que permitieron desarrollar algoritmos bsicos que se utilizaron
posteriormente en el captulo 3 para la implementacin de una metodologa para el entrenamiento de
un sistema neuro-difuso.
En lo referente a los siguientes objetivos particulares, que consideran el diseo de sistemas neuro-
difusos para los casos de estudio, objetivos particulares 2 y 3; y el anlisis dinmico para la
generacin y control de trayectorias planteado en objetivo particular 4. stos son resueltos en el
desarrollo presentado en el captulo 4, donde se resuelven los casos de estudio planteados utilizando
las herramientas desarrolladas.
Finalmente, en el captulo 5 se comparan los resultados obtenidos utilizando los sistemas neuro-
difusos propuestos contra resultados derivados de mtodos convencionales, como el algebraico y el
numrico de Newton. Confirmando la robustez del mtodo planteado basado en sistemas ANFIS.
Por ltimo, basado en cmo se resolvieron cada uno de los objetivos particulares, se puede concluir
que el objetivo general de esta tesis ha sido satisfecho completamente, pues se desarrollaron
herramientas adecuadas para la solucin al problema presentado.
126
Conclusiones y Recomendaciones para Trabajos Futuros
Desarrollar el ajuste de los parmetros antecedentes, es decir, los parmetros que cambian la forma
de las funciones de membresa. Esto forma parte del aprendizaje hbrido que emplean los sistemas
neuro-difusos para su entrenamiento. En el presente trabajo de investigacin nicamente se
ajustaron los parmetros consecuentes y los parmetros antecedentes se mantuvieron constantes a lo
largo del entrenamiento de la red.
127
Referencias
Referencias
ABB, R. (2007) 10 good reasons to invest in robots.
ALAVANDAR, S. & NIGAM, M. J. (2008) Inverse Kinematics Solution of a 3 DOF Planar Robot
using ANFIS. International Journal of Computers, Communications and Control, pp. 83-88.
ARIMOTO, S. & MIYAZAKI, F. (1985) "Stability and Robustness of PID Feedback Control for
Robot Manipulators of Sensory Capability". Third International Symposium of Robotics
Research. Gouvieux, Francia.
BIDAUD, P. & BEN AMAR, F. (2006) 5th. International Conference on Climbing and Walking
Robots and the Support Technologies for Mobile Machines.
CRAIG, J. J. (1955) Introduction to Robotics: Mechanics and Control, EUA, Addison-Wesley.
CRAIG, J. J. (1988) Adaptive Control of Mechanical Manipulators, EUA.
DENAVIT, J. (1956) Description and Displacement Analysis of Mechanisms Based on 2 x 2 Dual
Matrices. Mechanical Engineering. Evanston, Ill., Northwestern U.
DENAVIT, J. & HARTENBERG, R. S. (1955) A Kinematic Notation for Lower-Pair Mechanisms
Based on Matrices. Journal of Applied Mechanics, pp. 215-221.
FAUSETT, L. V. (1999) Applied Numerical Analysis using Matlab, Upper Saddle River, NJ.
FU, K. S., GONZLEZ, R. C. & LEE, C. S. G. (1988) Robtica: Control, Deteccin, Visin e
Inteligencia, Espaa, Ed. McGraw Hill.
FUZZY LOGIC, T. (2004) Modeling Inverse Kinematics in a Robotic Arm.
HAGAN, M. T., DEMUTH, H. B. & BEALE, M. (1996) Neural Network Design, EUA, PWS
Publishing Company.
HASAN, A. T., HAMOUDA, A. M. S., ISMAIL, N. & AL-ASSADI, H. M. A. A. (2006) An
adaptive-learning algorithm to solve the inverse kinematics problem of a 6 DOF serial robot
manipulators. Advances in Engineering Software, Vol.37, pp.432-438.
HEBB, D. O. (1949) The Organization Of Behavior, New York, Wiley.
HER, M. G., CHEN, C. Y., HUNG, Y. C. & KARKOUB, M. (2002) Approximating a robot inverse
kinematics solution using fuzzy logic tuned by genetic algorithms. The International Journal
of advanced manufacturing technology, Vol. 20, pp. 375-380.
HOWARD, D. W. & ZILOUCHIAN, A. (1998) Application of fuzzy logic for the solution of
inverse kinematics and hierarchical control of robotic manipulators. Journal of Intelligent
and Robotic Systems, Vol. 23, pp. 217-247.
IIGO, R. & VIDAL, E. (2004) Robots industriales manipuladores, Barcelona Espaa, Ed.
Alfaomega.
JAFARI, S. & JARVIS, R. (2004) Robotic Hand-Eye Coordination: From Observation to
Manipulation. IN SOCIETY, I. C. (Ed.) 4th. International Conference on Hybrid Intelligent
Systems.
KIM, S. W., LEE, J. J. & SUGISAKA, M. (1993) Inverse kinematics solution based on fuzzy logic
for redundant manipulators. IN SYSTEMS, I. R. A. (Ed.) Proceedings of the 1993 IEEE/RSJ
International Conference on Robotics.
KOHLI, D. & SONI, A. H. (1975) Kinematic Analysis of Spatial Mechanisms via Successive Screw
Displacements. J. Engr. for Industry, Trans. ASME, vol. 2, pp. 739-747.
KOIVO, A. J. (1989) Fundamentals for Control of Robotic Manipulators, EUA.
KKER, R. (2005) Reliability-based approach to the inverse kinematics solution of robots using
Elman's networks. Engineering Applications of Artificial Intelligence, Vol.18, pp.685-693.
KKER, R., Z, C., AKAR, T. & EKIZ, H. (2004) A study of neural network based inverse
kinematics solution for a three-joint robot. Robotics and Autonomous Systems, Vol. 49,
pp.227-234.
128
Referencias
KONDO, T. (1986) Revised GMDH algorithm estimating degree of the complete polynomial.
Trans. Soc. Instrument and Control Engineers, Vol. 22, pp. 928-934.
KUO, B. (1996) Sistemas de control automtico, Mxico, D.F., Prentice Hall.
LEE, C. S. G. & ZIEGLER, M. (1984) A Geometric Approach in Solving the Inverse Kinematics of
PUMA Robots. IEEE Trans. Aerospace and Electronic Systems, vol. AES-20.
LIN, C. T. & LEE, G. (1996) Neural-Fuzzy Systems, EUA, Prentice Hall.
MARTN, P. & MILN, J. D. R. (2000) Robot arm reaching through neural network inversions and
reinforcement learning. Robotics and Autonomous Systems, Vol. 31, pp.227-246.
MATLAB (2004) Help.
MCCULLOCH, W. S. & PITTS, W. (1943) A logical Calculus of Ideas Immanent in Nervous
Activity. Bull. Math. Biophys., 5, pp. 115-133.
NAKAJIMA, M., OKADA, T., HATTORI, S. & MOROOKA, Y. (1993) "Application of pattern
recognition and control technique to shape control of the rolling mill". Hitachi Review, 75:2,
9-12.
NEDUNGADI, A. (1991) Application of fuzzy logic to solve the robot inverse kinematics problem.
Proceedings of the 4th. World Conference on Robotics Research.
NIKU, S. B. (2001) Introduction to Robotics:Analysis, Systems, Applications
Upper Saddle River, New Jersey, Prentice Hall
OGATA, K. (2003) Ingeniera de control moderna, Madrid, Espaa, Pearson Prentice Hall
OYAMA, E., AGAH, A., MACDORMAN, K. F., MAEDA, T. & TACHI, S. (2001) A modular
neural network arquitecture for inverse kinematics model learning. Neurocomputing, Vol.
38-40, pp.797-805.
PASSINO, K. M. & YURKOVICH, S. (1998) FUZZY CONTROL, EUA, Addison-Wesley.
PAUL, R. P., SHIMANO, B. E. & MAYER, G. (1981) Kinematic Control Equations For Simple
Manipulators. IEEE Trans. Systems, Man and Cybern., Vol. SMC-11, pp. 449-455.
PAUL, R. P. & STEVENSON, C. N. (1983) "Kinematics of Robot Wrists". The International
Journal of Robotics Research, Vol. 2, pp. 31-38.
ROGER JANG, J. S. (1993) ANFIS: Adaptive-Network-Based Fuzzy Inference System. IEEE
TRANSACTIONS ON SYSTEMS, MAN AND CYBERNETICS, Vol. 23, pp. 665-85.
ROGER JANG, J. S., CHUEN-TSAI, S. & EIJI, M. (1997) Neuro-Fuzzy and Soft Computing
A Computational Approach to Learning and Machine Intelligence, Upper Saddle River, NJ,USA.
ROGER JANG, J. S. & GULLEY, N. (2007) MATLAB Fuzzy Logic Toolbox.
SAHOO, N. C., PANDA, S. K. & DASH, P. K. (2000) A Current Modulation Scheme for Direct
Torque Control of Switched Reluctance Motor using Fuzzy Logic. Mechatronics, The
Science of Intelligent Machines, vol. 10, pp. 353-370.
SLOTINE, J. J. E. & LI, W. (1987) "On the Adaptive Control of Robot Manipulators". IJRR, Vol. 6,
No. 3, pp. 49-59.
SPONG, M. W. & VIDYASAGAR, M. (1999) Robot Dynamics and Control, EUA, Ed. Wyley.
SUGENO, M. & KANG, G. T. (1988) Structure Identification of Fuzzy Model. Fuzzy Sets and
Systems, Vol. 28, pp. 15-33.
TAKAGI, T. & SUGENO, M. (1985) Fuzzy Identification of Systems and Its Application to
Modeling and Control. IEEE, TRANSACTIONS ON SYSTEMS, MAN AND CYBERNETICS,
Vol. SMC-15, pp. 116-32.
TEJOMURTULA, S. & KAK, S. (1999) Inverse kinematics in Robotics using neural networks
Information Sciences, Vol.116, pp.147-164.
129
Referencias
UICKER, J. J., DENAVIT, J. & HARTENBERG, R. S. (1964) An Iterative Method for the
Displacement Analysis of Spatial Mechanisms. Trans. ASME, J. Appl. Mech., vol. 31, pp.
309-314.
WANG, H. R. & LI, Y. (2003) A new solution for inverse kinematics based on neural network.
International Conference on Machine Learning and Cybernetics.
XU, Y. & NECHYBA, M. (1993) Fuzzy inverese kinematic mapping: Rule generation, efficiency
and implementation. Proceedings of the International Conference on Intelligent Robots and
Systems.
YANG, A. T. & FREUDENSTEIN, R. (1964) Application of Dual Number Quaternian Algebra to
the Analysis of Spatial Mechanisms. Trans. ASME, J. Appl. Mech., vol. 31, pp. 152-157.
ZADEH, L. A. (1975) The concept of a linguistic variable and its application to approximate
reasoning. Inform. Sci., Vol. 8, pp. 199-249.
ZADEH, L. A. (1994) Soft Computing and Fuzzy Logic. . IEEE Software, Vol. 11, pp. 48-56.
130
Anexos
ANEXOS
131
Anexos
Anexos.
Anexo 1. Cdigo desarrollado
%Difusificacin(Capa 1)
a1=3.816; b1=1.633; c1=-3.881;
a2=3.55; b2=2.009; c2=1.472;
a3=3.209; b3=1.648; c3=8.829;
a4=2.505; b4=1.798; c4=15.11;
a5=2.383; b5=2.29; c5=0.05279;
a6=2.427; b6=1.748; c6=4.785;
a7=2.766; b7=1.958; c7=10.25;
a8=2.392; b8=1.812; c8=15.19;
o11(i)=gbellmf(x(i),[a1 b1 c1]); o12(i)=gbellmf(x(i),[a2 b2 c2]);
o13(i)=gbellmf(x(i),[a3 b3 c3]); o14(i)=gbellmf(x(i),[a4 b4 c4]);
o15(i)=gbellmf(y(i),[a5 b5 c5]); o16(i)=gbellmf(y(i),[a6 b6 c6]);
o17(i)=gbellmf(y(i),[a7 b7 c7]); o18(i)=gbellmf(y(i),[a8 b8 c8]);
%Fuerza de disparo de las reglas,operador T-norm(Capa 2)
o21(i)=o11(i)*o15(i); o22(i)=o11(i)*o16(i); o23(i)=o11(i)*o17(i);
o24(i)=o11(i)*o18(i); o25(i)=o12(i)*o15(i); o26(i)=o12(i)*o16(i);
o27(i)=o12(i)*o17(i); o28(i)=o12(i)*o18(i); o29(i)=o13(i)*o15(i);
o210(i)=o13(i)*o16(i); o211(i)=o13(i)*o17(i); o212(i)=o13(i)*o18(i);
o213(i)=o14(i)*o15(i); o214(i)=o14(i)*o16(i); o215(i)=o14(i)*o17(i);
o216(i)=o14(i)*o18(i);
O(i)=o21(i)+o22(i)+o23(i)+o24(i)+o25(i)+o26(i)+o27(i)+o28(i)+o29(i)+o210(i)+o211(i)+o212(i)+o213(i)+
o214(i)+o215(i)+o216(i);
o31(i)=o21(i)/O(i); o32(i)=o22(i)/O(i); o33(i)=o23(i)/O(i); o34(i)=o24(i)/O(i);
o35(i)=o25(i)/O(i); o36(i)=o26(i)/O(i); o37(i)=o27(i)/O(i); o38(i)=o28(i)/O(i);
o39(i)=o29(i)/O(i); o310(i)=o210(i)/O(i); o311(i)=o211(i)/O(i);
o312(i)=o212(i)/O(i); o313(i)=o213(i)/O(i);o314(i)=o214(i)/O(i);
o315(i)=o215(i)/O(i); o316(i)=o216(i)/O(i);
%Formacin de la matriz A
A(1,1)=o31(i)*x(i); A(1,2)=o31(i)*y(i); A(1,3)=o31(i);
A(1,4)=o32(i)*x(i); A(1,5)=o32(i)*y(i); A(1,6)=o32(i);
A(1,7)=o33(i)*x(i); A(1,8)=o33(i)*y(i); A(1,9)=o33(i);
132
Anexos
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
133
Anexos
x = 5:0.1:7; %
y = 10:0.1:12; %
[X, Y] = meshgrid(x,y);
c2 = (X.^2 + Y.^2 - long1^2 - long2^2)/(2*long1*long2);
s2 = sqrt(1 - c2.^2);
THETA2_C = atan2(s2, c2); THETA2_C=THETA2_C(:);
k1 = long1 + long2.*c2;
k2 = long2*s2;
THETA1_C = atan2(Y, X) - atan2(k2, k1); THETA1_C=THETA1_C(:);
X=X(:);
Y=Y(:);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Difusificacin(Capa 1)
a1=3.816; b1=1.633; c1=-3.881;
a2=3.55; b2=2.009; c2=1.472;
a3=3.209; b3=1.648; c3=8.829;
a4=2.505; b4=1.798; c4=15.11;
a5=2.383; b5=2.29; c5=0.05279;
a6=2.427; b6=1.748; c6=4.785;
a7=2.766; b7=1.958; c7=10.25;
a8=2.392; b8=1.812; c8=15.19;
o11(i)=gbellmf(X(i),[a1 b1 c1]); o12(i)=gbellmf(X(i),[a2 b2 c2]); o13(i)=gbellmf(X(i),[a3
b3 c3]); o14(i)=gbellmf(X(i),[a4 b4 c4]);
o15(i)=gbellmf(Y(i),[a5 b5 c5]); o16(i)=gbellmf(Y(i),[a6 b6 c6]); o17(i)=gbellmf(Y(i),[a7
b7 c7]); o18(i)=gbellmf(Y(i),[a8 b8 c8]);
%Fuerza de disparo de las reglas,operador T-norm(Capa 2)
o21(i)=o11(i)*o15(i); o22(i)=o11(i)*o16(i); o23(i)=o11(i)*o17(i); o24(i)=o11(i)*o18(i);
o25(i)=o12(i)*o15(i); o26(i)=o12(i)*o16(i); o27(i)=o12(i)*o17(i); o28(i)=o12(i)*o18(i);
o29(i)=o13(i)*o15(i); o210(i)=o13(i)*o16(i); o211(i)=o13(i)*o17(i); o212(i)=o13(i)*o18(i);
o213(i)=o14(i)*o15(i); o214(i)=o14(i)*o16(i); o215(i)=o14(i)*o17(i); o216(i)=o14(i)*o18(i);
%Normalizacin de las fuerzas de disparo(Capa 3)
O(i)=o21(i)+o22(i)+o23(i)+o24(i)+o25(i)+o26(i)+o27(i)+o28(i)+o29(i)+o210(i)+o211(i)+o212(i)+o213(i)+
o214(i)+o215(i)+o216(i);
o31(i)=o21(i)/O(i); o32(i)=o22(i)/O(i); o33(i)=o23(i)/O(i); o34(i)=o24(i)/O(i);
o35(i)=o25(i)/O(i); o36(i)=o26(i)/O(i); o37(i)=o27(i)/O(i); o38(i)=o28(i)/O(i);
o39(i)=o29(i)/O(i); o310(i)=o210(i)/O(i); o311(i)=o211(i)/O(i); o312(i)=o212(i)/O(i);
o313(i)=o213(i)/O(i); o314(i)=o214(i)/O(i); o315(i)=o215(i)/O(i); o316(i)=o216(i)/O(i);
134
Anexos
THETA1_ANFIS(i)=o41(i)+o42(i)+o43(i)+o44(i)+o45(i)+o46(i)+o47(i)+o48(i)+o49(i)+o410(i)+o411(i)+o412(
i)+o413(i)+o414(i)+o415(i)+o416(i);
end
THETA1_ANFIS=THETA1_ANFIS';
ERROR = THETA1_C - THETA1_ANFIS;
plot(ERROR);
ylabel('THETA1_Calculado - THETA1_ANFIS');
title('theta1_Calculado - theta1_ANFIS');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:epocas
%Difusificacin(Capa 1)
a1=3.439; b1=1.937; c1=-4.115;
a2=3.468; b2=1.74; c2=2.184;
a3=3.79; b3=2.113; c3=8.631;
a4=3.056; b4=1.662; c4=15.31;
a5=2.678; b5=1.798; c5=0.05146;
a6=2.931; b6=2.09; c6=5.215;
a7=3.124; b7=2.153; c7=10.26;
a8=2.224; b8=1.525; c8=15.49;
o11(i)=gbellmf(x(i),[a1 b1 c1]); o12(i)=gbellmf(x(i),[a2 b2 c2]);
o13(i)=gbellmf(x(i),[a3 b3 c3]); o14(i)=gbellmf(x(i),[a4 b4 c4]);
o15(i)=gbellmf(y(i),[a5 b5 c5]); o16(i)=gbellmf(y(i),[a6 b6 c6]);
o17(i)=gbellmf(y(i),[a7 b7 c7]); o18(i)=gbellmf(y(i),[a8 b8 c8]);
%Fuerza de disparo de las reglas,operador T-norm(Capa 2)
o21(i)=o11(i)*o15(i); o22(i)=o11(i)*o16(i); o23(i)=o11(i)*o17(i);
o24(i)=o11(i)*o18(i); o25(i)=o12(i)*o15(i); o26(i)=o12(i)*o16(i);
o27(i)=o12(i)*o17(i); o28(i)=o12(i)*o18(i); o29(i)=o13(i)*o15(i);
o210(i)=o13(i)*o16(i); o211(i)=o13(i)*o17(i);o212(i)=o13(i)*o18(i);
o213(i)=o14(i)*o15(i); o214(i)=o14(i)*o16(i); o215(i)=o14(i)*o17(i);
o216(i)=o14(i)*o18(i);
O(i)=o21(i)+o22(i)+o23(i)+o24(i)+o25(i)+o26(i)+o27(i)+o28(i)+o29(i)+o210(i)+o211(i)+o212(i)+o213(i)+
o214(i)+o215(i)+o216(i);
%Formacin de la matriz A
A(1,1)=o31(i)*x(i); A(1,2)=o31(i)*y(i); A(1,3)=o31(i);
A(1,4)=o32(i)*x(i); A(1,5)=o32(i)*y(i); A(1,6)=o32(i);
A(1,7)=o33(i)*x(i); A(1,8)=o33(i)*y(i); A(1,9)=o33(i);
A(1,10)=o34(i)*x(i); A(1,11)=o34(i)*y(i); A(1,12)=o34(i);
A(1,13)=o35(i)*x(i); A(1,14)=o35(i)*y(i); A(1,15)=o35(i);
A(1,16)=o36(i)*x(i); A(1,17)=o36(i)*y(i); A(1,18)=o36(i);
A(1,19)=o37(i)*x(i); A(1,20)=o37(i)*y(i); A(1,21)=o37(i);
A(1,22)=o38(i)*x(i); A(1,23)=o38(i)*y(i); A(1,24)=o38(i);
A(1,25)=o39(i)*x(i); A(1,26)=o39(i)*y(i); A(1,27)=o39(i);
A(1,28)=o310(i)*x(i); A(1,29)=o310(i)*y(i); A(1,30)=o310(i);
135
Anexos
out(i)=o41(i)+o42(i)+o43(i)+o44(i)+o45(i)+o46(i)+o47(i)+o48(i)+o49(i)+o410(i)+o411(i)+o412(i)+o413(i
)+o414(i)+o415(i)+o416(i);
end
plot(out,'r');hold on;plot(Teta2,'b');
%%%%%%%%%%%%%%%%%%%%%%
%Red entrenada para Teta 2
ciclos=441;
for i=1:ciclos
%Difusificacin(Capa 1)
a1=3.439; b1=1.937; c1=-4.115;
136
Anexos
O(i)=o21(i)+o22(i)+o23(i)+o24(i)+o25(i)+o26(i)+o27(i)+o28(i)+o29(i)+o210(i)+o211(i)+o212(i)+o213(i)+
o214(i)+o215(i)+o216(i);
o31(i)=o21(i)/O(i); o32(i)=o22(i)/O(i); o33(i)=o23(i)/O(i);
o34(i)=o24(i)/O(i); o35(i)=o25(i)/O(i); o36(i)=o26(i)/O(i);
o37(i)=o27(i)/O(i); o38(i)=o28(i)/O(i); o39(i)=o29(i)/O(i);
o310(i)=o210(i)/O(i); o311(i)=o211(i)/O(i); o312(i)=o212(i)/O(i);
o313(i)=o213(i)/O(i); o314(i)=o214(i)/O(i); o315(i)=o215(i)/O(i);
o316(i)=o216(i)/O(i);
137
Anexos
%Este algoritmo es el Mtodo del par calculado, con el cual se lleva a cabo el
%control del manipulador robtico planar de dos grados de libertad
clc; clear;
masa_1=0.8;
masa_2=0.4;
longitud_1=0.1;
longitud_2=0.05;
g=9.81;
%polinomio para la generacin de la trayectoria deseada continua sin via points
%Articulacin 1
theta_0=82.0851;
omega_0=0;
alfa_0=5;
theta_f=63.6819;
omega_f=0;
alfa_f=-5;
time=3;
c0=theta_0;
c1=omega_0;
c2=alfa_0/2;
c3=(20*theta_f-20*theta_0-(8*omega_f+12*omega_0)*time-(3*alfa_0-alfa_f)*time^2)/(2*time^3);
c4=(30*theta_0-30*theta_f+(14*omega_f+16*omega_0)*time+(3*alfa_0-2*alfa_f)*time^2)/(2*time^4);
c5=(12*theta_f-12*theta_0-(6*omega_f+6*omega_0)*time-(alfa_0-alfa_f)*time^2)/(2*time^5);
%Articulacin 2
theta2_0=-104.4775;
omega2_0=0;
alfa2_0=5;
theta2_f=-39.6461;
omega2_f=0;
alfa2_f=-5;
c0_2=theta2_0;
c1_2=omega2_0;
c2_2=alfa2_0/2;
c3_2=(20*theta2_f-20*theta2_0-(8*omega2_f+12*omega2_0)*time-(3*alfa2_0-alfa2_f)*time^2)/(2*time^3);
c4_2=(30*theta2_0-30*theta2_f+(14*omega2_f+16*omega2_0)*time+(3*alfa2_0-
2*alfa2_f)*time^2)/(2*time^4);
c5_2=(12*theta2_f-12*theta2_0-(6*omega2_f+6*omega2_0)*time-(alfa2_0-alfa2_f)*time^2)/(2*time^5);
time=0.001*(0:3000);
%Trayectoria para la articulacin 1
theta_1d=c0+c1.*time+c2.*time.^2+c3*time.^3+c4.*time.^4+c5.*time.^5;
omega_1d=c1+2*c2.*time+3*c3.*time.^2+4*c4.*time.^3+5*c5.*time.^4;
alfa_1d=2*c2+6*c3.*time+12*c4.*time.^2+20*c5.*time.^3;
%Trayectoria para la articulacin 2
theta_2d=c0_2+c1_2.*time+c2_2.*time.^2+c3_2.*time.^3+c4_2.*time.^4+c5_2.*time.^5;
omega_2d=c1_2+2*c2_2.*time+3*c3_2.*time.^2+4*c4_2.*time.^3+5*c5_2.*time.^4;
alfa_2d=2*c2_2+6*c3_2.*time+12*c4_2.*time.^2+20*c5_2.*time.^3;
for n=1:3001
D11(n)=((1/3)*masa_1*longitud_1^2+masa_2*longitud_1^2+(1/3)*masa_2*longitud_2^2+masa_2*longitud_1*lo
ngitud_2*cosd(theta_2d(n)));
D12(n)=((1/3)*masa_2*longitud_2^2+(1/2)*masa_2*longitud_1*longitud_2*cosd(theta_2d(n)));
D21(n)=D12(n);
D22(n)=((1/3)*masa_2*longitud_2^2);
h1(n)=-((1/2)*masa_2*longitud_1*longitud_2*sind(theta_2d(n)))*omega_2d(n)^2 -
(masa_2*longitud_1*longitud_2*sind(theta_2d(n)))*omega_1d(n)*omega_2d(n);
h2(n)=((1/2)*masa_2*longitud_1*longitud_2*sind(theta_2d(n)))*omega_1d(n)^2;
c1(n)=((1/2)*masa_1+masa_2)*g*longitud_1*cosd(theta_1d(n))+(1/2)*masa_2*g*longitud_2*cosd(theta_1d(n
)+theta_2d(n));
c2(n)=(1/2)*masa_2*g*longitud_2*cosd(theta_1d(n)+theta_2d(n));
138
Anexos
%Aceleracin calculada
Alfa1(n+1)=D11_i(n)*(torqueuno(n)-h1(n)-c1(n))+D12_i(n)*(torquedos(n)-h2(n)-c2(n));
Alfa2(n+1)=D21_i(n)*(torqueuno(n)-h1(n)-c1(n))+D22_i(n)*(torquedos(n)-h2(n)-c2(n));
%Velocidad angular calculada
Omega1(n+1)=Omega1(n)+Alfa1(n+1)*0.001;
Omega2(n+1)=Omega2(n)+Alfa2(n+1)*0.001;
%posicin angular calculada
Teta1(n+1)=Teta1(n)+Omega1(n+1)*0.001;
Teta2(n+1)=Teta2(n)+Omega2(n+1)*0.001;
end
Zeit=time(1:3001);
TETA1=Teta1(1:3001);
OMEGA1=Omega1(1:3001);
ALFA1=Alfa1(1:3001);
TETA2=Teta2(1:3001);
OMEGA2=Omega2(1:3001);
ALFA2=Alfa2(1:3001);
TETA1D=theta_1d(1:3001);
TETA2D=theta_2d(1:3001);
OMEGA1D=omega_1d(1:3001);
OMEGA2D=omega_2d(1:3001);
ALFA1D=alfa_1d(1:3001);
ALFA2D=alfa_2d(1:3001);
TORQUE1=torqueuno(1:3001);
TORQUE2=torquedos(1:3001);
%Clculo del error en el seguimiento de la trayectoria de posicin
ERROR1=TETA1-TETA1D;
ERROR2=TETA2-TETA2D;
%Obtencin de los grficos
plot(ERROR1),grid,title('ERROR 1'),xlabel('No. de puntos de la trayectoria'),ylabel('Error')
plot(Zeit,TETA1,'r',Zeit,TETA1D,'b'),grid,title('Articulacin 1'),xlabel('Tiempo
(segundos)'),ylabel('Posicin angular (grados)')
plot(Zeit,TORQUE1),grid,title('TORQUE 1'),xlabel('Tiempo (Segundos)'),ylabel('Torque 1 (N*m)')
plot(Zeit,TETA2,'r',Zeit,TETA2D,'b'),grid,title('Articulacin 2'),xlabel('Tiempo
(Segundos)'),ylabel('Posicin angular (rad)')
plot(ERROR2),grid,title('ERROR 2'),xlabel('No. de puntos de la trayectoria'),ylabel('Error')
plot(Zeit,TORQUE2),grid,title('TORQUE 2'),xlabel('Tiempo (Segundos)'),ylabel('Torque 2 (N*m)')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Este algoritmo generar la solucin a la cinemtica inversa del manipulador plano de tres grados de
libertad, mediante el empleo de ANFIS
clc;clear;
%Generacin de los datos de entrenamiento para las tres redes neuro-difusas
long1=10;
long2=5;
long3=1;
teta1=0:0.1:pi;
teta2=0:0.1:pi/2;
teta3=0:0.1:pi/2;
[Teta1,Teta2,Teta3]=meshgrid(teta1,teta2,teta3);
x=long1*cos(Teta1)+long2*cos(Teta1+Teta2)+long3*cos(Teta1+Teta2+Teta3);
y=long1*sin(Teta1)+long2*sin(Teta1+Teta2)+long3*sin(Teta1+Teta2+Teta3);
x=x(:);
139
Anexos
y=y(:);
plot(x,y,'r+');
Teta1=Teta1(:);
Teta2=Teta2(:);
Teta3=Teta3(:);
datos_1=[x y Teta1];
datos_2=[x y Teta2];
datos_3=[x y Teta3];
tic;teta1_anfis=anfis(datos_1,4,200);toc;
tic;teta2_anfis=anfis(datos_2,4,200);toc;
tic;teta3_anfis=anfis(datos_3,4,200);toc;
%Generacin de los datos de validacin para las tres redes neuro-difusas
x=5:0.1:7;
y=10:0.1:12;
[X Y]=meshgrid(x,y);
XY=[X(:) Y(:)];
teta1_predecido=evalfis(XY,teta1_anfis);
teta2_predecido=evalfis(XY,teta2_anfis);
teta3_predecido=evalfis(XY,teta3_anfis);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
long1=10;
long2=5;
long3=1;
px0=7;%% Asignacin de coordenadas cartesianas
py0=12;
tol=0.00001; %% Tolerancia asignada
max_ite=100;
% x_inicial=(pi/180)*[50 40 30]';
% x_inicial=(pi/180)*[30 60 40]';
x_inicial=(pi/180)*[40 40 40]';
n=1;
while(n<=max_ite)
f=[long1*cos(x_inicial(1,1))+long2*cos(x_inicial(1,1)+x_inicial(2,1))+long3*cos(x_inicial(1,1)+x_ini
cial(2,1)+x_inicial(3,1))-px0;
long1*sin(x_inicial(1,1))+long2*sin(x_inicial(1,1)+x_inicial(2,1))+long3*sin(x_inicial(1,1)+x_inicia
l(2,1)+x_inicial(3,1))-py0];
Jacob=[-long1*sin(x_inicial(1,1))-long2*sin(x_inicial(1,1)+x_inicial(2,1))-
long3*sin(x_inicial(1,1)+x_inicial(2,1)+x_inicial(3,1)) -long2*sin(x_inicial(1,1)+x_inicial(2,1))-
long3*sin(x_inicial(1,1)+x_inicial(2,1)+x_inicial(3,1)) -
long3*sin(x_inicial(1,1)+x_inicial(2,1)+x_inicial(3,1));
long1*cos(x_inicial(1,1))+long2*cos(x_inicial(1,1)+x_inicial(2,1))+long3*cos(x_inicial(1,1)+x_inicia
l(2,1)+x_inicial(3,1))
long2*cos(x_inicial(1,1)+x_inicial(2,1))+long3*cos(x_inicial(1,1)+x_inicial(2,1)+x_inicial(3,1))
long3*cos(x_inicial(1,1)+x_inicial(2,1)+x_inicial(3,1))];
y=-pinv(Jacob)*f;
%ye=-Jacob\f;
x_pos=x_inicial+y;
dif=norm(x_pos - x_inicial);
if dif <= tol
x=(x_pos);
%x=(x_pos)*(180/pi);
theta1=x(1,1); % Valor en radianes
theta2=x(2,1);
theta3=x(3,1);% Valor en radianes
disp('El mtodo convergi!!!')
return;
else
x_inicial=x_pos;
end
n=n+1;
end
Teta1=(180/pi)*theta1;
Teta2=(180/pi)*theta2;
Teta3=(180/pi)*theta3;
disp('El mtodo no convergi!!!!')
x=(x_pos)*(180/pi);
140
Anexos
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Este algoritmo generar la solucin a la cinemtica inversa del manipulador de tres grados de
libertad con movimiento espacial, mediante el empleo de ANFIS
clc;clear;
%Generacin de los datos de entrenamiento para las tres redes neuro-difusas
long1=10;
long2=5;
long3=1;
teta1=0:0.1:pi/4;
teta2=0:0.1:pi/4;
teta3=0:0.1:pi/4;
[Teta1,Teta2,Teta3]=meshgrid(teta1,teta2,teta3);
x=cos(Teta1).*(long3*cos(Teta2+Teta3)+long2*cos(Teta2));
y=sin(Teta1).*(long3*cos(Teta2+Teta3)+long2*cos(Teta2));
z=long3*sin(Teta2+Teta3)+long2*sin(Teta2)+long1;
x=x(:);
y=y(:);
z=z(:);
Teta1=Teta1(:);
Teta2=Teta2(:);
Teta3=Teta3(:);
datos_1=[x y z Teta1];
datos_2=[x y z Teta2];
datos_3=[x y z Teta3];
maxNumCompThreads(4);
tic;teta1_anfis=anfis(datos_1,5,150);toc;
% matlabpool open;
maxNumCompThreads(4);
tic;teta2_anfis=anfis(datos_2,5,150);toc;
maxNumCompThreads(4);
tic;teta3_anfis=anfis(datos_3,5,150);toc;
% matlabpool close;
%Generacin de los datos de validacin para las tres redes neuro-difusas
x=5.7:-0.01:5.6;
y=1.76:-0.01:1.75;
z=10.6:-0.01:10.39;
[X Y Z]=meshgrid(x,y,z);
XYZ=[X(:) Y(:) Z(:)];
tic;teta1_predecido=evalfis(XYZ,teta1_anfis);toc;
tic;teta2_predecido=evalfis(XYZ,teta2_anfis);toc;
tic;teta3_predecido=evalfis(XYZ,teta3_anfis);toc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Subrutina que permitir obtener la cinemtica inversa del manipulador de tres grados de libertad
%con movimiento espacial, empleando el mtodo numrico de Newton
clc;clear;
long1=10;
long2=5;
long3=1;
%Puntos cartesianos a alcanzar
px0=5.7;
py0=1.76;
pz0=10.6;
tol=0.00001; %% Tolerancia asignada
max_ite=100;
x_inicial=(pi/180)*[20 0 20]'; %Guess value
n=1;
while(n<=max_ite)
f=[cos(x_inicial(1,1))*(long3*cos(x_inicial(2,1)+x_inicial(3,1))+long2*cos(x_inicial(2,1)))-
px0; sin(x_inicial(1,1))*(long3*cos(x_inicial(2,1)+x_inicial(3,1))+long2*cos(x_inicial(2,1)))-py0;
long3*sin(x_inicial(2,1)+x_inicial(3,1))+long2*sin(x_inicial(2,1))+long1-pz0];
%J=sin((x_inicial(1,1));
J=[-
sin(x_inicial(1,1))*(long3*cos(x_inicial(2,1)+x_inicial(3,1))+long2*cos(x_inicial(2,1))),
cos(x_inicial(1,1))*(-long3*sin(x_inicial(2,1)+x_inicial(3,1))-long2*sin(x_inicial(2,1))),
cos(x_inicial(1,1))*(-long3*sin(x_inicial(2,1)+x_inicial(3,1)));
cos(x_inicial(1,1))*(long3*cos(x_inicial(2,1)+x_inicial(3,1))+long2*cos(x_inicial(2,1))),
sin(x_inicial(1,1))*(-long3*sin(x_inicial(2,1)+x_inicial(3,1))-long2*sin(x_inicial(2,1))),
sin(x_inicial(1,1))*(-long3*sin(x_inicial(2,1)+x_inicial(3,1)));
141
Anexos
0,
long3*cos(x_inicial(2,1)+x_inicial(3,1))+long2*cos(x_inicial(2,1)),
long3*cos(x_inicial(2,1)+x_inicial(3,1))];
y=-pinv(J)*f;
%ye=-J\f;
x_pos=x_inicial+y;
dif=norm(x_pos - x_inicial);
if dif <= tol
x=(x_pos);
%x=(x_pos)*(180/pi);
theta1=x(1,1); % Valor en radianes
theta2=x(2,1); % Valor en radianes
theta3=x(3,1);
disp('El mtodo convergi!!!')
return
else
x_inicial=x_pos;
end
n=n+1;
end
Teta1=theta1*(180/pi);
Teta2=theta2*(180/pi);
Teta3=theta3*(180/pi);
disp('El mtodo no convergi!!!!')
x=(x_pos)*(180/pi);
142
Anexos
Anexo 2. Publicaciones.
143