DISEÑO DE UNA ESTRATEGIA DE CONTROL DE BAJO COSTO PARA UNA CABEZA BINOCULAR G. N. Marichal, J. T. Carrillo, L. Acosta, L. Moreno, M. Sigut, E. J. González Departamento de Física Fund. y Exp., Electrónica y Sistemas, Universidad de La Laguna La Laguna 38271. Tenerife. nico@cyc.dfis.ull.es Resumen En este articulo se presenta un nuevo método para controlar una cabeza binocular. Dicho algoritmo se basa en extraer el conocimiento de un experto, mejorando el comportamiento de las estrategias de control clásico aplicadas. Concretamente, el método presentado mejora el comportamiento de estrategias de control sencillas que llevan asociado un costo bajo, sin introducir nuevos elementos en el sistema de control. Las técnicas utilizadas constituyen una mezcla de estrategias borrosas y neuronales. El resultado es la obtención de un sistema de mejores prestaciones sin un aumento en el coste del sistema con un comportamiento más parecido al comportamiento humano. Palabras Clave: Control, Redes Neuronales, Lógica Borrosa, Robótica. 1 INTRODUCCIÓN . El mundo real en si mismo es un medio dinámico. Por lo tanto un robot que realice tareas en el mundo real debería tener la posibilidad de fijar su atención en las características relevantes de su entorno, descartando otras de naturaleza irrelevante. Por tanto, resulta necesario que el robot disponga de un sistema de visión que le permita fijar el foco de atención en cualquier punto [1] [2] [9]. Esta habilidad se pone sobretodo de manifiesto en aplicaciones de seguimiento de personas u objetos, en aplicaciones relacionadas con robots de servicio, en aplicaciones de calibrado, en aplicaciones de ayuda a personas con alguna clase de discapacidad física o en muchas otras [1]. Al mismo tiempo que el robot debería tener esta capacidad en el problema de control surge una nueva restricción a tener en cuenta. Concretamente, cuando el robot interactúa con personas y se pretende que se integre de una forma natural con ellas, se ha demostrado que la naturaleza direccional de nuestro sistema de visión adquiere un papel relevante desde el punto de vista de interactuar socialmente. En este artículo presentaremos un sistema de visión binocular junto con sus algoritmos de control en la pretensión de que el sistema resultante además de responder a los requerimientos de precisión y rapidez de un sistema de estas características presente un comportamiento más próximo al humano. Comenzaremos en la sección 2 por describir el sistema objeto de estudio, para en la sección 3 concentrarnos en aspectos relativos a los algoritmos empleados, mientras que en la sección 4 presentaremos algunos de los resultados obtenidos. 2 PROTOTIPO En la Figura 1 se muestra la cabeza binocular empleada. Como se puede observar esta cabeza se constituye de dos cámaras sobre las que tenemos cinco grados de libertad. Los grados de libertad se consiguen a través de una serie de servomotores de corriente continua posicionados en diferentes articulaciones de la cabeza binocular. Concretamente se ha hecho uso de servomotores de la marca Futaba modelo S3003, cuyo precio por unidad se sitúa en torno a los 15 Euros. En la Figura 2 presentamos un esquema donde se indican los diferentes grados de libertad del sistema de visión. Figura 1 : Fotografía de la cabeza binocular La comunicación se realiza a través del puerto serie del ordenador con la tarjeta electrónica serial de control de servos mediante el protocolo RS232 a 9600 baudios. La tarjeta electrónica serial permite por su parte enviar las consignas recibidas mediante instrucciones de forma serial enviadas por el ordenador hasta un máximo de ocho servomotores. En nuestro caso, solamente será necesario controlar cinco servomotores. El sistema global de control se muestra en la Figura 3. El esquema presentado tiene las limitaciones propias de la estrategia de control empleada, a la vez que el movimiento de la cabeza difiere bastante del movimiento propio de una cabeza humana. Con el objetivo de mejorar este comportamiento, manteniendo un coste bajo para todo el sistema lo que implica utilizar los servomotores presentados, se ha introducido una estrategia híbrida basada en redes neuronales y lógica borrosa. La estrategia expuesta en este artículo se basa en proporcionar diferentes consignas entre la consigna inicial y la consigna final deseada. El sistema híbrido será el encargado de marcar la temporización adecuada de cara a proporcionar estas consignas intermedias. Figura 2 : Esquema de Sistema de Visión A estos servomotores se les envía la consigna a través de una señal de control expresada en forma de PWM (modulación de ancho de pulsos), mientras que los propios servomotores tienen implementado internamente un control de tipo proporcional. Dado que existen varios servomotores a controlar y habremos de proporcionar una consigna a cada uno de ellos hemos utilizado una tarjeta electrónica serial de control de servos entre la cabeza binocular y el ordenador encargado de enviar las consignas. Consigna R (s) SISTEMA HÍBRIDO Seguidamente mostramos el esquema híbrido empleado, comenzando por destacar su estructura para posteriormente incidir en los aspectos relativos al entrenamiento. Motor + K - Gm (s) Posición del Servo r (s) θ1 Controlador Motor Consigna R (s) + PC 3 K - Gm (s) r (s) θ2 Controlador RS 232 Tarjeta electrónica Serial Consigna R (s) + - Consigna R (s) + - Motor K Gm (s) r (s) θ3 r (s) θ4 Controlador Motor K Gm (s) Controlador Grados de Libertad Figura 3 : Sistema de Control Con este sistema híbrido se pretende de forma automática generar un conjunto de reglas borrosas que nos solucionen el problema, siendo fiel reflejo de la solución que aportaría un experto humano al problema de control. 3.1 Las neuronas de la segunda capa buscan el valor mínimo del conjunto de entradas a dicha neurona (Salidas de las neuronas de la primera capa) y lo transfieren hacia la capa de salida. Por último la capa de salida realiza la operación que se señala mediante la ecuación (2), actuando como neuronas de carácter lineal. ESTRUCTURA DEL SISTEMA HÍBRIDO El sistema híbrido resultante se podría ver como una red neuronal de 3 capas [7] [5] [6]. En la Figura 4 mostramos un esquema de este sistema neuronal de 3 capas. La primera consistiría en una serie de neuronas de base radial, cuya salida responde a la ecuación (1). ( U i − m ij pij = exp − 2 σ ij )2 j = 1,2, ..., N2 i = 1,2, ... , N1 Yk = ∑ sv jk γ j ∑γ j j j j = 1,2, ..., N2 (2) k = 1,2, ... , N3 Donde: Y k = Salida k-ésima del Sistema Híbrido. sv jk = Valor estimado de la salida k-ésima proporcionado por la neurona j-ésima de la segunda capa. N3= Número de Salidas del Sistema Híbrido. (1) Donde: m ij = Centro de la Función de Pertenencia 3.2 correspondiente a la entrada i-ésima y la neurona j-ésima de la segunda capa. En la sección anterior presentamos la estructura del Sistema Híbrido, sin embargo dicha estructura conlleva un conjunto de parámetros que han de ser previamente determinados para poder extraer una salida del sistema ante una determinada entrada. Evidentemente, dicha elección de parámetros esta relacionada con la función que vayamos a darle a este Sistema Híbrido. Pretendemos que el Sistema Híbrido nos proporcione como salidas una serie de valores que permitan una temporización adecuada a la hora de enviar las consignas a los servomotores, todo ello a partir de saber la posición inicial y la posición final deseada para el servomotor a controlar. U i = Entrada i-ésima del Sistema Híbrido. σ ij = Anchura de la Función de Pertenencia correspondiente a la entrada i-ésima y la neurona j-ésima de la segunda capa. p ij = Salida de Neurona de Base Radial. N2 = Número de neuronas en la segunda capa. N1 = Número de entradas del Sistema Híbrido. γ1 p11 U1 U2 PROCESO DE APRENDIZAJE Y1 p21 pN1,1 p1,N2 YN3 UN1-1 UN1 pN1-1,N2 γN2 pN1,N2 Figura 3 : Esquema Sistema Híbrido A partir de estas dos entradas el Sistema Híbrido deberá de ser capaz de aportar dos salidas. Nos hemos planteado generar una trayectoria de consignas entre la posición inicial y la final deseada según la resolución que nos permite la tarjeta electrónica controladora serial que en nuestro caso corresponde a 0.72 grados. Las salidas del Sistema Híbrido nos indicarán cuando enviamos estas consignas. Nosotros hemos elegido dos salidas, donde la primera indica el tiempo que será aplicada la primera consigna, mientras que la segunda nos indicará el incremento de tiempo con el que se aplicarán el resto de consignas hasta la consigna final que siempre coincide con la consigna a aplicar para conseguir la posición final deseada. Teniendo en cuenta esta forma de proceder, hemos de elegir los parámetros de tal manera que el Sistema Híbrido nos proporcione valores convenientes de los tiempos considerados según el caso con el que se encuentre. En este punto es donde interviene el experto humano. Mediante un programa desarrollado en Linux el experto realizará una serie de movimientos sobre la cabeza binocular, registrando todos los valores de entrada y salida, es decir, las posiciones iniciales y finales tomadas y los tiempos considerados. Evidentemente, en este proceso el experto se quedará con aquellos ensayos que más se adecuen a lo que el entiende como un movimiento correcto. Estos valores se utilizarán en el proceso de entrenamiento que permitirá determinar los parámetros del Sistema Híbrido. El proceso de entrenamiento se ha dividido en tres fases. La primera fase aplicará un algoritmo de entrenamiento no supervisado, concretamente el algoritmo del mapa de características auto-organizativo de Kohonen. Una vez, este proceso haya concluido se procederá a un proceso para disminuir el tamaño del Sistema Híbrido, basado en la eliminación de neuronas de la segunda capa que aportan información muy parecida. Finalmente, se plantea un algoritmo de mínimos cuadrados que refinará los parámetros ya obtenidos en la primera fase y ajustará otros no considerados en esta primera fase. 4 APLICACIÓN Tal y como se ha explicado en las secciones previas el Sistema Híbrido una vez entrenado es utilizado de tal forma que se mejoren los resultados que nos proporcionan los servomotores. Como se puede observar esta nueva estrategia sería implementada mediante software en el PC, sin tener que modificar los dispositivos electrónicos utilizados. Aunque el proceso lleva un cierto tiempo en el ajuste de los parámetros del sistema híbrido este se realiza de forma off- line, de tal forma que una vez superada esta etapa los tiempos de procesamiento del sistema no son de relevancia para el funcionamiento adecuado del sistema. Hemos realizado varios ensayos en donde hemos puesto de manifiesto el buen comportamiento del método propuesto. Inicialmente, elaboramos un modelo simulado de la cabeza binocular y realizamos varios ensayos que nos relevaron las buenas propiedades del método. Una vez superada esta etapa, realizamos varios ensayos sobre la cabeza binocular directamente, midiendo mediante una tarjeta capturadota el resultado obtenido. A titulo de ejemplo en la Figura 4 presentamos el resultado obtenido cuando se ha llevado la primera articulación del la cabeza binocular (ángulo θ1) desde los 0º a los 56º, desde este último ángulo hasta 0º de nuevo y posteriormente se ha realizado un desplazamiento hasta 33 grados. En este caso el resultado de la fase de entrenamiento ha llevado a un Sistema Híbrido constituido por 94 neuronas en la primera capa, 47 neuronas en la segunda capa y 2 neuronas en la capa de salida o tercera capa. Como se puede observar los movimientos se han suavizado, de hecho si observamos la evolución del ángulo en el propio sistema de visión, éste se parece más a la forma en que se mueva la cabeza humana. 5 CONCLUSIONES En este artículo se ha mostrado un nuevo método para mejorar el comportamiento del control de una cabeza binocular. En el problema de control se han tenido en cuenta aspectos relativos a la interacción con los humanos de tal forma que los movimientos sean los más parecidos posibles a los que un humano realizaría. Debido a la técnica aplicada se ha observado que dicho comportamiento surge de forma automática. Adicionalmente, se aprecian mejoras respecto al comportamiento sin tener que modificar los servomotores utilizados. Es importante señalar por otra parte que la técnica aplicada permite adaptar la estrategia de control aplicada al sistema particular que pretendemos controlar. Como se ha mostrado en el artículo el funcionamiento de la estrategia de control esta directamente relacionada con los datos aportados por un experto. Al objeto de hacer esta tarea fácil al experto se ha desarrollado una aplicación que permite aportar los datos sin tener ningún conocimiento sobre las técnicas empleadas Señalemos por otra parte que se ha elaborado una aplicación al objeto de facilitar el proceso de entrenamiento, donde una parte importante consiste en que un experto aporte los valores más adecuados para una serie de situaciones sin que se le exija tener ningún conocimiento sobre las técnicas aplicadas.. __ Con Sistema Híbrido θ1 (seg.) - - sin Sistema Híbrido Tiempo (seg.) Figura 5 – Ensayo con la primera articulación Referencias [1] Ballard D. H. (1991). Animate Vision. Artificial Intelligence 48:57-86. [2] Eklundh, J. O., K. Pahlavan and T. Uhlin. The kth head-eye system. (1995) In : Vision as a Process. Chap. 15, pp. 237-259. [3] Chen C.H., (1996) “Fuzzy Logic and Neural Networks Handbook”, Mc. Graw-Hill . [4] Gosselin C., St-Pierre E., and Gagne M.(1996). On the development of the agile eye. In IEEE Robotics and Automation Magazine. pp. 29-37. [5] Kosko B. (1992 ) “Neural Networks and Fuzzy Systems: A Dynamical Systems Approach to Machine Intelligence”. Prentice-Hall. [6] Li H., Gupta M. (Editors) (1995). “Fuzzy Logic and Intelligent Systems”. Kluwer Academic Publishers. [7] Marichal G. N., Acosta L., Moreno L., Méndez J.A., Rodrigo J.J., Sigue M.. (2001) “Obstacle avoidance for a mobile robot: A neuro-fuzzy approach”. Fuzzy Set and Systems. Vol. 124, Nº 2, pp. 171-179. [8] Murray, D., P. McLauchlan, I. Reid and P. Sharkey. Reactions to peripheral image motion using a head/eye plataform. In : Proc. Of IEEE International Conference on Computer Vision. pp. 403-411, 1993. [9] Michael Swain and Markus A. Stricker (eds): Promising Directions in Active Vision. International Journal of Computer Vision, Special Issue on Active Vision I, Vol. 11, 2:109-126, 1993.