Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INVESTIGACIÓN EN COMPUTACIÓN Navegación de un robot móvil usando visión por computadora Tesis que presenta el Ing. José Omar Zaragoza Dı́az de León para obtener el grado de Maestro en Ciencias de la Computación con especialidad en inteligencia artificial Director de Tesis: Dr. Marco Antonio Moreno Armendáriz México D.F. Diciembre del 2008. 2 Resumen En el presente art́ıculo nos ocupa el desarrollo de un sistema de detección y evasión de obstáculos usando visión por computadora. Este modelo está basado en el método de campos potenciales artificiales. Dicho modelo fue descrito en lenguaje de descripción de hardware (del ingles VHDL) e implementado en un arreglo de compuertas programable en campo (del ingles FPGA). Para su prueba en tiempo real el sistema fue validado en el prototipo de robot móvil CORIBOT 07. El sistema se compone de 3 módulos: el modulo de visón por computadora, el control de evasión de obstáculos y el controlador de dos servomotores que utiliza el robot como actuadores. El modulo de visión utiliza una cámara digital de 1.3 Mpixeles y es el único sensor de información de la escena, en la cual se desenvuelve el robot; este modulo recibe como entrada una imagen de 512x512 de 10 bits de profundidad en formato crudo de patrón-Bayer y entrega como salida el aviso de si existe obstáculo ó no en el camino del robot; si hay obstáculo adicionalmente entrega un vector de estado y de rasgos que caracterizan al obstáculo. Estos vectores entran al modulo de control de evasión de obstáculos, en el cual mediante el enfoque de campos potenciales artificiales se calculan la fuerzas de repulsión que los obstáculos ejercen sobre el robot y las fuerza de atracción inducida por la meta u objetivo; explotando dichas fuerzas y con asistencia del modelo cinemático del robot se calculan las velocidades angulares que cada rueda debe poseer para conducir al robot por un camino libre de obstáculos y colisiones. Abstract In this work presents a real-time vsion-based obstacle detection system in an indoor environment for an autonomos mobile robot. In this study we used the method of artificial potential fields. This system is developed on VHDL and implmented in a FPGA. Índice general 1. Introducción 1 1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Problemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.5. Objetivos particulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.6. Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.7. Aportaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.8. Publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.9. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2. Estado del Arte 8 3. Plataforma Mecánica 11 3.1. Robots de direccionamiento diferencial . . . . . . . . . . . . . . . . . . . . . 11 3.2. Modelo cinemático del direccionamiento diferencial . . . . . . . . . . . . . . 14 4. Sistema de control visual 19 4.1. Modulo de sistema de visión por computadora . . . . . . . . . . . . . . . . . 20 4.1.1. Adquisición y acondicionamiento de la imagen . . . . . . . . . . . . 21 4.1.2. Detección de obstáculos. . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2. Modulo de evasión de obtáculos . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2.1. Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2.2. Campos potenciales artificiales. . . . . . . . . . . . . . . . . . . . . . 26 4.2.3. Controlabilidad del modelo de direccionamiento diferencial. . . . . . 29 4.2.4. Control del robot con campos potenciales artificiales . . . . . . . . . 30 5. Resultados 35 5.1. Desempeño del sistema de visón por computadora. . . . . . . . . . . . . . . 35 6. Conclusiones y trabajo futuro 46 Referencias 47 3 Índice de figuras 3.1. CORIBOT 07: (a) Diseño asistido por computadora del prototipo. (b)Robot construido 12 3.2. Dimensiones del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3. CIR en direccionamiento diferencial: (a) El robot presenta un movimiento rectilineo vd = vi. El CIR se 3.4. Restricción no-holonoma: (a) Velocidad lineal y angular. (b) Movimiento restringido 15 3.5. Representación del modelo cinemático con direccionamiento diferencial . . 17 4.1. Diagrama a bloques del sistema. . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2. Diagrama de flujo del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.3. Patron RGB-Bayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.4. Image cruda tomada con la camara digital (Patron RGB-Bayer) . . . . . . . 22 4.5. Deteción de obstáculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.6. Ejemplo de detección del obstáculo . . . . . . . . . . . . . . . . . . . . . . . 25 4.7. Fuerzas inducidas por al robot por lo campos potenciales artificiales. . . . . 26 4.8. Cambio de punto de referencia . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.1. Obstáculo: Caja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2. Obstáculo: Mueble de madera . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3. Obstáculo: Pared . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.4. Obstáculo: Perchero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.5. Obstáculo: Puerta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.6. Obstáculo: Puerta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.7. Obstáculo: Silla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.8. Sin obstáculo en la cercańıa del robot . . . . . . . . . . . . . . . . . . . . . 44 5.9. Sin obstáculo en la cercańıa del robot, pero se tiene una reflexión de luz provocada por una lámpara. 0 Caṕıtulo 1 Introducción 1.1. Introducción Los robots ya sean autónomos o teleoperados han demostrado ser una de las tecnoloǵıas más útiles para el ser humano, en la realización tareas peligrosas, sucias, repetitivas o imposibles de ralizar por el hombre. Este tipo de tareas van desde lo más simple hasta lo más complejo, como la limpieza de un automóvil hasta la exploración espacial, competencias deportivas, o asistencia médica, entre otras. Crear un ente artificial con inteligencia propia representa para el humano un gran reto, y a la vez es un aliciente para continuar con la solución de problemas mejorando las aplicaciones ya existentes; además de tratar de conseguir modelar y reproducir artificialmente las capacidades que el ser humano tiene por naturaleza es por demás una labor complicada. La visión para el ser humano, es el sentido que brinda mayor conocimiento del entorno, no es lo mismo desde el punto de vista de información obtenida, por ejemplo, subir escaleras usando la vista, que subir atientas usando las manos. Con la vista obtenemos retroalimentación más completa como para, tomando el ejemplo anterior; ir subiendo, reconocer a alguien conocido y saludarlo. Lo anterior es análogo a que un robot use visión por computadora como retroalimentación a que, por ejemplo, use sensores ultrasónicos. La visión por computadora es la herramienta que otorga al sistema la capacidad, no solo de 1 2 CAPÍTULO 1. INTRODUCCIÓN evadir obstáculos, como se pretende en este trabajo, sino de con trabajos futuros extender el sistema para realizar tareas más complejas. La clasificación más general de la navegación autónoma de robots móviles son: la navegación en entornos estáticosy la navegación en entornos dinámicos ó no estructurados; entendiendo por entorno estático a aquél que tiene la restricción de no cambiar en su estructura para que el robot pueda realizar su tarea de navegación con éxito. Un robot móvil dotado con las herramientas necesarias para realizar la navegación en entornos dinámicos, permite que el escenario en el cual se desenvuelve sea más flexible; aceptando que los objetos o personas que pueden fungir como obstáculos en su trayectoria, tengan movimiento libre y sin restricciones, sin que esto afecte la realización y fin exitoso de su tarea de navegación. Otra clasificación de la navegación autónoma de robots móviles seria: la navegación en interiores y la navegación en exteriores. Independientemente del tipo de navegación que se realice existen 3 sub-tareas básicas a resolver: 1. Percepción del mundo: Recepción de información del entorno mediante sensores, con el objetivo de conocer la escena donde el robot interactúa. 2. Generación de trayectorias: Genera las sub-metas que, secuencialmente, debe alcanzar el robot. Para resolver esta tarea se pueden abordar dos técnicas: basado en mapas de entorno en la cual toda la escena se conoce a priori, generalmente, por medio de un sensor global; basado en construcción de mapas de entorno en donde el modelo del entorno es construido, generalmente por un sensor local montado en el robot, durante la navegación del robot por la escena. 3. Detección obstáculos y evasión de colisiones: Esta es la encargada de detectar obstáculos fortuitos que no se estimaron en la generación de trayectoria, por algún error del sistema ó porque la naturaleza del entorno es dinámica. Además de la detección oportuna, se debe afianzar la evasión del obstáculo y salvaguardar la integridad del entorno y del robot; esta tarea es preponderante en el desempeño final del robot, ya que a robustez de esta parte influirá 1.1. INTRODUCCIÓN 3 directamente en la eficiencia con la que el robot interactúa en el medio que lo rodea. La navegación en entornos dinámicos donde el robot interactúa con humanos es una tarea no trivial; ya que resulta complicado predecir su comportamiento, con esta perspectiva un robot debe de estar provisto con sensores, procesador y actuadores lo suficientemente efectivos para lograr un acoplamiento armonioso con su entorno. Bajo este juicio es posible asegurar que una de las tareas más relevantes en este tópico; es la evasión de obstáculos. Tarea que tiene como objetivo principal dotar al robot la capacidad de interactuar, de manera adecuada con su entorno y disminuir el error en su trayectoria a seguir. En este trabajo se aborda esta última tarea de la navegación de robots móviles, la evasión de obstáculos en interiores con entornos dinámicos. Para ello se realizó la construcci’on de un robot móvil con unsistema de visión por computadora como sensor de elusión de obstáculos. Se diseñaron tres módulos: el sistema de visión por computadora, el control de evasión de obstáculos y un controlador de servomotores, todos descritos en Lenguaje de descripción de hardware (de las siglas en inglés, VHDL). El robot móvil es de diseño y construcción propios. Este prototipo forma parte de la primera generación de robots móbiles construidos en el Laboratorio de Reconocimiento de Patrones (LRP) del Centro de Investigación en Computación (CIC) del IPN. El robot es del tipo de direccionamiento diferencial cuyo modelo cinemático se extrae de la literatura [? ] Para conocer su entorno el robot procesa con 16 imágenes por segundo aquiridas por la cámara digital. Puesto que el entorno no se conoce a priori, cada escena que este recibe es nueva y desconocida; la imagen entra al sistema de visión por computadora donde es conducida por dos etapas: la primera en donde la imagen es acondicionada para su fácil y acertado procesamiento y la segunda en donde se realiza la detección de obstáculos. Este modulo reconoce si existen objetos que representen un obstáculo para la trayectoria que describe el robot, además entrega un vector de rasgos. Estos son: posición del objeto, distancia del objeto al robot. Todos los rasgos son extriados de la imagen. Estos rasgos son las entradas al modulo de evasión de obstáculos. 4 CAPÍTULO 1. INTRODUCCIÓN Para la evasión de obstáculos se utilizó, en este trabajo, el enfoque propuesto por Khatib [11], en el cual se supone que el robot se encuentra inmerso en dos campos potenciales artificiales: uno ejerciendo una fuerza de atracción inducida por el objetivo ó meta, el otro ejerciendo una fuerza de repulsión inducida por el obstáculo. Aplicando el gradiente negativo a estos campos potenciales se obtienen las fuerzas; al realizar la sumatoria se adquiere la fuerza resultante y descomponiéndola se obtienen las fuerzas que deben ser aplicadas a los actuadores del robot. Debido a que el robot es controlado por medio de las velocidades puede suponerse quela fuerzas artificiales son proporcionales a las velocidades de los actuadores [5], [21],[17], su principal ventaja: en que no se tienen que realizar conversiones intermedias de las fuerzas. La ley de control utilizada en el presente trabajo es la propuesta por [5], donde las variables de control son las velocidades de cada componente del plano de referencia, las cuales se hacen proporcionales a las componentes respectivas de las fuerzas unitarias inducidas por los campos potenciales artificiales. 1.2. Problemática Es común que la tarea de evasión de obstáculos sea atacada mediante sensores elec- trónicos de ultrasonido, optorreflectivos, de contacto, luz laser, etc. Obteniendo resultados aceptables pero estos sensores no ofrecen información suficiente del entorno, para realizar tareas más complejas. La mayoŕıa de los sistemas de navegación de robots móviles que utilizan como retroalimentación imágenes digitales, tienen un costo computacional alto y por lo tanto pueden presentan dificultades para su operación en tiempo real, más si son implementados en arquitecturas multiproceso que dividen el tiempo de uso del procesador entre varias aplicaciones, tal es el caso de una computadora personal (de las siglas en inglés PC). Algo semejante puede ocurrir en arquitecturas dedicadas, pero que ejecutan software secuencialmente, como los procesadores digitales de señales (de las siglas en inglés DSP), ó microcontroladores. 1.3. HIPÓTESIS 5 En el presente trbajo se presenta una solción integral a estas importantes limitantes. 1.3. Hipótesis Sirviéndose de una cámara digital (que entrega una imagen de 1024x1204 pixeles a 10 bits de profundidad), explotando las técnicas de descripción de hardware, secuencial y concurrente, para diseñar un procesador de hardware dedicado y personalizado; montando estos elementos en una plataforma mecánica adecuada, es posible lograr en tiempo real la evasión de obstáculos en ambientesninteriores. 1.4. Objetivo general Desarrollar un procesador que permita que un robot móvil tipo diferencial que pueda evadir obstáculos en un ambiente dinámico utilizando visión por computadora. 1.5. Objetivos particulares •Diseñar y construir un prototipo de robot móvil diferencial. •Desarrollar los componentes de hardware necesarios para el correcto funcionamiento del sensor de imágenes digitales y los actuadores del robot. •Implementar, en VHDL, un procesador que controle un robot y lo conduzca por un camino libre de obstáculos. •Integración del sistema, acoplando el procesador, interfaces, sensor, plataforma mecáni- ca y actuadores. • Pruebas del sistema en tiempo real. 1.6. Alcance Este trabajo ataca la evasión de obstáculos móviles y estáticos en tiempo real de un robot móvil en interiores utilizando una cámara digital como sensor. Esto permitirá navegar al 6 CAPÍTULO 1. INTRODUCCIÓN robot dentro de un espacio interiorsin tener una trayectoria libre de obstaculos. 1.7. Aportaciones 1. El robot móvil puede navegar en un interior dinámico y heterogéneo sin colisionar con los elementos del entorno. 2. Se utilizó como único sensor una cámara digital. 3. Se diseñó el procesador en VHDL. 4. Se logró procesar en tiempo real. 5. El robot construido y el procesador diseñado quedan como solida plataforma para futuros trabajos y nuevas investigaciones. 1.8. Publicaciones Pérez-Olvera C.A., Moreno-Armendariz M. A., Rubio-Espino Elsa,Zaragoza- Dı́az de León J.O,Implementación en FPGA de un controlador difuso en tiempo-real para el sistema Plano-Esfera, 17th International Conference on Computing (CIC 2008), Diciembre 3-5 2008, Mexico D.F. Pérez-Olvera C.A., Moreno-Armendariz M. A., Rubio-Espino Elsa,Zaragoza- Dı́az de León J.O,Módulo de visión por computadora en tiempo-real para el control de un sistema Plano-Esfera, CITII 2008 (Tec. de Apizaco 2008), Septiembre 15-17 Octubre 2008, Mexico D.F., Research in Computing Science, ISSN 1870-4069, Vol. 38 pp 283-293. Zaragoza-Dı́az de León J.O,Moreno-Armendariz M. A., Pérez-Olvera C.A.,Control visual de un prototipo de robot movil para la evasión de obstáculos, 10◦ Congreso Mexicano de robotica (ANAHUAC-AMROB 2008), Septiembre 25-26 2008, Mexico D.F.,pp. 135-145. 1.9. ESTRUCTURA DEL DOCUMENTO 7 1.9. Estructura del documento El caṕıtulo 2 contiene un resumen del estado del arte. En el caṕıtulo 3 se abunda sobre el modelo cinemático del prototipo de robot construido y toda la información relativa a su arquitectura. En el caṕıtulo 4 se define la metodoloǵıa y la arquitectura del sistema propuesto, se extiende la información sobre el enfoque de campos potenciales. Se describe la implementación de cada componente del sistema y las consideraciones para su puesta en marcha. El caṕıtulo 5 expone los resultados obtenidos de la prueba en tiempo real del prototipo. El caṕıtulo 6 se expresan las conclusiones finales del presente trabajo. En el caṕıtulo 6 se muestran los resultados obtenidos y el trabajo futuro. Caṕıtulo 2 Estado del Arte En este trabajo se realiza la evasión de obstáculos de un robot móvil de direccionamiento diferencial con visión por computadora utilizando el enfoque de campos potenciales artificiales. Sobre los tópicos mencionados existen abundantes trabajos de investigación trataremos de exponer el mayor numero de aplicaciones que estén en relación con lo presentado en este trabajo. En la literatura las soluciones convencionales a los problemas que existen para realizar la evasión de obstáculos se apoyan en la utilización de sensores electrónicos del tipo ultrasónicos, optorreflectivos o de contacto. En [1],[4],[7], y [17] se aborda el problema con arreglos de sensores ultrasónicos y optorreflectivos. Entre las ventajas que podemos encontrar en estos sensores son: el bajo costo, la velocidad de respuesta, aśı como la relativa facilidad en el procesamiento de las señales que entregan. No obstante podemos encontrar desventajas y debilidades, que para ciertas aplicaciones pueden complicar o impedir su resolución. Como desventajas de estos sensores se pueden listar: la poca información que brindan de la escena, el porcentaje de error debido al ruido o a rebotes de la señal. Soluciones más avanzadas para la navegación de robots móviles se pueden ver en [10] y [18], donde se estiman las acciones de un robot móvil basándose en la navegación por construcción de mapas de entorno utilizando como único sensor una cámara digital, estos enfoques obtienen buenos resultados pero el costo computacional y económico es alto. La 8 9 solución que se propone en [9] es la de un control basado en imágenes llamado control visual basado en flujo de movimiento. Si bien [1] y [4] resuelven el problema de la evasión de obstáculos, lo hacen por medio de sensores que ofrecen poco información del entorno. En [9] se resolvió el seguimiento de trayectorias pero no se toma en cuenta la evasión de obstáculos en un ambiente dinámico. La desventaja de [10] expresada por el autor es que debido al tiempo de procesamiento, el cual es relativamente grande, la estimación del objetivo no se realiza en tiempo real. Esto es debido a que como procesador utilizaron una computadora portátil cuyo sistema operativo divide el tiempo del procesador para atender varios procesos. Otra solución con visión por computadora es la propuesta por [16] donde se utilizan dos cámaras para lograr un visión estereoscópica, por cada cámara obtienen un imagen; comparan el histograma de cada imagen, si es significativamente diferente entonces asumen que están frente de un obstáculo, sin embargo pueden llegar a obtener lecturas falsas de objetos que fantasmas; para solucionarlo proponen detectar posibles bordes en la imagen y promediar el valor de los pixeles con el fin de encontrar cambios de contraste y descartar falsos obstáculos. Estas soluciones más sofisticadas son alcanzadas gracias, en gran parte, al uso de un sensor el cual entrega mayor información de la escena de actuación del robot móvil; se trata de una cámara. Por otro lado el enfoque de campos potenciales artificiales ha sido utilizado varias investigaciones, dicho en enfoque fue propuesto por O. Kathib [11]. Este enfoque ha sufrido gran numero de modificaciones. En [6] se utilizan los campos potenciales artificiales creando un enrejado sobre el plano de trabajo cada rejilla tiene un valor preponderante; en este trabajo se logró localizar lo mı́nimos locales, un problema inherente los campos potenciales artificiales clásicos. En [5] se propone una ley de control basada en campos potenciales artificiales para la evasión de obstáculos de un 1-trailer general multiactuado y se describe el análisis para encontrar mı́nimos locales para algunas configuración es robot-obstáculos. El enfoque utilizado en [15] es una variante del método de campos potenciales y también es propuesto por Kathib [12],[13]; la diferencia con el enfoque clásico reside en que supone a la trayectoria del robot como un material elástico, por lo tanto además de las fuerzas virtuales 10 CAPÍTULO 2. ESTADO DEL ARTE se toma en cuenta la fuerza elástica, esto tiene efecto en la estabilidad de la navegación. El enfoque propuesto en [14] es el de un potencial artificial generalizado consiguiendo la generación de trayectorias globales y locales. En [8] se resuelve otra problemática del potencial clásico, la de no arribar al objetivo ó meta por la presencia de obstáculos en sus cercańıas, donde se considera la distancia en entre el robot y el objetivo asegurando que la posición del objetivo es un mı́nimo absoluto de la función de potencial atractivo. Caṕıtulo 3 Plataforma Mecánica 3.1. Robots de direccionamiento diferencial La plataforma mecánica es un prototipo de robot móvil con direccionamiento diferencial. El cual fue diseñado, construido en el Laboratorio de Reconocimiento de Patrones (LRP) del Centro de Investigación en Computación. Cuenta con dos llantas laterales fijas y uns rueda tipo bola de apoyo. La dirección del robot depende de la diferencia de las velocidades de cada rueda lateral. El direccionamiento diferencial es una de las técnicas de direccionamiento más sencillas pero efectivas. Este tipo de arquitectura presenta una maniobrabilidad [3] de (δm =2,δs =0), donde δm es el grado de movilidad que tiene que ver con la restricciones en el plano de velocidades; δs es el grado de direccionabilidad que tiene que ver con la capacidad de direccionar instantaneamente al robot. Al no contar con ruedas orientables el robot tiene un grado de direccionabilidad cero. Se utilizó una tarjeta de desarrollo STARTIX II de Altera [2] que contiene un arreglo de compuertas programables en campo (del ingles FPGA), en el cual se implementará el procesador diseñado, Esta tarjeta ira montadaen el robot y será su unidad de procesamiento. La tarjeta tiene un tamaño de 21 × 17 cm. Considerado lo anterior se propuso el diseño de la Figura 3.1(a) y posteriormente se contruyo el prototipo de robot, ver la figura 3.1(b). La fuerza eléctrica del robot son dos bateŕıas: una de 6 Volts para alimentar los motores 11 12 CAPÍTULO 3. PLATAFORMA MECÁNICA (a) (b) Figura 3.1: CORIBOT 07: (a) Diseño asistido por computadora del prototipo. (b)Robot construido y una de 12 volts para alimentar al FPGA. El robot, con todos sus componentes montados en él, tiene un peso aproximado de 4 kg. Las ruedas que se utilizaron tienen un radio (rr) de 5 cm. Con la información anterior se tiene: T = F × rr (3.1) F = m × g (3.2) Donde: rr = 5 cm y m = 4 kg. T : Torque de motor. F : Fuerza de arrastre. rr: Radio de la rueda. m: Masa que se pueda arrastrar. g: Aceleración debida a la fuerza de gravedad. Sustituyendo (3.2) en (3.1) para formar la ecuacion (3.3) 3.1. ROBOTS DE DIRECCIONAMIENTO DIFERENCIAL 13 T = m × rr × g (3.3) Situtuyendo los valores de la masa del robot, el radio de sus ruedas y la aceleracion producida por la gravedad tenemos un torque de: T = 4 kg.×9,8 m s2 × 0,05 m T = 1,96 kg m 2 s Bajo esta condición se utilizaron dos motores eléctricos de corriente continua, los cuales ofrecen un torque de 24,7kg × cm por cada uno. Obteniendo aśı un capacidad de arrastre de masa nominal de 9.8 kg. La figura 3.2 muestra las dimensiones del robot. Figura 3.2: Dimensiones del robot 14 CAPÍTULO 3. PLATAFORMA MECÁNICA 3.2. Modelo cinemático del direccionamiento diferencial El direccionamiento diferencial ofrece un cierto grado de movilidad al robot, debido a que el centro instantáneo de rotación (CIR) puede encontrarse, en cualquier punto, a lo largo del eje de las llantas. En consecuencia el robot puede mantener un movimiento rectiĺıneo, ver figura 3.3(a), girar en un arco variable, ver figura 3.3(b) y en el caso más extremo girar sobre su centro en cuyo caso el CIR estaŕıa situado en el centro del eje de sus llantas, ver figura 3.3(c). La posición del CIR depende de la diferencia de velocidades de las dos llantas laterales del robot. Dirección de movimiento del robot Eje de llantas CIR en el Infinito V d V i (a) Dirección de movimiento del robot Eje de llantas CIR V d V i R (b) Dirección de movimiento del robot Eje de llantas CIR en centro de eje V d V i (c) Figura 3.3: CIR en direccionamiento diferencial: (a) El robot presenta un movimiento rectilineo vd = vi. El CIR se encuentra sobre el eje de las llantas pero en el infinito. (b) El robot se mueve en un arco R, vd 6= vi. (c)El robot gira sobre su propio eje, vd = −vi, el CIR se encuentra en dentro del eje de las llantas. Para definir el modelo cinemático que rige al movimiento del robot es necesario 3.2. MODELO CINEMÁTICO DEL DIRECCIONAMIENTO DIFERENCIAL 15 considerar las siguientes condiciones: • No hay deslizamiento en la dirección perpendicular a la rodadura, ver figura 3.4 (restricción no holónoma). •El robot se compone de partes ŕıgidas. •No hay deslizamiento transnacional entre la rueda y el suelo (rodadura pura). •Como máximo hay un eje de dirección por rueda. •Los ejes de la dirección son perpendiculares al suelo. Z X Y Dirección perpendicular a la rodadura Punto de contacto P w v Velocidad angular Velocidad lineal (a) (b) Figura 3.4: Restricción no-holonoma: (a) Velocidad lineal y angular. (b) Movimiento restringido La figura 3.4(b) ilustra una de las restricciones en el movimiento del robot, podemos observar que no puede existir movimiento en la dirección perpendicular a la rodadura de las llantas. La velocidad lineal en el punto P, figura 3.4(a), está definida por la ecuación (3.4): v = (w × rr) ax (3.4) donde r es el radio de la rueda y ax es el vector unitario con dirección al movimiento. De la Figura 3.5 se pueden obtener las velocidades lineal del eje x ec.(3.5) y del eje y ecuación (3.6): 16 CAPÍTULO 3. PLATAFORMA MECÁNICA x′ = v sinφ (3.5) y′ = v cos φ (3.6) Sabiendo que: φ = w (3.7) De las ecuaciones (3.5), (3.6) y (3.7) obtenemos el modelo cinemático de la ecuación (3.8): x′ y′ φ′ = − sinφ 0 cos φ 0 0 1 × v w (3.8) En este caso las variables de control son las velocidades de las ruedas laterales. Sean y las velocidades angulares de la rueda izquierda y derecha, respectivamente, ver figura 3.5. Si el radio de las ruadas es rr entonces se tiene [3]: vd = wdrr (3.9) vi = wirr (3.10) v = vd + vi 2 = (wd + wi) rr 2 (3.11) w = vd+vi b = (wd + wi) rr b (3.12) Despejando y de ec. (3.7) y (3.8) tenemos: 3.2. MODELO CINEMÁTICO DEL DIRECCIONAMIENTO DIFERENCIAL 17 Figura 3.5: Representación del modelo cinemático con direccionamiento diferencial wi = v − (b/2)w rr (3.13) wd = v − (b/2) rr (3.14) donde: wi: Velocidad angular izquierda. wd: Velocidad angular derecha. b: Distancia entre ruedas laterales. rr: Radio de las ruedas laterales. vi: Velocidad lineal rueda izquierda. vd: Velocidad lineal rueda derecha. v: Velocidad lineal promedio. Sustituyendo (3.11) y (3.12) en (3.8) tenemos: ẋ · y · φ = − rr sin φ 2 − rr sin φ 2 rr cos φ 2 rr cos φ 2 − rr b rr b × wi wd (3.15) Escribiendo en forma matricial las dos lineas de la ec. (??) se obtiene que: 18 CAPÍTULO 3. PLATAFORMA MECÁNICA wi wd = 1 rr − b 2rr 1 rr b 2rr v w (3.16) Aśı tenemos las velocidades angulares que se deben de aplicar a cada motor respectiva- mente para proporcionarle al robot las velocidades lineal v y angular w. Caṕıtulo 4 Sistema de control visual El sistema de control visual propuesto en la Figura 4.1, consta de tres módulos principales de procesamiento que fueron programados en VHDL e implementados en un FPGA, estos son: el módulo de visión por computadora, el módulo de evasión de obstáculos y el módulo de generador de PWM .Estos módulos fuerón conectados a tres dispositivos médiante su interfaz electrónica correspondiente. El primero de estos dispositivos es una cámara digital, desempeñándose como sensor en el lazo de retroalimentación externo y los motores de corriente directa como actuadores del sistema. Trayectoria, Entorno del robot Imagen formato crudo Procesador embebido en FPGA Sistema de locomoción I BAYER (x,y) q g ,q o ,q V d , V i Sistema de visión Control de evasión de obstaculos Servomotores Cámara digital Generador de PWM w d w i Figura 4.1: Diagrama a bloques del sistema. 19 20 CAPÍTULO 4. SISTEMA DE CONTROL VISUAL La figura 4.2 muestra el flujo de actividades realizadas por el sistema. Se comienza cuando la cámara digital entrega una imagen IBayer(x, y) en formato patrón RGB-Bayer de1024*1024 pixeles de 10 bits de profundidad, esta imagen pasa al módulo de visión donde se sub-muestrea el plano verde se en escala de grises, resultando una imagen IM (x, y) de 512*512 de 10 bits de profundidad; explotando esta imagen se lleva a cabo la detecci ón de obstáculo por medio de la extraccion de bordes con el enfoque propuesto se obtiene el vector de posición del obstaculo R[ox, oy]; . Detectado el obtáculo sa aplica el método de campos potenciales artificiales; calculando la fuerza total resultante por medio de la sumatoria de las fuerzas repulsoras y atractora. Para posteriormente, mediante la ley de control considerar las componentes (ejes X, Y ) de la fuerza total resultante proporcionales a las componentes del vector velocidad; para obtener aśı las velocidades angular y lineal del robot; con eso conseguir las velocidades angulares de cada llanta; y con ellas generar las señales PWM, excitadorasde cada servomotor, que lleven al robot por un camino libre de obstáculos. Para el evento en el que no existiera un obstáculo el robot mantendra un movimiento rectiĺıneo. Esto se logró gracias a la posible combinación de las técnicas de descripción de hardware, de ejecución secuencial y concurrente que brinda el lenguaje VHDL, se diseñó un sistema de hardware personalizado para cada tarea del sistema; explotado la capacidad de realizar procesos en forma paralela. Cabe mencionar que el sistema, descrito en VHDL, está compuesto en su totalidad por hardware ya que no tiene ni necesita la ejecución de software. 4.1. Modulo de sistema de visión por computadora En esta sección se abunda en la metodologia usada para detectar un posibles obtaculos en las cercanias del robot. El sistema de visión por computadora consta de 5 componentes de hardware: 1. Adquisición y acodicionamiento de la imagen. 2. Deteccion de obstaculos. 4.1. MODULO DE SISTEMA DE VISIÓN POR COMPUTADORA 21 Imagen cruda RGB-bayer Adquisición de imagen conversion Bayer-E. grises I BAYER ](x,y) , 10bits I M (x,y) , 10bits Detección de obtáculo Extracción de rasgos Hay obstáculo? Calculo de fuerzas de atraccion y repulsion R[o x ,o y ] R[o x ,o y ] Se direcciona el robot al ángulo de evasión Se mantiene el robot en movimiento rectilíneo Se ejecutan paralelamen t e Paralelismo No Si f x , f y Figura 4.2: Diagrama de flujo del sistema 3. Extracción de rasgos de objetos. 4.1.1. Adquisición y acondicionamiento de la imagen La adquisición de la imagen se realiza por medio de un sensor digital de imágenes de tecnoloǵıa CMOS pixel-activo [19], el cual entrega una imagen en formato RGB-Bayer de 1024*1024; lo que quiere decir que en las filas impares de la imagen los pixeles impares tienen información del color verde y en los pares información del color rojo; para el caso de las filas pares los pixeles pares tienen información del color verde y los pixeles impares información del color azul. Tal como se muestra en la figura 4.3. Se destaca que la imagen contiene el 25% de información del plano rojo, 25 % del plano azul y 50% del plano verde, para obtener la información restante de cada plano es nesesario interpolar. Para la presente aplicación se utilizó la información de los pixeles del plano verde porque 22 CAPÍTULO 4. SISTEMA DE CONTROL VISUAL Figura 4.3: Patron RGB-Bayer Figura 4.4: Image cruda tomada con la camara digital (Patron RGB-Bayer) estos pixeles ofrecen la información de luminosidad de la escena que captan; se ha dicho que en este trabajo se ataca la navegación en interiores, en donde podemos enfrentarnos con condiciones de iluminación adversas que pueden causar un mal desempeño del sistema, para minimizar esto se utiliza el plano verde; incluso es el espectro de luz visible a la que ojo humano responde mejor. Por tanto se sub-muestrea la imagen resultando en una imagen IM (x, y), en escala de grises del plano verde de 512*512 pixeles con una profundidad de 10 bits. (En la Figura 4.4 se muestra la imagen en formato de patrón Bayer, tal y como la toma la cámara.) 4.1. MODULO DE SISTEMA DE VISIÓN POR COMPUTADORA 23 4.1.2. Detección de obstáculos. La detección de obstáculos en un ambiente dinámico es una tarea ineludible para la navegación de un robot, como ya se menciono es común que este problema se toca con sensores electrónicos que no son una cámara digital. En [16] utilizan visión estéreo para el mismo objetivo, comparando el cambio de puntos predefinidos de ambas imágenes resuelven el problema; solo que presentan el inconveniente de que con luz reflejada el sistema da falsos avisos de obstáculos, para solucionar esto utilizó una técnica de detección de bordes. En este trabajo tomamos como referencia ese enfoque, para proponer una analisis que logre detección de obstáculos con la ayuda de una cámara de video. Este análisis propuesto es relativamente sensilo, pero efectivo, se trata de la sumatoria del los niveles de la intensidad de borde; definida como la diferencia nivel de grises del punto y nivel del siguiente punto. Este enfoque queda descrito por la ec. (4.1). B (i) = n ∑ i=1 B(i − 1) + (IM (i, n) − IM (i + 1, n)) , (4.1) con B(0) = 0, siendo IM la imagen de entrada, B(i) la sumatoria de intensidad de borde, de la fila i − esima y columna n. Pata detectar los obstáculos se pretende hallar la razón de cambio (pendiente) máxima de la función B(i). El punto donde ocurra esto, se toma como el vector de posición del obstáculo. La función propuesta en la ec. 4.1 detecta los bordes cuando se pasa de niveles de gris claros a obscuros, es decir, cuando recorramos la imagen de niveles obscuros a claros la razón de cambio dala función B(i) será mı́nima, aun si se encuentra un obstáculo. Por esta razón se decide calcular B(i), con desplazamiento en ambos sentidos: hacia arriba, hacia abajo, hacia la derecha y hacia a la izquierda, tal como se muestra en la Figura 4.5. Los barridos horizontales brindan la detección de bordes verticales y los barridos verticales la detección de bordes horizontales. Esto último es de ayuda cuando se presenta un obstáculo que cubre, en su totalidad, el ancho del plano imagen, por ejemplo una pared. 24 CAPÍTULO 4. SISTEMA DE CONTROL VISUAL Barridas horizontales Limite para reconocer y evadir obstaculo Barridas verticales Izq-der Der-izq Abajo-arriba Arriba-abajo Figura 4.5: Deteción de obstáculos En la Figura 4.6 se muestra una ejemplo de detección de obstáculo con el enfoque propuesto. 4.2. Modulo de evasión de obtáculos A continuacion en esta sección describe el enfoque de los campos potenciales y las cosideraciones para implementar su control. 4.2.1. Introducción. Mediante la evasión de obstáculos se trata de anticipar la posibilidad de una colisión basándose en la información de la posición del robot y de los objetos que se encuentran en su entorno [6]. Para ello, se puede diferenciar entre la evasión de obstáculos en una determinada dirección de movimiento, logrando esto por la información brindada en tiempo real mediante un sensor; y la detección de una colisión por los espacios ocupados por objetos estáticos o dinámicos, cuyo posición es conocida a priori por un modelo del entorno. En el segundo caso es también factible ubicarlo en tiempo real, dependiendo de la complejidad 4.2. MODULO DE EVASIÓN DE OBTÁCULOS 25 0 200 400 600 800 0 200 400 600 800 0 200 400 600 800 0 200 400 600 800 0 100 200 300 400 500 0 200 400 600 0 100 200 300 400 500 0 200 400 600 800 B(i) B(i) B(i) B(i) Detección de bordes, La pendiente la pendiente es máxima Figura 4.6: Ejemplo de detección del obstáculo del modelo y de su forma de obtención. En este trabajo nos ocupa la detección de obstáculos; y evitar las colisiones mediante la reacción directa de la información suministrada por el único sensor utilizado, la cámara digital. En todo momento se supone que la cámara va montada en el centro del robot tomando imágenes de frente a la dirección de desplazamiento, sin ningún otro sensor. En [20] se utilizan también una cámara digital, pero no montada en el robot sino puesta en un punto alto para que capte todo la escena en la cual se desenvuelve el robot. Esta técnica es efectiva porque conoce en todo momento el entorno completo; una aplicación seria en un torneo de futbol para robots. No obstante, en otras aplicaciones puede reducir el espacio de 26 CAPÍTULO 4. SISTEMA DE CONTROL VISUAL F g F o F obstáculo Area de influencia F g objetivo F g Figura 4.7: Fuerzas inducidas por al robot por lo campos potenciales artificiales. movilidad del robot. El método utilizado es del tipo denominado reactivo y esta basado en la teoŕıa de campos potenciales desarolladopor Khatib [11]. Este enfoque considera que el movimiento del robot es afectado por dos campos potenciales artificiales; dónde los obstáculos producen un campo potencial artificial que genera fuerzas de repulsión hacia el robot y que el punto de destino u objetivo producen otro campo potencial artificial que produce una fuerza de atracción. Estos campos son funciones que van de ϕ : R −→ R2 i.e. campos escalares. Para hallar las fuerzas producidas por estos campos es necesario calcular su gradiente. El robot se mueve en dirección y con una velocidad proporcional a la fuerza resultante. La Figura 4.7 exhibe lo descrito. 4.2.2. Campos potenciales artificiales. Para presentar este enfoque, se considera el problema de evadir un obstáculo y existiendo una meta u objetivo. Se considera que el robot se mueve dentro de un sistema de referencia 4.2. MODULO DE EVASIÓN DE OBTÁCULOS 27 {E}; tomando un posición de referencia del robot con coordenadas q = (x, y), en otro punto con coordenadas qo = (xo, yo), se ubica el obstáculo y la meta en qg = (xg, yg).El robot es sujeto al siguiente campo potencial artificial ec. (4.2). U(q) = Ug(q) + Uo(q) (4.2) Del cual proviene la fuerza resultante que actua sobre el robot ec. (4.3) F = Fg(q) + Fo(q) (4.3) DondeFg(q) es la fuerza de atracción, creada por Ug(q), debido a la cual el robot puede alcanzar la posición objetivo qg y Fo(q) es la fuerza de repulsión artificial inducida por la supreficie del obstáculo (del francés FIRAS) creada por el campo Uo(q). El campo potencial atractivo Ug(q) se defino como ec. (4.4): Ug(q) = 1 2 kp ‖q − qg‖2 , (4.4) donde kp, en un control convencional PD: es la ganancia de posició n, q es la coordenada de referencia del robot, qg es la coordenada de la meta. Además Ug(q) es una función positiva diferenciable, la cual posee un mı́nimo absuluto igual a cero en q = qg. En su trabajo, Khatib, propone dos métodos para obtener potencial repulsor; el primero llamado: método anaĺıtico, donde utiliza la función anaĺıtica que describe la superficie del obstáculo, el segundo método llamado: de la distancia mas corta , en el cual el campo potencial esta en función de la distancia entre el robot y el obstáculo Uo(q), ver ec. (4.5), este ultimo es enfoque se utilizó en el presente trabajo. Esta función también debe ser positiva, continua y diferenciable ya que su valor tiende a infinito cuando el robot esta próximo al obstáculo y un mı́nimo absoluto igual a cero en q = q2g . En el objetivo de evitar fuerzas que perturben el comportamiento del robot se delimita una área, alrededor del obstáculo, solo en la cual Uo(q) tiene influencia. 28 CAPÍTULO 4. SISTEMA DE CONTROL VISUAL Uo(q) = 1 2 η ( 1 ρ − 1 ρ2o )2 , si ρ ≤ ρ2o 0 , si ρ > ρ2o, (4.5) donde η es la ganancia de posición, ρ = ‖q − qg‖2 es el cudrado de la distancia entre la posició n q del robot y la posición qo del obstáculo, ρo representa la distancia ĺımite a la cual el campo potencial artificial repulsivo tiene influencia. Para obtener las fuerzas inducidas por los campos Uo(q) y Ug(q) basta con aplicar el gradiente negativo ∇ = ( ∂ ∂x , ∂ ∂y ) : Fg = −kp(q − qg) (4.6) Fo = 1 2 η ( 1 ρ − 1 ρ2o ) 1 ρ2 ∂ρ ∂q , si ρ ≤ ρ2pao 0 , si ρ > ρ2o, (4.7) En el presente trabajo no se pretende que el robot siga una ruta predefinida, sino uque se alcance la evasión de obstáculos en un entorno dinámico y totalmente desconocido usando como único sensor del entorno una cámara digital. Por lo anterior en el instante en que el sensor del robot capte que se encuentra dentro del área de influencia ρo, de un obstáculo, la posición del robot q es igual all origen (0, 0) .La meta u objetivo del robot es evadir el obstáculo de la foma que sea mas económica en tiempo y enerǵıa. El enfoque de campos potenciales artificiales consiste en tres pasos básicos y generales: a) Calcular las fuerzas que guian al robot hacia la meta u objetivo. b) Calcular las fuerzas que guian al robot lejos de los obtáculos. c) Aplicar la fuerza resultante al robot. Sobre las ventajas de este método podemos nombrar: que los cálculos se hacen en el espacio operacional, sin necesidad realizar traslaciones a otros planos de referencia; los cálculos se hacen en el dominio de control, funciona para obstáculos fijos y móviles. Entre sus debilidades se encuentra la posibilidad de obtener mı́nimos locales. 4.2. MODULO DE EVASIÓN DE OBTÁCULOS 29 4.2.3. Controlabilidad del modelo de direccionamiento diferencial. En congruencia con lo mostrado en el caṕıtulo tres del presente trabajo ,se puede generalizar que los modelos cinemáticos de los robot móviles se pueden escribirse de la forma [3]: ż = B(z)u (4.8) siendo z un vector de variables de estado donde su nmero de componetes depende de la configuracion del robot y u el vector de velocidades de control. Dicha configuración esta caracterizado por la dupla (δm, δd), donde δd es el grado de direccionabilidad el cual esta determinado por el numero de ruedas orientables. Tal como se mostro en el capitulo dos, el prototipo de robot contruido en este trabajo es: de direccionamiento diferencial sin alguna rueda orientable y cuenta con u (δm, δd) = 2, 0 , es decir, tiene limitaciones en su movimiento, de acuerdo a lo comentado en el caṕıtulo tres del presente trabajo. De esta forma el vector de estado z concide con el vector de posición: z = ρ = [x, y, φ]T (4.9) Asi tambien si no existen ruedas direcionables en la configuracin del robot, la dimension del vector de valocidades u coincide con el grado de movilidad δm. Entonces si consideramos el modelo del prototipo de robot con direccionamiento diferencial descrito por las ecs. (3.5) (3.6) y (3.7). Si se escribe de la forma · z = B(z)u tal como en la (3.8), donde z = [x, y, φ]T , u = [v, w]T y B(z) = − sinφ 0 cos φ 0 0 1 (4.10) linealizando en z = 0 y u = 0 se obtiene: 30 CAPÍTULO 4. SISTEMA DE CONTROL VISUAL ż = B(0) V w = 0 0 1 0 0 1 V w Por lo lo que el sistema no es controlable ya que el rango de la matriz de controlabilidad es solo dos: C = B(0) = 0 0 1 0 0 1 Para controlar este tipo de sistemas es necesario linealizarlo. 4.2.4. Control del robot con campos potenciales artificiales Para alcanzar la linealizaćıon parcial del sistema se considera que el punto de referencia de posición no esta en el centro del eje de la ruedas sino en el centro pero en la parte frontal del robot[5]. Con esto se modifica el vector de estado z = [x, y]T el cual determina la posición del robot con referencia en el centro del eje de las ruedas, afirmando que q = (x1, y1) es el nuevo vector de posición del robot con referencia en el centro frontal de robot (Fig. 4.8) cuyas coordenadas están dadas por: x1 = x + l sinφ (4.11) y1 = y + l cos φ siendo l la distancia del centro del eje de las ruedas (x, y) al punto q del robot en direccion perpendicular al mismo eje. Derivando la ec. (4.11) con respecto al tiempo se tiene: 4.2. MODULO DE EVASIÓN DE OBTÁCULOS 31 ẋ1 = ẋ + lφ̇ cos φ (4.12) ẏ1 = ẏ − lφ̇ sinφ sustituyendo (3.5) (3.6) y (3.7) en (4.12) tenemos el nuevo modelo del sistema: ẋ1 = −v sinφ + lw cos φ (4.13) ẏ1 = v cos φ − lw sinφ si la ec. (4.13) se escribe en la forma de la ec. 4.8 ẋ1 ẏ1 = B(φ) v w (4.14) con B(φ) = − sinφ l cos φ cos φ −l sinφ . Ahora se debe encontrar las entradas del sistema donde deseamos que se se estabilice. Si se propone que ẋ1 , ẏ1 adquieran los valores de consigna ẋ1c , ẏ1c que permitan que se llege la meta evitando los obstaculos. Entonces es posible aplicar la siguiente ley de control: v w = B−1(φ) ẋ1m ẏ1m (4.15) donde B−1 (φ) = − sinφ − cos2 φ+sin2 φ − cos φ − cos2 φ+sin2 φ − cos φ −l cos2 φ+l sin2 φ − sin φ −l cos2 φ+l sin2 φ 32 CAPÍTULO 4. SISTEMA DE CONTROL VISUAL f y x X Y y 1 x 1 Figura 4.8: Cambio de punto de referencia usando la identidad triginometrica cos2 φ + sin2 φ = 1, la matriz B (φ) queda: B−1 (φ) = sinφ cos φ cos φ l sin φ l linealizando (4.15) en [v, w]T = 0 , φ = 0 se obtiene la matriz de controlabilidad con un rango de dos: B−1 (0) = 0 1 1 0 , el cual es maximo debido a que B−1 (φ) una matriz de 2 × 2, entonces el sistema es controlable. Introduciendo la fuerza resultante inducida por lo campos potenciales artificiales a la ley de control de la ec. (4.15) es posible considerar que las velocidades ẋ1c , ẏ1c son proporcionales a la fuerza resultante [5], en atencion que la fuerza resultante tiende a infinito en la situación de que le robot se encuentre lejos de la meta y tiende a cero en su cercania con ella, es imperioso aplicar una fuerza normalizada: 4.2. MODULO DE EVASIÓN DE OBTÁCULOS 33 q̇c = (ẋ1c, ẏ1c) T = vc fx 2 √ f2x+f 2 y fy 2 √ f2x+f 2 y (4.16) en donde fx la componente en el eje X de la fuerza resultante F y fy las componente en el eje Y fx fy = fxg + fxo fyg + fyo y vc es la velocidad constante. Puntualizado lo anterior y sustituyendo la ecuacion (4.16) en la ecuación (4.15) se conforma la siguiente ley de control por retralimentación. v w = vc 2 √ f2x + f 2 y sinφ cos φ cos φ l sin φ l fx fy (4.17) La ecuación anterior presenta una indeterminación cundo se llega a la meta, en el momento que llegan a cero las fuerzas, por lo que es conveniente modificar la magnitud de las fuerzas normalizadas de la siguiente manera: fx 2 √ f2x+f 2 y +ε fy 2 √ f2x+f 2 y +ε siendo ε una constante muy cercana a cero. Como se observa en la prueba de estabilidad del sistema en [5] esta constante no se contrapone a la convergencia asintótica con el punto de consigna. Desarrollando el potencial atractivo y repulsivo se obtienen las componentes del negativo de su gradiente: 34 CAPÍTULO 4. SISTEMA DE CONTROL VISUAL Ug = 1 2 kp [ (x1 − xg)2 (y1 − yg)2 ] fxg = kp (xg − x1) fyg = kp (yg − y1) . Respectivemente el potencial artificial repulsivo y las fuerzas inducidas quedan: Uo = 1 2 η [ 1 (x1 − oix)2 + ( y1 − oiy )2 − 1 ρ2 0 ]2 , fxo = 2η [ 1 (x1 − oix)2 + ( y1 − oiy )2 − 1 ρ2 0 ] x1 − oix [ (x1 − oix)2 + ( y1 − oiy )2 ]2 , fyo = 2η [ 1 (x1 − oix)2 + ( y1 − oiy )2 − 1 ρ2 0 ] y1 − oiy [ (x1 − oix)2 + ( y1 − oiy )2 ]2 , siendo oix,o i y las coordenadas en los eje X y Y de la posicion del i-esimo obstaculo. Para obtener la fuerza total, ejercida al robot, por cada componente en el eje X y Y basta con ejecutar la sumatoria que ejerce el i-esimo obstaculo en cada eje, como se indica enseguida: fx = fxg + ∑ i∈Io f ixo fy = fyg + ∑ i∈Io f iyo siendo I = { i | ( x1 − oix )2 + ( y1 − oiy )2 ¹ ρ20 } . Para presente trabajo los obstaculos se consideran de forma puntual [5]. Caṕıtulo 5 Resultados En esta sección se resumen lo los resultados obtenidos en cada modulo de sistema de control visual mostrado en capitulo anterior, aśı como el desempeño de todo el sistema en su conjunto. El sistema de control visual que como ya se menciono se programo en VHDL, fue embebido en un FPGA de la marca altera modelo STRATIX II EP2S60. Este dispositivo fue montado en el prototipo de robot a su vez se le conecto la cámara digital y mediante la interfaz electrónica adecuada los servomotores de corriente directa. Durante las pruebas el robot cuanta con todas las caracteŕısticas mocionadas en el capitulo dos de este trabajo además: la cámara digital fue montada en la parte superior en el centro y frente del robot, como se observa en la figura (figura cap2 foto real). Todos lo experimentos fueron realizados en interiores en piso uniforme. 5.1. Desempeño del sistema de visón por computadora. Los objeto que representaban un obstáculo en el camino del robot y que se pudieron reconocer van desde escritorios, mesas, paredes, puertas, cajas, computadoras, sillas, humanos, etc. Por otra parte la iluminación es el factor más determinante para cualquier aplicación de 35 36 CAPÍTULO 5. RESULTADOS visión por computadora. Con la experiencia de este trabajo se considera que optando por la iluminación adecuada es posible alcanzar un buen desempeño del sistema, menguando el error y el tiempo de repuesta. El los experimentos realizados, a este modulo, observamos que el sistema respodia mejor a fuentede luz difusa que a una fuente de luz puntual, esta ultima se caracteriza por emitir una iluminación dura muy direccional que produce sombras pronunciadas; propiedad que infiere en estragos en el sistema de visión. En contraparte una fuente de luz difusa dispersa una iluminación que produce sombras muy suaves, aśı se obtiene uniformidad en la iluminación. Para la evaluación en tiempo real se hizo navegar al robot en el interior del Laboratorio de Reconocimiento de Patrones del CIC. Este recinto cuenta con luz artificial difusa. Se evadieron obstáculos estáticos y en movimiento. Para el control de evasión de obstáculos se usaron los siguientes parámetros: kp = 3 η = 2 ρ0 = 0,40 m vc = 0,3 m/s A continuacion se muestran algunos obstaculos detectados con exito; En la Figura 5.1 se observa que se tiene como obstáculo una caja de color claro y se advierte en la grafica que se detecta el obstáculo cuando la pendiente se hace máxima. Para el caso de la Figura 5.2 se tiene como obstáculo un mueble de madera que ocupa a lo ancho la totalidad del plano imagen, se nota que en las graficas superiores (las cuales son lo barridos horizontales) no se presenta una pendiente pronunciada, no aśı en la grafica inferior derecho (barrido vertical de arriba hacia abajo) en la que se observa una pendiente máxima mas pronunciada. Se observa en la Figura 5.8la ausencia de obstáculo, aśı que en las graficas correspondi- 5.1. DESEMPEÑO DEL SISTEMA DE VISÓN POR COMPUTADORA. 37 0 200 400 600 800 0 200 400 600 800 0 200 400 600 800 0 200 400 600 800 0 100 200 300 400 500 0 100 200 300 400 500 0 100 200 300 400 500 0 100 200 300 400 500 B(i) B(i) B(i) B(i) Figura 5.1: Obstáculo: Caja entes a lso barridos a la imagen, se observa una pendiente constante. En la escena de la figura 5.9 se aprecia que no existe obstáculo alguno, no obstante se tiene reflejo de luz por una lámpara. En las graficas producto de aplicar la detección de borde se nota que no existen pendientes máxima de tamaño considerable, por lo qe el sistema descarta la presencia de un obstáculo. Las imágenes muestran la eficiencia del sistema para la detaccion de obstaculos, ante diferentes coyunturas y configuraciones robot-obstáculo. Estas pruebas fueron resueltas, por el robot, de manera exitosa. Es perceptible que los objetos que el sistema admite como obstáculo son variados en forma y color. El desempeño del sistema de visión y la ley de 38 CAPÍTULO 5. RESULTADOS 0 200 400 600 800 0 200 400 600 800 0 200 400 600 800 0 200 400 600 800 0 100 200 300 400 500 0 200 400 600 0 100 200 300 400 500 0 200 400 600 B(i) B(i) B(i) B(i) Figura 5.2: Obstáculo: Mueble de madera control de evasión de obstáculos fue satisfactorio; al igual que el enfoque utilizado para el control de los servomotores. 5.1. DESEMPEÑO DEL SISTEMA DE VISÓN POR COMPUTADORA. 39 0 200 400 600 800 0 100 200 300 400 500 0 200 400 600 800 0 100 200 300 400 500 0 100 200 300 400 500 0 100 200 300 400 500 0 100 200 300 400 500 0 200 400 600B(i) B(i) B(i) B(i) Figura 5.3: Obstáculo: Pared 40 CAPÍTULO 5. RESULTADOS 0 200 400 600 800 0 200 400 600 800 0 200 400 600 800 0 200 400 600 800 0 100 200 300 400 500 0 200 400 600 0 100 200 300 400 500 0 200 400 600 800 B(i) B(i) B(i) B(i) Figura 5.4: Obstáculo: Perchero 5.1. DESEMPEÑO DEL SISTEMA DE VISÓN POR COMPUTADORA. 41 0 200 400 600 800 0 200 400 600 0 200 400 600 800 0 100 200 300 400 0 100 200 300 400 500 0 100 200 300 400 500 0 100 200 300 400 500 0 100 200 300 400 500 B(i) B(i) B(i) B(i) Figura 5.5: Obstáculo: Puerta 42 CAPÍTULO 5. RESULTADOS 0 200 400 600 800 0 200 400 600 0 200 400 600 800 0 200 400 600 0 100 200 300 400 500 0 100 200 300 400 0 100 200 300 400 500 0 100 200 300 400 B(i) B(i) B(i) B(i) Figura 5.6: Obstáculo: Puerta 5.1. DESEMPEÑO DEL SISTEMA DE VISÓN POR COMPUTADORA. 43 0 200 400 600 800 0 50 100 150 200 250 0 200 400 600 800 0 100 200 300 400 0 100 200 300 400 500 0 100 200 300 400 0 100 200 300 400 500 0 100 200 300 400 Figura 5.7: Obstáculo: Silla 44 CAPÍTULO 5. RESULTADOS 0 200 400 600 800 0 200 400 600 0 200 400 600 800 0 200 400 600 0 100 200 300 400 500 0 200 400 600 800 0 100 200 300 400 500 0 200 400 600 800 B(i) B(i) B(i) B(i) Figura 5.8: Sin obstáculo en la cercańıa del robot 5.1. DESEMPEÑO DEL SISTEMA DE VISÓN POR COMPUTADORA. 45 0 200 400 600 800 0 200 400 600 0 200 400 600 800 0 100 200 300 400 500 0 100 200 300 400 500 0 100 200 300 400 0 100 200 300 400 500 0 100 200 300 400 B(i) B(i) B(i) B(i) Figura 5.9: Sin obstáculo en la cercańıa del robot, pero se tiene una reflexión de luz provocada por una lámpara. El sistema descarta que la luz reflejada se una obstáculo Caṕıtulo 6 Conclusiones y trabajo futuro El presente trabajo ataca el problema de evasión de obstáculos de un robot móvil tipo diferencial usando como único sensor una cámara digital. Se diseñó y construyó un prototipo de robot móvil de direccionamiento diferencial, el cual soporta a un FPGA una cámara digital, dos bateŕıas como fuente de alimentación, Quedando una solida plataforma para futuras investigaciones. Se propone un método de detección de obstáculos con visión por computadora con el cual es posible obtener la posición del punto más cercano del obstáculo al robot, basado en el plano de imagen. Se describe su circuito equivalente en VHDL, el cual, después de la validación en tiempo real, resulta efectivo y con una eficiencia aceptable. El sistema de visón resulta de arquitectura relativamente sencilla pero poderosa, siendo sus procesamientos computacionalmente económicos. Tanto el enfoque de campos potenciales artificiales, como la ley de control utilizados son validos para esta aplicación. El circuito descrito resulta eficiente en tiempo real, llevando al robot por un camino libre de obstáculos; salvaguardando su integridad y la de su entorno. No se implemento un control para los servomotores, toda vez que estos llevan lo llevan consigo, únicamente se generaron la señales PWM necesaria para que motor gire a una determinada velocidad, tampoco se coloco una retroalimentación de velocidad ya que se considera despreciable el error del sistema de control de los servomotores. Posiblemente sea 46 47 necesario colocar algún sistema de medición como retroalimentación si se requiere que robot se conduzca por una ruta predefinida. Finalmente es posible agregar que el desempeño del sistema, en su conjunto, resulto eficiente en sus pruebas en tiempo real, resaltando que evadió la gran mayoŕıa de los objetos. Una desventaja del sistema desarrollado es que no se puede reconocer objetos en 3-D, provocando que sistema capte como obstáculo objetos que no lo son como por ejemplo una hoja de papel en el piso haŕıa que lo robot desviara su trayectoria para poder evadirla. Como Trabajo futuro se propone: • Usar una técnica de visión estéreo para poder extender el enfoque de detección de obstáculos en 3-D y poder solucionar el problema que se comento en el párrafo anterior. • Dotar al robot de los sensores o herramientas necesarias para que pueda conocer su posición en un sistema de referencia global y conseguir que siga una ruta pre-planificada. • Extensión del trabajo a una técnica de contracción de mapas del entorno. Referencias [1] Cerón A. Evasión de obstáculos en tiempo real para robots móviles mediante redes neuronales. Ciencia e Ingenieŕıa Neogranadina, Universidad Militar Nueva Granada, No 15, pp. 86-93, 2005. [2] Altera, San Jose, CA 95134. Nios Development Board Stratix II Edition Reference Manual, 1.3 edition, Mayo 2007. [3] A. Ollero B. Robotica Manipuladores y robots móviles. Alfaomega, 2001. [4] Tejeda C. Detección y evasión de obstáculos por medio de ultrasonido. Master’s thesis, BUAP, México D.F, 2006. [5] T. Alejandra Vidal Calleja. Generalizacion del metodo de campos potenciales para un veh́ıculo articulado. Master’s thesis, CINVESTAV, 2002. [6] A. Elfes. A sonar-based mapping and navigation system. The Robotics Institute, Technical Report, pp. 25-30, 1985. [7] M. Briot G. Bauzil and P. Ribes. A navigation sub-system using ultrasonic sensors for the mobile robot hilare. 1st Int. Conf. on Robot Vision and Sensory Controls, Stratford-upon- Avon, UK., pp. 47-58, 1981. [8] S.S. Ge and Y. J. Cui. New potential functions for a mobile robot path planning. International Robotics Research Conference, Bethlehem, PA, AugustIEEE Trans. Robotics and Automat., Vol.16 (No.5), pp. 615-620, 2000. 48 REFERENCIAS 49 [9] F. Torres J. Pomares. Control visual basado en flujo de movimiento para el seguimiento de trayectorias con oclusiones. Revista IEEE América Latina. Vol. 2. Num. 2, 2004. [10] F.Escolano J.M.Sáez, A. Peñalver. Estimación de las acciones de un robot utilizando visión estéreo,. Workshop sobre agentes f́ısicos(WAF),Universidad de alicante, 2003. [11] O. Khatib. Real-time obstacle avoidance for manipulators and mobile robots. IEEE International Conference on Robotics and Automation, St. Louis, pp. 500-505 March 25- 28, 1985. [12] O. Khatib. Motion coordination and reactive control of autonomous multi-manipulator system. Journal of Robotic Systems, Vol. 15, No. 4, pp.300 319, 1996. [13] O. Khatib. Robot in human environments: basic autonomous capabilities,. The International journal of Robotics Research, Vol. 18,No. 7, pp. 684 696., 1999. [14] B. H. Krogh. A generalized potential field approach to obstacle avoidance control. International Robotics Research Conference, Bethlehem, PA, August, 1984. [15] Minh Ngoc Nong Kyung Hyun, Choi and Rehmani M. Asif Ali. A real time collision avoidance algorithm for mobile robot based on elastic force. Proceedings of world academy of science, engineering and technology volume 31, 2008. [16] A.Ohya M. Kumano and S.Yuta. Obstacle avoidance of autonomous mobilerobot using stereo vision sensor. Intl. Symp. Robot. Automat., pp.497-502, 2000. [17] Rodŕıguez F. Sarabia J.F. Garrote R. Guzmán J.L. López O. Moreno J.C., Berenguel M. Proyecto de aplicación de telerobótica a un minirobot móvil. II Jornadas EIWISA’01, CEA-IFAC, Madrid España, 2001. [18] N. J. Nilsson. A mobile automaton: an application of artificial intelligence techniques. Proceedings of the International Joint Conference on Artificial Intelligence, pp. 509- 520, 1969. 50 REFERENCIAS [19] Micron Technology. Datasheet MT9M011, 1/3 Inch Megapixel CMOS Active-Pixel Digital Image Sensor. [20] Maribel Anaya Vejar Tibaduiza D. A. Campos de potencial aplicados al planeamiento de caminos en robots móviles.Revista de ingenieŕıa. Ediciones tecnológica de Bolivia, 2007. [21] P. Spuères M. Devy V. Cadenat, R. Swain. A controller to perform a visually guided tracking task in cluttered enviroment. Proc. of the IEEE/RSJ Intern.Conference on Intelligent Robots and Systems, pp. 775-780,, 1999.
Compartir