Vicente Egea, Jorge Garrido, Roberto Guzm�n, Ranko Zotovic Roberto Guzm�n es Licenciado en Inform�tica (Sistemas F�sicos), ha sido Profesor e Investigador en el �rea de Rob�tica del Departamento de Ingenier�a de Sistemas y Autom�tica de la Universidad Polit�cnica de Valencia e Investigador en el Departamento de Control de Procesos y Regulaci�n de la FernUniversitaet - Hagen (Alemania). Actualmente trabaja en el Departamento de I+D de la empresa TMC-Electronics. Ranko Zotovic es Ingeniero Industrial. Tiene varios a�os de experiencia en implementaci�n y dise�o de m�quinas industriales como robots, m�quinas herramientas, de corte, de control de calidad, etc. Ha sido investigador y actualmente es profesor de rob�tica y CAD/ CAM del Departamento de Ingenier�a de Sistemas y Autom�tica de la Universidad Polit�cnica de Valencia. Jorge Garrido Serrano es Licenciado en Inform�tica (Sistemas F�sicos). Su proyecto fin de carrera, consistente en el dise�o e implementaci�n de la arquitectura software del PCBot, ha sido galardonado con el premio Bancaja de Colaboraci�n con Empresas. En estos momentos se dispone a integrarse como investigador en el Proyecto Europeo "MobiNet" (Mobile Robotics Technology for Health Care Research Network) de la FernUniversitaet Hagen (Alemania). Vicente Egea Ma�as es Licenciado en Inform�tica (Sistemas F�sicos). Ha obtenido el Premio Bancaja de Colaboraci�n con Empresas por el dise�o e implementaci�n de la arquitectura hardware del PCBot. Actualmente est� a punto de comenzar su carrera profesional en la empresa TGI. Para contactar con el autor Índice: Introducci�n Descripci�n del Veh�culo Arquitectura Software Conclusiones |
Resumen: El campo de la Rob�tica M�vil est� teniendo un enorme crecimiento en los �ltimos a�os. Muchos departamentos de rob�tica, mecatr�nica e inteligencia artificial han orientado gran parte de su investigaci�n hacia los veh�culos autoguiados. Hasta el momento, los elevados costes en investigaci�n y desarrollo han limitado su uso a aplicaciones aeroespaciales, militares, centrales nucleares, etc, pero el alto nivel de desarrollo alcanzado est� permitiendo su introducci�n en campos m�s comerciales como la agricultura, industria, servicios, miner�a, medicina, etc. Se trata de un sector estrat�gico, en el que se prev� un crecimiento espectacular.
Los veh�culos autoguiados comerciales disponibles en la actualidad tienen una serie de inconvenientes que limitan su empleo en investigaci�n. Entre estas cabe destacar su elevado precio, arquitectura cerrada, falta de documentaci�n y dif�cil escalabilidad, tanto en hardware como en software.
Para hacer frente a esta situaci�n, en el Departamento de Ingenier�a de Sistemas y Autom�tica se tom� la decisi�n de construir un veh�culo autoguiado de laboratorio que careciera de los impedimentos de las plataformas comerciales. Se decidi� utilizar una arquitectura basada en PC por sus enormes ventajas: precio, potencia, compatibilidad, escalabilidad, disponibilidad de software y hardware. El empleo de Linux y de su extensi�n de tiempo real RT-Linux ha facilitado enormemente la realizaci�n del proyecto.
Veh�culo Autoguiado PCBot 1.0 |
Se trata de un veh�culo holon�mico de dos ruedas motrices y dos ruedas de soporte. La cinem�tica es la misma que la de una silla de ruedas o un tanque, el control del centro del robot se realiza mediante el control de la velocidad de cada rueda a lo largo del tiempo.
El dise�o se ha realizado diferenciando dos zonas: la parte inferior, donde se sit�an todos los elementos mec�nicos y de potencia, y la parte superior donde se concentran los elementos relacionados con el control y peque�a se�al. La zona inferior est� montada sobre una plancha de aluminio. Este nivel comprende las ruedas, reducciones, motores, encoders, etapa de potencia, fuente de alimentaci�n, y bater�as. La zona superior va montada sobre el soporte de la placa base de un ordenador personal, donde se sit�an, adem�s de la placa base de PC con sus correspondientes tarjetas de v�deo, de entrada/salida y de red, el disco duro, la tarjeta de control y la disquetera.
Frente y perfil del veh�culo autoguiado PCBot |
La arquitectura hardware se basa en una tarjeta de control que gobierna los motores a trav�s de unas tarjetas de potencia. El control de los ejes puede realizarse tanto mediante la tarjeta de control como directamente desde el PC. El dise�o a medida del hardware y software de estas tarjetas se ha llevado a cabo en el marco del proyecto.
Arquitectura Hardware |
Desde un ordenador externo (host) se env�an comandos al PC montado sobre el veh�culo. En el caso de comandos de movimiento el PC se encarga de enviar referencias u otros comandos a las tarjetas de control. Estas generan una consigna de tensi�n que se amplifica en las etapas de potencia que alimentan los motores. El movimiento de cada eje es detectado por un sensor de posici�n (encoder), y codificado en las tarjetas de control.
La implementaci�n de un veh�culo autoguiado exige por una parte un sistema de control en bucle cerrado, que hace necesario poder garantizar que la acci�n de control se de en periodos de tiempo constantes. Por otra parte se necesita una actualizaci�n peri�dica de ciertas variables de estado, por ejemplo para determinar la posici�n del centro del robot en cada instante.
Las dos razones citadas implican la utilizaci�n de un sistema de tiempo real. Un sistema de tiempo real es aquel en el que la correcci�n del sistema no s�lo depende de la correcci�n de los c�lculos realizados, sino tambi�n del momento en el que estos se producen.
Se ha tomado la decisi�n de implementar la arquitectura software sobre el sistema operativo Linux (kernel 2.0.33) utilizando las extensiones para tiempo real RT-Linux (versi�n 0.6).
Las razones para el empleo de Linux y RT-Linux son las mismas que est�n llevando a algunas compa��as de automatizaci�n a implementar su software sobre este sistema:
El sistema de tiempo real RT-Linux ha sido desarrollado en el departamento de inform�tica del Instituto de Miner�a y Tecnolog�a de Nuevo M�xico por Victor Yodaiken y Michael Barabanov. Su arquitectura puede verse en la siguiente imagen. Un n�cleo de tiempo real se ejecuta en el nivel m�s cercano al hardware. Un planificador expulsivo con prioridades est�ticas gestiona una serie de tareas en tiempo real con acceso total al hardware. El propio Linux es visto por el planificador como una tarea de tiempo real m�s, con la prioridad m�s baja, que se ejecuta cuando queda tiempo disponible.
Sistema de Tiempo Real RT-Linux |
La arquitectura software del PCBot est� basada en el conocido modelo cliente-servidor. Una aplicaci�n servidor se ejecuta sobre el robot, atendiendo las peticiones de aplicaciones cliente que se ejecutan en m�quinas remotas y se comunican con el servidor a trav�s de TCP/IP.
El uso de TCP/IP independiza al robot del sistema operativo que se ejecute en los ordenadores host. La aplicaci�n cliente permite al usuario introducir los comandos que controlan el robot. Estos pueden ser de tres tipos: movimiento, definici�n de estado o consulta de estado. La aplicaci�n cliente controla la sintaxis de los comandos introducidos, construye un mensaje apropiado para el servidor, y comunica el mensaje al servidor mediante el empleo de Sockets.
Por su parte, la aplicaci�n servidor est� permanentemente esperando conexiones por parte de aplicaciones cliente. Una vez establecida una conexi�n, el servidor hace de intermediario intercambiando mensajes entre la aplicaci�n cliente y el m�dulo de tiempo real que ejecuta las tareas de control.
El M�dulo de Tiempo Real es el encargado de ejecutar los comandos que acepta el robot, sean estos de control de movimiento, de definici�n del estado o de obtenci�n del estado. Adem�s se encarga de la supervisi�n de la integridad del sistema a trav�s de una tarea peri�dica tipo Watchdog.
Arquitectura Software |
La arquitectura est� dividida en dos partes, una que se ejecuta sobre el sistema operativo Linux y otra cuyos requerimientos temporales obligan a ejecutarse en tiempo real (RT-Linux). En la parte de Linux encontramos el servidor implementado sobre el PC montado en el veh�culo. El cliente, que es la otra aplicaci�n sin requerimientos temporales, no necesariamente ha de encontrarse trabajando sobre el PC del robot.
El m�dulo de tiempo real est� formado por varias tareas de tiempo real peri�dicas (comandos de movimiento y tarea de supervisi�n watchdog), y varias espor�dicas (manejador y stop).
El acceso de las tareas de tiempo real al hardware est� protegido por un sem�foro binario. Existen varias razones para la existencia de este sem�foro. En primer lugar, el protocolo de comunicaci�n con los controladores est� basado en un registro de desplazamiento, la interrupci�n y continuaci�n por parte de otra tarea implica la llegada de informaci�n incorrecta a los registros. En segundo lugar, existen tambi�n protocolos a nivel de registro que no deben interrumpirse, y por �ltimo, el env�o de acciones de control o comandos programados de movimiento a ambos ejes debe hacerse de la forma m�s simult�nea posible.
La comunicaci�n entre el m�dulo de tiempo real y el servidor est� implementada mediante tres colas rt-fifo. El servidor hace uso de una cola para escribir en ella los comandos de movimiento que le vienen del cliente. El m�dulo en tiempo real utiliza las otras dos colas para informar al servidor de la aceptaci�n de los comandos enviados y para informar al cliente a trav�s del servidor de situaciones cr�ticas.
Una secuencia de operaci�n ser�a la siguiente: el usuario lanza un proceso cliente, cuya funci�n es la de interfaz con el operador que introduce los comandos en l�nea. El cliente procesa estos comandos y los env�a al servidor que los recibe y reprocesa para poder envi�rselos al m�dulo de tiempo real a trav�s de la cola rt-fifo asociada.
Un proceso manejador asignado a la rt-fifo se encarga de recoger el comando y si este es de movimiento lanza la tarea de tiempo real asociada, enviando un mensaje de confirmaci�n al servidor. Esta tarea se encarga de realizar las acciones sobre el hardware necesarias para mover los motores
En caso que de no tratarse de un comando de movimiento, se tratar� de un comando de definici�n o consulta de estado. En esta situaci�n ser� el mismo manejador el que responda a la petici�n, bien escribiendo bien leyendo de las variables globales, seg�n corresponda.
Las variables globales se encuentran en un espacio de memoria compartido por las tareas de tiempo real y el manejador. Sirven como medio de comunicaci�n entre estas tareas. El watchdog se encarga de, entre otras cosas, avisar al servidor de cualquier cambio relevante en el estado del veh�culo, as� como de posibles situaciones an�malas.
Arquitectura Software - Tareas del Sistema |
La arquitectura basada en PC trae una serie de ventajas como el bajo precio, facililidad de ampliaci�n, tanto en hardware como de software, versatilidad por la gran cantidad de software disponible y potencia en cuanto a capacidad de c�lculo. Adem�s, el hardware nunca se queda obsoleto, puesto que su substituci�n por otro de la siguiente generaci�n es inmediata, guardando la compatibilidad con el software anterior.
La elecci�n del Linux junto con su extensi�n de tiempo real RT-Linux ha resultado ser muy acertada. Se han utilizado herramientas de desarrollo muy potentes como el entorno gnu wpe (Windows Programming Environment), o el compilador de c gnu, todo ello sin coste.
Adem�s de haber demostrado su robustez en la pr�ctica, el sistema aprovecha los recursos de la m�quina al m�ximo, de manera que se ha podido utilizar como computador de a bordo una m�quina 486, sin prejuicio en tiempo de ejecuci�n ni en tiempo de desarrollo (varios usuarios en paralelo sobre esta m�quina). De hecho, los an�lisis de planificabilidad realizados revelan la disponibilidad del 70% del tiempo de procesador aun en el peor de los casos.
La totalidad del software utilizado es de dominio p�blico, con lo que las fuentes han sido accesibles en todo momento. Esto ha permitido una comprensi�n en profundidad del sistema de tiempo real y abierto nuevas posibilidades de ampliaci�n futuras (uso de otros planificadores, desarrollo de drivers en la parte de tiempo real, etc. ), impensables en veh�culos comerciales.
El sistema de tiempo real RT-Linux es f�cilmente depurable en tiempo real a trav�s de diferentes mecanismos que van desde la modificaci�n del kernel al almacenamiento y visualizaci�n de variables mediante llamadas al sistema printk.
Para la mayor parte de los problemas surgidos durante el periodo de desarrollo se ha podido contar con el apoyo incondicional de los miembros de la lista de correo de rt-linux y con la relativamente extensa documentaci�n disponible.
Otros art�culos sobre RT-Linux aparecidos en LinuxFocus:
Real-Time Linux
Real-Time Linux II
Texto original en Castellano
P�ginas web mantenidas por Miguel �ngel Sep�lveda © Vicente Egea, Jorge Garrido, Roberto Guzm�n, Ranko Zotovic LinuxFocus 1998 |