Sunteți pe pagina 1din 86

Universidad de los Andes

Postgrado EMMA-I

Optimizacion del Espacio de Trabajo Diestro de


Robot Paralelos Planos Utilizando Algoritmos
Evolutivos

Lic. Antonio Jose Ramirez Matheus

Asesor
Dr.Ing. Miguel Angel Daz Rodrguez

29 de marzo de 2017
2
Resumen

Los robot paralelos tienen como principal caracterstica su estructura que consiste en
varias cadena cinematicas cerradas. Este tipo de estructura permite una mejor distribucion
de las cargas soportadas. As, los robots paralelos presumen unas caractersticas muy
ventajosas en cuanto a la relacion entre el: peso del robot y el peso de la carga ubicada
en el elemento terminal, velocidad, rigidez o precision. Como principal contrapartida, los
robots paralelos tienen un espacio de trabajo muy reducido con respecto a los robots
serie. Una de las principales necesidades de la industria es que los robot paralelos tenga
maxima area alcanzable (espacio de trabajo) pero que ademas tenga agilidad (llamada en
esta tesis dexteridad).
Muchos de las tareas de la industria pueden ser realizada por robot planos, donde el
movimiento de cada uno de los puntos puede ser visto en un mismo plano de proyeccion.
En este sentido, el robot plano de 2 Grados de Libertad (GdL) y de 5 eslabones unidos por
pares de revoluta (5R) representa unos de los mas estudiados. En este trabajo, se busca
disenar este tipo de robot de forma tal que su area alcanzable sea la maxima posible y
ademas una optima dexteridad. Para ello, se toma ventaja de la tecnica de optimizacion
llamada Algoritmos Geneticos que permite determinar maximos globales sin quedar la
solucion atrapada en un mnimo local.
Para ello se inicia con una introduccion de la estructura de la tesis y sus objetivos.
Luego se presenta una breve introduccion del marco teorico. Tambien se desarrollan las
ecuaciones cinematicas a utilizar en los algoritmos evolutivos (Algoritmos Geneticos AG).
Se desarrollan dos ejemplos de aplicacion donde se optimiza el area de trabajo alcanzable
y el area diestra. Como aplicacion se selecciona el robot de 2 (GdL) 5R para que realice
tareas como mesa de corte en el plano x-y. Se busca que el robot tenga mayor espacio de
trabajo con cierta dexteridad.
Debido a que el metodo de AG depende de un conjunto de parametros, se ha hecho
un estudio exhaustivo de ellos y como resultado se obtiene el conjunto de parametros que
logran que el algoritmo converja a un mismo punto. Luego al aplicar el algoritmo se ha
encontrado que no se puede optimizar el espacio de area alcanzable por separado porque
el robot conseguido su dexteridad es muy baja siendo un robot torpe.
Finalmente, se presenta un camino a seguir para encontrar los valores del Algoritmo
Genetico para su convergencia al maximo de area alcanzable y maximo de dexteridad
buscando un termino medio entre las dos, es decir que el area de dexteridad sea un area
apreciable.

3
4
Indice general

Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1. Introduccion 9
1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3. Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.1. Objetivos Principal . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.2. Objetivos Especficos . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6. Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7. Extructura de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2. Marco Teorico 17
2.1. Algoritmos geneticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2. Por que utilizar algoritmos geneticos en la optimizacion? . . . . . . . . . . 18
2.3. Definicion de algoritmo genetico . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4. Terminologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1. Cromosoma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.2. Genotipo y Fenotipo . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.3. Fitness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.4. Poblacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.5. Operadores geneticos . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5. Funcionamiento de una algoritmo genetico . . . . . . . . . . . . . . . . . . 25
2.5.1. Pasos de un Algoritmo genetico Simple . . . . . . . . . . . . . . . . 25
2.6. Un Ejemplo de Implementacion . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7. Cinematica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7.1. Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7.2. Robot Paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7.3. Grado de Libertad. . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.7.4. Grados de libertad en mecanismos planos. . . . . . . . . . . . . . . 28
2.7.5. Espacio de trabajo Alcanzable . . . . . . . . . . . . . . . . . . . . . 29
2.7.6. Jacobiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.7.7. Espacio de trabajo Diestro . . . . . . . . . . . . . . . . . . . . . . . 29
2.7.8. Robot paralelo plano . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5
6 INDICE GENERAL

3. Ecuaciones Cinematicas 31
3.1. Robot paralelo plano. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2. Ecuaciones de Cinematica . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.1. Funcion trigonometrica de un angulo cualquiera . . . . . . . . . . . 32
3.3. Jacobiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4. Casos de Estudio 39
4.1. Primer caso de estudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2. Area Alcanzable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3. Mallado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4. Discretizacion del modelo para determinar el Area Alcanzable . . . . . . . 42
4.5. Ajuste del Algoritmo Genetico para area alcanzable . . . . . . . . . . . . . 45
4.5.1. Estudio de PC para area alcanzable . . . . . . . . . . . . . . . . . . 45
4.5.2. Estudio de Porcentaje de Mutacion para area alcanzable . . . . . . 46
4.5.3. Estudio de Longitud de Codigo Binario (SL) para area alcanzable . 46
4.5.4. Estudio del Tamano de la poblacion y de generaciones (iter) para
area alcanzable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.6. Optimizacion del Area Alcanzable . . . . . . . . . . . . . . . . . . . . . . . 48
4.7. Segundo caso de estudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.8. Estudio de Dexteridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.8.1. Mallado de dexteridad . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.8.2. Discretizacion del modelo para determinar el Area de Dexteridad . 50
4.9. Ajuste del Algoritmo Genetico para Dexteridad . . . . . . . . . . . . . . . 53
4.9.1. Estudio de PC para Dexteridad . . . . . . . . . . . . . . . . . . . . 53
4.9.2. Estudio de Porcentaje de Mutacion para Dexteridad . . . . . . . . . 53
4.9.3. Estudio de Longitud de Codigo Binario (SL) para Dexteridad . . . 54
4.9.4. Estudio tamano de la poblacion y de generaciones(iter) para Dex-
teridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.10. Optimizacion del Area de Dexteridad primer caso de estudio . . . . . . . . 57
4.11. Optimizacion del Area Dexteridad del segundo caso de estudio . . . . . . . 57

5. Conclusiones 61
5.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.2. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A. Solucion algebraica por reduccion a polinomios 63

B. Codigo de GA 65
B.1. Algoritmo Genetico (AG) . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
B.1.1. Encoding (Codificacion) . . . . . . . . . . . . . . . . . . . . . . . . 65
B.2. Decoding (Descodificacion) . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
B.3. Selection(Seleccion) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
B.4. Crossover (Cruce) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
B.5. Mutation(Mutacion) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
INDICE GENERAL 7

C. Algortimo para Ejecucion de la Optimizacion 71


C.1. MainGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
C.2. Funname (evaluacion en la funcion objetivo) . . . . . . . . . . . . . . . . . 73
C.3. Main workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
C.4. Workspace5R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
C.5. Jacob5R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
C.6. Result (resultado) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8 INDICE GENERAL
Captulo 1

Introduccion

En pocos anos, la robotica ha pasado de ser una mera imaginacion de los seres humanos
a una realidad del mundo actual y del mercado productivo. En los primeros anos era algo
incierto su futuro llegando a la era actual a una realidad imprescindible de las industrias.
Dentro de los tipos de robot estan los robot paralelos que consisten en un sistema
mecanico donde dos plataformas estan conectadas por al menos dos cadenas cinematicas
abiertas. De esta forma, las cadenas cinematicas abiertas o piernas proporcionan movi-
miento relativo entre la plataforma movil y la plataforma base fija. Las piernas dan una
mayor rigidez al robot, a expensas de limitar su espacio de trabajo. Haciendo un smil con
el cuerpo humano, un robot serial o cadena cinematica abierta puede ser vista como un
solo brazo. El brazo puede realizar diversas tareas; mas sin embargo, cuando se requiere
de mayor fuerza o de precision el ser humano emplea los dos brazos. Cuando se utilizan
los dos brazos se esta en presencia de un robot paralelo, donde la base es el torso y la pla-
taforma movil es el elemento que esta siendo sujetado con las manos. Siguiendo este smil
puede entenderse que el robot paralelo gana mayor capacidad de carga, mayor precision
pero pierda capacidad de alcance en el movimiento de las brazos (espacio de trabajo o
workspace). Debido las ventajas que presenta (mayor rigidez, precision), los robot parale-
los se han convertido en una alternativa indispensable para el diseno de robots tanto en
el mundo academico como en la industria (Pierrot et al., 2009).
A la par del desarrollo de la robotica y los robot paralelos, ha habido un rapido y
creciente desarrollo en la aplicacion de algoritmos y procesos por computadora en los
siguientes campos de investigacion: 1) la teora mecanismo, 2) analisis de la movilidad,
3) sntesis dimensional, 4) la cinematica y el modelo dinamico, y 5) la optimizacion del
diseno. La optimizacion cinematica del mecanismo consiste en determinar las dimensiones
que permitan obtener un mejor desempeno del robot, como por ejemplo, conseguir un
robot cuyas dimensiones conlleven a obtener un espacio de trabajo maximo. Este es el
problema abordado en este trabajo que se explica en el siguiente parrafo.
Se tiene de partida un robot plano de 2 grados de libertad de 5 barras unidas
con juntas de revoluta (5R), se requiere para una aplicacion en particular
que el diseno del robot permita abarcar el mayor espacio de trabajo y que
ademas presente un buen desempeno cinematico. Para resolver la tarea se va
a tomar ventaja de tecnicas de optimizacion basadas en algoritmos evolutivos

9
10 CAPITULO 1. INTRODUCCION

(Algoritmos Geneticos, AG), ya que estas tecnicas permiten localizar maximos


globales y as evitar conseguir soluciones optimas locales.

Dado que el AG es un metodo que depende de la seleccion de un conjunto de parame-


tros (parametros del algoritmo tales como porcentaje de crossover, mutacion, longitud
del codigo binario, por mencionar solo algunos), el aporte de este trabajo es encontrar el
conjunto de parametros que permitan obtener el maximo espacio de trabajo de un robot
paralelo plano de 2 grados de libertad.
Antes de continuar con el desarrollo del trabajo se deben mencionar algunas investi-
gaciones previas importantes.

1.1. Antecedentes
Merlet (1997) presenta el metodo de un diseno optimo de manipulador paralelo de
tipo plataforma Gough. Este tipo de manipulador es bien conocido y el primer prototipo
fue propuesto por Gough de all el nombre. Las principales caracterstica del robot son su
alta presicion y alta carga nominal. Se utiliza muy a menudo como sistema de simulacion
de vuelo. Esta arquitectura muy inusual es dificil lograr un diseno optimo, es decir, la
geometra del Robot que resulte ser la mejor con respecto a algun criterio es una tarea
difcil. En la metodologa de diseno propuesta se propone 1) las especificaciones de diseno
incluyen un requisito el espacio de trabajo 2)Primero se determina todas las posibles
geometras del robot, y 3) de entre todas estas geometras se realiza un analisis numerico
con el objeto de determinar el robot que cumple en el mejor otras especificaciones de diseno
(por lo tanto, la metodologa es espacio de trabajo orientado). Este trabajo ayudara a la
tesis para desarrollar la estrategia de optimizar el espacio de trabajo.
Merlet (2006), presenta algunas de las definiciones importantes que se deben tener
presente en el diseno de robot paralelos como lo son: Jacobiano, manipulabilidad, numero
de condicion y precision de robot paralelos. El autor muestra como la metodologa de di-
seno optimo tiene que considerar los indices cinematicos. En el trabajo se revisan tambien
como estos indices son apropiados para robot paralelos. Esto ayudara a la tesis hacer una
revision de distintos indices de cinematica.
Liu et al. (2006) establece que el analisis y el diseno optimo son dos cuestiones impor-
tantes en el desarrollo de un mecanismo paralelo. El analisis de la cinematica y espacio de
trabajo son dos problemas modelo basicos para definir y evaluar la ejecucion de un meca-
nismo. Los problemas involucradas en el diseno optimo del mecanismo son evaluacion de
desempeno y la sntesis dimensional. En el proceso de diseno optimo podran participar
varios criterios de rendimiento para un proposito de diseno tales como espacio de trabajo,
singularidades, destreza y indice de acondicionamiento. Tales mecanismo con estructura
simetrica han atraido a muchos investigadores que han estudiado su analisis de porcion de
espacio de trabajo, los modos de montaje, la singularidad, atlas de rendimiento y diseno
cinematico. Este trabajo permite establecer los distintos criterios de rendimientos que son
usados en el diseno de robot paralelos.
Laribi et al. (2007) realiza un analisis dimensional de un robot Delta para un prescrito
espacio de trabajo donde se muestra la determinacion del espacio de trabajo y la formu-
1.1. ANTECEDENTES 11

lacion del problema de optimizacion usando tecnicas de algoritmos geneticos y algunas


aplicaciones. En esta tesis tambien se usaran Algoritmos Geneticos.
Wu et al. (2007) menciona que los mecanismos paralelos son capaces de ser muy rapi-
dos y precisos movimientos, ademas poseen caractersticas de alta rigidez a lo largo del
espacio de trabajo, tiene menor inercia y pueden manipular cargas mas pesadas que su
contraparte de series. En el trabajo estudian mecanismos planos de 2 DOF existentes
son bien conocidos de 5 barras con actuadores prismaticos o actuadores de revoluta. La
metodologa del diseno cinematico es una de las partes de la teora de diseno cinematico
para mecanismos paralelos. El diseno optimo puede basarse en criterios de evaluacion que
implica rigidez destreza o indice de acondicionamiento global. El trabajo describe un me-
canismo paralelo plano con 2-DOF traslacion la cual difiere del convencional mecanismo
de 5 barras de estructura paralelograma usada en cada cadena. Se analizan para obte-
ner un diseno cinematico optimo minimizando un indice de acondicionamiento global y
los resultados dan las longitudes de diseno optimo. El trabajo utiliza optimizacon para
minimizar el indice de acondicionamiento global para encontrar las longitudes de diseno
optimo que es algo parecido al que se quiere desarrollar en esta tesis, aunque esta tesis se
maximiza el indice de dexteridad.
Otra investigacion relevante que se debe citar es la de Lou et al. (2008) donde se
expone como los manipuladores son ampliamente usados como candidatos ideales para
su uso en la industria de fabricacion por su potenciales superiores sobre su homologo
de series. Sin embargo, tiene relativamente pequeno espacio de trabajo. Entre todas las
medidas de cinematica el espacio de trabajo es una de la mas importantes indice en el de
un manipulador. El articulo se expone como maximizar una efectivo espacio de trabajo
donde utilizan un indice de destreza para medir la eficacia del espacio de trabajo. El
trabajo muestra como se usan tecnicas de busqueda directa para la optimizacion, el cual
es un claro ejemplo de lo que intentamos hacer en esta tesis.
Stan et al. (2008) explica como la mayora de estructuras mecanicas se basan en ci-
nematica de serie pero los mecanismos paralelos traen muchos beneficios potenciales como
maquinas de herramientas pero tambien causan muchos inconvenientes en el proseso de di-
seno y mayores esfuerzos por el control numerico y calibracion. Las maquinas cinematicas
paralelas parecen capaces de responder a necesidades de las industria en terminos de su au-
tomatizacion. Su estructura cinematica cerrada les permite obtener alta rigidez y realizar
movimientos de alta velocidad. Un inconveniente con sus contrapartes de serie es tipica-
mente su reducido espacio de trabajo. En teora la cinematica paralela ofrece por ejemplo
mayor rendimiento de aceleracion que las estructuras de serie. Para la optimizacion de
maquinas cinematicas paralelas es necesario un enfoque orientado a la aplicacion. En es-
te trabajo presenta un algoritmo de optimizacion. El algoritmo presentado proporciona
la base para una optimizacion multiobjectivos general de varias estructuras cinematicas.
Ademas se propone un Algoritmo Genetico como principal herramienta de optimizacion.
El indice de espacio de trabajo es definido como la medida para el rendimiento de maqui-
nas paralelas cinematicas de 2 grados de libertad. Este trabajo presenta la optimizacion
Algoritmos Geneticos de una manera similar al que se presenta en esta tesis.
Martnez et al. (2010) trabaja en el diseno optimo de un robot paralelo con configu-
racion Delta donde se ilustra los calculos de cinematica inversa y la obtencion del espacio
12 CAPITULO 1. INTRODUCCION

de trabajo de un robot paralelo tipo delta incluyendo un analisis de interferencia de los


eslabones. Tambien presenta el procedimiento para el calculo de dimensiones optimas del
robot. Para la optimizacion usan algoritmos geneticos, lo cual es el metodo de optimizacion
que se usara en esta tesis.
Altuzarra et al. (2010) desarrollan el analisis de indicadores de cinematica para el di-
seno de manipuladores paralelos. El trabajo expone los distintos conceptos de indicadores
cinematicos usados hasta el momento, las diversas alternativas de calculo, y las carac-
tersticas, virtudes o defectos atribuidas a los mismos. Tambien se presenta la cualidad
del mecanismo que indica lo adecuado de su movimiento y se le denomina destreza. Don-
de se define, como la facilidad del elemento terminal para moverse y aplicar fuerzas en
cualquier direccion. Desde el punto de vista exclusivamente cinematico existen en la lite-
ratura varios indicadores de rendimiento para medir la destreza. El presenta las diferentes
formas en que se ha abordado en la literatura la cuantificacion de la destreza tratando
de clarificar el alcance de los conceptos usados. Todo esto permite el planteamiento del
problema de hallar el espacio diestro utilizada en esta tesis.
Pena Cortes et al. (2011) desarrolla la optimizacion dimensional de un robot parale-
lo delta basado en el menor consumo de energa. El interes mundial en las tecnologas
verdes crece continuamente. Una de las principales razones de este incremento es la con-
cientizacion de las personas sobre el buen trato del medio ambiente. La robotica y la
automatizacion no se han quedado atras en el desarrollo de productos que contribuyan
a este objetivo. Aunque en esta tesis no es de interes el menor consumo de energa di-
cho trabajo permite ver como se usan los algoritmos geneticos en problemas de robot
paralelos.
Huang (2011) presenta el diseno de un robot as como plantea el problema de la coor-
dinacion de control del espacio de trabajo y las singularidades siendo son dos propiedades
geometricas que deben considerarse en el diseno de robot paralelos. El espacio de trabajo
es la region en la cual el efector final puede ser alcanzado al menos con una orientacion,
mientras las singularidades son configuraciones geometricas especiales inherente al espa-
cio de trabajo en el que el manipulador puede perder-si se acciona en serie, o ganar- si
se acciona en paralelo uno o mas grados de libertad. El robot debe ser capaz de evitar
las singularidades es mas critico en la practica para los manipuladores paralelos que su
contraparte en serie, debido a la incertidumbre de control potencial. Tanto el espacio
de trabajo como las singularidades y las propiedades relacionadas han sido individual o
conjuntamente objetivos primordiales en muchos estudios de diseno optimo de robot pa-
ralelos. Por ejemplo el espacio de trabajo se utilizo como una metrica en la optimizacion
mientras que el indice de singularidad, rigidez y precision fueron usados en compuesto
(por ejemplo como una suma ponderada). El trabajo estudia sobre la optimizacion de
diseno sobre la clase de robot paralelos planares. La sntesis de dimencion se realiza a
traves de optimizacion a traves de dos propiedades geometricas, el espacio de trabajo y
tambien la destreza del robot bajo consideracion. El indice propuesto, considerado como
una representacion mas adecuado es general la destreza del robot, se adopta como una
metrica para un diseno optimo en este estudio. Los resultados son mostrados por simula-
ciones por ordenador con ayuda de graficos. El trabajo emplea la destreza como un indice
de optimizacion lo cual tambien se usara en esta tesis.
1.2. PLANTEAMIENTO DEL PROBLEMA 13

Por ultimo, se debe mencionar Bounab (2016) donde se trabaja en la optimizacion


del rendimiento Cineto-Estatico basado en sntesis dimensional de mecanismo de robot
paralelos Delta. Se presenta un enfoque de diseno para resolver el problema de sntesis
dimensional del manipulador paralelo Delta. Se usa para la optimizacion Matlab, el cual
es el mismo programa que se usara en esta tesis para desarrollar los codigos necesarios
del algoritmo de optimizacion GA propuesto en esta tesis.

1.2. Planteamiento del problema


Se quiere disenar un robot paralelo cuya dimensiones hagan maxima su espacio al-
canzable y su espacio de dexteridad (espacio diestro). Para la optimizacion se emplean
Algoritmos geneticos que suelen ser ventajosos para este tipo de problema donde no se
tiene una ecuacion como funcion objetivo que permita obtener la derivada de la funcion.
Se quiere que el algoritmo sea rapido y para ello hacer un mallado del espacio de tra-
bajo que satisfaga este objetivo. Ademas, se deben ajustar los parametros del Algoritmo
Genetico que hagan converger mejor a la solucion del maximo.

1.3. Justificacion
Se realiza esta investigacion porque el diseno de un robot requiere de tecnicas de
optimizacion para determinar las dimensiones geometricas del mecanismo que cumplan
con los requisitos para la cual va ser disenada. Uno de los criterios de diseno es optimizar
el espacio de trabajo diestro de un robot el cual se define como el conjunto de posiciones
y orientaciones en el espacio que pueden ser alcanzados por el robot con cierto nivel
de dexteridad. Este problema de optimizar es complejo ya que la funcion objetivo no se
puede calcular el gradiente de una manera explicita y ademas es un problema con maximos
locales y con restricciones no lineales que tampoco se conoce sus derivadas.
Lo que se busca en este trabajo es emplear algoritmos que encuentre el maximo global
y que no dependa del gradiente de la funcion objetivo lo cual justifica el uso de algoritmos
evolutivos que ayudan a solventar este problema.

1.4. Limitaciones
Esta tesis se limitara al tema del diseno optimo de robot paralelos usando unicamente
como criterio el espacio diestro ya que cabe mencionar que existen otros criterios que
no seran abarcados en esta tesis. Luego la tecnica a desarrollar se basan en algoritmos
evolutivos tales como Algoritmos Geneticos.
14 CAPITULO 1. INTRODUCCION

1.5. Objetivos
1.5.1. Objetivos Principal
Desarrollar una estrategia de optimizacion del espacio diestro de robot paralelos ba-
sados en tecnicas en Algoritmos Geneticos.

1.5.2. Objetivos Especficos


1. Estudiar las tecnicas de optimizacion por Algoritmos Geneticos.

2. Desarrollar las ecuaciones de cinematicas de robot paralelos.

3. Plantear la ecuacion del espacio de trabajo de robot paralelo plano.

4. Implementar las tecnicas de optimizacion haciendo un estudio de los distintos parame-


tros y metodos, tales como metodo de seleccion para los individuos a ser cruzados,
metodo de cruzamientos, de mutacion y otros metodos, ademas de los distintos por-
centajes a usar para hacer mas adecuados el funcionamiento del Algoritmo Genetico.

5. Desarrollar al menos 2 ejemplos de aplicaciones.

1.6. Metodologa
1. El proyecto se inicia estudiando en que consiste los Algoritmos Geneticos como se
soluciona un problema de optimizacion con restricciones no lineales.

2. A partir de los conceptos de cinematica se desarrollaran las ecuaciones que permiten


estudiar el comportamiento cinematico del robot de posicion.

3. Establecer una tecnica de estimar el espacio de trabajo diestro, se propone tecnicas


de Montecarlo y nube de puntos.

4. Desarrollar el Algoritmo genetico.

5. Realizar el codigo de la funcion objetivo de manera que pueda ser usado por Algo-
ritmos Geneticos.

6. Ajustar los parametros del Algoritmo Genetico para distintos metodos de seleccion,
cruce, mutacion y otros.

7. Problema de un robot plano.

8. Aplicaciones a 2 casos de estudio.

9. Resultados y conclusiones.
1.7. EXTRUCTURA DE LA TESIS 15

1.7. Extructura de la Tesis


En el capitulo 1 se presenta la introducion a la tesis y su finalidad. En el capitulo
2 se presenta la parte teorica de los temas que se tratan en la tesis. En el capitulo 3
se desarrollan las ecuaciones de cinematicas utilizadas en los algoritmo computacionales.
Por ultimo, en el capitulo 4 se presentan 2 aplicaciones que se trabajaran con Algorit-
mos Geneticos(un programa hecho en Matlab ver apendice). Finalmente, se presentan las
conclusiones y recomendaciones surgidas del trabajo.
16 CAPITULO 1. INTRODUCCION
Captulo 2

Marco Teorico

2.1. Algoritmos geneticos


Los primeros hechos relacionados con los Algoritmos geneticos (en adelante AGs)
surgieron en 1932 cuando Cannon interpreta la evolucion natural como un proceso de
aprendizaje muy similar al proceso mediante el cual una persona aprende por ensayo y
error. Tambien en 1950 Turing reconoce una conexion entre la evolucion y el aprendi-
zaje de una maquina, pero los primeros intentos serios de relacionar la informatica y la
evolucion surgieron a principios de los anos sesenta cuando varios biologos comenzaron
a experimentar con simulaciones de sistemas geneticos; esto es, modelos computacionales
que imitan la evolucion biologica. El entorno en que viven los animales se representa en-
tonces en el programa por una funcion que asigna a cada animal su capacidad de llegar a
ser adulto y reproducirse (Iglesias Otero, 2002).
Los investigadores en computacion observaron que esta clase de algoritmos poda uti-
lizarse tambien para optimizar funciones. De hecho, aunque las primeras descripciones
tecnicas y definiciones de adaptacion provienen de la biologa, ya en este contexto, adap-
tacion designa cualquier proceso por el cual una estructura va modificandose de forma
progresiva para lograr el comportamiento optimo en su entorno, es decir, los procesos
adaptativos son basicamente procesos de optimizacion, pero es difcil aglutinarlos y uni-
ficar su estudio porque las estructuras modificables son complejas y su comportamiento
es incierto.
Los AGs estan inspirados en la evolucion y la mayora de los organismos evolucionan
a traves de dos procesos primarios: la seleccion natural y la reproduccion.
Mediante la seleccion se determina que miembros de una poblacion sobreviven para
reproducirse, y mediante la reproduccion se asegura la mezcla y recombinacion de los
genes de la descendencia.
Esta mezcla del material genetico permite que las especies evolucionen mucho mas
rapidamente de lo que lo haran si tuvieran solo la copia de los genes de uno de sus
progenitores. El principio fundamental de la seleccion natural fue formulado por Darwin,
anteriormente al descubrimiento de los mecanismos geneticos, al observar que una diferen-
cia entre el crecimiento de una poblacion y los recursos disponibles llevara a situaciones
de competicion y adaptacion. Desconocedor en aquel momento de los principios basicos

17
18 CAPITULO 2. MARCO TEORICO

de la herencia mendeliana, Darwin conjeturo la fusion de las cualidades de los padres


mezclandose en los organismos de sus descendientes.
Las cuestiones, relacionadas con los mecanismos hereditarios, a las que la teora de
Darwin no poda responder han sido contestadas con el desarrollo de la Genetica: Mendel
descubrio los principios basicos de la transferencia de factores hereditarios de padres a
hijos. Se establecio que los cromosomas son los principales portadores de la informacion
hereditaria y que los genes, que representan los factores hereditarios, estan alineados en
cromosomas. El origen de las variaciones en la herencia se explican por la existencia
de ciertos cambios (mutaciones) en el texto genetico, pudiendo sufrir mutacion todos
los organismos de forma aleatoria. Pero ademas, en aquellos individuos que se reproducen
sexualmente se puede considerar el proceso por el que las caractersticas de los organismos
se mezclan al combinar su ADN (cruce). Este proceso es la fuente de inspiracion de los
AGs y, en consecuencia, su idea basica es imitar lo que hace la naturaleza. Por esta razon
estos algoritmos utilizan un vocabulario tomado de la Genetica. Se habla de individuos
(genotipos o estructuras) en una poblacion y a menudo estos individuos se denominan
cadenas o cromosomas.
El comienzo del desarrollo de los algoritmos geneticos se ha debido realmente al trabajo
de John Holland, investigador matematico de la Universidad de Michigan, quien estaba
convencido de que era la recombinacion de grupos de genes, que se realiza mediante el
cruce, la parte mas importante de la evolucion. A mediados de los anos 60 desarrolla
una tecnica de programacion, el Algoritmo genetico, que se adapta a la evolucion tanto
por el cruce como por la mutacion. Durante la decada siguiente trabajo para ampliar
el alcance de este tipo de algoritmos y fruto de ese trabajo publica en 1975 la primera
monografa sobre el tema, Holland (1975), en la que se sientan las bases teoricas que
fundamentan el desarrollo de los AGs desde el punto de vista computacional, abstrae
los conceptos de la genetica natural, y los aplica a la economa y al reconocimiento de
patrones. Desde entonces el campo de aplicaciones de este tipo de algoritmos no ha dejado
de crecer: disenos de turbinas de aviones, predicciones de la evolucion bursatil, estudios de
progresion de enfermedades (mediante comparacion de imagenes tomadas por resonancia
magnetica), analisis de la estructura del cristal lquido, son algunos ejemplos.

2.2. Por que utilizar algoritmos geneticos en la op-


timizacion?
La razon del creciente interes por los algoritmos geneticos es que estos son un metodo
global y robusto de busqueda de las soluciones de problemas. La principal ventaja de
estas caractersticas es el equilibrio alcanzado entre la eficiencia y eficacia para resolver
diferentes y muy complejos problemas de grandes dimensiones.
Lo que aventaja a los AGs frente a otros algoritmos tradicionales de busqueda es que
se diferencian de estos en los siguientes aspectos:

1. Trabajan con una codificacion de un conjunto de parametros, no con los parametros


mismos.
2.3. DEFINICION DE ALGORITMO GENETICO 19

2. Trabajan con un conjunto de puntos, no con un unico punto y su entorno (su


tecnica de busqueda es global.) Utilizan un subconjunto del espacio total, para
obtener informacion sobre el universo de busqueda, a traves de las evaluaciones
de la funcion a optimizar. Esas evaluaciones se emplean de forma eficiente para
clasificar los subconjuntos de acuerdo con su idoneidad.

3. No necesitan conocimientos especficos sobre el problema a resolver; es decir, no


estan sujetos a restricciones. Por ejemplo, se pueden aplicar a funciones no continuas,
lo cual les abre un amplio campo de aplicaciones que no podran ser tratadas por
los metodos tradicionales.

4. Utilizan operadores probabilsticos, en vez de los tpicos operadores determin sticos


de los tecnicas tradicionales.

5. Resulta sumamente facil ejecutarlos en las modernas arquitecturas masivas en pa-


ralelo.

6. Cuando se usan para problemas de optimizacion, resultan menos afectados por los
maximos locales que las tecnicas tradicionales (i.e., son metodos robustos).

2.3. Definicion de algoritmo genetico


Una definicion bastante completa de un algoritmo genetico es la propuesta por Koza
(1992)
Es un algoritmo matematico altamente paralelo que transforma un conjunto de ob-
jetos matematicos individuales con respecto al tiempo usando operaciones modeladas de
acuerdo al principio Darwiniano de reproduccion y supervivencia del mas apto, y tras
haberse presentado de forma natural una serie de operaciones geneticas de entre las que
destaca la recombinacion sexual. Cada uno de estos objetos matematicos suele ser una
cadena de caracteres (letras o numeros) de longitud fija que se ajusta al modelo de las
cadenas de cromosomas, y se les asocia con una cierta funcion matematica que refleja su
aptitud.
Tambien esta la definicion segun Pajares Martinsanz and Santos (2006)

Los Algoritmos geneticos son un procedimiento de busqueda y optimizacion heursti-


ca que utiliza una funcion de evaluacion en base a la cual se dirige la busqueda. Esta
funcion heurstica pondera la calidad de cada estado. Su principal ventaja es que permite
explorar un amplio espacio de estados.
20 CAPITULO 2. MARCO TEORICO

2.4. Terminologa
2.4.1. Cromosoma
En algoritmos geneticos, un cromosoma tpico se refiere a una solucion candidata a
un problema. Un cromosoma esta subdividido en genes. La codificacion suele hacerse
mediante valores binarios. Sin embargo, tambien existen representaciones que codifican
directamente cada parametro con un valor entero, real o en punto flotante.(La figura 2.1
muestra la representacion de un cromosoma).

Figura 2.1: Representacion de un cromosoma

2.4.2. Genotipo y Fenotipo


En algoritmos geneticos, el genotipo esta compuesto por los genes del cromosoma,
representa el cromosoma como codigo. El fenotipo es lo que el cromosoma representa, el
individuo como solucion. Cada genotipo desarrolla un fenotipo.

2.4.3. Fitness
El fitness de un individuo en un algoritmo genetico es el valor de la funcion objetivo
para su fenotipo. Para calcular el fitness, los cromosomas tienen que ser decodificados y
su funcion objetivo tiene que ser evaluada. El fitness no solo indica que tan buena es una
solucion, tambien que tan cerca se encuentra esta de la solucion optima.

2.4.4. Poblacion
Una poblacion es una coleccion de individuos, consiste en una serie de individuos a
ser evaluados.

2.4.5. Operadores geneticos


Para el paso de una generacion a la siguiente se aplican una serie de operadores geneti-
cos. Los mas empleados son los operadores de seleccion, cruce, copia y mutacion. A con-
tinuacion se veran en mayor detalle:

1. Seleccion:
2.4. TERMINOLOGIA 21

Los algoritmos de seleccion seran los encargados de escoger que individuos van a
disponer de oportunidades de reproducirse y cuales no. Puesto que se trata de imitar
lo que ocurre en la naturaleza, se ha de otorgar un mayor numero de oportunidades
de reproduccion a los individuos mas aptos. Por lo tanto, la seleccion de un individuo
estara relacionada con su valor de ajuste. No se debe, sin embargo, eliminar por
completo las opciones de reproduccion de los individuos menos aptos, pues en pocas
generaciones la poblacion se volvera homogenea.
En cuanto a algoritmos de seleccion se refiere, estos pueden ser divididos en dos
grandes grupos: probabilsticos y determinsticos. Ambos tipos de algoritmos basan
su funcionamiento en el principio indicado anteriormente (permitir escoger una ma-
yor cantidad de veces a los mas aptos). Sin embargo, como su nombre indica, el
primer tipo adjudica estas posibilidades con un importante componente basado en
el azar. Es en este grupo donde se encuentran los algoritmos de seleccion por ruleta
o por torneo que, dado su importancia por ser los mas frecuentemente utilizados, lo
cual seran los que describiremos con detalles. El segundo grupo engloba una serie de
algoritmos que, dado el ajuste conocido de cada individuo, permite asignar a cada
uno el numero de veces que sera escogido para reproducirse.
Seleccion por ruleta
Propuesto por DeJong, es posiblemente el metodo mas utilizado desde los orgenes
de los Algoritmos geneticos Gestal et al. (2010). A cada uno de los individuos de la
poblacion se le asigna una parte proporcional a su ajuste de una ruleta, de tal forma
que la suma de todos los porcentajes sea la unidad. Los mejores individuos recibiran
una porcion de la ruleta mayor que la recibida por los peores. Generalmente, la
poblacion esta ordenada en base al ajuste, por lo que las porciones mas grandes se
encuentran al inicio de la ruleta. Para seleccionar un individuo basta con generar un
numero aleatorio del intervalo [0, 1] y devolver el individuo situado en esa posicion
de la ruleta. Esta posicion se suele obtener recorriendo los individuos de la poblacion
y acumulando sus proporciones de ruleta hasta que la suma exceda el valor obtenido.
Seleccion por torneo.
La idea principal de este metodo de seleccion consiste en escoger a los individuos
geneticos en base a comparaciones directas entre sus genotipos.
Existen dos versiones de seleccion mediante torneo, el torneo determinstico y el
torneo probabilstico, que a continuacion pasan a detallarse.
En la version determinstica se selecciona al azar un numero p de individuos (gene-
ralmente se escoge p = 2). De entre los individuos seleccionados se selecciona el mas
apto para pasarlo a la siguiente generacion.
La version probabilstica unicamente se diferencia en el paso de seleccion del ganador
del torneo. En vez de escoger siempre el mejor se genera un numero aleatorio del
intervalo [0, 1], si es mayor que un parametro p (fijado para todo el proceso evolutivo)
se escoge el individuo mas alto y en caso contrario el menos apto. Generalmente p
toma valores en el rango 0.5 < p 1.
22 CAPITULO 2. MARCO TEORICO

Otros tipos de seleccion.


Existen muchos otros algoritmos de seleccion. Unos buscan mejorar la eficiencia
computacional, otros el numero de veces que los mejores o peores individuos pueden
ser seleccionados. Algunos de estos algoritmos son muestreo determinstico, escala-
miento sigma, seleccion por jerarquas, estado uniforme, sobrante estocastico, brecha
generacional, etc.

2. Cruce.
Una vez seleccionados los individuos, estos son recombinados para producir la des-
cendencia que se insertara en la siguiente generacion. Tal y como se ha indicado
anteriormente, el cruce es una estrategia de reproduccion sexual.
Los diferentes metodos de cruce podran operar de dos formas diferentes. Si se op-
ta por una estrategia destructiva los descendientes se insertaran en la poblacion
temporal aunque sus padres tengan mejor ajuste (trabajando con una unica pobla-
cion esta comparacin se realizara con los individuos a reemplazar). Por el contrario,
utilizando una estrategia no destructiva la descendencia pasara la siguiente genera-
cion unicamente si supera la bondad del ajuste de los padres (o de los individuos a
reemplazar).
La idea principal del cruce se basa en que, si se toman dos individuos correctamente
adaptados al medio y se obtiene una descendencia que comparta genes de ambos,
existe la posibilidad de que los genes heredados sean precisamente los causantes de
la bondad de los padres. Al compartir las caractersticas buenas de dos individuos,
la descendencia, o al menos parte de ella, debera tener una bondad mayor que cada
uno de los padres por separado. Si el cruce no agrupa las mejores caractersticas en
uno de los hijos y la descendencia tiene un peor ajuste que los padres no significa
que se este dando un paso atras. Optando por una estrategia de cruce no destructiva
garantizamos que pasen a la siguiente generacion los mejores individuos.Si, aun con
un ajuste peor, se opta por insertar a la descendencia, y puesto que los genes de
los padres continuaran en la poblacin aunque dispersos y posiblemente levemente
modificados por la mutacion, en posteriores cruces se podran volver a obtener estos
padres, recuperando as la bondad previamente perdida.
Existen multitud de algoritmos de cruce. Sin embargo los mas empleados son los
que se detallaran a continuacion:

a) Cruce de 1 punto: Es la mas sencilla de las tecnicas de cruce. Una vez selec-
cionados dos individuos se cortan sus cromosomas por un punto seleccionado
aleatoriamente para generar dos segmentos diferenciados en cada uno de ellos:
la cabeza y la cola. Se intercambian las colas entre los dos individuos para ge-
nerar los nuevos descendientes. De esta manera ambos descendientes heredan
informacion genetica de los padres.(La figura 2.2 muestra el cruce de 1 punto).

b) Cruce de 2 puntos:
2.4. TERMINOLOGIA 23

Figura 2.2: Cruce de un punto

Se trata de una generalizacion del cruce de 1 punto. En vez de cortar por un


unico punto los cromosomas de los padres, como en el caso anterior, se realizan
dos cortes. Debera tenerse en cuenta que ninguno de estos puntos de corte
coincida con el extremo de los cromosomas para garantizar que se originen tres
segmentos. Para generar la descendencia se escoge el segmento central de uno
de los padres y los segmentos laterales del otro padre.(La figura 2.3 muestra el
cruce de 2 punto).

Figura 2.3: Cruce de dos punto

3. Copia.
La copia es la otra estrategia reproductiva para la obtencion de una nueva gene-
racion a partir de la anterior. A diferencia del cruce, se trata de una estrategia de
reproduccion asexual. Consiste simplemente en la copia de un individuo en la nueva
generacion. El porcentaje de copias de una generacion a la siguiente es relativamente
reducido, pues en caso contrario se corre el riesgo de una convergencia prematura de
la poblacion hacia ese individuo. De esta manera el tamano efectivo de la poblacion
se reducira notablemente y la busqueda en el espacio del problema se focalizara en
el entorno de ese individuo.
24 CAPITULO 2. MARCO TEORICO

Lo que generalmente se suele hacer es seleccionar dos individuos para el cruce y, si


este finalmente no tiene lugar, se insertan en la siguiente generacion los individuos
seleccionados.
4. Elitismo
El elitismo es un caso particular del operador de copia consistente en copiar siem-
pre al mejor, o en su caso mejores, individuos de una generacion en la generacion
siguiente. De esta manera se garantiza que el proceso de busqueda nunca dara un
paso atras en cuanto a la calidad de la mejor solucion obtenida, sino que un cambio
en esta siempre implicara una mejora.
5. Mutacion
La mutacion de un individuo provoca que alguno de sus genes, generalmente uno
solo, vare su valor de forma aleatoria.
Aunque se pueden seleccionar los individuos directamente de la poblacion actual y
mutarlos antes de introducirlos en la nueva poblacion, la mutacion se suele utilizar
de manera conjunta con el operador de cruce. Primeramente se seleccionan dos
individuos de la poblacion para realizar el cruce. Si el cruce tiene exito entonces
uno de los descendientes, o ambos, se muta con cierta probabilidad PM. Se imita de
esta manera el comportamiento que se da en la naturaleza, pues cuando se genera
la descendencia siempre se produce algun tipo de error, por lo general sin mayor
trascendencia, en el paso de la carga genetica de padres a hijos.
La probabilidad de mutacion es muy baja, generalmente menor al 1 %. Esto se debe
sobre todo a que los individuos suelen tener un ajuste menor despues de mutados.
Sin embargo se realizan mutaciones para garantizar que ningun punto del espacio
de busqueda tenga una probabilidad nula de ser examinado.
Tal y como se ha comentado, la mutacion mas usual es el reemplazo aleatorio.
Este consiste en variar aleatoriamente un gen de un cromosoma. Si se trabaja con
codificaciones binarias, consistira simplemente en negar un bit.(La figura 2.4 muestra
la mutacion).

Figura 2.4: Mutacion


2.5. FUNCIONAMIENTO DE UNA ALGORITMO GENETICO 25

2.5. Funcionamiento de una algoritmo genetico


Un algoritmo genetico puede presentar algunas variaciones dependiendo de los ope-
radores geneticos (cruce y mutacion) que lo componen, pero en general una algoritmo
genetico simple presenta los siguientes pasos:

2.5.1. Pasos de un Algoritmo genetico Simple


1. [Inicio]. Se genera la poblacion de manera aleatoria, que esta conformada por el
conjunto de individuos (cromosomas) que representan a las posibles soluciones al
problema, a cada uno de estos individuos se les asigna una funcion de aptitud que
corresponde a su eficacia para resolver el problema.

2. [Evaluacion]. Se evalua la funcion de aptitud f (x) de cada cromosoma x de la po-


blacion.

3. [Nueva Poblacion]. Obtener una nueva poblacion a partir de otra mediante:

[Seleccion]. Despues de saber la aptitud de cada cromosoma, se procede a ele-


gir los cromosomas que seran cruzados en la siguiente generacion. Los cromosomas
con mejor aptitud tienen mayor probabilidad de ser seleccionados.

[Cruzamiento]. Es el principal operador genetico, representa la reproduccion se-


xual, opera sobre dos cromosomas a la vez para generar dos descendientes (hijos),
donde se combinan las caractersticas de ambos cromosomas padres.

[Mutacion]. Con una probabilidad de mutacion, modificar al azar parte del cromo-
soma de los individuos, esto permite alcanzar zonas del espacio de busqueda que no
estaban cubiertas por los individuos de la poblacion actual.

[Reemplazo]. Insertar los descendientes en la nueva poblacion, se seleccionan los


mejores individuos para conformar la poblacion de la nueva poblacion.

4. [Condicion de termino]. Mientras no se cumpla la condicion de termino volver al


paso 2.

El Algoritmo genetico debera detenerse cuando alcance la solucion optima, pero


esta generalmente se desconoce, por lo que se deben utilizar otros criterios de de-
tencion. Normalmente se usan dos criterios: correr el AG un numero maximo de
iteraciones (generaciones) o detenerlo cuando no haya cambios en la poblacion.(La
figura 2.5 muestra el flujograma de un Algoritmo Genetico). El codigo descrito y
mostrado en la figura 2.5 se ha desarrollado en Matlab y se incluye en el apendice
su explicacion y codificacion.
26 CAPITULO 2. MARCO TEORICO

Generar la po-
Inicio
blacion inicial

Evaluar la funcion
de adaptacion de
cada individuo

Seleccionar de la
poblacion a los indi-
viduos a reproducir

Reproducir obteniendo
descendientes (Cuzar)

Mutar un cierto gru-


Falso
po de individuos

Insertar los nuevos indi-


viduos en la poblacion

Evaluar nueva poblacion

Si cumple
la
F condicion
de parada

Verdadero

Fin

Figura 2.5: Flujograma del Algoritmo Genetico


2.6. UN EJEMPLO DE IMPLEMENTACION 27

2.6. Un Ejemplo de Implementacion


Considere el problema siguiente de optimizacion no lineal restringido: Minimizar

f (x, y) = x2 + y 2 (2.1)
sujeta a condicion
x+y =3 (2.2)
solucion: Se puede ver este problema como

f (x, y) = x2 + (3 x)2 (2.3)

Un resultado analtico da
(3/2, 3/2) = (1.5, 1.5) (2.4)
Si se usa para la optimizacion el Algoritmo genetico (hecho con el programa Matlab ver
Apendice) da con iter= 100, PC= 0.70, PM= 0.07, SL= 12 y PS= 200, x en el intervalo
[0, 3], x = 1.4996 entonces y = 3 1.4996 = 1.5004.

2.7. Cinematica
Antes de definir que es la cinematica se presentan dos conceptos importantes.

2.7.1. Robot
Se define de manera formal en la Organizacion Internacional para la Estandarizacion
(ISO), como un manipulador multifuncional reprogramable, capaz de mover materiales,
piezas, herramientas o dispositivos especiales, a traves de movimientos variables progra-
mados, para el desempeno de tareas diversas.

2.7.2. Robot Paralelo


Es una cadena cinematica de bucle cerrado cuyo efector final esta vinculado a la base
por varias cadenas cinematicas independientes.
La cinematica es la ciencia del movimiento que trata el tema sin considerar las fuerzas
que la ocasionan. Dentro de esta ciencia se estudian la posicion, la velocidad , la aceleracion
y todas las demas derivadas de alto orden de las variables de posicion (con respecto
al tiempo o cualquier otra variable). En consecuencia, el estudio de la cinematica de
manipuladores se refiere a todas las propiedades geometricas y basadas en el tiempo del
movimiento.
La cinematica de un robot estudia el movimiento del mismo con respecto a un sistema
de referencia. Existen dos problemas fundamentales en la cinematica de un robot; el pri-
mero de ellos se conoce como el problema de cinematico directo, y consiste en determinar
el cual es la posicion del robot, con respecto a un sistemas de coordenadas que se toma
como referencia, conocidos los valores de las articulaciones y los parametros geometricos
28 CAPITULO 2. MARCO TEORICO

de los elementos del robot; el segundo, denominado problema cinematico inverso, resuelve
la configuracion que debe adoptar el robot para una posicion y orientacion del extremos
conocidas.
Otros conceptos importantes que se usaran en esta tesis son:

2.7.3. Grado de Libertad.


Cada uno de los movimientos independientes que puede hacer cada articulacion con
respecto a la anterior.

2.7.4. Grados de libertad en mecanismos planos.


Para un mecanismo plano cuyo movimiento tiene lugar solo en dos dimensiones, el
numero de grados de libertad del mismo se pueden calcular mediante el criterio de Grubler-
Kutzbach:
m = 3(n 1) 2j1 j2 (2.5)
donde m es movilidad, n el numero de elementos (eslabones, barras),j1 es numero de
uniones de un grado de libertad y j2 es el numero de uniones de dos grado de libertad.

Caso en estudio del Robot paralelo planar de esta tesis


El robot paralelo planar de esta tesis es como lo presenta la figura 2.6:

Figura 2.6: Robot paralelo planar

Este robot tiene 5 eslabones (o barras), 5 juntas (o uniones), cada junta tiene 1 grado
de libertad, por tanto, por ecuacion 2.5, j2 = 0, j1 = 5 y n=5. As

m = 3(5 1) 2(5) 0 = 2 (2.6)


2.7. CINEMATICA 29

En consecuencia el robot paralelo planar en estudio tiene 2 grados de libertad.


Ahora se presentaran otras definiciones muy importantes:

2.7.5. Espacio de trabajo Alcanzable


Es el volumen del espacio que puede alcanzar el robot en por lo menos una orientacion.

2.7.6. Jacobiano
El Jacobiano de un manipulador se define de la siguiente manera.
La relacion entre el vector n-dimensional de coordenadas articulares y el vector
m-dimensional x de coordenadas cartesianas de la plataforma movil, esta dada por la
ecuacion,

F (, x) = 0 (2.7)
donde F es una funcion n-dimensional de y x y 0 es el vector cero n-dimencional.
Diferenciando la ecuacion anterior se obtiene una relacion entre las velocidades de entrada
y salida.
Jx x = J (2.8)
donde
F
Jx = (2.9)
x
F
J = (2.10)

tanto Jx como J son matrices. De esta relacion podramos intentar invertir Jx o J , en
esta tesis invertiremos J y llamaremos el jacobiano

J = J1 Jx (2.11)

note que esto es indiferente a la hora de calcular el numero de condicion de la matriz J


ya que J 1 = Jx1 J .

2.7.7. Espacio de trabajo Diestro


Es el volumen de espacio que puede alcanzar el efector final del robot con todas
las orientaciones; esto es, en cada punto del espacio de trabajo diestro, el efector final
puede orientarse arbitrariamente. Para calcular el espacio diestro usaremos el numero de
condicion(que se define como cond(J)) de la matriz jacobiana. Pero como es un numero
1
que puede ser grande se usara cond(J) .
30 CAPITULO 2. MARCO TEORICO

2.7.8. Robot paralelo plano


El mecanismo plano que se trabajara en esta tesis es un mecanismo de 5 barras. El
mecanismo plano que tiene 2 grados de libertad, 5 articulaciones rotacionales, 4 eslabones
y una base.
La forma de hallar las ecuaciones de cinematicas sera el metodo geometrico, y se basara en
las relaciones de suma de vectores para hallar la relacion entre las coordenada espaciales
(x,y) y las coordenadas angulares. Luego se utiliza algunas operaciones matematicas y se
usa propiedades trigonometricas se llega a las ecuaciones que seran las soluciones de los
argumentos angulares y que se usaran para hallar el espacio de trabajo, de esta misma
manera con operaciones matematicas se determina a un par de ecuaciones y de all se
definira la funcion F, de la cual se hallara el Jacobiano que se usara junto a las ecuaciones
angulares para hallar el espacio diestro del robot paralelo.
Captulo 3

Ecuaciones Cinematicas

3.1. Robot paralelo plano.


El mecanismo paralelo plano de 2 grados de libertad que se estudiara es de 5 eslabones,
5 juntas, como lo presenta la siguiente figura 3.1

Figura 3.1: Robot paralelo plano de 2-GdL 5R

Donde, L1 y L2 son las medidas de los eslabones, d es la distancia de punto C al punto


A, 1 es el angulo del eslabon 1, 3 es el angulo del eslabon 2, 2 es el angulo del eslabon
3, 4 es el angulo del eslabon 4, el origen global esta en el punto O y el punto P esta en
el sistema de coordenada en el elemento terminal {x, y}.

3.2. Ecuaciones de Cinematica


Se quiere hallar las ecuaciones de cinematicas del mecanismo plano, es decir se van a
obtener las coordenadas x,y en funcion de los angulos.
Por la ley poligonal de suma de vectores se tiene(ver figura 3.1 donde se ve la suma
de vectores),

31
32 CAPITULO 3. ECUACIONES CINEMATICAS


OP = OC + CD + DP (3.1)

OP = OA + AB + BP (3.2)
con la relacion anterior se tiene que,

x = xC + xD + xO (3.3)
y = yC + yD + yO (3.4)
se tomara en cuenta las siguiente definicion.

3.2.1. Funcion trigonometrica de un angulo cualquiera


Se considera el angulo (se mide positivo en sentido contrario a las agujas del reloj
respecto a la horizontal del eje x positivo) que en un sistema de coordenada tiene su lado
terminal en el primer cuadrante (pero puede ser cualquiera). Se toma un punto en lado
terminal y se considera sus coordenadas y su distancia al origen(en la figura 3.2 se muestra
un angulo cualquiera). Las funciones trigonometricas se definen as:

AE
sin() = (3.5)
OA
OE
cos() = (3.6)
OA

Figura 3.2: Funciones trigonometricas de un angulo cualquiera

Luego queda,

d
xO = (3.7)
2
yO = 0. (3.8)
3.2. ECUACIONES DE CINEMATICA 33

Si se forma un sistema de coordenada en cada punto se llega a,


xC
= cos(2 ) (3.9)
L1
de una misma manera,
xD
= cos(4 ) (3.10)
L2
por ende,
xC = cos(2 )L1 (3.11)
xD = cos(4 )L2 (3.12)
sustituyendo queda,
d
x = cos(2 )L1 + cos(4 )L2 . (3.13)
2
Para la coordenada y se tiene,
yC
= sin(2 ) (3.14)
L1
as
yC = sin(2 )L1 (3.15)
por otro lado,
yD
= sin(4 ) (3.16)
L2
por ende,
yD = sin(4 )L2 (3.17)
as,
y = sin(4 )L2 + sin(2 )L1 (3.18)
de manera que para el primer camino que se ha seleccionado las ecuaciones son,
d
x = cos(2 )L1 + cos(4 )L2 (3.19)
2
y = sin(4 )L2 + sin(2 )L1 . (3.20)
Por el otro camino se basa en la suma de vectores ya expuestas,

x = xA + xB + xO (3.21)

y = yB + yA + yO (3.22)
se tiene que,
d
xO = (3.23)
2
yO = 0 (3.24)
34 CAPITULO 3. ECUACIONES CINEMATICAS

luego para las demas coordenadas,


xA
= cos(1 ) (3.25)
L1

xA = cos(1 )L1 (3.26)


por otro lado,
xB
= cos(3 ) (3.27)
L2
xB = cos(3 )L2 (3.28)
de manera que queda la coordenada x como,
d
x = cos(1 )L1 + cos(3 )L2 + . (3.29)
2
para la coordenada y se tiene,
yA
= sin(1 ) (3.30)
L1
as,
yA = sin(1 )L1 (3.31)
de manera parecida se obtiene,
yB
= sin(3 ) (3.32)
L2

yB = sin(3 )L2 (3.33)


se llega as,
y = sin(1 )L1 + sin(3 )L2 (3.34)
de manera que las ecuaciones son,
d
x = cos(1 )L1 + cos(3 )L2 + (3.35)
2
y = sin(1 )L1 + sin(3 )L2 . (3.36)
Para obtener los angulos 1 , 2 , 3 4 se procede de la siguiente manera, de las 2
primeras ecuaciones del primer camino que se tomo se despeja la funcion trigonometrica
que contiene 2 ,
L1 cos(2 ) = x L2 cos(4 ) + d/2 (3.37)
L1 sin(2 ) = y L2 sin(4 ) (3.38)
elevando al cuadrado ambos miembros,

(L1 cos(2 ))2 = (x L2 cos(4 ) + d/2)2 (3.39)

(L1 sin(2 ))2 = (y L2 sin(4 ))2 (3.40)


3.2. ECUACIONES DE CINEMATICA 35

desarrollando y sumando las dos ecuaciones y asociando se llega a,


d2
L21 = x2 + y 2 + + xd + L22 2yL2 sin(4 ) (dL2 + 2xL2 ) cos(4 ) (3.41)
4
esta ecuacion se puede reescribir,

c = a cos(4 ) + b sen(4 ) (3.42)

donde,
d2
c = L21 (x2 + y 2 + + xd + L22 ) (3.43)
4
a = (dL2 + 2xL2 ) (3.44)
b = 2yL2 (3.45)
cuya solucion es con la rutina del arcotangente con dos argumentos Atan2 conocida,

4 = Atan2(b, a) Atan2( a2 + b2 c2 , c). (3.46)

Existe otra forma de resolver la ecuacion 3.42 ver apendice A.


Para el otro angulo 2 se se hace lo mismo pero se despeja los terminos que contienen
4 y se aplica lo mismo que se ejecuto anteriormente y as se llega a,

c = a cos(2 ) + b sen(2 ) (3.47)

donde,
d2
c = L22 (x2 + y 2 + + xd + L21 ) (3.48)
4
a = (dL1 + 2xL1 ) (3.49)
b = 2yL1 (3.50)
cuya solucion es,
2 = Atan2(b, a) Atan2( a2 + b2 c2 , c). (3.51)
Luego de las ecuaciones que se obtuvieron por el segundo camino que son,
d
x = cos(1 )L1 + cos(3 )L2 + (3.52)
2
y = sin(1 )L1 + sin(3 )L2 (3.53)
elevando al cuadrado,
d
(cos(1 )L1 )2 = (x (cos(3 )L2 + ))2 (3.54)
2
(sin(1 )L1 )2 = (y sin(3 )L2 )2 (3.55)
desarrollando y sumando las dos ecuaciones,
d2
L21 = x2 + y 2 + dx + L22 + (dL2 2xL2 ) cos(3 ) 2yL2 sin(3 ) (3.56)
4
36 CAPITULO 3. ECUACIONES CINEMATICAS

as se define,
d2
c = L21 (x2 + y 2 + dx + L22 ) (3.57)
4
a = dL2 2xL2 (3.58)
b = 2yL2 (3.59)
c = a cos(3 ) + b sen(3 ) (3.60)
cuya solucion es,
3 = Atan2(b, a) Atan2( a2 + b2 c2 , c). (3.61)
Para el angulo 1 si se hace lo mismo se llega,

d2
L22 = x2 + y 2 + dx + L21 + (dL1 2xL1 ) cos(1 ) 2yL1 sin(1 ) (3.62)
4
as se define,
d2
c = L22 (x2 + y 2 + dx + L21 ) (3.63)
4
a = dL1 2xL1 (3.64)
b = 2yL1 (3.65)
se tiene que,
c = a cos(1 ) + b sin(1 ) (3.66)
cuya solucion es,
1 = Atan2(b, a) Atan2( a2 + b2 c2 , c). (3.67)
Por tanto como se ha hallado de una manera las ecuaciones para hallar los angulos, ahora
se hallara el Jacobiano, para ello se encontrara primero la funcion F.

3.3. Jacobiano
Las 4 ecuaciones que se presentan se obtuvieron de la geometra del robot paralelo, de
ah por suma de vectores existen dos caminos a seleccionar, una que va por el eslabon que
contiene el angulo 1 que llamamos el primer camino de all se obtuvieron dos ecuaciones
una para x y una para y, y el segundo camino va por el eslabon que contiene al angulo
2 ver figura 3.1 de este camino tambien se obtuvieron dos ecuaciones una para x y otra
para y, en los dos caminos se quiere llegar al punto P donde esta el elemento terminal del
robot paralelo, en total suman 4 ecuaciones que ya las obtuvimos en la seccion 3.2 que
son:
d
x = cos(1 )L1 + cos(3 )L2 + (3.68)
2
y = sin(1 )L1 + sin(3 )L2 (3.69)
d
x = cos(2 )L1 + cos(4 )L2 (3.70)
2
3.3. JACOBIANO 37

y = sin(4 )L2 + sin(2 )L1 (3.71)


se hace el mismo procedimiento de combinacion de las ecuaciones, de elevar al cuadrado
y sumando las ecuaciones se llega a las obtenidas 2 ecuaciones anteriormente para los
angulos de la 1 , 2

d2
x2 + y 2 + dx + L21 + (dL1 2xL1 ) cos(1 ) 2yL1 sin(1 ) L22 = 0 (3.72)
4

2 2 d2
x +y + + xd + L21 (dL1 + 2xL1 ) cos(2 ) 2yL1 sen(2 ) L22 = 0. (3.73)
4
Se define,
2
x + y 2 + d4 + xd + L21 (dL1 + 2xL1 ) cos(2 ) 2yL1 sin(2 ) L22
 2 
F (x, y, 2 , 1 ) = 2
x2 + y 2 + d4 dx + L21 + (dL1 2xL1 ) cos(1 ) 2yL1 sin(1 ) L22

de lo anterior se obtiene,
 
2x + d 2L1 cos(2 ) 2y 2L1 sin(2 )
Jx =
2x d 2L1 cos(1 ) 2y 2L1 sin(1 )

y por otro lado se tiene que,


 
2xL1 sin(2 ) + dL1 sin(2 ) 2yL1 cos(2 ) 0
J =
0 2xL1 sin(1 ) dL1 sin(1 ) 2yL1 cos(1 )

as el jacobiano es,
J = J1 Jx (3.74)

2x d + 2L1 cos(2 ) 2y + 2L1 sin(2 )

2xL1 sin(2 ) dL1 sin(2 ) + 2yL1 cos(2 ) 2xL1 sin(2 ) dL1 sin(2 ) + 2yL1 cos(2 )

J =
2x + d + 2L1 cos(1 ) 2y + 2L1 sin(1 )

2xL1 sin(1 ) + dL1 sin(1 ) + 2yL1 cos(1 ) 2xL1 sin(1 ) + dL1 sin(1 ) + 2yL1 cos(1 )

Si se hace que las matrices queden en funcion de los 4 angulos, si se hace los cam-
bios de x,y de las ecuaciones a conveniencia, simplificando y se aplica las propiedades
trigonometricas se llega
 
2L2 cos(4 ) 2L2 sin(4 )
Jx =
2L2 cos(3 ) 2L2 sin(3 )
 
2L2 L1 sin(2 4 ) 0
J =
0 2L2 L1 sin(1 3 )
y el jacobiano es,
J = J1 Jx (3.75)
queda,
38 CAPITULO 3. ECUACIONES CINEMATICAS


cos(4 ) sin(4 )
L sin( ) L1 sin(2 4 )
1 2 4
J =
cos(3 ) sin(3 )
L1 sin(1 3 ) L1 sin(1 3 )
Esta ultima matriz se le puede hallar el numero de condicion (cond(J)) puntualmente
con el objeto de determinar la dexteridad de un punto (x,y) del espacio de trabajo del
robot paralelo plano.
Captulo 4

Casos de Estudio

4.1. Primer caso de estudio


En esta seccion se plantea el problema el primer caso a resolver.
Se quiere hallar las medidas del robot paralelo cuya area alcanzable y area diestra sea
maxima. El espacio de trabajo del robot es un mesa de corte de un espacio de trabajo de
1.2 de ancho y 1 de altura.
L1 estara entre 0.1 a 0.5, L2 estara entre 0.1 a 0.4, d estara entre 0 a 0.3.(En la figura
4.1 se muestra un robot paralelo en area de mesa de trabajo)

Figura 4.1: Robot paralelo en area de mesa de trabajo

4.2. Area Alcanzable


Antes de plantear el problema en el programa, surge la pregunta cual es el error de
trabajar con un mallado mas fino que con uno mas grueso, pues esto hace entre otra cosas
que el tiempo de computo del algoritmo sea menor o mayor. Ademas, se quiere saber si
empleando una malla de nube de puntos discretos o aleatoria como una tecnica como la
de Montecarlo (Sobol, 1983). La diferencia entre los dos es que la primera es un mallado

39
40 CAPITULO 4. CASOS DE ESTUDIO

uniforme y la segunda se toma un numero de puntos aleatorio. El area se calculara por la


formula,

Numero de puntos que estan dentro del robot paralelo


A= 1.2 (4.1)
Numero de puntos total
Ver figura 4.2 donde se ven un conjunto de puntos de manera uniforme(puntos totales del
mallado por el metodo nube de puntos) del robot paralelo planar:

Figura 4.2: Mallado de Area alcanzable a calcular por Metodo Nube de Puntos

El area calculada con la formula 4.1 con los puntos que quedan adentro ver figura 4.3

Figura 4.3: Area alcanzable calculada por Metodo Nube de Puntos


4.2. AREA ALCANZABLE 41

Por el metodo de Montecarlo el mallado(puntos escogidos aleatoriamente) queda ver


figura 4.4

Figura 4.4: Mallado por Metodo de Montecarlo

Y el area que se construye a partir de los puntos que quedan adentro por el Metodo
de Montecarlo ver figura 4.5

Figura 4.5: Area calculada por Metodo de Montecarlo


42 CAPITULO 4. CASOS DE ESTUDIO

4.3. Mallado
Se define un area de trabajo, se discretiza entonces para cada punto (x,y) del area y
junto al punto (L1 ,L2 ,d) se verifica si el punto (x,y) es alcanzable, si satisface lo que la
ecuacion de los angulos exige por ejemplo del angulo 2 ecuacion 3.51 que a2 + b2 c2
(que depende de (x,y) y (L1 ,L2 ,d) ) esto es:

d2
(4y 2 a2 ) + ((2xa da)2 ) (b2 (x2 ) + (xd) (y 2 ) (a2 ))2 (4.2)
4
sea mayor o igual a cero, de manera analoga con el angulo 1 esto es:

d2
(4y 2 a2 ) + ((2xa + da)2 ) (b2 (x2 ) (xd) (y 2 ) (a2 ))2 (4.3)
4
sea mayor o igual a 0. Si se verifica el punto es alcanzable si no, no lo es. Para hallar el
area alcanzable se coloca un 0 si es alcanzable y un 1 si no lo es. Luego se intercambia
los 0 por 1 y se suman y se llega a los puntos que caen dentro del area del robot paralelo
con ello se estima un area con la formula 4.1. Ver flujograma 4.6 donde se muestra la
explicacion mas detallada:

4.4. Discretizacion del modelo para determinar el Area


Alcanzable
Se toma como solucion exacta la del mallado mas fino y de ah se calcularan los errores
relativo porcentuales.
La Tabla 4.1 muestra los resultados a un conjunto de puntos(que son (L1 ,L2 ,d) )
por metodo nube de puntos del cual se quiere concluir con que h se quiere trabajar,
que haga mas rapido el Algoritmo Genetico hecho en Matlab, y que de un menor error
de la solucion exacta. Aunque recomendamos h= 0.01 debemos verificar la media y la
desviacion estandar para dar una conclucion.
La de mallado mas fino sera la de h= 0.0001
Y por el metodo de Montecarlo se obtiene los siguientes errores porcentuales si se usa
como la solucion la de 1202201 puntos aleatorios ver tabla 4.2 concluyendo que con 300
puntos se llega a una media de errores cercana al 9 %:
4.4. DISCRETIZACION DEL MODELO PARA DETERMINAR EL AREA ALCANZABLE43

Se discretiza el area de
Se tiene el punto (L1 ,L2 ,d)
trabajo en puntos (x,y)

Se verifica si el punto
es alcanzable con
ecuaciones 4.2 y 4.3 si,
son menores que 0 se
coloca 1, si son mayores
o iguales a 0 se coloca
0 y el punto es factible

Cambios cada 0 por


1, y sumo todos los 1

Y obtengo los puntos


que caen dentro del
area del robot paralelo

Calculo el area con la ecuacion 4.1

Figura 4.6: Flujograma del Mallado


44 CAPITULO 4. CASOS DE ESTUDIO

Tabla 4.1: Resultados de los Errores Relativos Porcentuales por nube de puntos
Pts,h h=0.001 h=0.01 h=0.05 h=0.1
(0.5,0.4,0.3) 0.0689 0.6 2.88 6.52
(0.4,0.3980,0.3) 0.0537 0.73 3.63 7.6
(0.4583,0.3322,0.3) 0.0879 1.04 5.53 8.98
(0.3924,0.3924,0.3) 0.0692 0.73 2.59 4.79
(0.3435,0.3738,0.2999) 0.0845 0.91 3.04 6.41
(0.3999,0.3999,0.2234) 0.0511 0.64 2.54 5.72
(0.4934,0.3943,0.2730) 0.081 0.86 3.15 5.77
(0.2155,0.2543,0.2630) 0.0455 0.64 4.41 4.64
(0.1343,0.1534,0.1) 0.0998 0.3 4.19 8.88
(0.2,0.1,0.2999) 0 0.49 0.98 3.19
Media 0.0642 0.694 3.294 6.25
Desviacion estandar(std(x)) 0.0285 0.2129 1.2399 1.8526
Desviacion estandar(std(x,1)) 0.0271 0.202 1.1763 1.7575

Tabla 4.2: Resultados de los Errores Relativos Porcentuales por Montecarlo


Pts,Pts aleatorios 12221 700 400 300
(0.5,0.4,0.3) 0.36 1 0.95 1.53
(0.4,0.3980,0.3) 0.17 4.11 1.65 6.95
(0.4583,0.3322,0.3) 1.2 0.044 2.84 5.48
(0.3924,0.3924,0.3) 0.9 2.23 4.18 12.01
(0.3435,0.3738,0.2999) 2.28 1.52 2.38 10.12
(0.3999,0.3999,0.2234) 0.49 0.8 2.31 0.14
(0.4934,0.3943,0.2730) 0.0927 2.71 3.41 1.46
(0.2155,0.2543,0.2630) 1.91 0.91 6.51 1.68
(0.1343,0.1534,0.1) 4.1 13.1 16 0
(0.2,0.1,0.2999) 5.94 23.51 33.17 48.51
Media 1.7443 4.9934 7.34 8.788
Desviacion estandar(std(x)) 1.9199 7.5202 10.0646 14.5802
Desviacion estandar(std(x,1)) 1.8213 7.1343 9.5481 13.8320

Si se continua con otros puntos aleatorios(ver tabla 4.3) se observa que con 180 puntos
la media de los errores pasa el 10 %
Se concluye del estudio realizado que el numero de puntos a usar es 12221 por nube
de puntos y h= 0.01. Se nota que es mas exacto trabajar con nube de puntos que con
Montecarlo y ademas con h= 0.01 la media de los errores da menor que el 2 % (entre los
dos metodos, pero da mas alto por Metodo de Montecarlo) de manera que es una buena
opcion trabajar con ese tipo de mallado.
4.5. AJUSTE DEL ALGORITMO GENETICO PARA AREA ALCANZABLE 45

Tabla 4.3: Resultados de los Errores Relativos Porcentuales por Montecarlo


Pts,Pts aleatorios 180 80 20 10
(0.5,0.4,0.3) 1.23 6.97 3.37 31.09
(0.4,0.3980,0.3) 7.48 10.84 37.04 3.26
(0.4583,0.3322,0.3) 6.46 5.51 12 29.68
(0.3924,0.3924,0.3) 6.85 7.91 16.21 16.21
(0.3435,0.3738,0.2999) 5.39 3.9 8.77 21.64
(0.3999,0.3999,0.2234) 6.44 1.55 15.7 22.62
(0.4934,0.3943,0.2730) 2.7 6.18 11.19 16.61
(0.2155,0.2543,0.2630) 2.91 2.41 18.07 173.1
(0.1343,0.1534,0.1) 26.7 40 100 140
(0.2,0.1,0.2999) 50.5 122.77 100 197.03
Media 11.666 20.804 32.235 65.124
Desviacion estandar(std(x)) 15.4005 37.513 36.779 74.0494
Desviacion estandar(std(x,1)) 14.6102 35.588 34.8917 70.2494

4.5. Ajuste del Algoritmo Genetico para area alcan-


zable
Se estudiaran los valores de porcentaje de los algoritmos cuando cambia PC, PM, SL,
PS y iter que son el porcentaje de crossover (cruce), porcentaje de mutacion, tamano de
string de longitud del codigo binario, tamano de la poblacion inicial y numero de gene-
racion que se ejecuta el Algoritmo Genetico respectivamente. Lo que se hara sera variar
los distintos valores de porcentajes y ejecutar un numero de veces el Algoritmo Genetico
y verificar cual da el mejor fitness.

4.5.1. Estudio de PC para area alcanzable

Se realizara un estudio del desempeno del algoritmo para cuando cambia el PC que
es porcentaje de crossover (ver Apendice). Ahora se fijara los parametros del Algoritmo
genetico, se comienza con variar PC cuyos parametros son,
PC= [0.6, 0.65, 0.70, 0.75, 0.85, 0.95]
y se fijara(por ahora) PM(3) = 0.65, iter = 250(generaciones), SL(3) = 12(largo del
string) y PS(5) = 300 (tamano de la poblacion) se ejecutara ciertos numero de veces
para cada PC y la que arroje mejor fitness sera la que se tomara para ser fijada. Del
estudio se obtiene como resultado que PC(4) = 0.75 es el mas adecuado valor y tambien
se recomienda PC= 0.95 ya que no se noto cambios significativo. (La figura 4.7 muestra
la variacion del fitness para varios valores de PC de la cual se concluye que el valor mas
alto de fitness se da 0.75.)
46 CAPITULO 4. CASOS DE ESTUDIO

Grafico de PC
0.97

0.969

0.968
Valores de Fitness

0.967

0.966

0.965

0.964
0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1
Valores de PC

Figura 4.7: Valores De PC para area alcanzable

4.5.2. Estudio de Porcentaje de Mutacion para area alcanzable


Se realizara un estudio del desempeno del algoritmo para cuando cambia el PM
que es porcentaje de mutacion (ver Apendice). Ahora se fija PC y se varia PM que
es PM= [0.1, 0.07, 0.05, 0.02, 0.01, 0.0] y si se mantiene fijos los mismos valores que en PC
y ejecutando el algoritmo Genetico da como resultado PM(3)= 0.05 como valor mas ade-
cuado y tambien se recomienda PM= 0.02 y PM=0.01.(La figura 4.8 muestra la variacion
del fitness para varios valores de PM, de la cual se concluye que la de fitness mas alto se
da en 0.05.)

4.5.3. Estudio de Longitud de Codigo Binario (SL) para area


alcanzable
Ahora nuevamente se deja fijo PC, PM, y lo que ya se lleva fijo y se varia SL que
es SL= [9, 12, 15, 18, 21, 24], y ejecutando el algoritmo Genetico da como resultado mas
adecuado SL= 15, y tambien se recomienda SL= 12 y SL= 24 ya que no se notaron
cambios significativos.(La figura 4.9 muestra la variacion del fitness para varios valores de
SL de la cual se concluye que SL= 15 es el de mayor fitness.)

4.5.4. Estudio del Tamano de la poblacion y de generaciones


(iter) para area alcanzable
Ahora se va a estudiar PS que es el tamano de la poblacion inicial con la que se
comienza en el Algoritmo Genetico y iter que es el numero de generaciones que se ejecuta
un programa. Para PS que es PS= [50, 100, 150, 200, 300, 400, 500, 600, 700, 800, 900, 1000]
ejecutando el algoritmo Genetico da como mejor resultado PS(6)= 400 y para iter da
4.5. AJUSTE DEL ALGORITMO GENETICO PARA AREA ALCANZABLE 47

Grafico de PM
0.9695

0.969

0.9685
Valores de Fitness

0.968

0.9675

0.967

0.9665

0.966
0 0.02 0.04 0.06 0.08 0.1
Valores de PM

Figura 4.8: Valores De PM para area alcanzable

Grafico de SL
0.97

0.9695

0.969
Valores de Fitness

0.9685

0.968

0.9675

0.967

0.9665
8 10 12 14 16 18 20 22 24
Valores de SL

Figura 4.9: Valores De SL para area alcanzable

como mas adecuado valor de iter= 250 y se recomienda cualquier valor mayor que ese
valor. La figura 4.10 y 4.11 muestra la variacion del fitness para varios valores de PS y
iter de la cual se concluye PS= 400 y iter= 250 son los de mayor fitness.
48 CAPITULO 4. CASOS DE ESTUDIO

Grafica de iter(generaciones)
0.971

0.97

0.969
Valores del Fitness

0.968

0.967

0.966

0.965

0.964
100 200 300 400 500 600
Valores de generaciones(iter)

Figura 4.10: Valores De iter(generaciones) para area alcanzable

Grafica de valores de la poblacion


0.97

0.9695

0.969

0.9685
Valores del Fitness

0.968

0.9675

0.967

0.9665

0.966

0.9655
100 200 300 400 500 600 700
Valores de la Poblacion

Figura 4.11: Valores De PS para area alcanzable

4.6. Optimizacion del Area Alcanzable


Luego de repetir varios numeros de iteraciones con lo parametros ya establecidos que
son PC= 0.75, PM= 0.05, SL= 15, PS= 400 y iter= 250 da como maximo en el Algoritmo
Genetico

x = 0.499890133365886, 0.399908444471572, 0.000012207403790


4.6. OPTIMIZACION DEL AREA ALCANZABLE 49

donde L1 = 0.499890133365886, L2 = 0.399908444471572 y d= 0.000012207403790, cuyo


valor maximo de area es 0.971508059896899(fitness). Las figuras 4.12 y 4.13 muestran
el area alcanzable y las generaciones para encontrar el maximo respectivamente. En la
grafica del area alcanzable la parte de color azul es el area alcanzable por el robot paralelo,
la linea azul horizontal en la parte de abajo significa que el robot es capaz de llegar a esos
puntos. La grafica es importante porque muestra los puntos (de color azul) donde el robot
puede llegar al menos por una direccion. Y la grafica de las generaciones es importante
porque muestra como en cada iteracion del Algoritmo Genetico que es una generacion, el
maximo va cambiando de valor.

0.8

0.6

0.4

0.2

0
0.4 0.2 0 0.2 0.4 0.6

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 4.12: Maxima area alcanzable

Maximo
1

0.9

0.8

0.7
Valores de Fitness

0.6

0.5

0.4

0.3

0.2

0.1

0
0 50 100 150 200 250 300 350 400 450
Generaciones

Figura 4.13: Generaciones del Maximo


50 CAPITULO 4. CASOS DE ESTUDIO

4.7. Segundo caso de estudio


No se tiene porque restringir los valores de L1 , L2 y d se puede plantear el problema
con mayores rangos como L1 de 0.1 a 1, L2 de 0.1 a 1 y d de 0 a 0.6. Y dara como
maximo x = 1, 1, 0.6 (que es x = L1 , L2 ,d ) y area 1.2(que es el fitness) es decir cubre
todo el espacio de trabajo, pero no es unico el valor x = 0.9, 0.9, 0.5 tambien cubre todo el
espacio de trabajo, estos puede ser robots paralelos que cubren todo el espacio de trabajo,
pero estos valores de maximos suelen ser robot torpes(a un robot torpe lo llamamos as si
es de de baja dexteridad).

4.8. Estudio de Dexteridad


4.8.1. Mallado de dexteridad
Para cada punto (L1 , L2 ,d), con el mallado (x,y) del area de trabajo hecho para calcular
el area alcanzable (o si se usa un nuevo mallado ya que se tiene diferentes algoritmos )
se revisa si satisface lo que la ecuacion de los angulos exige por ejemplo del angulo 2
ecuacion 3.51 que a2 + b2 c2 (que depende de (x,y) y (L1 ,L2 ,d) ) sea mayor o igual a
cero, es decir
d2
(y 2 ) (a2 ))2
(4y 2 a2 ) + ((2xa da)2 ) (b2 (x2 ) + (xd) (4.4)
4
sea mayor o igual a cero, de manera analoga con el angulo 1 esto es:

2 2 2 2 2 d2
(4y a ) + ((2xa + da) ) (b (x ) (xd) (y 2 ) (a2 ))2 (4.5)
4
luego para los puntos que satisfacen que las ecuaciones 4.4 y 4.5 son mayores iguales a
cero, son los puntos alcanzable, entonces se calcula 1 ,2 ,3 y 4 (que depende de (x,y) y
(L1 ,L2 ,d)), despues se calcula el Jacobiano, si la matriz es invertible se obtiene el valor
del numero de condicionamiento (cond(J)) de la matriz jacobiana, si no es invertible
colocamos 0 a la evaluacion de ese punto (x,y), si es invertible y se obtiene el numero
de condicion luego verificamos si es menor que cierto valor, si le asigna 1 si es menor
que dicho valor, si no 0, luego se suman todos los 1 y se calcula una area de dexteridad
que mide la dexteridad en conjunto del mallado para el punto (L1 , L2 ,d). Ver flujograma
mostrado en la Figura 4.14

4.8.2. Discretizacion del modelo para determinar el Area de


Dexteridad
Se comienza nuevamente calculando los errores y con que mallado se puede trabajar
que haga el algoritmo en matlab rapido y verificar si se trabaja con Montecarlo o Nube
de puntos. Para ello se usara la formula siguiente:
1
P
( cond(J) )
A= (4.6)
Numero de puntos total
4.8. ESTUDIO DE DEXTERIDAD 51

Se utiliza la dis-
Se tiene primero cretizacion(de area
el punto (L1 , L2 ,d) alcanzable) de (x,y)
del espacio de trabajo

Se halla con los puntos


alcanzables 1 ,2 ,3
y 4 (que dependen
de (x,y) y (L1 , L2 ,d))

Se halla la matriz
Jacobiana que de-
pende de 1 ,2 ,3 y
4 , si es invertible

Se halla el numero
de condicion de la
matriz Jacobiana

Si el numero de con-
dicion de la matriz
Jacobiana es menor que
cierto valor ponemos 1,
si no lo es ponemos 0

Sumamos todos lo
1 y hallamos el
area de dexteridad

Figura 4.14: Flujograma del Mallado de Dexteridad


52 CAPITULO 4. CASOS DE ESTUDIO

donde cond(J) es numero de condicionamiento de cada punto del mallado(donde esto tiene
sentido) del espacio de trabajo y J es la matriz jacobiana, a esta formula se llamara indice
de dexteridad.
Se usara los mismos 10 puntos (cada punto es un (L1 ,L2 ,d) y se usa de nube de puntos h=
0.0005 como solucion exacta que son 4804401 puntos que se utilizaran para la dexteridad)
ya usados anteriormente se obtiene por Nube de Puntos, ver tabla 4.4 la cual da los errores
relativo porcentual de comparar con el indice de dexteridad del mallado mas fino y de la
cual se concluye la media y desviacion estandar de los 10 puntos, ver Tabla 4.4.

Tabla 4.4: Resultados de los Errores Relativos Porcentuales por nube de puntos
Ptos,h h=0.001 h=0.01 h=0.05 h=0.1
(0.5,0.4,0.3) 0.0495 0.54 2.57 6.31
(0.4,0.3980,0.3) 0 0.35 1.49 1.59
(0.4583,0.3322,0.3) 0.0255 0.82 3.39 4.64
(0.3924,0.3924,0.3) 0.0207 0.27 0.0207 1.53
(0.3435,0.3738,0.2999) 0.0206 0.78 0.0825 2.52
(0.3999,0.3999,0.2234) 0.019 0.42 1.35 0.89
(0.4934,0.3943,0.2730) 0.024 0.7 2.59 6.38
(0.2155,0.2543,0.2630) 0 1.59 7.61 20.49
(0.1343,0.1534,0.1) 0.15 2.09 9.77 13.87
(0.2,0.1,0.2999) 0.0597 0.69 ******* *********
Media 0.0369 0.825 3.2081 6.4689
Desviacion estandar(std(x)) 0.0439 0.5774 3.3465 6.6112
Desviacion estandar(std(x,1)) 0.0416 0.5477 3.1551 6.2331

Significa punto atpico

Por Metodo de Montecarlo se obtiene (si se usa como solucion exacta la de nube de
puntos para h=0.0005) ver tabla 4.5 la cual da los errores relativo porcentual (por el
Metodo de Montecarlo) de comparar con el indice de dexteridad del mallado mas fino y
de la cual se concluye la media y desviacion estandar de los 10 puntos
4.9. AJUSTE DEL ALGORITMO GENETICO PARA DEXTERIDAD 53

Tabla 4.5: Resultados de los Errores Relativos Porcentuales por Montecarlo


Ptos,Ptos aleatorios 1203409 12321 625 289 169 121
(0.5,0.4,0.3) 1.9 1.61 1.24 2.85 3.64 3.74
(0.4,0.3980,0.3) 5.22 6.36 7.7 0.8 11.39 4.73
(0.4583,0.3322,0.3) 3.49 2.93 3.11 1.73 5.17 8.86
(0.3924,0.3924,0.3) 5.15 3.43 5.73 4.72 10.06 16.97
(0.3435,0.3738,0.2999) 3.3 3.77 2.68 2.04 4.62 9.61
(0.3999,0.3999,0.2234) 4.43 4.56 3.69 2.45 12.07 9.03
(0.4934,0.3943,0.2730) 2.11 2.16 4.13 2.61 4.58 4.73
(0.2155,0.2543,0.2630) 4.46 5.08 9.96 9.29 10.21 16.14
(0.1343,0.1534,0.1) 1.5 2.98 2.49 9.43 ****** 23.57
(0.2,0.1,0.2999) 1.61 7.64 9.82 ****** ****** *****
Media 3.317 4.052 5.055 3.9911 7.7175 10.82
std(x) 1.462 1.8836 3.1179 3.2187 3.5190 6.7222
std(x,1) 1.387 1.787 2.9579 3.0346 3.2918 6.3377

Significa punto atpico


std= Desviacion Estandar

Se concluye de la tabla 4.4 que la media de h= 0.01 con nube de puntos que son 12221
puntos la media es menor que 1 % es por ello que es una buena opcion usar h= 0.01 y de
tabla 4.5 para 12321 la media supera el 4 % es por eso que es mas seguro usar nube de
puntos que Montecarlo.

4.9. Ajuste del Algoritmo Genetico para Dexteridad


4.9.1. Estudio de PC para Dexteridad
Se comienza a variar PC y se fija iter= 200, PM= 0.07, SL= 15 y PS= 300 siendo PC
los mismo valores presentados en maximizar area alcanzable. Despues de varias ejecuciones
da como resultado como valor mas adecuado PC= 0.70 y se recomienda PC= 0.85 tambien
ya que no se notaron cambios significativos. (La figura 4.15 muestra la variacion del fitness
para varios valores de PC de la cual se concluye que el de mayor fitness es 0.70 de PC.)

4.9.2. Estudio de Porcentaje de Mutacion para Dexteridad


Ahora se fija PC junto a lo ya fijado y se varia PM, siendo PM los mismos valores que
en area alcanzable. Da como valor mas adecuado PM ejecutando el Algoritmo genetico
PM= 0.1 y se recomienda PM= 0.07.(La figura 4.16 muestra la variacion del fitness para
varios valores de PM de la cual se concluye que la de mayor fitness es 0.1 de PM.)
54 CAPITULO 4. CASOS DE ESTUDIO

Grafico de PC
0.69

0.68

0.67
Valores de Fitness

0.66

0.65

0.64

0.63
0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1
Valores de PC

Figura 4.15: Valores de PC para Dexteridad

Grafico de PM
0.69

0.68

0.67
Valores de Fitness

0.66

0.65

0.64

0.63
0 0.02 0.04 0.06 0.08 0.1
Valores de PM

Figura 4.16: Valores de PM para Dexteridad

4.9.3. Estudio de Longitud de Codigo Binario (SL) para Dexte-


ridad
Ahora se fija PM, PC y se varia SL, siendo SL los mismos valores ya presentados en area
alcanzable y da ejecutando el Algoritmo genetico como valor mas adecuado el resultado
SL= 15 y se recomienda SL= 18 porque no se encontro cambios importantes.(La figura
4.9. AJUSTE DEL ALGORITMO GENETICO PARA DEXTERIDAD 55

4.17 muestra la variacion del fitness para varios valores de SL, de la cual se concluye que
la de mayor fitness se da SL= 15.)

Grafico de SL
0.695

0.69

0.685

0.68
Valores de Fitness

0.675

0.67

0.665

0.66

0.655

0.65

0.645
8 10 12 14 16 18 20 22 24
Valores de SL

Figura 4.17: Valores de SL para Dexteridad

4.9.4. Estudio tamano de la poblacion y de generaciones(iter)


para Dexteridad
Se fija PM, PC y SL con los parametros ya encontrados y da ejecutando el Algoritmo
genetico como mejor resultado PS= 300 y iter = 300 tambien recomendamos PS= 500 y
iter= 200 ya que no se encontro cambios significativos, y no se descarta valores mayores
que estos parametros.(La figura 4.18 y 4.19 muestra la variacion del fitness para varios
valores de iter y PS de la cual se concluye que la de mayor fitness es 300 de PS y iter en
los dos casos respectivamente.)
56 CAPITULO 4. CASOS DE ESTUDIO

Grafica de iter(Generaciones)
8500

8450
Valores de Fitness

8400

8350

8300

8250
0 50 100 150 200 250 300 350 400
Valores de Generaciones

Figura 4.18: Valores de Generaciones para Dexteridad

Grafica de Valores de la Poblacion


8500

8450

8400
Valores de Fitness

8350

8300

8250

8200
50 100 150 200 250 300 350 400 450 500
Valores de la Poblacion

Figura 4.19: Valores de Poblacion para Dexteridad


4.10. OPTIMIZACION DEL AREA DE DEXTERIDAD PRIMER CASO DE ESTUDIO57

4.10. Optimizacion del Area de Dexteridad primer


caso de estudio
Para encontrar el maximo de dexteridad usando nube de puntos se ejecuta el Algoritmo
genetico varias veces con los parametros ya establecidos que son PC= 0.70, PM= 0.1,
SL= 15, iter= 300 y PS=300, pero para que de un resultado que en conjunto los puntos
del mallado que caen dentro del area tengan buena dexteridad se utiliza la formula que se
llamara area de dexteridad que el numero de condicion sea menor que en un cierto valor
que en este caso se usara 6, y se asegura que el area encontrada sea apreciable porque en
su conjunto los valores tienen buen numero de condicion, y da como resultado

x = 0.3930, 0.3998, 0.0005

donde L1 = 0.3930, L2 = 0.3998 y d= 0.0005, por fitness da Area = 8468. Graficas del
area alcanzable y el area de dexteridad calculando el indice de dexteridad ver figura 4.20
y 4.21 en la primera figura en color azul muestra los puntos alcanzables y en la ultima
figura mientra se acerca a 1 es decir el color rojo es buena dexteridad, y se acerca a 0 en
color azul es mala dexteridad.

0.8

0.6

0.4

0.2

0
0.4 0.2 0 0.2 0.4 0.6

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 4.20: Grafica del area alcanzable

4.11. Optimizacion del Area Dexteridad del segundo


caso de estudio
El otro problema es el L1 ,L2 esta entre 0.1 y 1 y d esta entre 0 y 0.6, exigiendo que el
numero de condicion de la matriz jacobiana sea menor que 3 (es decir exigiendo mas que
58 CAPITULO 4. CASOS DE ESTUDIO

0.8

0.6

0.4

0.2

0
0.4 0.2 0 0.2 0.4 0.6

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 4.21: Grafica del area de Dexteridad primer caso de estudio

el anterior) da como maximo corriendo el Algoritmo genetico

x = 0.6184, 0.6753, 0.0052

donde L1 = 0.6184, L2 = 0.6753 y d= 0.0052 y area de dexteridad 12159 (que es el


fitness).
Ahora si se trabajara con el indice de dexteridad para ver la figura del area alcanzable y
el area de dexteridad. Las figuras son 4.22 y 4.23. En la figura 4.22 se muestra en color
azul los puntos alcanzables y se nota que este valor de maximo cubre mas area. La figura
4.23 muestra en color rojo los puntos donde el robot paralelo tiene mayor dexteridad y
en color azul donde tiene menos dexteridad.
De los resultados obtenidos se puede concluir que:

1. Los cuadros de los errores porcentuales mostro que trabajar con un mallado tan fino
no tiene importancia ya que hace mas lento el algoritmo. En el cuadro se muestra
que trabajar con un h= 0.01 la media da menor que 2 % con lo cual es un valor que
se puede trabajar y se disminuye el trabajo computacional.

2. En la dexteridad se vio que si se trabaja con el indice dexteridad individualmente en-


tonces valores pequenos de (L1 , L2 ,d) tenan gran dexteridad, esto se observo cuando
se hacan los cuadros de errores porcentuales de dexteridad, esto ocurrio porque no
se tomaba en cuenta el conjunto del puntos del mallado es por ello que se introdujo
el area de dexteridad.

3. Es importante tener en cuenta el marco teorico para el entendimiento de los codigos


computacionales.
4.11. OPTIMIZACION DEL AREA DEXTERIDAD DEL SEGUNDO CASO DE ESTUDIO59

0.8

0.6

0.4

0.2

0
0.4 0.2 0 0.2 0.4 0.6

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 4.22: Area alcanzable de segundo caso de estudio

4. Comprobado en computadoras el Algoritmo Genetico(que se presenta en el apendice


A) se puede volver muy lento (sobre todo en calculo de la dexteridad) si el mallado
es muy fino es por eso que se debe trabajar teniendo en cuenta un error porcentual
de la solucion exacta.

5. El previo estudio de los parametros de los porcentajes de cruce PC, de mutacion


PM y de tamano del string SL, junto numero del tamano de la poblacion inicial
PS y del numero de iter (generaciones) es muy importante ya que disminuye el
trabajo porque luego a la hora de optimizar se puede volver tedioso, porque hay que
tomar en cuenta que el Algoritmo Genetico tambien tiene distintos operadores con
variaciones.
60 CAPITULO 4. CASOS DE ESTUDIO

0.8

0.6

0.4

0.2

0
0.4 0.2 0 0.2 0.4 0.6

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 4.23: Area de Dexteridad de segundo caso de estudio


Captulo 5

Conclusiones

5.1. Conclusiones
La creciente demanda de los Robot Paralelos por el sector industrial, ha permitido que
entes academicos se interesen en el estudio de metodos para resolver problemas actuales
en este tipo de robot debido a la complejidad en su topologa, as como profundizar en
los diferentes temas de estudio como su espacio de trabajo.
En esta tesis se optimizo el espacio de trabajo diestro utilizando algoritmos evolutivos
(Algoritmos Geneticos).
En el presente trabajo se presento uno de los problemas de los robot paralelos su poco
espacio alcanzable que se sabe que es pequeno siendo uno de las pocas virtudes de este
tipo de robot.
Esta tesis se presento primero que todo, una introduccion de los temas abordados, se
abordo primero que todo la parte teorica correspondiente a Algoritmo genetico y como
segunda parte la de cinematica, se mostro as el problema de cinematica inversa con sus
respectivas ecuaciones que ayudaran ha hacer algunos Algoritmos computacionales.
Se mostro como uno de los aporte de esta tesis, una ruta de como abordar el tema de
maximizar el espacio alcanzable y de como maximizar el espacio diestro perdiendo menos
espacio posible es decir un espacio apreciable alcanzable y de buena dexteridad.
Se enseno un camino de como ajustar los distintos parametros del Algoritmo genetico
para la convergencia del maximo.
El Algoritmo genetico maximiza las dimensiones del diseno del robot paralelo. Primero
se presento rangos de poco limite y despues un segundo ejemplo con rangos mas grandes
para no limitar al disenador del Robot Paralelo. Se mostro una forma de trabajar en
conjunto como maximizar el espacio de trabajo alcanzable con cierta dexteridad.

5.2. Recomendaciones
1. Se deja como futuro trabajo desarrollar las ecuaciones de cinematicas para robot
paralelos espaciales.

61
62 CAPITULO 5. CONCLUSIONES

2. El desarrollo de la funcion objetivo del Algoritmo Genetico para un ejemplo de un


robot espacial para el area alcanzable como para la dexteridad.

3. Arreglar el Algoritmo Genetico para un robot paralelo espacial.

4. Se deja como futuro trabajo una aplicacion de maxima area alcanzable y dexteridad
de un robot paralelo espacial.
Apendice A

Solucion algebraica por reduccion a


polinomios

Hay otra forma de resolver la ecuacion trigonometrica

c = a cos() + b sin() (A.1)

si se hace la siguientes sustituciones se produce una expresion en termino de una sola


variable u:

u = tan( ) (A.2)
2
1 u2
cos() = (A.3)
1 + u2
2u
sin() = (A.4)
1 + u2
si se hace estas sustituciones en la ecuacion 3.76 se llega a

a(1 u2 ) + 2bu = c(1 + u2 ) (A.5)


desarrollando y juntando las potencias de u,

(a + c)u2 2bu + (c a) = 0 (A.6)

se resuelve mediante la formula cuadratica,



b b 2 + a2 c 2
u= (A.7)
a+c
en consecuencia
b b 2 + a2 c 2
= 2 arctan( ). (A.8)
a+c

63
64 APENDICE A. SOLUCION ALGEBRAICA POR REDUCCION A POLINOMIOS
Apendice B

Codigo de GA

B.1. Algoritmo Genetico (AG)


Un AG es un algoritmo para optimizacion global basado en la busqueda heuristica
imitando el proceso de seleccion natural. Algunos conceptos de la AG incluyen:

B.1.1. Encoding (Codificacion)


En la AG las variables del problema estan codificadas en forma binaria. Las variables
reales se denominan forma fenotipo y la codificacion binaria es la forma genotipo. Cada
variable se codifica con una cadena de longitud (l) que contiene ceros y unos. La poblacion
inicial se genera aleatoriamente de acuerdo con la siguiente funcion

1 function pop=encoding(popsize,stringlength,dimension)
2 pop=(round(rand(popsize,dimension*stringlength+dimension+2)));

B.2. Decoding (Descodificacion)


La funcion objetivo se evalua para cada miembro de la poblacion. Para evaluar la
funcion, primero se descifra la forma genotipo a la forma fenotipo, y en segundo lugar, se
encuentra el valor en la funcion objetivo para cada miembro de la poblacion. Esto se hace
con el siguiente codigo

1 function [pop]=decoding(pop,stringlength,dimension,x bound)


2 popsize=size(pop,1);
3 temp=2.(stringlength1:1:0);
4 for i=1:dimension
5 bound(i)=(x bound(i,2)x bound(i,1))/(2stringlength1);
6 end
7 for i=1:popsize
8 for j=1:dimension
9 m(:,j)=pop(i,stringlength*(j1)+1:stringlength*j);

65
66 APENDICE B. CODIGO DE GA

10 end
11 x=temp*m;
12 x=x.*bound+x bound(:,1)';
13 pop(i,dimension*stringlength+1:dimension*stringlength+dimension)=x;
14 y=funname(x);
15 pop(i,dimension*stringlength+dimension+1)= y.f;
16 pop(i,dimension*stringlength+dimension+2)=y.c;
17 end

Tenga en cuenta que las dos ultimas columnas de la variable pop consisten en el valor
de la funcion objetivo y la evaluacion de la funcion de restriccion. As, en este paso, las
restricciones pueden ser incluidas para resolver problemas de optimizacion restringidos

B.3. Selection(Seleccion)
Con el fin de decidir que miembro de la generacion actual tomara parte de la nueva
generacion, el fitnees de cada miembro de la poblacion se encuentra de la siguiente manera:

1 function selected=selection(pop,popsize,stringlength,dimension,minf)
2 popsize new=size(pop,1);
3 fitness=pop(:,dimension*stringlength+dimension+1) ...
+pop(:,dimension*stringlength+dimension+2);
4 if min(fitness)<0
5 fitness=fitness+minf*abs(min(fitness));
6 end
7 fitness=fitness./sum(fitness);
8 fitness=cumsum(fitness);

Observe que en el codigo anterior, la funcion objetivo se desplaza por un valor igual a
minf. Por ejemplo, si minf = 1.01 la funcion se desplaza 1 % del valor mnimo de la funcion
de fitnees (por lo tanto, la funcion de fitnees evita tener valores negativos)
En este proyecto se implementaron tres metodos de seleccion. La primera es la ruleta,
metodo estocastico, con dos punteros. Esto es

1 case 'stochastic'
2 for i=1:popsize new/2
3 pointer=0.5*rand+(0:0.5:0.5)';
4 selected(2*i1,:)=pop(find(fitness pointer(1),1),:);
5 selected(2*i,:)=pop(find(fitness pointer(2),1),:);
6 end

El segundo enfoque es el Metodo Universal Estocastico. En un turno de la rueda se


seleccionan todos los miembros de la poblacion que van a estar en la piscina de aparea-
miento. Esto se hace mediante la inclusion del mismo numero de punteros en la rueda de
la ruleta. Esto es

1 case 'general stochastic'


B.3. SELECTION(SELECCION) 67

2 pointer=rand*1/(popsize new)+(0:1/popsize new:11/popsize new)';


3 for i=1:popsize new
4 selected(i,:)=pop(find(fitness pointer(i),1),:);
5 end
6 end

El tercer enfoque se basa en el metodo Deb donde se aplica una seleccion de torneos
binarios con un conjunto de reglas para desarrollar el conjunto de acoplamiento para la
nueva generacion. Las siguientes reglas se aplican para comparar dos individuos:

1. Una solucion factible siempre es preferible a una inviable.

2. Entre dos soluciones factibles, se prefiere el que tiene un mejor valor de funcion
objetivo.

3. Entre dos soluciones inviables, se prefiere el que tenga menor violacion de restriccion

El codigo para aplicar este enfoque se puede escribir de la siguiente manera:

1 case 'deb'
2 for i=1:popsize new
3 j=find(fitnessrand,1);
4 k=find(fitnessrand,1);
5 f1=pop(j,dimension*stringlength+dimension+1);
6 f2=pop(k,dimension*stringlength+dimension+1);
7 c1=pop(j,dimension*stringlength+dimension+2);
8 c2=pop(k,dimension*stringlength+dimension+2);
9
10 if (c1==0 && c2==0) % both are feaseble
11 if f1>f2
12 selected=[selected competitor1];
13 else
14 selected=[selected competitor2];
15 end
16 end
17 if (c16=0 && c26=0) % both are unfeaseble
18 if abs(c1)<abs(c2)
19 selected=[selected competitor1];
20 else
21 selected=[selected competitor2];
22 end
23 end
24 if (c1==0 && c2==1) % both are feaseble
25 selected=[selected competitor1];
26 end
27 if (c1==1 && c2==0)
28 selected=[selected competitor2];
29 end
30 end
68 APENDICE B. CODIGO DE GA

B.4. Crossover (Cruce)


Una vez que se obtiene la piscina de acoplamiento, se realiza el cruce. En este codigo se
realizaron dos metodos de cruce: 1) cruce de punto unico y 2) cruce de multiples puntos.
Esto es:

1 function [child1,child2]=cross running(parent1,parent2,stringlength, ...


2

3 if rand < pc
4 cross=2;
5 if cross==1
6 cpoint=round(rand*(2*stringlength1))+1;
7 child1=[parent1(:,1:cpoint) ...
parent2(:,cpoint+1:stringlength*dimension)];
8 child2=[parent2(:,1:cpoint) ...
parent1(:,cpoint+1:stringlength*dimension)];
9 end
10 if cross==2
11 cpoint=round((stringlength1)*rand(1,dimension))+1;
12 for j=1:dimension
13 child1((j1)*stringlength+1:j*stringlength)=[parent1((j1)* ...
14 stringlength+1:(j1)*stringlength+cpoint(j)) parent2((j1)* ...
15 stringlength+cpoint(j)+1:j*stringlength)];
16 child2((j1)*stringlength+1:j*stringlength)=[parent2((j1)* ...
17 stringlength+1:(j1)*stringlength+cpoint(j)) parent1((j1)* ...
18 stringlength+cpoint(j)+1:j*stringlength)];
19 end
20 end
21 else
22 child1=parent1;
23 child2=parent2;
24 end
25 end

B.5. Mutation(Mutacion)
De acuerdo con la probabilidad de mutacion, un gen en algunos de los miembros de la
poblacion se cambia de 1 a 0 o viceversa, por lo que se realiza la mutacion. Esto es:

1 function new pop=mutation(new pop,stringlength,dimension,pm)


2 new popsize=size(new pop,1);
3 for i=1:new popsize
4 if rand<pm
5 mpoint=round(rand(1,dimension)*(stringlength1))+1;
6 for j=1:dimension
7 new pop(i,(j1)*stringlength+mpoint(j))=1new pop(i,(j1) ...
8 *stringlength+mpoint(j));
9 end
B.5. MUTATION(MUTACION) 69

10 end
11 end

Como futuros trabajos recomendamos usar los metodos de Niching extienden AG sim-
ples promoviendo la formacion de subpoblaciones estables en el vecindario de soluciones
optimas. En este proyecto se implementa el metodo de comparticion. El metodo consiste
en buscar en el paisaje reduciendo la rentabilidad en regiones densamente pobladas.
70 APENDICE B. CODIGO DE GA
Apendice C

Algortimo para Ejecucion de la


Optimizacion

C.1. MainGA
Programa principal desde donde se ejecuta el Algoritmo Genetico es:

1 clc
2 clear
3
4 global equation;
5 global selection method;
6 global niching;
7 global sigma;
8 tic
9 equation='F1';
10 selection method='general stochastic' % a.general stochastic ...
b.stochastic c.dep tournament deb constriants
11 %Parameters
12 switch equation
13

14
15
16
17 case 'F1'
18 % Funcion espacio de trabajo
19 x bound=[0.1 0.5;0.1 0.4;0 0.4];
20 dimension=length(x bound(:,1));
21 xn=[0 0];
22 plotf=0;
23
24 end
25 Iter=40;
26 PC=[0.6 0.65 0.70 0.75 0.85 0.95];
27 PM=[0.1 0.07 0.05 0.02 0.01 0.0];
28 PS=[50 100 150 200 300 400 500 600 700 800 900 1000];

71
72 APENDICE C. ALGORTIMO PARA EJECUCION DE LA OPTIMIZACION

29 SL=[9 12 15 18 21 24];
30 d=length(PC);
31 minF=[1.005 1.01 1.015 1.02 1.03 1.05];
32 %% % % % % % % % % % % % % % %
33 %lo puse yo para que no pase por niching
34 alpha=[1 10 20 50 100 1000];
35 niching=0; % puse 0 para que no pase en programa selection
36 Sigma=[0.05 0.1 0.3 0.5 0.7 1]*abs((x bound(1,1)x bound(1,2))); %=1;
37 %=1;
38 for l=1:1
39 for j=1:1
40 maxIter=Iter;
41 popsize=PS(6);
42 stringlength=SL(3);
43 pm=PM(3);
44 pc=PC(4);
45 minf=minF(4);
46 sigma=Sigma(1,5);
47 %Generation first population
48 pop=encoding(popsize,stringlength,dimension);
49 [pop]=decoding(pop,stringlength,dimension,x bound);
50 %*********************
51 if plotf==1
52 figure(1)
53 nptos=20;
54 hold off
55 [xt,yt]=meshgrid(x bound(1,1)*1.1:
56 (x bound(1,2)x bound(1,1))/(nptos1):x bound(1,2)*1.1);
57 zt=150.*xt 175.*yt; %xt.2yt; %f9 +1.75.*xt +1.25.*yt;
58
59 contour(xt,yt,zt,50)
60 mesh(xt,yt,zt)
61 hold on;
62 h1=plot3(pop(:,stringlength*2+1), ...
pop(:,stringlength*2+2),pop(:,stringlength*2+3),'*');
63 axis([x bound(1,1)*1.1 x bound(1,2)*1.1 x bound(1,1)*1.1 ...
x bound(1,2)*1.1 1.1*min(min(zt)) 1.1*max(max(zt))]);
64 % view(0,90);
65 end
66 npop=selection(pop,popsize,stringlength,dimension,minf);
67 new pop=cross over(npop,popsize,stringlength,dimension,pc);
68 pop=mutation(new pop,stringlength,dimension,pm);
69 [pop]=decoding(pop,stringlength,dimension,x bound);
70 xp(1,:)=min(pop(:,stringlength*dimension+1:
71 stringlength*dimension+dimension));
72 f(j,1)=max(pop(:,stringlength*dimension+dimension+1)); % estaba ...
min(......)
73 fm(j,1)=mean(pop(:,stringlength*dimension+dimension+1));
74 if plotf==1
75 set(h1,'XData',pop(:,stringlength*2+1),'YData',
76 pop(:,stringlength*2+2),'ZData',pop(:,stringlength*2+3))
77 pause(0.0001);
78 end
C.2. FUNNAME (EVALUACION EN LA FUNCION OBJETIVO) 73

79 k=1;
80 i=2;
81 while (k<maxIter && i<maxIter)
82 npop=selection(pop,popsize,stringlength,dimension,minf);
83 new pop=cross over(npop,popsize,stringlength,dimension,pc);
84 pop=mutation(new pop,stringlength,dimension,pm);
85 [pop]=decoding(pop,stringlength,dimension,x bound);
86 xp(i,:)=min(pop(:,stringlength*dimension+1:
87 stringlength*dimension+dimension));
88 f(j,i)=max(pop(:,stringlength*dimension+dimension+1));
89 fm(j,i)=mean(pop(:,stringlength*dimension+dimension+1));
90 if plotf==1
91 set(h1,'XData',pop(:,stringlength*2+1),'YData',
92 pop(:,stringlength*2+2),'ZData',pop(:,stringlength*2
93 +3))
94 pause(0.0001);
95 end
96 if abs(f(i)f(i1))==0
97 k=k+1;
98 end
99
100 [ft(j),x(j,:)]=result(pop,stringlength,dimension); % esto para ...
saber resultado de cada generacion
101 %% % % % % % % % % % % % % % esto
% % % lo hice yo
102 % Sge=zeros(popsize,4); % matriz de valores funcion aptitud y ...
coordenadas
103 Sge(i,1)=ft(j);
104 Sge(i,2:4)=x(j,:);
105 i=i+1;
106 end
107 % hago el archivo.mat para saber los valores de cada generacion es
108 % decir la matriz Sge
109 save generacion.mat Sge
110 [ft(j),x(j,:)]=result(pop,stringlength,dimension)
111
112
113 end
114 label=num2str(l);
115 label2=['f2 generalStochasticPMuta',label,'.mat'];
116 save(label2);
117 end
118
119 [A]=main workspace2(x) % esto es para que grafique el area de espacio ...
de trabajo y diestro

C.2. Funname (evaluacion en la funcion objetivo)


Se usa esta funcion en Matlab para evaluar el punto x= (L1 , L2 ,d) en la funcion
objetivo.
74 APENDICE C. ALGORTIMO PARA EJECUCION DE LA OPTIMIZACION

1 function y=funname(x)
2 global equation;
3 global penalty;
4 switch equation
5
6
7
8
9 case 'F1'
10 [A]=main workspace(x);
11 y.f=A;
12 % y.f=fsuma;
13 % Penalizacion
14 y.c=0;
15 end

C.3. Main workspace


Se usa esta funcion en Matlab como funcion objetivo para hallar el area alcanzable.

1 function [A]=main workspace(x)


2

3 clear a
4 clear b
5 clear c
6 clear A
7 clear v
8

9
10 a=x(1);
11 b=x(2);
12 d=x(3);
13
14

15
16 xp=(0.6:0.01:0.6);
17 yp=(0:0.01:1);
18
19 %Nube de puntos
20 p=0;
21 for j=1:length(xp)
22 for i=1:length(yp)
23 v=workspace 5R(xp(j),yp(i),a,b,d);
24 if(v==0)
25 p=p+1;
26 else
27 %no hace nada
28 end
29 end
C.3. MAIN WORKSPACE 75

30 end
31 A=(p*(1.2)/12221);
32 end

Otra forma para hallar la dexteridad con el indice de dexteridad

1 function [fsuma]=main workspace(x)


2
3
4 a=x(1);
5 b=x(2);
6 d=x(3);
7

8
9
10
11
12 xp=(0.6:0.01:0.6);
13 yp=(0:0.01:1);
14
15
16 for j=1:length(xp)
17 % l=1;
18 for i=1:length(yp)
19 Z(j,i)=workspace 5R(xp(j),yp(i),a,b,d);
20 %Z(j,i)=jaco5R r(xp(j),yp(i),a,b,d);
21 X(j,i)=xp(j);
22 Y(j,i)=yp(i);
23 end
24 end
25

26 % calculamos el area
27 [n1,m1]=size(Z);
28 n56=n1*m1;
29 R1=1Z;
30
31 A=(sum(sum(R1))*(1.2)/n56);
32
33
34
35
36 figure(1);
37 hold on;
38 contourf(X,Y,Z,5);
39 colorbar;
40 colorbar('location','SouthOutside')
41 colormap('winter')
42 axis( [0.6 0.6 0 1]);
43

44
45 %% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
46 Z2=Z;
76 APENDICE C. ALGORTIMO PARA EJECUCION DE LA OPTIMIZACION

47 X2=X;
48 Y2=Y;
49 s(1:length(Z(:,1)))=1;
50 for i=1:length(Z(:,1))
51 if (sum(Z(i,:))==(length(Z(1,:))))
52 s(i)=0;
53 end
54 end
55
56 dummy=find(s==0);
57
58 Z2(dummy,:)=[];
59 X2(dummy,:)=[];
60 Y2(dummy,:)=[];
61
62 %Veamos cual es el 20 % de numero de filas de Z
63 n21=size(Z);
64 m=n21(1)*0.20;
65 e=round(m);
66 %Hacemos otro chequeo sacando las filas que tienen un solo 0
67 s2(1:length(Z2(:,1)))=1;
68 for i=1:length(Z2(:,1))
69 if (sum(Z2(i,:))==(length(Z2(1,:))1))
70 s2(i)=0;
71 end
72 end
73
74 dummy2=find(s2==0);
75
76 Z2(dummy2,:)=[];
77 X2(dummy2,:)=[];
78 Y2(dummy2,:)=[];
79
80 % Ahora verificamos como quedo la matriz es decir si es un espacio de
81 % trabajo apreciable
82 n34=size(Z2);
83
84 % Comparamos
85 n34(1);
86 e;
87 if n34(1)e % yo le agregue una fila mas le exijo mas
88 fsuma=0;
89 else
90 s=[];
91 for j=1:length(Z2(:,1))
92 z=Z2(j,:);
93 x=X2(j,1);
94 y=Y2(j,:);
95 s=find(Z2(j,:));
96 z(s)=[];
97 y(s)=[];
98 max y=max(y);
99 min y=min(y);
C.3. MAIN WORKSPACE 77

100 W(j,1:3)=[x min y max y];


101

102 end
103
104
105 %W([1 length(W(:,1))],:)=[];
106 Nptos=length(W(:,1));
107 %X3=zeros(Nptos,Nptos)
108 %Y3=zeros(Nptos1,Nptos);
109
110
111 for i=1:Nptos
112 step=(W(i,3)W(i,2))/(Nptos1);
113

114 X3(i,1:Nptos)=W(i,1);
115 % W(i,2):step:W(i,3);
116
117 Y3(i,1:Nptos)=(W(i,2):step:W(i,3));
118 end
119

120
121
122 for j=1:length(X3(:,1))
123 for i=1:length(Y3(1,:));
124 %Z3(j,i)=cond jaco5R(X3(j,i),Y3(j,i),a,b,d);
125 Z3(j,i)=jaco5R(X3(j,i),Y3(j,i),a,b,d);
126 end
127 end
128
129 n4=length(find(Z3));
130 fsuma=(sum(sum(Z3)))/n4;
131

132
133 figure(2);
134 hold on;
135 contourf(X3,Y3,Z3,6);
136 colorbar;
137 colorbar('location','SouthOutside')
138 axis( [0.6 0.6 0 1]);
139 colormap('jet')
140
141 end
142 end

Otra forma para hallar el area dexteridad (y no el indice)

1 function [fsuma]=main workspace(x)


2
3

4
5 a=x(1);
6 b=x(2);
78 APENDICE C. ALGORTIMO PARA EJECUCION DE LA OPTIMIZACION

7 d=x(3);
8

9
10
11 xp=(0.6:0.01:0.6);
12 yp=(0:0.01:1);
13
14

15 for j=1:length(xp)
16 %l=1;
17 for i=1:length(yp)
18 Z(j,i)=workspace 5R(xp(j),yp(i),a,b,d);
19 %Z(j,i)=jaco5R r(xp(j),yp(i),a,b,d);
20 X(j,i)=xp(j);
21 Y(j,i)=yp(i);
22 end
23 end
24
25
26 [m,n]=size(Z);
27 Z3=zeros(m,n); % contruyo la matriz completa incluyendo los que ...
tienen 1
28 Z12=1Z;
29 for j=1:length(Z3(:,1))
30 [q1,q2]= find(Z12(j,:)); % encuentro los valores distintos de
31 %0 es decir valen 1(los indices de ...
q2 bien
32 % a q1 le pone 1 no me sirve
33 [g12,h12]=size(q1);
34 if (g12*h12 6= 0) % por si es vacio
35 for p=1:length(q1)
36 %Z3(j,i)=cond jaco5R(X3(j,i),Y3(j,i),a,b,d);
37 Z3(j,q2(p))=jaco5R(X(j,q2(p)),Y(j,q2(p)),a,b,d);
38 % Z3 ya esta construidad solo cambia valores
39 end
40 else
41 end
42 end
43
44
45 fsuma=sum(sum(Z3)) ;
46
47 end

C.4. Workspace5R
Es sub-funcion del programa anterior y sirve para hallar que puntos del mallado son
alcanzable.

1
C.5. JACOB5R 79

2 function [v]=workspace 5R(xp,yp,a,b,d)


3

4 v=0;
5
6 fac(1)= (4 * yp 2 * a 2) + ((2 * xp * a + d * a) 2) (b 2 ...
(xp 2)
7 (xp * d) (d 2) / 0.4e1 (yp 2) (a 2)) 2;
8 fac(2)= (4 * yp 2 * a 2) + ((2 * xp * a d * a) 2) (b 2 ...
(xp 2)
9 + (xp * d) (d 2) / 0.4e1 (yp 2) (a 2)) 2;
10
11 if (fac(1) <0 | | fac(2)<0)
12 v=1;
13 end
14
15 end

C.5. Jacob5R
Es una sub-funcion del programa Main workspace para indice de dexteridad y sirve
para calcular el numero de condicion de la matriz jacobiana .

2 function [f]=jaco5R(xp,yp,a,b,d)
3
4
5 fac1=32 * yp 2 * a 2 + 32 * xp 2 * a 2 + 8 * d 2 * a 2
6 + 32 * b 2 * xp 2 + 8 * b 2 * d 2 + 32 * b 2 * yp 2
7 + 32 * b 2 * a 2 32 * xp 3 * d
8 24 * xp 2 * d 2 32 * xp 2 * yp 2 8 * xp * d 3
9 8 * d 2 * yp 2 + 32 * xp * a 2 * d
10 + 32 * b 2 * xp * d 32 * xp * d * yp 2 16 * b 4
11 16 * xp 4 d 4 16 * yp 4 16 * a 4;
12 fac2=32 * yp 2 * a 2 + 32 * xp 2 * a 2 +
13 8 * d 2 * a 2 + 32 * b 2 * xp 2
14 + 8 * b 2 * d 2 + 32 * b 2 * yp 2 + 32 * b 2 * a 2
15 + 32 * xp 3 * d
16 24 * xp 2 * d 2 32 * xp 2 * yp 2 + 8 * xp * d 3
17 8 * d 2 * yp 2 32 * xp * a 2 * d
18 32 * b 2 * xp * d + 32 * xp * d * yp 2 16 * b 4
19 16 * xp 4 d 4 16 * yp 4 16 * a 4;
20 if ( fac1<0 | | fac2<0)
21 f=0;
22 else
23
24 q(1) = 0.2e1 * atan2((8 * yp * a) + sqrt((32 * yp 2 * a 2
25 + 32 * xp 2 * a 2 + 8 * d 2 * a 2
26 + 32 * b 2 * xp 2 + 8 * b 2 * d 2 + 32 * b 2 * yp 2
27 + 32 * b 2 * a 2 32 * xp 3 * d
28 24 * xp 2 * d 2 32 * xp 2 * yp 2 8 * xp * d 3
80 APENDICE C. ALGORTIMO PARA EJECUCION DE LA OPTIMIZACION

29 8 * d 2 * yp 2 + 32 * xp * a 2 * d
30 + 32 * b 2 * xp * d 32 * xp * d * yp 2 16 * b 4 16 * xp 4
31 d 4 16 * yp 4 16 * a 4)),
32 (8 * xp * a + 4 * d * a 4 * b 2 + 4 * xp 2 + 4 * xp * d
33 + d 2 + 4 * yp 2 + 4 * a 2));
34
35 q(2)= atan2(yp a * sin(0.2e1 * atan2((8 * yp * a) +
36 sqrt((32 * yp 2 * a 2
37 + 32 * xp 2 * a 2 + 8 * d 2 * a 2 + 32 * b 2 * xp 2
38 + 8 * b 2 * d 2 + 32 * b 2 * yp 2
39 + 32 * b 2 * a 2 32 * xp 3 * d 24 * xp 2 * d 2
40 32 * xp 2 * yp 2 8 * xp * d 3
41 8 * d 2 * yp 2 + 32 * xp * a 2 * d + 32 * b 2 * xp * d
42 32 * xp * d * yp 2 16 * b 4
43 16 * xp 4 d 4 16 * yp 4 16 * a 4)),
44 (8 * xp * a + 4 * d * a 4 * b 2 + 4 * xp 2
45 + 4 * xp * d + d 2 + 4 * yp 2 + 4 * a 2))),
46 xp + d / 0.2e1 a * cos(0.2e1 * atan2((8 * yp * a) +
47 sqrt((32 * yp 2 * a 2 + 32 * xp 2 * a 2
48 + 8 * d 2 * a 2 + 32 * b 2 * xp 2 + 8 * b 2 * d 2
49 + 32 * b 2 * yp 2 + 32 * b 2 * a 2
50 32 * xp 3 * d 24 * xp 2 * d 2 32 * xp 2 * yp 2
51 8 * xp * d 3 8 * d 2 * yp 2
52 + 32 * xp * a 2 * d + 32 * b 2 * xp * d 32 * xp * d * yp 2
53 16 * b 4 16 * xp 4 d 4
54 16 * yp 4 16 * a 4)), (8 * xp * a + 4 * d * a 4 * b 2
55 + 4 * xp 2 + 4 * xp * d + d 2
56 + 4 * yp 2 + 4 * a 2))));
57
58 q(3)=0.2e1 * atan2((8 * yp * a) sqrt((32 * yp 2 * a 2
59 + 32 * xp 2 * a 2 + 8 * d 2 * a 2
60 + 32 * b 2 * xp 2 + 8 * b 2 * d 2 + 32 * b 2 * yp 2
61 + 32 * b 2 * a 2 + 32 * xp 3 * d
62 24 * xp 2 * d 2 32 * xp 2 * yp 2 + 8 * xp * d 3
63 8 * d 2 * yp 2 32 * xp * a 2 * d
64 32 * b 2 * xp * d + 32 * xp * d * yp 2 16 * b 4 16 * xp 4
65 d 4 16 * yp 4 16 * a 4)),
66 (8 * xp * a 4 * d * a 4 * b 2 + 4 * xp 2 4 * xp * d
67 + d 2 + 4 * yp 2 + 4 * a 2));
68
69 q(4)= atan2(yp a * sin(0.2e1 * atan2((8 * yp * a)
70 sqrt((32 * yp 2 * a 2 + 32 * xp 2 * a 2 +
71 8 * d 2 * a 2 + 32 * b 2 * xp 2 + 8 * b 2 * d 2
72 + 32 * b 2 * yp 2 + 32 * b 2 * a 2
73 + 32 * xp 3 * d 24 * xp 2 * d 2 32 * xp 2 * yp 2
74 + 8 * xp * d 3 8 * d 2 * yp 2
75 32 * xp * a 2 * d 32 * b 2 * xp * d + 32 * xp * d * yp 2
76 16 * b 4 16 * xp 4 d 4
77 16 * yp 4 16 * a 4)), (8 * xp * a 4 * d * a 4 * b 2
78 + 4 * xp 2 4 * xp * d + d 2
79 + 4 * yp 2 + 4 * a 2))), xp d / 0.2e1
80 a * cos(0.2e1 * atan2((8 * yp * a)
81 sqrt((32 * yp 2 * a 2 + 32 * xp 2 * a 2 +
C.5. JACOB5R 81

82 8 * d 2 * a 2 + 32 * b 2 * xp 2
83 + 8 * b 2 * d 2 + 32 * b 2 * yp 2 + 32 * b 2 * a 2
84 + 32 * xp 3 * d 24 * xp 2 * d 2
85 32 * xp 2 * yp 2 + 8 * xp * d 3 8 * d 2 * yp 2
86 32 * xp * a 2 * d 32 * b 2 * xp * d
87 + 32 * xp * d * yp 2 16 * b 4 16 * xp 4 d 4
88 16 * yp 4 16 * a 4)), (8 * xp * a
89 4 * d * a 4 * b 2 + 4 * xp 2 4 * xp * d + d 2
90 + 4 * yp 2 + 4 * a 2))));
91
92 J= [0.1e1 / a / sin(q(1) q(2)) * cos(q(2))
93 0.1e1 / a / sin(q(1) q(2)) * sin(q(2));
94 0.1e1 / a / sin(q(3) q(4)) * cos(q(4))
95 0.1e1 / a / sin(q(3) q(4)) * sin(q(4));];
96
97 e12=isfinite(J); % Me da los valores finito que hay en J
98 %(1 si es verdadero, 0 si es falso)
99 suma2=sum(sum(e12));
100 if (suma26=4)
101 f=0;
102 else
103 %p=det(J);
104 s=svd(J); % pertenece al programa de matlab del numero
105 %de condicionamiento calcula las singularidades
106 %e=isnan(s); % de J
107 e=isfinite(s);
108 suma1=sum(e);
109 r=length(s);
110 if(suma16=r | | any(s==0)) %any(s==0) matriz singular asi la calculan el ...
programa
111 f=0;
112 else
113 f=1/cond(J); %Calcula el numero de condicion de J
114 end
115 end
116 end
117 end

Otra forma para hallar el area dexteridad(y no el indice).

1
2 function [f]=jaco5R(xp,yp,a,b,d)
3 x=xp;
4 y=yp;
5
6
7
8
9 q(1)= 2*atan2(2*yp*a+(sqrt((4 * yp 2 * a 2)
10 + ((2 * xp * a + d * a) 2)
11 (b 2 (xp 2) (xp * d) (d 2) / 0.4e1
12 (yp 2) (a 2)) 2 )),
82 APENDICE C. ALGORTIMO PARA EJECUCION DE LA OPTIMIZACION

13 2*xp*a+d*ab2+xp2+xp*d+(1/4)*d2+yp2+a2);
14 q(2)= atan2(ya*sin(q(1)), (1/2)*d+xa*cos(q(1)));
15 q(3)= 2*atan2(2*yp*asqrt((4 * yp 2 * a 2) +
16 ((2 * xp * a d * a) 2) (b 2 (xp 2) + (xp * d)
17 (d 2) / 0.4e1
18 (yp 2) (a 2)) 2),
19 2*xp*ad*ab2+xp2xp*d+(1/4)*d2+yp2+a2);
20 q(4)= atan2(ya*sin(q(3)), x(1/2)*da*cos(q(3)));
21 %% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
22
23
24
25 J= [0.1e1 / a / sin(q(1) q(2)) * cos(q(2))
26 0.1e1 / a / sin(q(1) q(2)) * sin(q(2));
27 0.1e1 / a / sin(q(3) q(4)) * cos(q(4))
28 0.1e1 / a / sin(q(3) q(4)) * sin(q(4));];
29 e12=isfinite(J); % Me da los valores finito que hay en J
30 %(1 si es verdadero, 0 si es falso)
31 suma2=sum(sum(e12));
32 if (suma26=4)
33 f=0;
34 else
35 %p=det(J);
36 s=svd(J); % pertenece al programa de matlab del numero de ...
condicionamiento
37 %e=isnan(s); % calcula las singularidades de J
38 e=isfinite(s);
39 suma1=sum(e);
40 r=length(s);
41 if(suma16=r | | any(s==0)) %any(s==0) matriz singular asi la calculan el ...
programa
42 f=0;
43 else
44 a=cond(J); %Calcula el numero de condicion de J
45 if a<6
46 f=1;
47 else
48 f=0;
49 end
50
51 end
52 end
53 end

Otra forma para hallar el area dexteridad con el indice dexteridad, con las solucion de
los angulos que se ofrece.

1
2 function [f]=jaco5R(xp,yp,a,b,d)
3 x=xp;
4 y=yp;
5 fac1=32 * yp 2 * a 2 + 32 * xp 2 * a 2 +
C.5. JACOB5R 83

6 8 * d 2 * a 2 + 32 * b 2 * xp 2 + 8 * b 2 * d 2
7 + 32 * b 2 * yp 2 + 32 * b 2 * a 2 32 * xp 3 * d
8 24 * xp 2 * d 2 32 * xp 2 * yp 2 8 * xp * d 3
9 8 * d 2 * yp 2 + 32 * xp * a 2 * d + 32 * b 2 * xp * d
10 32 * xp * d * yp 2 16 * b 4 16 * xp 4 d 4
11 16 * yp 4 16 * a 4;
12 fac2=32 * yp 2 * a 2 + 32 * xp 2 * a 2 + 8 * d 2 * a 2
13 + 32 * b 2 * xp 2 + 8 * b 2 * d 2 + 32 * b 2 * yp 2
14 + 32 * b 2 * a 2 + 32 * xp 3 * d 24 * xp 2 * d 2
15 32 * xp 2 * yp 2 + 8 * xp * d 3 8 * d 2 * yp 2
16 32 * xp * a 2 * d 32 * b 2 * xp * d + 32 * xp * d * yp 2
17 16 * b 4 16 * xp 4 d 4 16 * yp 4 16 * a 4;
18 if ( fac1<0 | | fac2<0)
19 f=0;
20 else
21
22 c2=(b2xp2yp2(1/4)*d2xp*da2);
23 o2=2*yp*a;
24 h2= d*a+2*xp*a;
25 q(1)= atan2(o2,h2)+atan2(sqrt(h22+o22c22),c2); % hay 2 soluciones
26 %la segunda atan2 puede ser +,
27 q(2)= atan2(ysin(q(1))*a,d/2+xcos(q(1))*a);
28 c1=(b2xp2yp2(1/4)*d2+xp*da2);
29 o1=2*yp*a;
30 h1=d*a+2*xp*a;
31 q(3)=atan2(o1,h1)atan2(sqrt(h12+o12c12),c1);
32 q(4)= atan2(ysin(q(3))*a,xd/2cos(q(3))*a);
33
34
35
36
37

38 J= [0.1e1 / a / sin(q(1) q(2)) * cos(q(2))


39 0.1e1 / a / sin(q(1) q(2)) * sin(q(2));
40 0.1e1 / a / sin(q(3) q(4)) * cos(q(4))
41 0.1e1 / a / sin(q(3) q(4)) * sin(q(4))];
42
43 e12=isfinite(J); % Me da los valores finito que hay en J
44 %(1 si es verdadero, 0 si es falso)
45 suma2=sum(sum(e12));
46 if (suma26=4)
47 f=0;
48 else
49 %p=det(J);
50 s=svd(J); % pertenece al programa de matlab
51 %del numero de condicionamiento
52 %calcula las singularidades
53 % de J
54 e=isfinite(s);
55 suma1=sum(e);
56 r=length(s);
57 if(suma16=r | | any(s==0)) %any(s==0) matriz singular asi
58 %la calculan el programa
84 APENDICE C. ALGORTIMO PARA EJECUCION DE LA OPTIMIZACION

59 f=0;
60 else
61 f=1/cond(J); %Calcula el numero de condicion de J
62 end
63 end
64 end
65 end

C.6. Result (resultado)


Es una funcion de Matlab que me da el resultado del maximo.

1 function [value,x]=result(pop,stringlength,dimension)
2 [value,k]=max(pop(:,stringlength*dimension
3 +dimension+1));
4 x=pop(k,stringlength*dimension+1:
5 stringlength*dimension+dimension);
6 value=value;
7 end
Bibliografa

Altuzarra, O., Sandru, B., Macho, E., and Amezua, E. (2010). Analisis de indicadores
cinematicos para el diseno de manipuladores paralelos. In XVIII Congreso Interna-
cional de Ingeniera Mecanica. Ciudad Real.

Bounab, B. (2016). Multi-objective optimal design based kineto-elastostatic performance


for the delta parallel mechanism. Robotica, 34(02):258273.

Gestal, M., Rivero, D., Rabunal, J. R., Dorado, J., and Pazos, A. (2010). Introduccion a
los algoritmos geneticos y la programacion genetica. Universidade da Coruna, Servicio
de Publicacions.

Holland, J. H. (1975). Adaptation in natural and artificial systems: an introductory analy-


sis with applications to biology, control, and artificial intelligence. U Michigan Press.

Huang, M. Z. (2011). Design of a planar parallel robot for optimal workspace and dexterity.
International Journal of Advanced Robotic Systems, 8(4):49.

Iglesias Otero, M. T. (2002). Biologia + Matematica+Informatica=Algoritmos Geneticos.,


volume 1. Universidad de Coruna.

Koza, J. R. (1992). Genetic programming: on the programming of computers by means of


natural selection, volume 1. MIT press.

Laribi, M., Romdhane, L., and Zeghloul, S. (2007). Analysis and dimensional synthesis
of the delta robot for a prescribed workspace. Mechanism and Machine Theory,
42(7):859870.

Liu, X.-J., Wang, J., and Pritschow, G. (2006). Kinematics, singularity and workspa-
ce of planar 5r symmetrical parallel mechanisms. Mechanism and machine theory,
41(2):145169.

Lou, Y., Liu, G., and Li, Z. (2008). Randomized optimal design of parallel manipulators.
Automation Science and Engineering, IEEE Transactions on, 5(2):223233.

Martnez, E., Pena, C. A., and Yime, E. (2010). Diseno optimo de un robot paralelo con
configuracion delta para aplicaciones educativas. Revista Educacion en Ingeniera,
5(10):110119.

85
86 BIBLIOGRAFA

Merlet, J.-P. (1997). Workspace-oriented methodology for designing a parallel manipu-


lator. In Integrated Design and Manufacturing in Mechanical Engineering, pages
215224. Springer.

Merlet, J.-P. (2006). Jacobian, manipulability, condition number, and accuracy of parallel
robots. Journal of Mechanical Design, 128(1):199206.

Pajares Martinsanz, G. and Santos, M. (2006). Inteligencia artificial e ingeniera del


conocimiento. Mexico: Alfaomega.

Pena Cortes, C. A., Martinez Oviedo, E., and Cardenas Herrera, P. F. (2011). Optimi-
zacion dimensional de un robot paralelo tipo delta basado en el menor consumo de
energa. Ciencia e Ingeniera Neogranadina,, 21(01):7388.

Pierrot, F., Nabat, V., Company, O., Krut, S., and Poignet, P. (2009). Optimal design
of a 4-dof parallel manipulator: From academia to industry. IEEE Transactions on
Robotics, 25(2):213224.

Sobol, I. (1983). Lecciones populares de matematicas. Metodo de Montecarlo, volume 1.


Mir.

Stan, S.-D., Balan, R., and Maties, V. (2008). Optimal design of parallel kinematics
machines with 2 degrees of freedom. INTECH Open Access Publisher Rijeka.

Wu, J., Li, T., Liu, X., and Wang, L. (2007). Optimal kinematic design of a 2-dof planar
parallel manipulator. Tsinghua Science & Technology, 12(3):269275.

S-ar putea să vă placă și