SciELO - Scientific Electronic Library Online

 
vol.17 número3Planificación de la Operación de Corto Plazo de Sistemas de Energía HidroeléctricaComplejidad Lineal y Algoritmo Berlekamp-Massey para la Construcción de Generadores de Secuencias Pseudoaleatorias índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

Links relacionados

Compartir


Información tecnológica

versión On-line ISSN 0718-0764

Inf. tecnol. v.17 n.3 La Serena  2006

http://dx.doi.org/10.4067/S0718-07642006000300022 

 

Información Tecnológica-Vol. 17 N°3-2006, pág.: 157-165

ARTICULOS VARIOS

Aplicación de Algoritmos Neurogenéticos en la Planeación de las Trayectorias de un Robot Polar

Neurogenetic Algorithms Applied in the Path Planning of a Polar Robot

Juan C. Rosete (1) y Alejandro Vega (2)
(1) Instituto Tecnológico de Querétaro, Lasallistas No. 15 Fracc. Misión de San Carlos, Corregidora,
Querétaro. 76190 Qro.-México (e-mail: jc_rosete@yahoo.com.mx)
(2) Instituto Tecnológico de Estudios Superiores de Monterrey, Campus Querétaro, Paseo de Beirut No. 220
Col. Tejeda, Corregidora, Querétaro. 76190. Qro-México (e-mail: arvega@campus.qro.itesm.mx)


Resumen

Se presenta la estrategia desarrollada para desplazar el efector final de un brazo robótico dentro de un entorno productivo de forma autónoma, mediante el uso de entornos virtuales, algoritmos genéticos y redes neuronales. El objetivo es la obtención del conjunto de posiciones y los movimientos requeridos para conformar la estrategia de actuación necesaria para completar una actividad específica. De esta forma, el sistema es capaz de guiar el efector final, evadiendo diferentes obstáculos y buscando la combinación espacial y articular que permita una cantidad reducida de movimientos, así como la menor distancia entre ellos. El proceso se torna una herramienta viable de programación y entrenamiento que reduce sustancialmente el tiempo promedio requerido por el factor humano para entrenar el robot.

Palabras claves: red neuronal, algoritmo genético, brazo robótico, planeación de trayectorias


Abstract

This paper presents the strategy developed to move the end tool of an autonomous robotic arm in a productive environment, by employing virtual environments, genetic algorithms and neural networks. The goal was to obtain all the movements required to perform a specific action. In this way, the system is capable of guiding the end tool and avoiding the obstacles along its path, as well as determining the spatial and articular combination that allow to reduce the number of movements and minimizes the distance between them. The process resulted in producing a viable tool for programming and training which substantially reduced the average time required by the human element for training the robot. 

Keywords: neural network, genetic algorithm, robotic arm, path planning


INTRODUCCIÓN

El propósito de la planeación de movimientos es determinar las secuencias o trayectorias factibles para llevar a efecto un proceso, así como la descripción matemática que garantice la efectiva ejecución de una acción específica. De aquí, la descripción del movimiento puede ser una tarea basada en el espacio de trabajo o en la configuración de sus articulaciones. La planeación automática del movimiento, supone la capacidad del sistema de control del robot para decidir las etapas, posiciones y configuraciones requeridas para completar una actividad sin la intervención del factor humano.

Uno de los primeros trabajos de auto planeación de trayectorias corresponde a (Lozano-Pérez, 1979), quienes plantearon un esquema bidimensional de solución basado en  considerar los obstáculos a evadir como “regiones muertas”, dentro de las cuales se le impide al robot acceder, al momento de ejecutar una operación de manipulación.

Dentro del ramo de los manipuladores (Solteiro y Tenreiro, 1999), propusieron procesos basados en la descomposición de una trayectoria en línea recta entre dos posiciones, construyendo mapas de opciones de movimiento a seguir. (Banerji y Banavar 2004), analizan trayectorias con orientación fija basados en espacios viables de trabajo.

La aplicación de algoritmos genéticos  ha impactado inclusive entre robots móviles (Chunmiao - Soh 2002), quienes aplican un modelo jerárquico para lograr la evasión de obstáculos por reconocimiento de tangencias en obstáculos circulares. (Greblicki, 2005), aplica un esquema similar para vehículos sumergibles autónomos.

Notable ha sido la aplicación de modelos heurísticos para el desarrollo de trayectorias en robots (Yokoi – Ikeda, 2004), para un robot de tres ruedas omnidireccionales y (Clyde, Gicum, 2004), quien desarrolla un sistema capaz de buscar y a la par evitar obstáculos para un robot aspiradora.

Las redes neuronales se han empleado notablemente como una alternativa para la solución del problema cinemático inverso, (Karlra, et al., 2003), reflejando una fusión entre redes neuronales y algoritmos genéticos para integrar las variables articulares. En la actualidad, los robots industriales presentan condiciones que resultan ser una desventaja de operación  y que a la par son inherentes a su funcionamiento:

i) Se requiere el entrenamiento de la máquina.

ii) Entrenamiento al operario para que a su vez le sea posible manipular al robot.

iii) Se emplean largos periodos de tiempo para analizar, organizar y entrenar a la máquina.

iv) Elevado tiempo para ajustar los parámetros.

Bajo este contexto, el objetivo de esta investigación no es eliminar la participación del ser humano en los procesos productivos donde intervengan robots, sino el desarrollar una herramienta que permita disminuir considerablemente el tiempo requerido para el entrenamiento de un robot de corte industrial, dejándose los ajustes finos al factor humano.

CARACTERÍSTICAS DEL ROBOT

Para el caso de esta investigación, se seleccionó una estructura tipo polar de 3 GDL por presentar las siguientes condiciones:

i) Amplio espacio de trabajo del robot.

ii) Alto nivel de confiabilidad para posicionar espacialmente la herramienta.

iii) Su configuración permite una solución única al problema cinemático inverso.

iv) Se elimina la redundancia.

Fig. 1: Morfología del robot a emplear

 

v) Es una estructura simple y de fácil modelación.

vi) Permite su inserción en un proceso productivo simple de manipulación de materiales.

ESTRATEGIA UTILIZADA 

La aplicación de los algoritmos genéticos y las redes neuronales en esta investigación emplea el método indicado en la figura 2.

Fig. 2: Procedimiento de solución

El primer paso es contar con un sistema de edición de entornos virtuales, con el cual puedan replicarse en computadora todos los elementos del sistema fabril en estudio como son: La representación gráfica del robot, replicación de su capacidad de movimiento y trayectorias generadas, reproducción de los entornos y registro de los límites de los mismos.   

La intención es contar con una retícula que especifique el total de posiciones susceptibles de ser alcanzadas por el efector final dentro del área de  trabajo. De esta forma, se conocen de antemano ubicaciones viables para el movimiento del robot.

Posteriormente, los algoritmos genéticos incrementan la población de soluciones en aquellas regiones donde existan mayores posibilidades de movimiento corto y seguro, mientras que las redes neuronales recuerdan la estrategia previamente planteada y con ello se reducen tiempos posteriores de ejecución de tareas.

La figura 3 muestra el entorno virtual del robot; la semiesfera mostrada está conformada por las posiciones espaciales calculadas para esa región.

Fig.3: Entorno virtual desarrollado

MODELO CINEMÁTICO DEL ROBOT Y GENERACIÓN DE POBLACIÓN BASE

La descripción de la orientación y localización espacial del efector final es definida claramente por la matriz de transformación:

             (1)

De la cual los tres primeros elementos de la última columna especifican la ubicación en el sistema cartesiano Px, Py y Pz del efector.

                                     (2)

La descripción de los elementos del vector P es obtenida a partir de la aplicación del algoritmo de Denavit-Hartemberg (Denavit-Hartemberg 1955), siendo entonces:

Px = ((-cos (q1)*sin (q2)- 6.1232x10-17 * sin (q1) * cos (q2)+ 6.1232x10-17* sin (q1)) * l3)

Py = ((-sin (q1)*sin (q2)+ 6.1232x10-17 * cos (q1) * cos (q2) - 6.1232x10-17 * cos (q1))*l3)       

Pz = 47+ ((3.7494x10-33+ cos (q2)) * l3)             (3)

Con esta información se plantea el siguiente postulado: “A cada valor asignado a las variables articulares q1, q2 y l3 del robot corresponde una posición espacial px, py y pz [P], de tal forma que un registro puede ser asignado para asociar una ubicación en el espacio con una combinación articular”.  

Fig. 4: Generación de la población base para búsqueda de posiciones

De esta forma, la solución por incrementos de la ecuación cinemática directa permite obtener un conjunto de puntos posibles de ser alcanzados por el efector final, conformando un esquema global del espacio de trabajo del robot. La resolución de movimiento esta en correlación con el valor de los incrementos con que se calculen los rangos. Una saturación de puntos permitirá mayor capacidad de movimiento, pero saturaría al sistema y su velocidad de respuesta

Es obvio el apreciar que no es posible obtener un movimiento de suficiente precisión basándose tan solo en la solución progresiva de las ecuaciones cinemáticas; existen vacancias espaciales que se incrementan conforme extiende la articulación prismática del robot. Por ello debe buscarse una estrategia inteligente que incremente el número de posiciones tan solo en las regiones que impacten en el logro del trabajo de la máquina.

Ahora, al ejecutar un movimiento [ APB ] se aplican las siguientes etapas:

Fig. 5: Procedimiento genético de búsqueda

Donde cada nuevo punto calculado representa un individuo con mayor potencial para trazar una ruta eficiente. La estructura del algoritmo genético tiene por misión encontrar las regiones de crecimiento poblacional que impliquen las menores distancias requeridas para evadir un obstáculo.

OPERADORES GENÉTICOS

Los algoritmos genéticos establecerán las distintas posiciones por donde habrá de trasladarse el efector final para ejecutar la actividad.

Si la longitud total de cada segmento de recta que conforma una solución potencial es:

               (4)

  =  Distancia total entre puntos

 = Valor de cada segmento de recta.

Además, la longitud de cada segmento:

                  (5)

Se tiene entonces el medio para comparar la capacidad del individuo para ser seleccionado como posición.

CRUZAMIENTO

Una vez que se han identificado los individuos más cercanos a los límites físicos del obstáculo se aplica cruzamiento por pares de posiciones:

(6)


MUTACIÓN

La mutación está en función del nivel de tolerancia requerida de movimientos, esto es:

Tm=random(0–T)                                        (7)

Tm es el intervalo de mutación a aplicar en el conjunto de posiciones y T es el nivel de tolerancia requerido para la operación a ejecutar.

El proceso aleatorio esta expresado como se muestra en Gorrostieta y Vargas (2004)

El nivel de mutación en un nuevo individuo queda identificado por:

Pm=[Px,Py,Pz]T*(Tm)                                 (8)

Pm  Posición del nuevo individuo posterior a la mutación.

SELECCIÓN

El proceso de selección a usar es el de torneo. A cada nuevo individuo se le compara con sus antecesores y aquellos cuyo vector desde A al punto intermedio sea menor que el de su rival se les permite sobrevivir a la siguiente etapa. Se combina además un rango de selección basado en el elitismo donde las regiones que presentan el mayor potencial para generar una trayectoria serán las más beneficiadas para prosperar.

Fig. 6: Crecimiento poblacional en regiones estratégicas

INCLUSIÓN DE REDES NEURONALES

Dos principales esquemas se plantean para la red neuronal; el entrenamiento de ésta a partir de las posiciones generadas por los algoritmos genéticos y la evaluación de los caminos generados para discernir si se pueden emplear esquemas aprendidos o debe buscarse uno nuevo en función del nivel de precisión estipulado para la operación. El modelo de la red neuronal usada es una retropropagacion de 3 capas con 6 neuronas en la capa de entrada, 64 en la capa oculta y solo una neurona en la capa de salida. Se usó este modelo debido a que el entrenamiento de una red neuronal de retropropagación está basado en la disminución del gradiente y una optimización el tiempo de entrenamiento.

Fig. 7: Diagrama de la red neuronal usada

El proceso de evaluación de la red neuronal es aquel que determina la trayectoria que esta relacionada con una secuencia de entrada. Se determina la trayectoria correspondiente a 2 puntos dados (inicio y final), dando como salida el número de la trayectoria que el robot debe seguir, en caso de que el robot no conozca un camino, éste debe ser calculado y aprendido.  En la figura 8 se muestra el diagrama de flujo de entrenamiento. 

Fig. 8: Proceso para recordar trayectoria

La evaluación de la red neuronal se hace de la siguiente forma: Primero se leen los puntos de inicio y fin que son los valores de la capa de entrada de la red neuronal. Después se aplica el algoritmo de propagación hacia delante mediante el cual se obtiene como salida un número flotante muy cercano a un número entero. Cuando ese valor es mayor al máximo error permitido, la trayectoria no se conoce y debe ser calculada. La propagación hacia delante en la capa oculta es equivalente a la ecuación:

                (9)

Donde n_hiddenh es la h-ésima neurona en la capa oculta, f es la función de transferencia, wih es el peso de la conexión entre la i-esima neurona de la capa de entrada y la h-esima neurona de la capa oculta, n es el número de neuronas en la capa de entrada.

La propagación hacia delante en la capa de salida es equivalente a la ecuación:

              (10)

                                                                           

Aquí n_outputh es la h-ésima neurona en la capa oculta, f es la función de transferencia, who es el peso de la conexión entre la h-esima neurona de la capa oculta y la o-esima neurona de la oculta, n es el numero de neuronas en la capa oculta.

La función de transferencia de la ecuación

                                     (11)

donde c es el coeficiente que ajusta la salida de esta función.

El  algoritmo de retropropagación se basa en funciones que actualizan pesos para calcular  el error y modificando consecutivamente los pesos llevando el error a cero respectivamente. El cálculo del error de las neuronas en la capa de salida se realiza por:

                                         (12)

                                                                           

Erro es el error de la o-ésima neurona, To el valor esperado en la o-esima neurona y Oo el valor obtenido en la o-esima neurona. El error correspondiente a la capa oculta se calcula usando la siguiente ecuación:

  (13)

Aquí, n_hiddenh es el valor de salida de la h-esima neurona de la capa oculta. Erro es el error de la o-esima neurona de salida, who es el peso de la conexión entre la h-esima neurona de la capa oculta y la o-esima neurona de la oculta y n es el número de neuronas en la capa oculta. a actualización de los pesos en la capa de salida se realiza mediante:

                   (14)

           

a Es la velocidad de aprendizaje, oo es el valor de salida de la o-esima neurona y Erro es el error de la o-esima salida. Los pesos de las capas ocultas se calculan:

                   (15)

Donde a es la velocidad de aprendizaje, oi es el valor de salida de la i-esima neurona de la capa de entrada y Errh es el error de la h-esima salida de la capa oculta.

RESULTADOS Y DISCUSIÓN

El entorno final de desarrollo usado fue el Builder C++ 6 de Borland. La interfaz gráfica de usuario (GUI), procuró una interfaz simple y accesible que pudiera ser usada incluso por personas sin conocimientos en lenguajes de programación para  robots. Entre las pruebas aplicadas para probar la valía del sistema se procedió a generar un entorno virtual, consistente en un total de tres obstáculos alineados. Se define un punto origen Px, Py, Pz (-7,-2 1) y uno de destino (20, 1, 3). Las unidades manejadas deben ser posteriormente escaladas según el factor requerido para ajustarse al entorno real. Para no saturar la imagen se procedió a apagar la base del entorno, la representación del robot y los puntos de la población base.

Al proceder a la evaluación de la trayectoria generada por el algoritmo, se encontró que es aceptable en términos de evasión y seguridad de la operación. La figura 9 presenta los obstáculos y la ruta generada por el sistema. Con objeto de reconocer la capacidad de aprendizaje y asociación del sistema se modificó el punto destino con un incremento de una unidad en Px. Al  proceder al cálculo de la ruta, el software aplicó la información del análisis previo y se ajustó tan solo en la última etapa a las necesidades del nuevo punto. (Ver figura 10).

El sistema cuenta con capacidad de ajustar el error permitido para el cálculo de nuevas rutas o modificar tan solo etapas de recorridos previamente generados. Puede observarse que ambos caminos comparten la mayor parte de las posiciones calculadas en la primer búsqueda, por su  cercanía, el sistema asocia  los movimientos a un patrón común, segmentando así en las regiones vitales los parámetros requeridos para obtener el desplazamiento final.

Fig. 9: Escenario de tres obstáculos y ruta generada por el sistema

DESPLAZAMIENTOS FUERA DE RANGO

En otro caso de evaluación, se definió un punto destino con un incremento de 6 unidades en Py a fin de revisar el nivel de aprendizaje obtenido y a la par la capacidad de discernir entre opciones. La figura 11 muestra como para la nueva posición destino el sistema compara las anteriores etapas y genera una ruta por extensión del camino existente. Esta alternativa es evaluada por el algoritmo neurogenético y calcula otras opciones de solución; ante ello, produce una nueva ruta más eficiente utilizando solo aquellas secciones que sean factibles de ser aprovechadas para alcanzar la ubicación marcada. Se denota que solo las dos primeras etapas fueron  consideradas aptas, para posteriormente desarrollar dos nuevos puntos de entrenamiento para el robot. La tabla 1 muestra las coordenadas calculadas por el sistema para el último desplazamiento calculado.

La tabla 2 muestra la secuencia de puntos de entrenamiento para el destino (21, 1 ,3).  Con esta información es posible cargar manualmente las coordenadas espaciales de cada punto de entrenamiento o usando interfaz de software controlar directamente al robot.

Fig. 10: Reconocimiento de trayectorias previas para destinos similares


Fig. 11: Identificación de alternativcas de asociación entre rutas

Tabla 1: Coordenadas espaciales de las posiciones
calculadas por el programa basado en algoritmo neurogenético

Px

Py

Pz

-7

-2

1

-5.66

0

6

-3.54

0

9

3.54

5.87

9

21

7

3

Tabla 2: Coordenadas espaciales de los puntos de
programación de robot para el segundo análisis

Px

Py

Pz

-7

-2

1

-5.66

0

6

-3.54

0

9

3.54

0

9

11.88

0

11.2

16.12

0

11.2

18.24

0

8

21

1

3

CONCLUSIONES

El trabajo desarrollado, demuestra esquemas viables para lograr la inserción en nuestros sistemas productivos de equipos con un mayor nivel de autonomía y confiabilidad sin requerir transformaciones radicales a las tecnologías y equipos periféricos o a los modelos inherentes al funcionamiento de un robot.

Se demuestra además que una aplicación neurogenetica es lo suficientemente robusta para determinar y generar de forma autónoma las etapas de movimiento a seguir por un robot inmerso en un entorno con obstáculos, y que la aplicación de la solución progresiva de la cinemática directa para este caso, es una estrategia viable y compatible para las características del robot.

Como trabajo futuro resta la implementación de éste método en equipos robóticos de estructura diferente, incluyendo como un caso más ambicioso, equipos en paralelo para los cuales se puede generar un modelo muy similar al plasmado en este caso.

REFERENCIAS

Banerji A. y R. N. Banavar., “Robot workspace: Feasible trajectories with a fixed orientation”, 10th IEEE International Conference on Methods and Models in Automation and Robotics, MMAR  Volumen 2 (2004)        [ Links ]

Chunmiao W. y Y. C. Soh, “A hierarchical algorithm for path planning in a static environment with obstacles”, IEEE International  Conference on Methods and Models in Automation and Robotics (2002)        [ Links ]

Clyde A. y A Gicum., “Motion control of a three-wheeled omnidirectional mobile robot”. World Multiconference on Systemics, Cybernetics and Informatics, 2742 – 2748 (2004)          [ Links ]

Denavit J. y R.S. Hartemberg “A kinematic notation for lower-pair mechanisms based on matrices”, ASME Applied Mechanics, 22, 215-221(1955)        [ Links ]

Gorrostieta E. y E. Vargas, “Free Locomotion for Six legged Robot”, WSEAS Transation on Computer, 3, 795-800 (2004)        [ Links ]

Greblicki, J. “Development of genetic programming for trajectory planning of autonomous underwater vehicle”, 11th  IEEE International Conference on Methods and Models in Automation and Robotics (2005)        [ Links ]

Karlra, P. y N. R. Prakash,“A neuro-genetic algorithm approach for solving the inverse kinematics of robotic manipulators”, IEEE International Conference on Systems, Man and Cybernetics, 2,  1979 - 1984 (2003)        [ Links ]

Lozano-Perez, T. y M. A. Wesley, “An Algorithm for Planning Collision-Free Paths Among Polyhedral Obstacles”, Communications of the ACM, 22, 10, 560-570 (1979)        [ Links ]

Solteiro P. y M. A. Tenreiro “Trajectory Planner for Manipulators Using Genetic Algorithms”, Proceedings of the IEEE International Symposium on Assembly and Task Planning, Porto, Portugal, 163–168 (1999)        [ Links ]

Yokoi, A. y M., A Ikeda, “Path planning method for autonomous sweping robot”, 8th World Multiconference on Systemics, Cybernetics and Informatics, 297-302 (2004)        [ Links ]

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons