25
Ampliación de la capacidad de procesamiento del robot Lego Mindstorms NXT con una Raspberry Pi Víctor Manuel Rojas Nóbrega Juan Antonio Fernández Madrigal Ana María Cruz Martín Departamento de Ingeniería de Sistemas y Automática Universidad de Málaga 14 de febrero de 2014 1

Presentacion NXT

  • Upload
    v1ct0or

  • View
    261

  • Download
    2

Embed Size (px)

Citation preview

  • 1. Ampliacin de la capacidad de procesamiento del robot Lego Mindstorms NXT con una Raspberry Pi Vctor Manuel Rojas Nbrega Juan Antonio Fernndez Madrigal Ana Mara Cruz Martn Departamento de Ingeniera de Sistemas y Automtica Universidad de Mlaga14 de febrero de 20141

2. ndice 1. Conceptos2. Elementos involucrados en el sistema 3. Objetivos 4. Trabajos relacionados5. Sistema desarrollado 6. Caractersticas del sistema 7. Resultados8. Futuros trabajos2 3. Conceptos Robtica educativaQu es la robtica educativa? Conjunto de actividades pedaggicas que apoyan y fortalecen reas especficas del conocimiento y desarrollan competencias en el alumno, a travs de la concepcin, creacin, ensamble y puesta en funcionamiento de robots. Sus principales objetivos son: La actividad de los estudiantes. La integracin de distintas reas del conocimiento. La observacin y exploracin de los problemas.3 4. Conceptos Single Board ComputerQu es un Single Board Computer? Un ordenador de placa reducida (en ingls: Single Board Computer o SBC) es un ordenador completo en un slo circuito.Sus principales caractersticas son: Tamao reducido. Uso en entornos industriales o de desarrollo.Econmico.4 5. Elementos del sistema Lego Mindstorms NXTEl robot Lego Mindstorms NXT es uno de los kits de aprendizaje ms usados en todo el mundo. Est compuesto por una serie de sensores (distancia, luz, sonido, etc.) que interactan con el medio por el que circula movido por sus motores, todo ello conectado y controlado por un ladrillo central que contiene un microcontrolador. La forma de interactuar con el robot puede ser a travs de un programa cargado previamente por USB en la memoria del ladrillo o mandndole rdenes va Bluetooth mediante el protocolo Direct Commands. Robot Lego Mindstorms NXT5 6. Elementos del sistema Raspberry PiLa Raspberry Pi es un SBC de bajo coste diseado para estimular la enseanza de la computacin en las escuelas de todo el mundo. Posee conectores USB, Ethernet, HDMI, GPIO, MIPI CSI, salida audio de 3.5 mm y de vdeo RCA. Se alimenta mediante micro USB. Usa el sistema operativo Raspbian.6 7. Objetivos Aumentar la capacidad de cmputo y aadir sensor de visinQu problema se quiere resolver? Las limitaciones que posee el robot Lego Mindstorms NXT con respecto a su capacidad de cmputo, memoria y sensores.Las limitaciones que tiene el robot en estos mbitos son: Un microcontrolador ARM7 a 70Mhz. Una memoria de 64KBytes de capacidad.Sensor de colores predefinidos.7 8. Trabajos relacionados Aumentar la capacidad de cmputo y aadir sensor de visinComo lo resuelven otros? Interactuando con el robot mediante dispositivos externos que cargan con todo el trabajo de cmputo, delegando en el NXT comandos que nicamente interactuen con el firmware.Unos ejemplos de soluciones propuestas por la comunidad de desarrolladores son: Mover el robot con un mando de la consola Wii. Controlarlo usando un smartphone y su cmara.Mandar rdenes con el NXT usando Python y una Raspberry Pi.8 9. Trabajos relacionados Controlar el NXT usando un Wiimote y un ordenador9 10. Trabajos relacionados Resolver un cubo de Rubik usando un smartphone y 4 ladrillos NXT10 11. Trabajos relacionados Enviar rdenes al robot con una Raspberry Pi conectada por USB usando Python11 12. Sistema desarrollado Descripcin del sistemaComo lo resolvemos nosotros? Conectndo una webcam a la Raspberry Pi y dejndole todo el trabajo de cmputo, convirtiendo al robot en un mero intrprete de comandos que le llegan va Bluetooth.El sistema se compone de: Una placa Raspberry Pi. Un robot Lego Mindstorms NXT.Una webcam USB. Un adaptador Bluetooth USB.12 13. Sistema desarrollado Descripcin del sistemaPara controlar todos los elementos que componen el sistema, se ha desarrollado una API (escrita en C) que abstrae al usuario de todas las operaciones y protocolos de comunicacin entre los perifricos.Esta API se compone de 3 mdulos que controlan todas las partes implicadas del sistema: NXTbt Mdulo de comunicacin Bluetooth entre la Raspberry Pi y el robot. NXTdc Mdulo que recoge la funcionalidad completa del NXT.NXTwc Mdulo que interacta con la webcam.El mdulo de los Direct Commands mantiene la misma sintxis de las funciones que las del lenguaje NXC.13 14. Sistema desarrollado Funcionamiento del sistema El carcter autnomo de los programas que se van a ejecutar sobre la Raspberry Pi hace que tengan que lanzarse cuando el sistema se est iniciando, de forma que el robot pueda moverse libremente por el escenario del experimento, sin necesidad de una conexin a un monitor y teclado, nicamente con el cable micro USB de alimentacin de la placa.Al no existir un grupo de comandos firmware que controlen la pantalla LCD del robot, se ha optado por conectar un diodo LED a la Raspberry Pi, de forma que se pueda saber cuando empieza y termina la ejecucin de los programas en el start-up del sistema.La transferencia de ficheros entre la Raspberry Pi y el ordenador donde se quieran llevar a cabo los anlisis de resultados, se puede realizar mediante la conexin directa por cable de red y usando un programa como PuTTY. 14 15. Sistema desarrollado Funcionamiento del sistema15 16. Sistema desarrollado Lego Mindstorms NXTEste Proyecto no cambia la configuracin del robot que se usa en el Departamento de Ingeniera de Sistemas y Automtica de la Universidad de Mlaga.Debe tener conectados los siguientes sensores sensores: Sensor de distancia. Sensor de luz.Sensor de sonido.Configuracin del robot Lego Mindstorms NXT16 17. Sistema desarrollado Raspberry PiLa Raspberry Pi usada en este Proyecto Fin de Carrera pertence al modelo B que posee nicamente dos puetos USB, por lo que es necesario conectar y desconectar el teclado cada vez que se quiera reprogramar la placa.Se conectan a la placa los siguientes elementos: Webcam USB. Adaptador Bluetooth USB. Diodo LED en el puerto 11 de GPIO.Elementos conectados a la Raspberry Pi17 18. Sistema desarrollado Montaje del sistemaEl primer paso es colocar la Raspberry Pi en el sitio donde menos pueda interferir con las lecturas del sensor de distancia debido a su tamao: en la parte posterior del robot.Finalmente se coloca la webcam en la parte libre del robot que est ms cerca del suelo, para poder detectar objetos que estn muy cerca.Aspecto final del sistema completo 18 19. Sistema desarrollado API-NXT La creacin de los programas que usan la API-NXT del Proyecto se realiza usando el editor de texto Nano queincorpora el sistema operativo Raspbian de la Raspberry Pi. La compilacin se produce a travs del front-end para C del compilador gcc. Las funciones de comunicacin Bluetooth usan la librera BlueZ, que se ocupa de la creacin y cierre del socket detransmisin de mensajes. El encendido y apagado del LED se realiza usando la librera wiringPi, encargada del manejo de la matriz de puertos GPIO de la Raspberry Pi. El mdulo que interactua con la webcam usa la librera OpenCV para la obtencin y anlisis de los fotogramas que se van capturando con la cmara.19 20. Sistema desarrollado API-NXTMdulo de comunicaciones BluetoothMdulo de control de Direct CommandsMdulo de control de la webcam20 21. Caractersticas del sistema Ventajas del sistema con respecto a otro tipo de solucionesEl uso de smartphones para gobernar un robot Lego Mindstorms no es aconsejable dentro de ambientes acadmicos por su elevado coste si se compara con el de una Raspberry Pi.El sensor de colores que posee el NXT permite nicamente detectar objetos de ciertos colores definidos en el firmware del robot, mientras que con el uso de una webcam USB y se puede detectar cualquier color quequeramos, as como obtener valores de posicin y tamao de los objetos.La matriz de conectores GPIO que posee la Raspberry Pi permite la posibilidad de conectar cualquier tipo de dispositivo digital, pudiendo ampliar el abanico de sensores usando, por ejemplo, los disponibles para placascomo Arduino.21 22. Resultados Metas conseguidas con este ProyectoSe ha aumentado 10 veces la capacidad de cmputo que tenan los usuarios del NXT, pasando de un microcontrolador ARM7 de 70Mhz a un ARM11 a 700Mhz de la Raspberry Pi.La cantidad de memoria disponible se ha multiplicado 8192 veces, de 64Kbytes en el robot a 512Mbytes.Cualquier webcam USB que sea compatible con Raspbian se podr utilizar en el montaje de este sistema, reutilizando de esta manera hardware y ahorrandose el coste que supone la adquisicin de la cmara oficial que comercializa Lego (150$).22 23. Resultados Metas conseguidas con este ProyectoSe ha creado una librera compuesta de tres mdulos capaces de manejar los tres tipos de perifricos presentes en este sistema: webcam, Bluetooth y el propio robot. Adems del uso de la matriz GPIO con la API de wiringPi.Las comunicaciones Bluetooth entre el robot y la Raspberry Pi no penalizan la velocidad del sistema, ya que el cuello de botella se encuentra en el procesamiento de la imagen por parte de las funciones de OpenCV y de la velocidad de refresco de la webcam.Debido a que se quiere liberar a la Raspberry Pi de toda carga de trabajo ajena a la creacin y ejecucin de programas que interactuen con el robot, se recomienda que la fase de anlisis de los datos recogidos por los sensores se haga de forma externa, transfiriendo hacia otro ordenador por red los ficheros generados.23 24. Resultados Conclusin finalIncremento en el desarrollo y comercializacin de SBCs por parte de diversas compaas tecnolgicas.Expansin de los ordenadores de placa reducida entre usuarios del mundo de la enseanza.Aumento del uso de robots en entornos acadmicos como forma de aprendizaje.Creciente inters en sistemas de visin por ordenador por parte de la comunidad de desarrolladores.24 25. Futuros trabajos Lneas de mejora del sistemaDesarrollo de todas las funciones que componen la API de NXC.Creacin de una interfaz LCD con botones conectada al puerto GPIO de la Raspberry Pi.Desarrollo de una aplicacin que obtenga los valores de color de un objeto sobre fondo blanco.Mejora del rendimiento de las funciones de anlisis de imagen que implementa el mdulo de webcam de la API.Creacin de una interfaz hardware que permita la conexin de sensores del robot NXT al GPIO de la placa.25