You are on page 1of 112
INSTITUTO POLITECNICO NACIONAL CENTRO DE INVESTIGACION Y DESARROLLO DE TECNOLOGIA DIGITAL MAESTRIA EN SISTEMAS DIGITALES “GENERACION DE LA TRAYECTORIA OPTIMA EN UN CAMINO CON OBSTACULOS PARA UN BRAZO MECANICO.” TESIS QUE PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS PRESENTA ING. ROBERTO ALEJANDRO REYES MARTINEZ. TIJUANA, BC. ENERO DEL 2000 Foxma CEGEPLS INSTITUTO POLITECNICO NACIONAL COORDINACION GENERAL DE POSGRADO E INVESTIGACION DIVISION DE ESTUDIOS DE POSGRADO. SECRETARIA OE ACTA DE REVISION DE TESIS. EDUCACION PUBLICA, Blolelilelo En la ciudad de_Tijuana, B.C. si “a las 4400 | 28 del mes de enero del 2000 _, se reuni Li mision por el Colegio de Profesores de Estudios de Po: examinar la tesis de grado titula “GENERACION DI UN BRAZO MECANICO” presentada por el alumno: janifestaron SU APROBACION Después de intercambiar opiniones 10s: ros dee Vee ae jalados, por las_disposiciones DE LA TESIS, en virtud¢de que ie reglamentarias vigentes. | ae INSTTUTO POLITEGNIGD NACIONAL CENTRO De IWESTINCION DESARROLLO Z SE-FEONOLGIA DATA M.C. Davin Jam rio AGRADECIMIENTOS A Dios por darme la oportunidad de concluir otra meta. ‘A mis padres y hermano por todo su cariflo, amor, educacién, ejemplo y apoyo incondicional en todo lo que he realizado. A mi director de tesis por compartir sus conocimientos y su amistad. A mis maestros, compaiieros y amigos por permitirme compartir con ellos momentos da, Al Instituto Politéenico Nacional y al CITEDI por permitirme ser parte dg esta importante importantes en mi institucién, CONTENIDO LISTA DE FIGURAS A LISTA DE TABLAS 6 RESUMEN 1 ABSTRACT 8 INTRODUCCION 9 1, DESCRIPCION DEL PAQUETE CIMETRIX. 12 1.1 Introduccién a la arquitectura CODE. 12 1.2 Interfaz de movimiento. 21S 1.3 Control de movimientos de la arquitectura CODE... 1.3.1 Generador de trayectoria, 1.3.2 Interrelacién de movimientos.... 13.3 Movimiento Articulado (CX_JOINT_INTERP). 1.3.4 Movimiento en la trayectoria cartesiana.......-...ccccssssssssseseeseeeees 22 2. TECNICAS PARA CONFORMACION DE TRAYECTORIAS. 25 2.1 Introduceién....... 25 27 28 29 29 31 32 234 2.2 Espacio de trabajo. 2.3 Descripcién del problema de planeacién de movimientos..... 2.4 Aproximaciones basadas en repetidas modificaciones de la trayectoria 2.4.1 Algoritmos que usan retroalimentacién sensorial 2.4.2 Algoritmos que usan programacién lineal... 2.4.3 Algoritmos que usan trayectorias polinomiales de orden mayor... 2.4.4 Algoritmos que usan campos potenciales artificiales......... 2.5. Aproximaciones basadas en representaciones basadas por topologia de redes 38 40 2.5.2 Conjunto de estratificacién. 42 43 1.45 2.5.1 Descomposicién algebraica cilindrica. . 2.5.3. Visibilidad por grafos. 2.5.4 Descomposicién en rejillas. 2.5.4.1.1 Rejillas no estructuradas... 2.5.4.1.2 Técnica de oct-arbol. 2.5.4.1.3 Implementacién del método de rejillas en la robotic 2.6 Programacién Dinamic: . PROGRAMACION. 14 3.1 Desoripcién de la programacié oe TA 3.2. Recopilaci6n de la informacién necesaria para la creacién de trayectorias.... 7 3.3 Conformacién del espacio libre y del espacio de obstéculos por medio de la técnica de oct-arboles... 3.4 Desarrollo de las trayectorias subdptimas.. 3.5. Optimizacién utilizando programacién dindmica... }. RESULTADOS. 87 4,1 Pardmetros de entrada..........0ess000+ 4.2 Parimetros de salida...... 43. Caso 1. Brazo manipulador Pentaxi 4.4 Caso 2. Brazo manipulador G200........ 45 Caso 3. Brazo manipulador Adept. 46 Caso 4, Brazo manipulador $100.. 4.7 Caso 5. Brazo manipulador T3786.......-.s+cees00s0 102 CONCLUSIONES. 105 REFERENCIAS. 107 LISTA DE FIGURAS 1-1 Representacién en diagrama de bloques de la estructura del entorno de desarrollo abierto de Cimetrix. wa 1B 1-2. Generador de trayectoria . 217 1-3 Reduceién de la velocidad para movimientos cortos.......-- 18 1-4 Funcién CX_MOVE_THRU.... 19 1-5. Transiciones en la velocidad para segmentos tangentes... 20 1-6 Ciclo computacional para la generacién de trayectorias. 1.23 28 2-1. Espacio de trabajo para un brazo manipulador industrial 2-2, Planeacién de trayectorias usando retroalimentacién sensora. 30 2-3. Deteccién de colisién usando programacién lineal 32 2-4. Planeacién de trayectorias usando polinomios de orden superior. 33 2-5. Trayectoria en un entorno de dos dimensiones..... 38 2-6 Trayectoria obtenida por medio de fuerzas de atraccién y repulsién.... 2-7 Planeacién de trayectorias usando campos potenciales... 2-8 Redes... 2-9 Pasos en la descomposicién algebraica cilindrica. 2-10 Pasos en el desarrollo del conjunto de estratificacién.. 2-11 Obtencién de trayectorias por grafos....... 2-12 Formas de subdivisi6n del espacio de trabajo. 2-13 Mallas.. 2-14 Rejillas mostrando una regién de Voronoi y la triangulacién de Delaunay. 2-15 Triangulacién de Delaunay y regiones de Voronoi 2-16 Rejilla sobre un elemento tridimensional... 2-17 Descomposicién en rejillas por medio de la técnica de oct-dtboles... 2-18 Espacio de trabajo y su representacién en oct-drbol.... 2-19 Orden de los octantes... 2-20 Obtencién de trayectorias por descomposicién en rejillas. 2-21 Optimizacién de las trayectorias. 2-22 Proceso de decisiones de cinco etapas... 2-23 Diagrama de bloques del algoritmo de descomposicién en rejillas utilizado....... 69 2-24 Diagrama de bloques del algoritmo de campos potenciales utilizado........++... 72 3-1 Limites y generacién del espacio de trabajo... .78 3-2. Espacios de trabajo real y generado......sse 179 3-3. Obtencién de puntos del espacio de trabajo... . 82 4-1 Introduccién de los valores del espacio de trabajo y de los obstaculos............ 89 4-2 Continuacién de la introduccién de los valores de los obstéculo: cesseessnee 89 4-3 Continuacién de la introduccién de valores de los obstaculos y de los puntos de inicio y meta....... 90 4-4. Representacién en dos dimensiones de la trayectoria seleccionada para el brazo ‘manipulador (vista superion)........... 90 4-5. Despliegue de las trayectorias obtenidas donde la primer trayectoria es la de minima distancia (trayectoria éptima).... 91 4-6 Despliegue en la pantalla de simulacién de la trayectoria seleccionada (primer 1 92 on 92 92 92 2 9B 4-11 Continuacién de la introduccién de valores de los obstéculos y de los puntos de 93 trayectoria)....... 4-7 Inicio de desplazamiento sobre la trayectoria encontrada... 4-8 Cambio de vista en el brazo manipulador para ver su desplazamiento...... 4-9 Ultimo punto a desplazarse para llegar al punto meta establecido... 4-10 Introduccién de los valores del espacio de trabajo y de los obstaculos. inicio y meta........ 4-12 Despliegue de las trayectorias obtenidas donde la primer trayectoria es la de minima distancia (trayectoria 6ptima). 94 4-13. Despliegue en la pantalla de simulacién de la trayectoria seleccionada (primer trayectoria)...., 4-14 Inicio de desplazamiento sobre Ia trayectoria encontrada... 4-15 Cambio de vista en el brazo manipulador para ver su desplazamiento. 4-16 Ultimo punto a desplazarse para llegar al punto meta establecido. 4-17 Introduccién de los valores del espacio de trabajo y de los obstaculo: 4-18 4-19 4-20 421 4-22 423 4-24 4.25 4-26 4.27 4-28 4.29 430 431 432 4-33 4:34 4-35 4:36 437 4-38 Continuacién de la introduccién de valores de los obsticulos y de los puntos de inicio y meta... Despliegue de las trayectorias obtenidas.. Continuacién del despliegue de las trayectorias obtenidas, seleccién de la trayectoria tres... Despliegue en la pantalla de simulacién de la trayectoria seleccionada (tercer trayectoria). Inicio de desplazamiento sobre la trayectoria encontrada... Cambio de vista en el brazo manipulador para ver su desplazamiento.. Ultimo punto a desplazarse para llegar al punto meta establecido.. Introduccién de los valores del espacio de trabajo y de los obstaculos.... Continuacién de la introduccién de valores de los obstaculos y de los puntos de inicio y meta... Despliegue de las trayectorias obtenidas donde la primer trayectoria es la de minima distancia (trayectoria éptima). 100 Despliegue en la pantalla de simulacién de la trayectoria seleccionada (primer trayectoria). 101 Inicio de desplazamiento sobre la trayectoria encontrada. Cambio de vista en el brazo manipulador para ver su desplazamiento.........- 101 Ultimo punto a desplazarse para llegar al punto meta establecido..........sesee 101 Introduccién de los valores del espacio de trabajo y de los obstaculos... Continuacién de la introduccién de valores de los obstaculos y de los puntos de inicio y meta. 102 Despliegue de las trayectorias obtenidas donde la primer trayectoria es la de minima distancia, seleccién de la trayectoria siete... .- 103 Despliegue en la pantalla de simulacién de la trayectoria seleccionada (séptima 104 104 104 104 trayectoria), Inicio de desplazamiento sobre la trayectoria encontrada.... Cambio de vista en el brazo manipulador para ver su desplazamiento, Ultimo punto a desplazarse para llegar al punto meta establecido.. 21 22 23 24 25 41 LISTA DE TABLAS Trayectoria 6ptima a partir de los estados M, N, O, P. Trayectoria ptima a partir de los estados I, J, K, L. ‘Trayectoria éptima a partir de los estados E, F, G, H. .67 ‘Trayectoria éptima a partir de los estados A, B,C, D.. Trayectoria éptima a partir del nodo de ini = 67, Diferentes tipos de brazos manipuladores.... RESUMEN En este trabajo se presenta la implementacién de un conjunto de algoritmos para planeacién de trayectorias en caminos con obstéculos de brazos manipuladores, para utilizarse como una funcién dentro del programa computacional Cimetrix. La técnica de generacién de trayectorias involucra como primer paso la descomposicién del espacio de trabajo del brazo manipulador en dos subespacios, uno de ellos denominado espacio libre que es el utilizado por el algoritmo de planeacién de movimientos para la ereacién de trayectorias subéptimas en distancia, el otto es el espacio de obstaculos que sirve para mostrar el volumen por donde no debe existir ningin punto de las trayectorias; a estas trayectorias se les aplica un algoritmo de programacién dindmica para encontrar a Ja trayeetoria éptima en distancia. Antes de la optimizacién, las trayectorias son analizadas ante posibles colisiones del efector final con los obstéculos por medio de otro algoritmo de movimiento modificado para tal finalidad, Una vez que se ha obtenido la trayectoria dptima en distancia, esta es utilizada por las funciones de Cimetrix para el desplazamiento del brazo manipulador por dicha trayectoria; ademas, se utilizan algunas funciones que permiten verificar que los puntos de la trayectorias obtenidas cumplan tanto con las restricciones dinémicas y cineméticas que no se consideran al crear la trayectoria, pero que afectan en el desarrollo del desplazamiento del brazo manipulador por ella. En el caso de que la trayectoria no cumpla con alguna restrieeién de las antes mencionadas, se desplegard un mensaje de error indicando la causa del mismo, ABSTRACT This work shows the implementation of a set of algorithms implementation for free- collision path planning in robots, to be used by software by Cimetrix. ‘The path generation technique imply the workspace decomposition in two subspaces, one called free space and other called obstacle space. The free subspace is used by the move planning algorithm to generate the distance sub-optimum paths, these paths are tested with a dinamic programming algorithm to find the optimum distance path, Before to obtain the optimized path, these paths are checked for possibles gripper collisions with the obstacles using other move planning algorithm, When the distance optimum trajectory was found, this is used by Cimetrix functions to move the robot. Also, other functions are used to verify that the path points execute the dinamic and kinematic constrainst that are not considered during the robot trajectory, but it affects the robot movement. In the case that the path not satisfy anyone constrainst, automatically display error message that indicate the problem. INTRODUCCION En este trabajo se ha realizado 1a implementacién de un conjunto de algoritmos para la planeacién de trayectorias en caminos con obsticulos para brazos manipuladores, los cuales permiten extender los recursos con que cuenta el programa computacional Cimetrix [8]. Cimetrix cuenta con una amplia gama de funciones para la creacién, modelado, manejo y control de celdas de trabajo, pero estas funciones se encuentran en médulos separados; asi por ejemplo, si se requiere crear un brazo manipulador se necesita de la herramienta 0 médulo denominado CIMTools para la realizacién de dicha tarea. La generacién de trayectorias esta incluida como una funcién bésica de Cimetrix. El proceso de generacién involucra considerar tnicamente a dos puntos, el punto de inicio y el punto final de la trayectoria a desarrollar y utilizando algun algoritmo para encontrar la distancia euclidiana se logra producir un movimiento del brazo manipulador sobre esta trayectoria generada. Entonces, si existe un elemento que interfiera con la trayectoria obtenida, el brazo manipulador no sabré que existe dicho elemento y por lo tanto colisionaré con él. Cimetrix cuenta con funciones auxiliares dentro de algunos médulos que con ayuda del médulo de simulacién se permite generar Jos puntos de la trayectoria que uno quiera que el brazo manipulador siga sin que colisione con algiin elemento que se encuentra dentro de la trayectoria euclidiana, pero estos puntos son ppuestos en forma arbitraria lo cual no garantiza tener los puntos que generen un resultado subéptimo, considerando que el éptimo no es aleanzable, La accién de generar los puntos de una trayectoria de manera automitica dados los, puntos de inicio y fin cuando se tienen objetos que puedan interferir con el libre movimiento de! brazo manipulador es denominada planeacién de trayectorias (14). En el campo de la robética la planeacién de trayectorias es un tema extensamente estudiado en donde se han obtenido una gran cantidad de algoritmos para obtener la mejor solueién, entre los mas destacados estin Khatib [21], Lozano-Pérez. [1], Brooks [22], Faverjon [5], Szczerba [3]; pero generalmente sus soluciones como las de muchos mas son exclusivas para un tipo especifico de brazo manipulador ({1],2M(5}[11]) ¥ algunas de ellas al aplicarseles algin criterio de optimizacién se vuelven computacionalmente intratables. Si queremos generalizar los algoritmos de planeacién de movimientos se deben ignorar algunas restricciones que puedan producir colisiones, estas restricciones son de tipo dinémica (fuerza, velocidad, aceleracién, etc) y cinemética (directa, inversa, singularidades, etc). Entonces, al obtenerse un conjunto de puntos que representan a la trayectoria estos se evaluan antes de desplazar al brazo manipulador sobre ellos ante estas restricciones para determinar si se mantiene una trayectoria sin colisién, en caso de que se encuentre una colisién se debe de reconfigurar la trayectoria obtenida. En el presente trabajo. se ha conformado un conjunto de algoritmos que permiten obtener una solucién generalizada del problema de planeacién de trayectorias. Se trabajé con un algoritmo de planeacién de trayectorias con caracteristicas geométricas [20], lo que involucré como primer paso la divisién del espacio de trabajo del brazo manipulador haciendose uso de la técnica de oct-érboles ([4], [5], [7], [20]); posteriormente se obtuvo un conjunto de trayectorias subéptimas por medio de la técnica de descomposicién en rejillas ({2], [14], (20), estas trayectorias se encuentran en un espacio que no es ocupado por ningtin obstéculo, pero que pueden estar muy cercanas a dicho obsticulo y colisionar el efector final, para evitar una colisién de este tipo se hizo uso de otra técnica de planeacién de movimientos denominada de campos potenciales ({14], [17], [18]. Una vez que se obtuvieron las trayectorias libres de colisién subdptimas se les aplicé un algoritmo de programacién dindmica ([6], [9]) para encontrar fa trayectoria éptima por la cual se desea que se desplace el brazo manipulador. Sobre esta trayectoria se prueban las restricciones de dinamica y cinematica por medio de funciones de Cimetrix[8] y si esta trayectoria cumple con dichas restricciones se produciré un desplazamiento del brazo ‘manipulador sobre ella, en caso contrario se obtendré un mensaje de error y se detendra el desplazamiento del brazo manipulador. Todo lo anteriormente mencionado Ievé a conformar una funcién que manejada como una aplicacién pasa a formar parte de una extensidn de las capacidades con las que cuenta Cimetrix, esta funcién entonces permite planear y generar trayectorias en un entomo con obsticulos para cualquier tipo de brazo manipulador. Este trabajo ha sido dividido en cuatro capitulos. El primer capitulo brinda una breve descripeién del paquete computacional Cimetrix debido a que es el elemento al cual se le quiere implementar el manejo de planeacién de trayectorias. El segundo capitulo es el cuerpo teérico de este trabajo en donde se muestran las caracteristicas de los algoritmos utilizados y algunas comparaciones con respecto a otros algoritmos para indicar que los algoritmos seleccionados son los que mejor cumplen con las metas planteadas. El tercer capitulo es una descripcién de Ia forma en que se puede realizar un enlace entre una aplicacién y Cimetrix, principalmente lo que involuer6 conjuntar un grupo de algoritmos de planeacién de trayectorias con Cimetrix. En el cuarto capitulo se muestran los resultados obtenidos del enlace presentando la generalidad obtenida por ‘medio de cinco brazos manipuladores con diferentes configuraciones. Por tltimo, en las conelusiones se realiza un resumen de los logros y dificultades presentadas y de las expectativas que se presentan para futuros trabajos. CAPITULO I Descripcién del Paquete CIMETRIX trix es una herramienta computacional para programar, modelar, simular y controlar cualquier tipo de robot, celda de trabajo, maquina de control numérico y dispositivos de control industrial como los controladores I6gicos programables. Es un paquete computacional de arquitectura abierta, esto quiere decir que permite realizar la programacién con diferentes herramientas como Visual C++, Visual Basic, CIMBuilder 0 Borland Delphi, también permite la adicidn de nuevas funciones que puedan ser generales o exclusivas a la aplicacién desarrollada; ademas nos brinda el soporte de diferentes tipos de tarjetas tanto de adquisicién de datos como controladoras de movimiento, no limitindonos a trabajar con una compafifa en particular. Estas caracteristicas son las que offece la arquitectura abierta de Cimetrix mos industriales Como se mencioné arriba, Cimetrix permite trabajar con meca auténomos como es el caso de los brazos manipuladores, las celdas de trabajo, las méquinas de control numérico y algunos dispositivos de control industrial. En forma particular, Cimetrix brinda una biblioteca con una gran variedad de brazos manipuladores que son muy utilizados en la industria en general, tal es el caso del brazo manipulador PUMA por citar alguno, ademas de un conjunto de méquinas de control numérico utilizadas para ensamble de piezas. Cimetrix también. brinda la ventaja de estar soportado en forma computacional por dos plataformas bésicas muy importantes en el mercado mundial, una de ellas es Intel con su tecnologia pentium y la otra es Motorola con su powerPC, ademas de poder correr con diversos sistemas operatives como son Windows NT, Unix y LynxOS 1.1 Introduccién ala arquitectura CODE Para podemos brindar todas las caracteristicas descritas anteriormente, Cimetrix desarrolld una arquitectura de trabajo abierto (CODE, que por sus siglas en inglés es “Cimetrix Open Development Environment”), la cual esta conformada por un conjunto de programas con los cuales se logra un grupo completo de herramientas para conceptualizar, disefiar, planear, simular, probar, depurar y finalmente controlar una celda de trabajo. Aplicacién (Maquina 0 Celda de Trabajo) Visual C++, Visual Basic, CIMBuilder, Borland Deiphi [eran | ‘soporte de CODE CODE API . Interfaz CODE API ‘Subsistema I's sie oF [ seseure | [nines | [Stouts] Stogstma :| Base de datos |e» a movimientos_| | 1 1 !] de los Modelos: = Drrz,! Interfaz de movimientos y de VO. al ‘cimcontr| Control fuera de linea | Simulacién ' Tarjeta de vO Control en linea Tarjeta controladora a de movimientos Figura 1-1. Representacién en diagrama de bloques de la estructura del entomo de desarrollo. abierto de Cimetrix, : De la figura 1-1 [8] podemos apreciar los elementos mas importantes que conforman a la arquitectura CODE. El primer elemento es la parte de adquisicién de datos de la aplicacién a desarrollar, con cualquiera de los paquetes de programacién més comerciales. El segundo elemento es un conjunto de herramientas que permiten realizar la aplicacién de una forma més sencilla, en estas herramientas se incluye el disefio y la modificacién del mecanismo con el cual se quiere trabajar, el ajuste de los servomecanismos de control, la calibracién de los sensores y muchas otras herramientas que reducen el tiempo de desarrollo. Estos dos elementos se comunican con otros elementos y entre ellos mismos por medio de la interfaz de programacién aplicada (CODE API, que por sus siglas en inglés es “Cimetrix Open Development Environment Applications Programming Interface”). Esta interfaz consiste de una biblioteca que reune funciones de Hamada y enlace entre el administrador CIMServer y la aplicacién desarrollada por el usuario; estas bibliotecas son soportadas por las plataformas computacionales como UNIX, LynxOS y windows NT. Ademés, la arquitectura CODE API permite a uno como usuario desarrollar sus propias bibliotecas para la solucién de inematica directa e inversa, algoritmos de trayectorias, diferentes tipos de interpolaciones ciclicas, ete. La arquitectura CODE API junto con otros elementos como son los subsistemas de gréficos, de entradas y salidas, de modelacién y de planeacién de movimientos, son parte de una estructura que en forma conjunta se denomina CIMServer, por lo que CIMServer se puede definir como el niicleo de la arquitectura CODE 0 el elemento administrador de los recursos de la arquitectura CODE. El administrador CiMServer ejecuta las siguientes seis tareas bisicas: - Recibe solicitud de otros programas para ejecutar operaciones. ~ Construye y mantiene el modo de celda de trabajo, - Planeacién y generacién de trayectorias de movimiento del mecanismo. - Provee servocontrol. - Prove procesos a la célula de control. - Despliega virtualmente el modelo de la celda de trabajo. Una vez que tenemos en mente como funciona internamente, la arquitectura CODE, podemos definir las siguientes ventajas que nos proporciona al realizar cualquier aplicaci6n en general: 1. La reduccién de elementos fisicos (Circuiteria) ya que muchas acciones de sensores, transductores y algunos otros elementos se pueden desarrollar por programacién, evitindose su implementacién en la maquina o robot, 2. Menor tiempo en el desarrollo de la aplicacién, debido a que cuenta con una extensa biblioteca para el acceso a los algoritmos de control de movimiento, los cuales permiten habilitar el desarrollo de las aplicaciones con lenguajes de alto nivel (C/C++, tel, NPL). 3. Reduccién de problemas de prueba. La ventaja de tener en un mismo paquete tanto simulacién como control en linea, permite asegurar el desarrollo de las pruebas en simulacién sin tener que arriesgar el equipo a dafios accidentales, y posteriormente la facilidad de manejar la méquina 0 robot desde la misma computadora, unicamente con cambiar del modo de simulacién al modo de control en linea, Estas ventajas con algunas otras como disefio, modelado, calibracién y sensorizacién permiten un ambiente de trabajo apto para asegurar que la aplicacién a desarrollar tenga buenos resultados. Como este trabajo se enfoca al problema de Ja planeacién de trayectorias, es conveniente ver con mayor detalle como la arquitectura CODE por medio del administrador CIMServer maneja las acciones de movimiento de las celdas de trabajo, considerando una celda de trabajo a cualquier elemento electromecinico como un brazo ‘manipulador, una maquina numérica 0 un controlador electrénico. Ya se vid en la figura 1-1 que una parte del administrador CIMServer es un subsistema de planeacién de movimientos, que internamente contiene algunos movimientos que pueden ser llamados a través de las funciones propias del administrador CIMServer, pero que ademas proporciona la libertad de desarrollar nuestras propias funciones dependiendo de la aplicacién. Estos movimientos son enviados al exterior por medio de una interfaz de movimiento para ser ejecutados con acciones de control en linea © fuera de linea. Los siguientes subtemas servirdn para damos una idea més completa del manejo tanto de la interfaz de movimiento como del subsistema de movimientos. 1.2 Interfaz de Movimiento Una parte importante del administrador CIMServer que interesa tratar en este trabajo, consiste en saber cémo es que la arquitectura CODE maneja la salida y entrada de datos referentes a las acciones de movimiento de las articulaciones de una celda de trabajo. El administrador CIMServer provee la capacidad de simular los algoritmos de la trayectoria creada antes de usarlos en el mecanismo fisico; de esta simulacién se pueden obtener los valores dindmicos de las articulaciones tales como aceleraciones, velocidades € inerementos de tiempo cuyo anéli is permite valorar tanto cuantitativa como cualitativamente los algoritmos propuestos. En particular, la trayectoria de los manipuladores puede ser configurada de dos modos: iJespecificando los éngulos de la articulacién para una nueva configuracién del robot (cinemética directa) 6 ii)especificando una referencia cartesiana (posicién y orientacién) de la herramienta ligada a la parte final del robot, definida también como efector final (TCF, que por sus siglas en inglés es “tool control frame”), y aplicando un conjunto solucién para determinar los angulos necesarios en las articulaciones para mover el TCF a la posicién deseada (cinemitica inversa). En cualquiera de los dos modos se produce un movimiento entre configuraciones. Todos los controles de movimiento eventualmente recurren a los controles de las articulaciones en un servo-ciclo. En el control cartesiano un generador de trayectorias continuamente muestrea la trayectoria cartesiana entre las configuraciones deseadas del manipulador y utilizando Ia cinemética inversa se calcula la velocidad de la trayectoria, los cambios necesarios y las velocidades de las articulaciones para mantener el movimiento en la trayectoria cartesiana. Cuando se alimenta a la tarjeta de control de movimiento (servo tarjeta), los algoritmos internos de control de las articulaciones, interrelacionan el movi imiento de las articulaciones acorde a los cambios especificados en ellas. En la servo tarjeta las mezelas de movimientos ocurren en una relacién tipicamente de una o dos veces mas répido que la velocidad obtenida en la simulacién de la trayectoria, La velocidad de Ja trayectoria esté entre 20-200 Hz, dependiendo de la complejidad del mecanismo 1.3 Control de movimientos de la arquitectura CODE El control de movimientos de la arquitectura CODE es un conjunto de funciones y modos de control que permite el anilisis de los elementos con los cuales se puedan desarrollar las acciones de movimiento de los manipuladores y la creacién de trayectorias. El control de movimientos de la arquitectura CODE puede usar algoritmos de control de las articulaciones, algoritmos de trayectoria cartesiana 0 algoritmos de control de movimientos curvilineos tanto para el control de las articulaciones como para la trayectoria cartesiana. El control de movimiento de la arquitectura CODE es la planeacién y guia de movimientos que se incrementan a lo largo de una trayectoria deseada y de las velocidades y aceleraciones que caen dentro de las capacidades del mecanismo. Dos 16 modos tipicos de control son usados: i)interpolacién de la articulacién 0 control de las articulaciones y i) trayectoria cartesian, El movimiento interpolado de la articulacién es un control coordinado en el espacio de la articulacién por medio del cual los movimientos rapidos en las articulaciones son suavizados a la velocidad de las articulaciones més lentas, tal que todas hacen el cambio de la posicién de las articulaciones en el mismo tiempo. El movimiento en la trayectoria cartesiana es obtenido a partir de establecer la posicién y Ia orientacién del TCF en un espacio cartesiano y por medio de la cinemitica inversa se obtiene un conjunto solucién de dngulos por los cuales el TCF puede desplazarse hasta el punto establecido. Tanto el movimiento interpolado como el cartesiano utilizan un generador de trayectorias trapezoidal para establecer los cambios en las velocidades de las articulaciones. 1.3.1 Generador de Trayectoria Un generador de trayectorias generalmente es un conjunto de ecuaciones diferenciales de primer 0 segundo orden que permiten manejar la velocidad y aceleracién de las articulaciones de cualquier manipulador. Un generador de trayectorias siempre acompafia el movimiento de las articulaciones de las celdas de trabajo. El generador de trayectoria implementado en el administrador CIMServer es un generador trapezoidal que usa aceleraciones y desaceleraciones constantes para cambiar a la velocidad deseada, como se puede ver en la figura 1-2 [8]. velocidad velocidad 0 Tiempo 0 Tiempo a) b) Figura 1-2. Generador de trayectoria, A)Trapezoidal. B)Curva S, Si se especifican movimientos en segmentos cortos, el trapezoide asumiré una forma triangular. El resultado obvio es que no le serd posible al movimiento aleanzar la velocidad deseada como se muestra en la figura 1-3 [8] Aunque el administrador CIMServer s6lo maneja un generador de trayectorias trapezoidal, esto no limita a probar a las trayectorias 0 movimientos de los ‘manipuladores con este tipo de generador, es posible trabajar con un generador de trayectorias de tipo $ “suave” (es decir, una trayectoria continua y derivable en todos sus puntos) 0 algiin otro tipo especial de generador que se adecue al trabajo a realizar. Esto es gracias a la facilidad de unir programas en un lenguaje de programacién de uso general con las funciones y bibliotecas del paquete computacional Cimetrix. velocidad de establecimiento velocidad alcanzada Tiempo Figura 1-3. Reduccién de la velocidad para movimientos cortos. Ya que tenemos generada una trayectoria, esta puede consistir de diferentes tipos de movimientos y de diferentes parémetros de velocidad y aceleracién, por tanto es necesario tener un elemento que maneje la interrelacién de los movimientos dentro de la trayectoria, siendo este elemento un conjunto de mandos dentro de ciertas funciones del paquete computacional Cimetrix, esto se explica en la siguiente subseccién. 1.3.2 Interrelacién de movimientos La fuuncién que vigila que las interrelaciones se desarrollen de manera segura es la funcién API CxSetBlendPolicy( ), tiene como mando a CX MOVE WAIT. CX_MOVE_WAIT no permite que los demas mandos se aglomeren en la cola de datos debido a que inmediatamente después de dejar una instruccién en la cola, regresa por la siguiente instruccién_y en este momento permite a la arquitectura CODE que la ejecute. Este mando vigia restringe a los movimientos a iniciar y concluir con una veloci lad cero, esta caracteristica lo constituye como un movimiento punto a punto. EI mando de seguridad CX_MOVE_THRU mantiene instruceiones ejecutindose en la cola mientras regresa por la siguiente instruccién. Cuando dos 0 més movimientos curvilineos se encuentran en la cola, el periodo de desaceleracién del primer movimiento sera agregado al periodo de aceleracién del siguiente movimiento que esta en la cola, Asi el movimiento de trayectoria contintia manteniendo Ia velocidad en las trayectorias de transicién cercanas, sacrificando la precisién de la trayectoria como se muestra en la figura 1-4 [8]. El vértice mezclado es la posicién final del primer segmento y la posicién ial del segmento siguiente 0 contiguo. La reduccién de la velocidad es una funcién de la diferencia en la tangente de los dos segmentos de movimiento. vértice de enlace Primer Segmento Segundo Segmento Punto de la trayectoria mezclada region de mezcla @ region de mezcla . tiempo ) Figura 1-4, Funcién CX_MOVE_THRU. A) Espacio de la trayectoria B) Trayectoria mezclada por segmentos continuos, velocidad El mando CX_MOVE_THRU puede ser usado con movimientos que se interrelacionan a lo largo de una curva (una coleccién de segmentos de movimiento llamada curveseg) 0 para movimientos en la cola del tipo CX_LINEAR_INTERP 0 CX_CIRCULAR_INTERP. Para trayectorias definidas como curveseg, la interrelacién no se realiza necesariamente entre segmentos de trayectoria que esten tangentes unos con otros. Si el usuario establece el asegurador de mezclas como CX MOVE_TO_TANGENT 6 CX_MOVE_THRU_TANGENT, el administrador CIMServer ejecutara una revisién tangencial entre segmentos curvilineos continuos para una trayectoria curveseg y entonces decide cuando Ia mezcla es necesaria; de otra forma los periodos de aceleracién y desaceleracién son usados de manera normal para la parte de transi mn entre velocidades de segmentos como se puede apreciar en la figura 1-5 [8]. Estos mandos Permiten mantener Ja trayectoria exacta, mientras también mantienen la velocidad deseada a lo largo de la trayectoria, v t Figura 1-5. Transiciones en la velocidad para segmentos tangentes La diferencia existente entre los dos mandos de seguridad para mezcla es el camino que toma el movimiento en segmentos no tangentes. Si el mando de seguridad CX_MOVE_TO_TANGENT es usado, el mando de seguridad para mezcla seré CX_MOVE_TO al segmento no tangente, causando que el movimiento se detenga al final de] segmento no tangente, seguido por una aceleracién a la velocidad deseada sobre el segmento siguiente del segmento no tangente. Si el mando de seguridad CX_MOVE_THRU_TANGENT es usado, el mando de seguridad para mezcla sera CX_MOVE_THRU al segmento no tangente, causando un movimiento entre el segmento no tangente y el siguiente segmento a ser mezclado, Hasta ahora se ha mostrado la estructura general del control de movimientos de la arquitectura CODE, de como se manejan las funciones para los dos modos de movimientos; por tanto, es momento de conocer como la arquitectura CODE maneja estos dos modos de movimientos de manera indivudual. 20 1.3.3 Movimiento Articulado (CX_JOINT_INTERP) En la arquitectura CODE el movimiento articulado es definido por el modo preestablecido (CX_JOINT_INTERP). El tipo de movimiento a mangjar es definido por la funcién API CxSetInterpType( ) y valores validos son el movimiento interpolado de la articulacion (CX_JOINT_INTERP) y el movimiento de una trayectoria curvilinea (CX_LINEAR_INTERP). Los cambios en Ia articulacién puede ser especificados directamente a partir de una configuracién de la articulacién utilizando las funciones CxMoveSingleAxis( ) 0 CxMoveAllAxes(_), 0 como un punto mévil, donde es necesario usar cinemética inversa para determinar los cambios correspondientes en las articulaciones con la finalidad de posicionar el efector final en la configuracién deseada, Para un movimiento inicial a ser controlado por el paquete computacional Cimetrix el usuario puede mandar los cambios de la articulacién, asi como los datos de posicién del punto final de movimiento a la servo tarjeta, y usar un algoritmo previamente programado en un circuito integrado para hacer el movimiento interpolado de la articulacién, El usuario también tiene la opcién de usar los algoritmos del administrador CIMServer para manejar los movimientos incrementales en el modo PVT (posicién- velocidad-tiempo) y con esto se tiene un control. por programacién con nivel incremental de la trajectoria, pero con una velocidad burda en la trayectoria. El control de la velocidad de la trayectoria es especificado completamente por el usuario usando la funcién API CxSetJointSpeed( ), también se pueden ajustar las velocidades méximas de las articulaciones para cada eje usando la funcién API CxSetMaxJntSpeed( ). La velocidad es un nimero entre 0 y 1. El valor predefinido es 0.1 0 10% de la velocidad méxima El control de la aceleracién por parte del administrador CIMServer permite dos modos: uno consiste en ajustar el tiempo para llevar a cabo el cambio en la velocidad (CX_CONST_RAMP_TIME), que es especificado por la funcién API CxSetTrapAccelTimes(); el segundo modo maneja directamente as magnitudes de aceleracién que se especifiquen (CX_CONST_RAMP_ACCEL). Ambos modos dependen del usuario para especificar los méximos valores de aceleraciones y 21 desaceleraciones para cada articulacién utilizando los mandos CxSetIntAccel( ) y CxSetIntAcceIMax( ). Los valores predefinidos por la arquitectura CODE son de magnitudes pequeitas y producirén movimientos muy Ientos en la simulacién 0 en el control fisico, Asi, se debe tener cuidado para establecer los valores apropiados para el mecanismo a ser controlado. Algunas aceleraciones computadas requieren levarse a cabo con cambios maximos de velocidad. Si los maximos son excedidos, entonces las aceleraciones de la trayectoria seran reducidas a los valores maximos. La arquitectura CODE permite que los tiempos de aceleracién y sus magnitudes varien con los tiempos y magnitudes de las desaceleraciones; también permite que esos valores cambien dinamicamente en la secuencia de control de movimiento, La arquitectura CODE permite movimientos del tipo lineal entre las configuraciones de las articulaciones cuando el tipo de movimiento de la herramienta es establecido como CX_LINEAR_INTERP y la funcién API es CxMoveAllAxes( ) 0 la funcién API CxMoveToConfig es usada, Las cinematicas inversas son automaticamente aplicadas a la estructura de la iltima articulacién independientemente para determinar un objetivo en la configuracién deseada del robot. 1.3.4 Movimiento en la Trayectoria Cartesiana 7 Como se mencioné anteriormente, la trayectoria cartesiana usa algoritmos de trayectoria y de cinematica inversa para determinar de manera incremental los cambios en la articulacién, su velocidad y aceleracién necesarias para realizar la trayectoria en el espacio cartesiano ya sea en forma de lineas y/o arcos, El proceso tipico de la trayectoria es mostrado en el diagrama de la figura 1-6 [8]. Un registro circular mévil envia la accién siguiente que esté en la cola permitiendo que la rutina user_trajectory( ) ejecute 1a accién enviada desde el registro, esta rutina lama a otras rutinas especificas para inicializar los parimetros de movimiento y hacer movimientos incrementales a través de segmentos de la trayectoria, Si el movimiento es del tipo cartesiano, las rutinas de cinemética inversa serén Ilamadas por la funcién pick_soln( ) para obtener el nuevo valor de la articulacién dado el movimiento incremental. $i la velocidad de la articulacién es revisada en el espacio del actuador, entonces los valores y velocidades de las articulaciones deben ser primero convertidos a valores del actuador (user_convert_jnt_to_act( )). Al revisar las velocidades, autométicamente se llama a las rutinas que determinan, las velocidades de las articulaciones de la nueva configuracién y las velocidades cartesianas deseadas. Si las velocidades se exceden, entonces las velocidades de las articulaciones se reducen a los valores permisibles. Algunos algoritmos llaman de manera ciclica a las rutinas de generacién de trayectoria para modificar el movimiento reflejado por el decremento en la velocidad cartesiana, como resultado del correspondiente decremento en las velocidades de las articulaciones a los limites permitidos, esto se puede ver en la figura 1-6 [8]. Registro rotacional ‘de movi mientos Nuevo movimiento vatid oT TaroeO, Generador de trayectoria p—+| _got_target_frames() ‘Se ha ‘motion start) copistadoe! fe———| __user_trajectory) |, "2" movimiento? T . Cinematica inversa pick_soin() r User_convert_nt_to_act() —ee—eeEeeew Checando velocidades Uuser_joint_rates() [erent rten I parametosde—],_No | Las velocidades | Si movimiento Json excedidas ? ntrolador 0 dispositive manejador Figura 1-6. Ciclo computacional para la generacion de trayectorias. Una vez que las velocidades son aceptadas, los pardmetros de movimiento son 23 usados por el controlador del paquete computacional cimetrix, si el modo CX_RUNTIME esta activo; si el modo CX_ANIMATION es el modo activo, entonces la pantalla de simulacién es la que usa dichas velocidades. La figura 1-6 muestra tres rutinas: valid_tef target, get_target_frames y motion_start, las cuales estén dentro del generador de trayectorias predefinido por el administrador CIMServer. La primer rutina (valid tef target) establece el punto a alcanzar por el efector final; la segunda rutina (get_target_frames) obtiene el tipo de configuracién del punto a alcanzar, por ejemplo si es en forma de caja o de esfera. La tercera rutina (motion_start) es la que lama a las funciones de movimientos establecidas siempre y cuando se hallan cubierto los pardmetros de entrada necesarios. Una de las ventajas de la arquitectura CODE es que la informacién de la estructura a aleanzar puede ser extraida desde la base de datos del modelo de la celda de trabajo, Si se usa la funcién API CxSetMotionTrack para activar el movimiento de seguimiento, el comando motion_start( ) sera llamado en cada ciclo de la trayectoria para actualizar los parametros. Esto permite que el mecanismo se mueva dinmicamente 0 con movimientos semi- estiticos hacia el punto a alcanzar. La arquitectura CODE permite la integracién de sensores dentro de la base de datos del modelo de la celda de trabajo, un sensor lector puede ser usado para actualizar en tiempo real, la informacién del punto,a alcanzar, Esta actualizacién de la informacién puede ser usada para desviar el movimiento de la trayectoria inicial formando una trayectoria dinémica. Todo estas acciones Mevadas a cabo por el control de movimientos de la arquitectura CODE tienen una li icin importante, no se cuenta con una rutina que permita el manejo de trayectorias cuando existen obsticulos en ella. Este tipo de movimiento sélo es posible afiadiendo una paqueteria especial denominada CIMVision, monitoreando la ejecucién de las celdas de trabajo y haciendo los cambios necesarios en las trayectorias por medio de un anélisis visual. Queriendo aprovechar las caracteristicas que de manera particular nos ofrece el administrador CIMServer, como son sus funciones y bibliotecas de movimiento, se ve que existe una amplia posibilidad de adecuar cierto tipo de algoritmos que permiten hacer un andlisis sobre trayectorias con obstaculos utilizando los recursos basicos del admi 24 ‘APITULO II TECNICAS PARA CONFORMACION DE TRAYECTORIAS 2.1 Introduccién En la industria los brazos manipuladores juegan un papel muy importante en la realizacién de tareas cfclicas. Generalmente se le ensefia al robot en que puntos debe moverse antes de que realice el movimiento en forma continua, este aprendizaje trac consigo una accién de tiempos muertos, debido a la inactividad de la linea de produceién en donde se esta configurando al brazo manipulador. Ahora, consideremos que se tiene que aplicar la misma tarea a brazos manipuladores con diferentes espacios de trabajo libres, esto ocasiona que se tengan que ensefiar a cada brazo manipulador los puntos por donde deben desplazarse, lo que es una tarea demasiado engorrosa y lenta. Lo anterior es una problemética de planeacién de movimientos en un espacio de trabajo con obstaculos fijos. El uso de control por computadora ha permitido la busqueda de soluciones mas eficientes. En esta problemética ademas de encontrar un camino que pueda ser recorrido por el brazo manipulador, también se busca encontrar la mejor solucién tanto en tiempo como en distancia, Muchos trabajos se han desarrollado al respecto, modificando las estructuras de los algoritmos para obtener mejores resultados por medio de diversas técnicas. Entre los trabajos més interesantes podemos citar el trabajo de Khatib [1978] con el uso de téenicas de ecuaciones heuristicas; de Lozano Pérez [1979] por medio de la conformacién de un espacio que denominé espacio de configuracién; de Brooks [1983] con la conformacién de un espacio subdividido en conos; de Faverjon [1984] con el uso de téenicas de octetos para la conformacién de un espacio libre y un espacio ocupado; de Szezerba [1996] con el uso de regiones ponderadas usando subespacios estructurados. Todas estas ideas han sido ampliamente estudiadas y se tienen bien definidos los espacios y condiciones en donde pueden manejarse cada una de ellas. En la robética, sobre todo en el campo de planeacién de movimientos, 25 generalmente se obtienen soluciones particulares o especificas para un solo brazo manipulador, debido a las diferentes conformaciones dindmicas, cineméticas y estructurales de los mismos brazos manipuladores. Si analizamos la problematica de planeacién de movimientos como un fenémeno completamente geométrico, lo cual es fisicamente cierto porque estamos trabajando con un objeto (brazo manipulador) que su estructura extema puede ser representada por un conjunto de poligonos, podemos considerar como una base importante para el disefio y anélisis de los elementos de esta problemitica el uso de algoritmos geométricos. Hay que considerar que los algoritmos geométricos son utilizados en muchos casos en donde puede no verse con claridad su aplicacién; por ejemplo, un esquema politico de dividir un distrito en Areas con Ia misma cantidad de gente (y que satisfaga otros criterios como el poner a miembros de un érea en otra) es necesario utilizar un algoritmo geométrico. El algoritmo utilizado en dicho ejemplo puede ser el mismo u otro al que se utilizara para resolver el problema de planeacién de trayectorias Si analizamos con mayor detalle la idea gedmetrica de la planeacién de movimientos con brazos manipuladores, podemos utilizar ciertas aproximaciones que nos reproduzean en forma més cercana el ambiente real de trabajo que nos interesa, como son la forma y posicién de los obstaculos y del espacio de trabajo. Si establecemos una forma geométrica especifica para el espacio de trabajo, los obstaculos y el robot, entonces generamos una configuracién geométrica mucho més sencilla de analizar, la cual puede ser tratada con algiin algoritmo de mallas para obtener una trayectori Estos algoritmo de mallas requieren de pardmetros que puedan ser unidos en un mismo plano o espacio, para esto existen diversas técnicas geométricas de particién de un plano o espacio, en puntos representativos del mismo, como por ejemplo la técnica de oct-arboles ([4], [5], [7], [20]) utilizada en este trabajo. Entonces podemos ver que la problematica de planeacién de trayectorias se puede hacer menos compleja con la utilizacién de técnicas geométricas adecuadas, Ahora, consideremos que generalizamos la forma geométrica de los espacios de trabajo que no tengan demasiada similitud, como por ejemplo el espacio de trabajo de un robot cilindrico con el de un robot con coordenadas articuladas; esta generalizacion afecta a la optimizacién de los resultados, pero permite el manejo de un sélo algoritmo en 26 forma generalizada para diferentes brazos manipuladores. Aungue una gran cantidad de problemas geométricos son ficiles de visualizar por el ser humano, el programarlos involuera un conjunto de condiciones que son descartadas por el hombre, como por ejemplo, 1a programacién de toma de decisiones que si no se realiza adecuadamente no pueden resolverse ciertas problematicas; 0 el caso contrario donde la programacién es muy simple, como por ejemplo el caso de trazar una linea recta entre dos puntos. Otra técnica diferente a la geométrica muy utilizada en la robotica es la técnica de visién, la cual consiste en poner un sensor dptico en el elemento manipulador 0 en su espacio de trabajo, para adquirir, guardar y manipular la imagen adquirida; con estas acciones se establecen coordenadas de la imagen capturada y se mandan como datos de posicién y orientacién al robot. En este trabajo se desarrollaron y aplicaron técnicas puramente geométricas. El aplicar un andlisis geométrico a brazos manipuladores involucra primero conocer su espacio de trabajo para hacer una adecuada divisién del mismo y posteriormente utilizar una técnica de descomposicién de dicho espacio para la obtencién de los datos necesarios en el uso de alguna técnica de mallas que genere una trayectoria entre dos puntos dados dentro del espacio de trabajo. 2.2 Espacio de trabajo De lo mencionado anteriormente, es necesario iniciar con la definicién del espacio de trabajo. El espacio de trabajo es el entomo dentro del cual el brazo manipulador puede manejar libremente el extremo de su mufieca, Viene determinado por la configuracién fisica del mismo, el tamafio de los componentes del cuerpo y de la muficca y por los limites de los movimientos de las articulaciones del brazo manipulador (ver figura 2-1) [24] Los obstéculos a considerar se encuentran dentro del volumen que conforma el espacio de trabajo y las singularidades propias del robot, que se presentan en ciertas partes del espacio de trabajo y conforman una subdivisién que se puede hacer a este espacio, llamada el espacio ocupado, o espacio de obsticulos; mientras que el espacio de trabajo que no es ocupado por los obstéculos y las singularidades se denomina el espacio 27 libre de la celda de trabajo. Figura 2-1.Espacio de trabajo de un brazo manipulador industria. La anterior subdivision del espacio de trabajo es la més comin, para ello es necesario aplicar algin método de planeacién de movimientos que permita obtener un espacio libre y un espacio de obsticulo. Para esto existen diversas técnicas, donde las mas importantes son presentadas en la siguiente seccién 2.3 Descripcién del Problema de Planeacién de Movimientos. El problema de planeacién de movimientos puede definirse como [14] “Dado un sistema de objetos, una configuracién de inicio y fin para esos objetos, y un conjunto de obsticulos los cuales pueden ser estacionarios 6 méviles en zonas conocidas, el objetivo es encontrar la trayectoria més viable del sistema de objetos a mover desde la configuracién inicial a la configuracién final tal que sea evitada cualquier colision con obstéculos”. Para nuestro caso el sistema de objetos se compone de las diferentes articulaciones del brazo manipulador. Existen dos formas generales de tratar la problematica de planeacién de movimientos, las dos formas se basan en encontrar ciertas aproximaciones a trayectorias permitidas en un espacio que no esté ocupado por los obsticulos, estas son: © Aproximacién basada en repetidas modificaciones de la trayectoria. 28 © Aproximacién basada en representacién por topologia de redes. Para entender el principio de funcionamiento de estas aproximaciones, a continuacién se presenta una breve descripcién de los algoritmos representativos de cada aproximacién y una descripcién més detallada de los algoritmos utilizados en el presente trabajo. 2.4 Aproximaciones basadas en repetidas modificaciones de la trayectoria. Dadas las configuraciones de inicio y fin, el método de repetidas modificaciones en Ia trayectoria comienza con el conocimiento de la trayectoria entre las dos configuraciones. La posible realizacién de esta trayectoria es entonces probada. La trayectoria es valida si la colisién con obsticulos es evitada y si todas las restricciones practicas especificadas son satisfechas; si la trayectoria encontrada es viable, entonces la busqueda termina, de lo contrario, la trayectoria considerada es modificada para eliminar la inviabilidad y el proceso es repetido para la nueva trayectoria. Existen varios algoritmos que estén basados en esta idea analizados con diferentes metodologias para modificar la trayectoria; los mas representativos son los que a continuacién se mencionan: : 8) Algoritmos que usan retroalimentacién sensorial. b) —_Algoritmos que utilizan programacién lineal ©) Algoritmos que usan trayectorias polinomiales de orden mayor. 4) Algoritmos que usan campos potenciales artficiales, En la descripcién de estos algoritmos se sefialan sus ventajas y desventajas, asi como los casos en los cuales es aconsejable su utilizacién. 2.4.1 Algoritmos que usan retroalimentacién sensorial. Los algoritmos de esta clase son los generados por Lumelsky y Stepanov (1976) [14] y los de Sankaranarayanan y Vidyasagar(1978) [14]. Bl desarrollo de este tipo de algoritmo se basa en el uso de sensores téctiles 0 de proximidad que proveen informacién acerca de 29 Ja proximidad de los obstaculos. Por lo tanto, estos algoritmos pueden ser usados en linea ¥ no requieren un mayor conocimiento de la geometria de los obsticulos. Descripeién: una ilustracién de la aplicacién de este algoritmo se muestra en la figura 2-2 [14], donde el objeto mévil es un punto y sélo hay un obstéculo que evitar. Una trayectoria libre de colisién para el punto es la siguiente: el punto se mueve desde la posicién de inicio hasta la posicién final a lo largo de una linea recta que contiene a estas dos posiciones. Asi que cuando el punto mévil esta cerca de colisionar con el obstéculo, gira a la izquierda, y el movimiento continua a lo largo del limite del obsticulo hasta llegar otra vez. a la linea recta que contiene a los puntos de inicio y fin, en este punto vuelve a girar y retoma la direcccién de dicha linea. En situaciones con més de un obsticulo, este proceso es repetido con cada colisién con los obstéculos que atravieza la trayectoria recta, obmiculo Figura 2-2. Planeacién de trayectorias usando retroalimentacién sensora, Principales ventajas: * No se requiere un conocimiento previo de las formas de los obstéculos si la entrada sensora es activada, De esta forma, los algoritmos de esta clase son realizados para generacién de trayectorias en linea, © La longitud euclidiana de la solucién de la trayectoria es aumentada al limite de los perimetros de los obsticulos. Principales desventajas: * La trayectoria generada libre de colisién no es optima para minima distancia. Desde que Ia trayectoria es requerida para seguir los limites del obsticulo, la complejidad geométrica es una funcién de los obstéculos. 30 * Un gran nimero de sensores puede ser requerido en orden para detectar colisiones proximas. En aplicaciones tipicas, la fuente completa de los objetos méviles debe ser cubierta con una capa sensorial, usualmente llamada “piel”. Dominio de ta aplicacién: Ios algoritmos de esta clase son fécilmente aplicables en situaciones de 2 dimensiones, y para problemas de 1 a 2 grados de libertad. En otros casos, los algoritmos son también aplicables, pero la complejidad de su implementacién se incrementa considerablemente. 2.4.2 Algoritmos que usan programacién lineal. Un algoritmo que usa esta aproximacién ha sido desarrollado por Rodriguez-Velizquez (1985) [14]. Esta basado en una idea similar a la del método descrito anteriormente, con la excepcién de que las colisiones préximas son detectadas usando programacién lineal para determinar la distancia entre el par cerrado de objectos a lo largo de Ia trayectoria ial. El par cerrado consiste del punto o elemento en movimiento y el obstaculo proximo. Descripeién: en este método se asume que los objetos en movimiento y los obsticulos estin limitados como regiones convexas, cada una de las cuales es descrita por un conjunto de expresiones de desigualdad lineal. La funcién objetivo es la funcién lineal describiendo una cara 0 un borde del objeto mévil. En el ejemplo dg 2 dimensiones mostrado en la figura 2-3 [14] cuando la distancia entre el par cerrado de objetos se ‘encuentra que es menor que el minimo permitido, se modifican las velocidades del objeto miévil y su trayectoria para evitar una colisién. Principales vent «La longitud euclidiana de la solucién de la trayectoria es mayor a la del perimetro de los obstaculos. + La aproximacién es buena para procesamiento en paralelo cuando cada procesador es dedicado a resolver la programacién lineal asociada con un conjunto separado de obsticulos. Esta situacién puede ser benéfica en problemas tridimensionales de navegacién multi-cuerpo en tiempo real. Principales desventajas: © La trayectoria libre de colisién generada no es Optima para minima longitud o 31 asociada con el tiempo de movimiento, * Es necesario el conocimiento previo de las formas de los objetos méviles y de los obstaculos. funciones objetivo Figura 2-3. Deteccién de colisién usando programacién lineal Dominio de la aplicacién: los algoritmos de esta clase son aplicables en situaciones de 2 6 3 dimensiones, y en problemas con un niimero arbitrario de grados de libertad, con obsticulos convexos y representacién lineal, 2.4.3 Algoritmos que usan trayectorias polinomiales de orden mayor. Descripcién: este método difiere de los dos métodos anteriores en que el método de trayectorias polinomiales de orden mayor usa una biisqueda fuera de la trayectoria libre de colisién entre dos puntos, mientras que en los casos anteriores hacen cambios de movimiento cuando se tiene una colisién, Cuando la trayectoria de un polinomio dado es encontrada como no vilida, es decir que existe alguna colisién, una nueva trayectoria es obtenida intercambiando los parimetros que definen al polinomio. Las trayectorias generadas con este método corresponden usualmente a curvas de Bezier de segundo orden, 0 combinaciones de tales curvas, debido a que el uso de curvas mas complicadas 32 reducen considerablemente la eficacia computacional. Un ejemplo ilustrativo se muestra en la figura 2-4 [14]. trayectoria inicial Trayectofia después de la primera modificacion = meta meta ‘Trayectoria después de la segunda modificacién. Figura 2-4. Planeacién de trayectorias usando polinomios de orden superior, Principales ventajas: + La complejidad geométrica de las trayectorias es independiente de a complejidad de los obstaculos. * Las trayectorias generadas son curvas suaves que pueden resolver algunas restricciones practicas. Principales desventaja + Laprincipal desventaja de este método es que la trayectoria libre de colisién generada no es éptima por minima longitud o asociada con el tiempo de movimiento. Dominio de la aplicacién: los algoritmos de esta clase son aplicables en situaciones de 2 6 3 dimensiones y en problemas con un numero arbitrario de grados de libertad. 33 2.4.4 Algoritmos que usan campos potenciales artificiales. Es una de las dos técnicas utilizadas en este trabajo para encontrar una trayectoria en un entorno con obstéculos; su utilizacién no fue especificamente para encontrar una trayectoria, sino para determinar si un punto de la trayectoria a crearse se encontraba cerca de un obstéculo, lo que ocasionaria un choque entre el efector final y el obstaculo. La idea de crear campos potenciales artificiales en un espacio de trabajo que involucra tanto espacio libre como espacio ocupado para desarrollar una trayectoria, fue tratada inicialmente por Khatib (1987) [21] seguido de algunos trabajos de Maciejewski[14] en ese mismo afio. Es un método que utiliza ecuaciones heuristicas que generan curvas de Bezier alejéndose de las areas de los obstéculos, en forma parecida a la técnica de polinomios de orden mayor (10, 17, 18]. En forma general un campo potencial artificial es la suma de un campo de atraccién y un campo de repulsion. Para el caso de planeacién de trayectorias, tenemos que un campo potencial artificial (U) es la suma de un campo de atraccién (Var) producido por el punto meta y un campo de repulsién (Usp) producido por los obstéculos y el punto inici UE) = Ua, (9) + Ug P) (2.1) donde & representa a los puntos generados en la trayectoria, q al punto meta, 9 a los. puntos en la frontera de los obstaculos y p al punto de inicio. Este campo potencial es producido en un espacio métrico-lineal n-dimensional K" en donde existe un entorno estitico X representativo del espacio libre, este entorno o dominio es estético debido a que el espacio de obsticulos no suffe variaciones en el tiempo, es decir, también es estético. Si queremos encontrar una trayectoria dentro de X , es necesario obtener un segmento de curva 3 que une al punto de inicio p con el punto meta q contenidos en X. La solucién es obtenida por medio de segmentos de lineas rectas PPh Pav--s4.1P.0914 ¥ Segmentos curvilineos 7,7, la figura 2-5 [19]. Bg, como se puede apreciar en Ahora, a esta trayectoria PJ le obtenemos su campo potencial artificial, de la 34

You might also like