IE-0502 Proyecto Eléctrico Alumno: Carlos Alberto Montes Solano “Envío de video hacia un cliente remoto utilizando el sistema video4linux y desarrollo de una aplicación gráfica GTK sobre una plataforma GNU/Linux, para el control del brazo robot Stäubli RX9” Profesor Guía: Ing. Francisco Siles Canales Resumen El objetivo principal de este proyecto es controlar, en forma remota, el brazo robot Stäubli RX90 bajo una plataforma abierta. En este caso se utilizó el sistema operativo de licencia libre GNU/Linux. Para lograr la visualización a distancia del robot, se adaptó un programa existente que hace uso de la herramienta video4Linux, y que permite una comunicación cliente-servidor. Posteriormente al análisis de las fuentes bibliográficas se establecieron las principales necesidades que debían cubrirse. A partir de este punto se dio inicio a la programación en el lenguaje C que debía abarcar, en el lado del servidor, la comunicación serial con el controlador del robot y la sincronización de recepción de datos, provenientes tanto del cliente como del controlador mismo; mientras tanto en el lado del cliente existía la necesidad de generar una interfaz gráfica, amigable para el operador y capaz de enviar y recibir mensajes del servidor, además de desplegar el video en tiempo real. Los tres puntos de interés fundamentales del proyecto fueron: la programación de la comunicación a través del puerto serial, la programación de aplicaciones gráficas utilizando la librería GTK y la implementación de múltiples hilos de procesamiento. Uno de los principales problemas que surgió a lo largo del proyecto, fue el hecho de que la librería GTK no soporta, por sí misma, la programación de sus objetos dentro de múltiples hilos de procesamiento. La solución al problema surgió con la utilización de algunas funciones de la librería GLib, las cuales permitieron la manipulación ordenada de las variables GTK dentro de los distintos hilos. Como resultado se obtuvo una comunicación bidireccional entre las dos partes principales: el cliente y el servidor. La primera parte (el servidor) se encarga de capturar y enviar las imágenes de video, además atiende y ejecuta los comandos provenientes del cliente y, finalmente, recibe la información generada por el robot y se la envía al cliente. La segunda parte (el cliente) presenta una interfaz gráfica, donde se muestra el video del robot en tiempo real y la información del estado del robot, además permite accionar los distintos motores del brazo mecánico, por medio de botones y entradas de texto. De esta forma se alcanzó el objetivo principal del proyecto: el control remoto del robot Stäubli RX90. Tanto el sistema operativo, como el lenguaje de programación empleados, demostraron poseer las cualidades necesarias (por ejemplo el sistema video4Linux y la librería GTK) para la ejecución y creación de programas operados a distancia y en tiempo real. Finalmente y luego de llevar a cabo algunas pruebas prácticas al programa total, se recomienda la implementación de un algoritmo de compresión para las imágenes de video, debido a que la tasa de transmisión actual no es suficiente para ser implementada en una red real.