Control remoto de robots industriales
A. Valera, M. Vallés, J.L. Díez15/02/2004
Este artículo muestra cómo se puede implementar el control remoto de robots industriales mediante Internet. La configuración hardware del sistema está basada en PC y en tarjetas de adquisición de datos industriales. La configuración software está basada en Matlab, Matlab Web Server y en unos drivers para el acceso a las tarjetas de adquisición de datos. Estos drivers están escritos como funciones C-Mex que permiten la programación de las tarjetas de adquisición de datos desde el entorno de Matlab.
Como se ha comentado, la configuración que se propone está basada principalmente en la herramienta Matlab Web Server. Ésta es un conjunto de programas que permiten a los programadores de Matlab crear aplicaciones de Matlab accesibles desde el web. Éste está diseñado para ejecutarse de forma continua en background como un servicio de Windows NT.
Para permitir la ejecución de aplicaciones de Matlab en remoto, Matlab Web Server utiliza los una serie de programas y ficheros [3], como matlabserver, que se encarga de las comunicaciones entre la aplicación web y Matlab, especificando información como el número de puerto de comunicación, el número máximo de simulaciones que se desean atender etc. Matweb.exe es un cliente TCP/IP de matlabserver que utiliza la Common Gateway Interface (CGI) para extraer los datos de los documentos HTML y transferirlos a matlabserver. En matweb.conf aparece la configuración que matweb necesita para conectarse con matlabserver. Por último está el fichero matweb.m, encargado de llamar al fichero ".m" que se desea ejecutar en la aplicación web. Una descripción más exhaustiva de la configuración, propiedades y desarrollo de aplicaciones de MWS se puede encontrar en [4] ó [5].
En cada aplicación de Matlab se debe especificar el directorio de trabajo de la aplicación y el nombre del host que está ejecutando matlabserver. Opcionalmente también se puede especificar el número de puerto (que debe coincidir con el asignado en el fichero de configuración de matlabserver), así como el tiempo (en segundos) para el vencimiento de tiempo (timing out).
Los equipos que hacen las peticiones al servidor de Matlab deben tener instalado un navegador Web. Para entornos de PC, los navegadores más utilizados son el Netscape Navigator (www.netscape.com) o el Microsoft Internet Explorer (www.microsoft.com).
Configuración de MWS para el control remoto de robots industriales
Para llevar a cabo el control remoto se ha utilizado el robot porticado industrial que se muestra en la figura 1.
El robot tiene tres ejes: X-Y-Z con unos recorridos aproximados de 2.5, 1.5 y 1 metros respectivamente. Además de la parte mecánica el robot dispone de un armario de control donde se encuentran los variadores y las distintas etapas de potencia que se encargan de alimentar a los motores de corriente continua que generan el movimiento de los tres ejes. A este armario llegan las distintas señales del robot como por ejemplo las señales de la velocidad de los tres ejes que proporcionan las tacos-dinamos, las señales de la posición de los ejes (las señales A, B y paso por cero de los encoders incrementales), el conjunto de señales digitales utilizadas para la detección de los finales de carrera, activación de la herramienta del elemento terminal, etc.
La figura 2 muestra con más detalle la arquitectura de la unidad de control utilizada. Cualquier otro sistema robotizado se puede utilizar para establecer el control remoto, siempre que se tengan disponibles las variables de estado (posición y velocidad), y que se puedan proporcionar las acciones de control.
Las aplicaciones correspondientes a MWS serán generalmente una combinación de ficheros de Matlab ".m", código Html y gráficos, así como los drivers para el acceso a las tarjetas de adquisición de datos desde Matlab. La creación de este tipo de aplicaciones consistirá en la generación de los ficheros siguientes:
- Un documento de entrada Html para enviar datos a Matlab
- Un fichero ".m" de Matlab para procesar las entradas y calcular las salidas
- Un documento de salida Html para mostrar los resultados de Matlab
- Un fichero de prueba para validar el código antes de distribuir la aplicación en el web
Para completar el laboratorio remoto se necesitan las rutinas de acceso a las tarjetas de adquisición de datos desde el entorno de Matlab:
- Conversiones A/D: permiten obtener las señales analógicas del sistema a controlar, especificando cual es el canal de entrada (1 de los 16 canales de la PCL-812) a medir:
>> voltaje = read_812(canal);
- Conversiones D/A: una vez se ha calculado la acción de control, con esta instrucción se le suministrará el voltaje al robot especificando el canal de salida deseado
>> write_726(voltaje, canal);
- Señales de Encoders: para medir la posición de ciertos sistemas (generalmente robots), se han programado dos instrucciones: la primera se utiliza para inicializar la tarjeta de encoders PCL-833, mientras que la segunda se utiliza para leer uno de los 3 contadores de 24 bits que tiene esta tarjeta
>> init_833();
>> valor = read_833(canal);
- Entradas y salidas digitales: las entradas y salidas digitales nos permiten generar alarmas, paros de emergencia etc. En el laboratorio remoto se han implementado las instrucción siguientes:
>> valor=read_di_812();
>> write_di_812(valor);
- Programación del periodo de muestreo: para poder implementar el periodo de muestro (expresado en milisegundos) con el que se actúa sobre el sistema se ha desarrollado una rutina que utiliza la función de C++ sleep.
Todas estas funciones se han programado con el compilador Visual C++ v.6.0. Las funciones ejecutables Matlab se obtienen como ficheros tipo DLL a partir del comando mex:
>> mex read_812.cpp
Control remoto de robots industriales
Una vez los clientes pueden acceder al servidor y éste ha establecido la comunicación con el robot mediante las tarjetas de adquisición de datos, ya se puede desarrollar las distintas aplicaciones para el control remoto del sistema robotizado. Para ello se necesitan dos ficheros Html y un fichero escrito en el lenguaje de Matlab.
El primer fichero Html será un documento de entrada en el que el usuario remoto introducirá los distintos parámetros necesarios para la ejecución real. Cuando al servidor le llega una petición de algún cliente, matlabserver se encarga de lanzar la ejecución del fichero de Matlab asociado pasándole los parámetros especificados por el usuario remoto.
En la figura 4 se muestra una página inicial para el control remoto. En este caso se especifica que el robot siga una trayectoria circular, por lo que se debe suministrar el ángulo y el radio de la trayectoria. Además, se debe especificar también el tipo de controlador a utilizar y el valor los parámetros.
te=-Kpe-kdv-u (1)
donde:
e = q - qd
u, v: varían en función del controlador
Los controladores basados en la dinámica inversa (o controladores por par calculado) se pueden incluir en los problemas de linealización por realimentación. Un sistema es linealizable por la realimentación (los sistemas robotizados rígidos tienen esta propiedad) si existe una transformación del espacio de estados y una realimentación regular del estado que transforma el sistema no lineal en uno lineal [8]. Los controladores por par calculado establecen el control realizando una cancelación de los términos dinámicos de robot.
En este trabajo se ha obtenido una expresión general para estas dos clases de controladores, de forma que la selección de los distintos términos que componen la expresión del controlador se actualiza dependiendo del tipo de controlador escogido por el usuario en la página inicial Html.
Cuando llega la petición del cliente al servidor, éste lanza la ejecución de la función de Matlab, utilizando para ello las distintas funciones descritas en el apartado anterior. Una vez acaba la ejecución del programa se rellena primero la información en la página Html de resultados. Posteriormente se devuelve dicha página al cliente, para que éste pueda analizar cual ha sido el comportamiento y los resultados de la ejecución. Adicionalmente, el usuario también puede observar en tiempo real la evolución del robot mediante la cámara web que se ha añadido a la arquitectura de control. Una explicación más detallada sobre el control remoto de procesos industriales se puede encontrar en [9].
La figura 5 muestra un ejemplo típico de la página de resultados. En este caso se muestra la referencia de movimiento que se le ha proporcionado al robot industrial, así como la trayectoria real que ha realizado. En función de como se realice la programación del servidor, éste puede suministrar no sólo la posición sino las acciones de control, las velocidades de los ejes, el error cometido, etc.
Como se ha podido comprobar, Matlab Web Server es una herramienta muy útil para realizar aplicaciones desarrolladas en Matlab accesibles desde cualquier computador remoto que tenga un navegador web. Para ello básicamente sólo se necesita una página Html que proporcione los parámetros de entrada, la función de Matlab a ejecutar, y otra página Html para mostrar los resultados de salida.
En el caso del control remoto de robots industriales se necesita una configuración adicional con las tarjetas de adquisición de datos y los drivers (escritos para ejecutarse desde el entorno de Matlab) para el acceso a las señales del sistema a controlar. En el trabajo se ha mostrado un ejemplo práctico de su aplicación para establecer el control de posición de un robot porticado industrial.
Finalmente, en el entorno desarrollado es muy simple incluir una cámara para permitir la visualización de la evolución real del sistema además de la información gráfica devuelta por la aplicación web.
Referencias
[1] Johansson M., Gäfvert M., Aström K. J. (1998) "Interactive Tools for Education in Automatic Control", IEEE Control Sytems Magazine, Vol. 18, pp. 33-40.
[2] Overstreet J. W., Tzes A. (1999). "An Internet-Based Real-Time Control Engineering Laboratory", IEEE Control Sytems Magazine, Vol. 19, pp. 19-34.
[3] The MathWorks Inc. (1999). "Matlab Web Server user's guide".
[4] Vallés, M., Valera, Á., Díez J.L., (2001). “Setting up a Virtual Control Laboratory with Matlab Web Server”, IFAC-Workshop in Education in Automatic Control EDCOM 2001. Hohannes Kepler University Linz (Austria), Septiembre, 2001
[5] Valera, Á., Vallés, M., Tornero, J., (2001) “LabConRob: Virtual Laboratory of Real-Time Robot Control”, Robotica. 43. ISBN 152701/00. ISSN 0874-9019, pp. 40-45
[6] Ortega, R., Spong, M.W., (1989). “Adaptive Motion Control of Rigid Robots: a Tutorial”, Automatica, Vol. 25, pág. 877-888
[7] Valera, A., (2000). “Análisis Comparativo de Técnicas de Control de Robots Manipuladores Rígidos y Flexibles”, Ed. Universidad Politécnica de Valencia, ISBN 84-699-2911-9
[8] Slotine, J.J.E., Li, W., (1991). “Applied Nonlinear Control”, Prentice-Hall Int. Editions, ISBN 0-13-040049-1
[9] Díez, J.L., Vallés, M., Valera, A. (2002). “A Global Approach for the Remote Process Simulation and Control”, IFAC Barcelona, ISBN: Not yet assigned, Julio, 2002