Control de un microbot y visión artificial con LabVIEW mediante Bluetooth



Documentos relacionados
V i s i t a V i r t u a l e n e l H o s p i t a l

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

UNIVERSIDAD DE SALAMANCA

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

LA CADENA DE LA INNOVACIÓN

WINDOWS : TERMINAL SERVER

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

CRM para ipad Manual para Usuario

15 CORREO WEB CORREO WEB

Fuente:

CRM para ipad Manual para Usuario

ArduLab. 1. Qué te pasa Nerea? 2.Este robot no funciona bien y no sé que le pasa

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

Oficina Online. Manual del administrador

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Skype. Inguralde [Enero 2011]

EL PROGRAMA DE PRESENTACIONES IMPRESS (I)

GMAIL (avanzado) 1. Accede a la web de Gmail, Te destacamos las funcionalidades que vamos a enseñarte a. 2. Vamos a enseñarte a:

Person IP CRM Manual MOBILE

Diplomado en. Servicio Nacional. De Facilitadores Judiciales

MANUAL WINDOWS MOVIE MAKER. Concurso de Gipuzkoa

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

/05/2009

MANUAL TRAMITACIÓN PROCEDIMIENTO

Universidad de Zaragoza Manual de Usuario

Web Publishing con LabVIEW (I)

Lo primero que debemos hacer es distinguir bien los dos tipos de Cámaras que podemos utilizar: WebCam y Cámara IP.

App para realizar consultas al Sistema de Información Estadística de Castilla y León

GUÍA DE USUARIO: GOOGLE DRIVE

ICARO MANUAL DE LA EMPRESA

Manual de guía para Clientes Sistema MoTrack

Datalogging bajo Robolab.

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)

1 Itinerario. 2 Descripción y funcionalidades principales. Google Docs. 1.1 Qué vamos a hacer? 1.2 Qué pasos vamos a seguir?

PS.Vending Almacén Pocket PC

Cookies: qué son y para qué sirven

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Mantenimiento Limpieza

Guía de referencia para mytnt. mytnt. C.I.T Tecnología Aplicada al Cliente

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

MANUAL BÁSICO DE INFORMATICA

MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

Lego Nxt desde Physical Etoys

En este capítulo se describe la forma de cómo se implementó el sistema de video

Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación.

Configuración de PDAs en ITACTIL.

Si haces clic sobre el icono de un objeto que no ha sido instalado como por ejemplo acceso remoto, comenzará su asistente de instalación.

APLICACIÓN DE ACCESO REMOTO PARA POCKET PC. MANUAL DE USUARIO (Release 1.42)

MANUAL BASICO DE WEBEX

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

Base de datos en Excel

CREACIÓN O MIGRACIÓN DEL CORREO POP A IMAP PARA MOZILLA THUNDERBIRD

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

IS23 Mantenimiento de Instalaciones Informáticas Práctica 6. Acceso remoto a ordenadores tipo PC

Manual de operación Tausend Monitor

Manual del Usuario de NOVIT GPS. Le llegará un como éste. Nombre completo;

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

1.- DESCRIPCIÓN Y UTILIDAD DEL SOFTWARE DAEMON TOOLS.

Correo Electrónico: Webmail: Horde 3.1.1

Indice I. INTRODUCCIÓN SEGURIDAD DE ACCESO REGISTRO DEL VALOR FLETE CONSULTAS V. GRÁFICAS. MANUAL GENERADORES DE CARGA RNDC Noviembre 2015 Versión 2

TPV VIRTUAL O PASARELA DE PAGOS DE CAJASTUR

Sistemas de seguridad en redes inalámbricas: WEP, WAP y WAP2

FOROS. Manual de Usuario

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Manual hosting acens

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

Guía de instalación y control del software. DCANXT Remote-Control

Manual Web Alexia Profesor. Índice

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Access Control. Manual de Usuario

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Manual del Alumno de la plataforma de e-learning.

Accesibilidad web GUÍA FUNCIONAL

En el presente capítulo se describe la programación del instrumento virtual y cómo

MANUAL DE AYUDA MODULO TALLAS Y COLORES

Novedades PhotoGestion 5

DESCARGA DE CARPETAS DE MENSAJES DE CORREO DESDE EL WEBMAIL A PC S LOCALES

UF0513 Gestión auxiliar de archivo en soporte convencional o informático

Programando con Enchanting

Manual Instalación de certificados digitales en Outlook 2000

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Una vez descrita la constitución general de un robot, podemos empezar con la

MANUAL CAMBIO DE CLAVE WIFI

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Manualillo Italc /3/2010 Página 1

Campus Virtual, Escuela de Ingeniería Mecánica Guía Estudiante

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Impress : Programa de presentaciones de OpenOffice.

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

Transcripción:

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 1 Control de un microbot y visión artificial con LabVIEW mediante Bluetooth Autor: Gaizka Nuñez Barandalla, estudiante de Ingeniería electrónica de la UPV Tutor: Josu Jugo, Profesor del departamento de Electricidad y Electrónica de la UPV Resumen-- En este trabajo se ha diseñado un microbot utilizando la herramienta MindStorm de Lego y el entorno de desarrollo gráfico LabVIEW. El microbot incorpora una serie de sensores que permiten la interacción con el entorno, incluyendo una cámara que ha permitido diseñar un sistema de reconocimiento visual básico mediante el programa informático LabVIEW. El microbot consta de una estructura creada con piezas de Lego, que acogen los sensores, motores y el cerebro del microbot: la unidad de control NXT de Lego Mindstorm. El entorno de trabajo se basa en una estación PC con el programa LabVIEW que además de permitir el desarrollo de los programas que gestionan el comportamiento del microbot, se comunica mediante Bluetooth y USB con la unidad de control. La adquisición de imágenes se efectúa por medio de una cámara web. El trabajo se ha basado en el desarrollo de los programas necesarios mediante LabVIEW para el control y comunicación vía USB y Bluetooth con la unidad de control y la cámara. La estación de trabajo permite la monitorización supervisión y control remoto del microbot, gracias a la funcionalidad de LabVIEW. I. Introducción Hoy en día, todos hemos visto como unos pequeños robots se pasean por la superficie de Marte esquivando obstáculos y obteniendo datos de forma autónoma, comunicándose con un ordenador tan lejano como se quiera. Para que sea posible este comportamiento de esta clase de dispositivos, que comúnmente se denominan microbots, es necesario que esté recogiendo información de su entorno y de él mismo para decidir cuál va a ser la nueva acción a tomar o, comunicándose con un elemento externo, bien un ordenador, o bien una persona, que tome decisiones sobre las siguientes ordenes. Es necesario, por tanto, que el microbot tenga una cierta autonomía por medio de una memoria que almacene los programas que dirigen su comportamiento y permitan la comunicación entre la estación y el microbot, que no es necesariamente continua. Esta simbiosis puede ser entendida como una sonda capaz de desplazarse por si misma y que contiene tantos sensores como sus creadores hayan imaginado. Pero no es necesario irse tan lejos como a Marte para ver este tipo de mecanismo. Un simple brazo robótico también es controlado a distancia por una unidad de control o los actuales sistemas de domótica siguen este mismo principio. Gracias a los nuevos protocolos de comunicación a distancias como el WIFI o el Bluetooth se ha conseguido llevar al ámbito domestico este tipo de controles y cada día son mas las aplicaciones que salen al mercado. Si pensamos en añadir una cámara a un microbot de este tipo, se puede pensar en un medio para buscar personas atrapadas en terremotos introduciendo el microbot entre las grietas. O para observar medios hostiles para el ser humano desde una distancia segura, como por ejemplo un reactor nuclear o algún lugar con una atmósfera tóxica, entre otras muchas aplicaciones. Los en los entornos de programación, como LabVIEW, permiten que no se requiera una excesiva

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 2 especialización facilitando de este modo el diseño y la creación de los microbots. II. Descripción del sistema En la imagen 1 se observa el sistema completo que va a estar formado por un PC, un receptor/emisor Bluetooth, el microbot y la cámara. Otro tipo de topología usada es creando la conexión por cable USB. Así, el programa desarrollado mediante esta última topología al ser mas rápida el establecimiento de la conexión mediante USB. El programa principal es capaz de detectar que tipo topología se está utilizando y crear la conexión. La comunicación con la cámara se crea usando los códigos de comunicación directa facilitados por la empresa que la diseñó. Imagen 1: Sistema PC microbot II.1. Microbot En la imagen 2 se puede observar el microbot y los componentes por los que está formado. A continuación, se detallan los componentes individualmente. Imagen 2: Microbot A. Unidad de control. La unidad de control es un brick de Lego Mindstorm alimentado por 6 pilas de 1.5V. Tiene 3 salidas que controlan los motores y 4 entradas para adquirir datos de los sensores que se le añadan. Tiene una pantalla LCD en la que se puede observar el estado del microbot así como acceder a

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 3 programas cargados en memoria. Los botones que poseé pueden ser programados para la finalidad que se deseen, pero originalmente sirven para navegar por el menú y apagar la unidad de control. B. Sensor de Luz. De la marca Lego. Sirve para calcular la luz reflejada o la absorbida. Tiene un led que, a gusto del programador, se puede encender para iluminar, por ejemplo, cuando hay falta de luz. Dependiendo de la luz reflejada (o absorbida) se pueden adivinar colores. Esta opción se utiliza para realizar el programa de seguimiento de linea. C. Sensor ultrasonidos. También de la marca Lego. Emite ultrasonidos y adivina la distancia de posibles obstáculos, su rango máximo son 255 centímetros. Aunque sea poco preciso, para la finalidad del microbot es suficiente. Se utilizará para evitar que el microbot choque con obstáculos D. Motores Motores DC de la marca Lego. Pueden soportar una potencia máxima de 100mW. Internamente tienen un tacómetro y un PID. No ha sido posible el ajustes de los parámetros del PID ya que estaba protegido por contraseña. E. Cámara Cámara Web de comunicación vía Bluetooth. Es usada para detectar formas simples y colores. Las imágenes adquiridas por este medio se visualizaran en la pantalla del ordenador. Uno de los objetivos principales del trabajo era centrarse en el reconocimiento visual y relacionarse con el medio mediante la cámara, pero debido a problemas con la distribución de esta, no se obtuvo la cámara tan pronto como se deseaba y el trabajo tuvo que centrarse en otro tipo de objetivos. II.2. Entorno de programación y monitorización El medio de programación utilizado es LabVIEW, un programa que permite la adquisición y tratamiento de datos mediante una programación gráfica. Aprovechando las ventajas de la programación estructural de LabVIEW, se planea un proyecto totalmente estructurado (imagen 3). Fue necesario un periodo de aprendizaje y familiarización con este lenguaje. [1] Imagen 3: Estructura del proyecto. Imagen 4: Apariencia del programa principal

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 4 III. Trabajo desarrollado A continuación se describen los algoritmos desarrollados utilizando el entorno de programación gráfica LabVIEW A. Control de motores Como se ha comentado antes, los motores llevan incorporado un PID pero que no es accesible al requerir una contraseña. Después de estudiar la respuesta de los motores, bastó con incluir un controlador proporcional para que el motor se comportase en los límites deseados. Los límites marcados no fueron exigentes al no requerir el propósito del microbot una gran precisión o rapidez. El programa toma como variables el nº del motor a controlar, la potencia deseada y los centímetros a recorrer. Si obviamos los centímetros a recorrer diciéndole 0, el motor quedaría en funcionamiento hasta recibir la orden de parar. Cada 5ms el VI guarda el estado del motor en un archivo, a modo de variable global, para que cualquier otro VI pueda obtener la información de ese motor. B. Conexión/desconexión Bluetooth Este fue el apartado mas crítico de todo el proyecto. La combinación Lego + LabVIEW + Bluetooth no está bien depurada y genera errores y fallos constantemente. Lego proporciona una librerías de comunicación mediante Bluetooth para aplicar con LabVIEW pero debido a los constantes errores que generaban se decidió finalmente modificarlas, en cierta medida, para adaptarlas exclusivamente al proyecto. Una de las mayores complicaciones en este apartado fue la manera que tiene Windows de gestionar los puertos virtuales del Bluetooth. Al hacer una lectura de un sensor o al querer acceder al control de un motor, Windows interpretaba que eran puertos nuevos y los creaba en consecuencia hasta saturar los recursos del sistema y generar un error. Otra característica de Windows que creaba un error es que el S.O. graba un registro de las conexiones realizadas por Bluetooth y la siguiente vez que se intenta conectar un dispositivo con un nombre que ya esta en el registro, Windows intenta hacerlo con la configuración ya existente. Para evitar estos errores se reestructuro las librerías suministradas por Lego añadiendo retardos para esperar la gestión del S.O., se forzó las comunicaciones por los mismos puertos y se borra el registro creado por Windows al cerrar el programa principal de mi microbot. Como salida del VI de Conexión de BT se obtiene la VISA que identifica el microbot dentro de LabVIEW. C. Mando a distancia Una vez creado un VI que controlase el motor se puede crear cualquier programa llamando a ese VI olvidándose del motor en sí. Por tanto, para probar esa característica, se creo un programa para que fuese capaz de controlar el microbot mediante el teclado. Para ello se hace una llamada al puerto donde está conectado el teclado y se obtiene la información que se procesará para saber la tecla pulsada. El microbot se controla pulsando combinaciones de las teclas direccionales. Y los movimientos que se han programado son: 1. Adelante 2. Adelante y derecha 3. Derecha 4. Atrás y derecha 5. Atrás

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 5 6. Atrás e izquierda 7. Izquierda 8. Adelante e izquierda El microbot se mueve al pulsar las combinaciones de las teclas y se para tan pronto como se dejen de pulsar estas. Si se pulsan 3 teclas o mas el microbot se para evitando de este modo falsas ordenes. D. Sigue-Líneas El propósito es crear un algoritmo capaz de seguir una línea contrastada mediante el uso de un solo sensor de luz, a diferencia de los microbots sigue-lineas habituales que constan de 2 sensores y tienen, por eso, una programación mas fácil. La mayor prioridad al crear esta rutina fue la de reducir al máximo la búsqueda de la línea cuando el microbot la perdiese. Para ello se aplicaron varias estrategias. La primera de ellas es la que cuando encuentre un borde de la línea corrija su trayectoria siguiendo una curva que hace que su nueva trayectoria sea paralela a los bordes de la línea (imagen 4-C). De este modo los rebotes dentro de la línea se reducen a un número muy inferior al que se alcanzaría si en vez de curvas fuesen rectas. Se añadió un bit para que se memorice la dirección a la que ha girado la última vez para buscar la línea, izquierda o derecha. Se introdujo un algoritmo para que predijese si el microbot esta, en ese mismo momento, en una recta o en una curva. La idea es que si está en una curva tiene muchas posibilidades que, de salirse, la línea esté en la misma dirección de búsqueda que la anterior vez que se ha salido (imagen 4-A).En la recta pasaría lo contrario, al salir de una curva y entrar en una recta, el microbot tiene una pequeña deriva que hace que cuando salga, la línea quede al otro lado de la dirección de la curvatura (Imagen 4-B). Imagen 4: Trayectorias en sobre la linea En caso de no encontrar la línea en ese lado, buscaría en el otro sentido. De no encontrarla tampoco, el microbot la buscaría siguiendo una espiral cuadrada hasta encontrarla. El algoritmo a grosso modo es el siguiente: Mientras color= negro entonces Avanza Fmientras Si recta entonces dirección=not dirección fsi Esta sobre la línea entonces avanza hasta salirse Si ha detectado que era una recta cambia la dirección hacia donde debe buscar. En una curva deberá girar hacia donde giró la última

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 6 Mientras color=blanco entonces Gira( dirección,90º) Si color=blanco entonces Dirección=NOT dirección Gira(dirección,180º) Si color=blanco entonces Espiral(dirección) Fsi fsi fmientras vez para seguirla. Buscar la línea, de encuentrarla para. Si no es para un lado mira al otro, y cambia la dirección de la última dirección girada Si no la encuentra, entra en la espiral aprovechando el último giro. Cada vez que se hace una lectura del sensor de luz, se envía el resultado al archivo de variables globales al igual que se hacia con los estados de los motores. Imagen 5: Parte de la programación de la espiral D.1. Diferencias entre conexiones USB/Bluetooth. El algoritmo anterior se hizo con conexión USB, mas rápida de establecer y que no presentaba problemas. Sin embargo, el algoritmo, una vez probado con el Bluetooth, no se comportaba correctamente debido a los retardos producidos por esta conexión. Cuando el microbot detectaba la línea y le enviaba al PC esa detección, en el momento de recibir la respuesta del PC el microbot había perdido la línea al haber continuado con la orden anterior. Por lo que se entraba en un bucle en donde el microbot no hacia mas que dar vueltas aleatorias. Se pensó que lo mas sencillo era reducir la velocidad del microbot, pero la necesaria para el correcto funcionamiento era tan baja que había veces que se entraba en la zona muerta del motor. Finalmente, se reprogramó cambiando el algoritmo, aunque sin variarlo a nivel macroscópico, añadiendo paradas a los motores y un mayor número de llamadas al sensor de luz. Aún así, resulto ser mas eficiente el algoritmo con USB que con Bluetooth. E. Anticolisión Al tener un sensor de proximidad, se ha desarrollado un VI que detecta cuando existe un peligro de colisión y genera una parada de emergencia que hace que el microbot se pare y no pueda avanzar hacia delante. La evaluación del peligro se hace de manera dinámica, se tiene en cuenta la velocidad que tiene el microbot y la proximidad del objeto. Para salir de la parada de emergencia, basta con retroceder hasta que se salga de la zona de emergencia. Al igual que con los otros componentes la información adquirida por el sensor es enviada al archivo de variables globales.

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 7 F. Adquisición y representación de datos. Imagen 6: El microbot siguiendo la linea Se creó un VI sencillo que no hace mas que leer constantemente los datos del archivo de variables globales y representarlos en diferentes gráficas. Los datos que se reciben son: - El nivel de batería - El valor de los tacómetros de los motores - La distancia del objeto mas cercano - El nivel de luz reflejada G. Adquisición de imágenes de la cámara Este ha sido otro de los puntos problemáticos del trabajo. LabVIEW no da soporte con sus librerías a la adquisición y tratamiento de imágenes obtenidas mediante cámaras con conexión Bluetooth por lo que se tuvo que crear esas librerías. Se instalo un puerto COM para establecer la conexión con la cámara por este medio y la comunicación se produjo al nivel mas bajo con los comandos que habían sido mandados por los constructores de la cámara. $CAM0001 $CAM0002 $CAM0003 $CAM0004 $CAM0005 Se establece el modo de recepción de comandos Modo de cámara VGA Captura comando Envía el tamaño de imagen Envía la imagen. *Debido a la confidencialidad que exigió la constructora, los comandos detallados en el cuadro no corresponden a los reales. Al realizar esta serie de comandos la cámara envía los datos sin procesar de la imagen, es decir en formato RAW, que consta de los valores de cada color RGB en cada píxel. Para la representación de la imagen en LabVIEW, se llamaba al programa HyperTerminal mediante una librería existente en LabVIEW y se transmitían esos comandos. Los datos recibidos se representaban en una gráfica que trata la información de cada píxel dando a cada color RGB los valores obtenidos. Para crear un video, aunque existe una serie de comandos para capturarlo, se creo un bucle que repetía este proceso continuamente. De este modo era posible manipular cada fotograma individualmente. H. Detección de colores mediante cámara.

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 8 Se ha creado un algoritmo que permite detectar colores primarios RGB, es decir, rojo, verde y azul. Para ello se separa la imagen en sus 3 capas RGB y se obtiene, por tanto, 3 imágenes en blanco y negro que corresponderían a la información de cada color. La información almacenada en cada capa son valores de 0 a 255 por cada píxel. Siendo el 255 blanco absoluto y el 0 negro absoluto. Esto se traduciría a que si la capa pertenece al verde, 255 sería verde absoluto y el 0 la ausencia de verde en ese píxel. Para explicar el proceso se va a tomar como ejemplo la búsqueda de color rojo, sin perder generalidad. Al observar la capa perteneciente al rojo, se sabe pues que los píxeles tendrán mas rojo cuanto mas cerca estén del valor 255. Hay que recordar que hay colores que aunque no sean rojos contienen rojo, por ejemplo el violeta, que contiene rojo y azul, o el blanco que contiene todos los colores. Para diferenciar entre el rojo y combinaciones de rojo, se le resta, píxel por píxel, el valor del mismo píxel en las otras capas. Por ejemplo, en el caso del violeta para un píxel, puede que su valor RGB sea (126,12,185). 128-12-185= -69. Uno rojo puede tener un valor (213,25,12), 213-25- 12=176. Al hacer esta operación con todos los píxeles, se determina que píxeles están cerca de 255 y cuales cerca del 0, lo que se conoce en el mundo fotográfico como saturar la imagen. Después de este paso, tendremos una imagen de unos y ceros, donde el 1 representa lo que es rojo y el cero lo que no. Solo nos queda hacer una búsqueda de los uno. (Imagen 4) Imagen 7: Procesamiento de la imagen. Posteriormente, habiendo encontrado los pixeles con valor 1, se busca una (o más de una si hay mas de una superficie roja) curva que envuelva a todos los pixeles con valor 1. Esa curva se representa sobre la imagen original y aparece rodeando al objeto, en este caso la bola. I. Control del microbot mediante la cámara. Para aprovechar la librería de detección de colores, se ha desarrollado la idea de controlar, a modo de mando a distancia, el microbot mediante la posición en el espacio de un objeto de un determinado color. Mediante la cámara se detecta el objeto, por ejemplo rojo, y calcula el centróide de ese objeto, es decir, se toma el valor medio de los píxeles que forman la figura y se representa en el monitor del ordenador mediante una cruz a modo de puntero. Mediante el puntero se interactúa con una ventana donde están representadas unas flechas direccionales que se activan al ser tocadas por el puntero y envían la orden de movimiento al microbot (Imagen 8).

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 9 Imagen 8: Pantalla de interacción con el microbot IV. Siguiente Paso Debido al retraso en obtener la cámara web y los problemas para establecer las comunicaciones Bluetooth, no se ha podido desarrollar tanto como se hubiese deseado la visión artificial. Se han creado las librerias para detectar colores, se hubiera querido desarrollar otra que detectase formas simples. El siguiente paso podía haber sido la detección de rostros utilizando las librerías de búsquedas de colores y formas. Para ello bastaba buscar color blanco, de encontrarse al menos 2 elementos blancos de forma ovalada, se hubiese supuesto que hubiesen sido ojos. Sabiendo la distancia entre los esos objetos detectados, se hubiese adivinado una distancia a la que podría estar el rostro y se hubiesen buscado cejas a una distancia determinada prediciendo donde iban a estar. Después de haber encontrado las cejas, podríamos adivinar donde está la boca. Se podría incluso haber creado un algoritmo para ver las expresiones mas simples del rostro mediante los desplazamientos relativos de los elementos faciales. V. Conclusiones Los microbots son dispositivos relativamente sencillos de implementar pero permiten realizar tareas complejas ayudados de los múltiples sensores que se pueden utilizar. El hecho de poder llevar una cámara móvil en una estructura que es capaz de tener cierta autonomía para evitar daños, permite que observemos desde la distancia lugares u objetos peligrosos sin poner en riesgo a ninguna persona. A su vez existe una continua evolución en la comunicación inalambrica Bluetooth, Wifi, codificación... Con este trabajo se ha querido hacer una primera toma de contacto con estos dispositivos y experimentar de primera mano como un microbot es capaz de seguir una linea o de reconocer formas y colores mediante una cámara web. Se hubiera preferido que las conexiónes hubiesen estado mas desarrolladas y que las librerias para esta estuviesen creadas en LabVIEW. Se huiesen evitado tantos problemas y el esfuerzo se podría haber centrado en el desarrollo de la programación del microbot. La infinidad de aplicaciones con las que se pueden relacionar a los microbots y los avances de los últimos tiempo, no es de extrañar que en un futuro cercano nos acostumbremos a ver este tipo de dispositivos en lugares antes insospechados

Control de un microbot y visión artificial con LabVIEW mediante Bluetooth 10 VI. Bibliografía [1] LabVIEW 6i Programación gráfica para el control de instrumentación Antonio Mánuel Lázaro [2] Image Acquisition and Processing with LabVIEW Christopher G. Relf [3] NI-IMAQ for USB Cameras User Guide [4] Command Protocol API for GenieEye [5] http://forums.ni.com [6] http://legoengineering.com [7] http://www.cs.utexas.edu/~scottm/firstbytes/ [8] http://lego.fokke.net/ [9] http://www.chiefdelphi.com/forums [10] LabVIEW for NXT Advanced Programming Guide [11] LEGO MINDSTORMS NXT Communication protocol [12] LEGO MINDSTORMS NXT Direct commands [13] LEGO MINDSTORMS NXT ARM7 Bluetooth Interface specification [14] LEGO MINDSTORMS NXT Bluetooth Developer Kit