miércoles, 27 de octubre de 2010

Práctica 1

Comenzamos con la primera práctica de IAR. Se trata de un práctica para familiarizarnos con el API de leJOS, que nos permite controlar nuestro robot.
Empezamos con programas sencillos como el Hola Mundo, que utilizaba el programa eclipse en linux para programar en java con unas librerías que cogimos de la carpeta lib de leJOS. En ella importamos lejos.nxt y utlizamos los métodos y los atributos del API del entorno de programación:



Después, empezamos con el control de los motores del robot utilizando para ello utilizamos la clase estática Motor y sus variables A,B,C (que se corresponden con cada puerto de la CPU) y algunos métodos como backward, forward etc.. Aquí os dejo un video:

                                       



                                       


                                           
Después hicimos un ejercicio para mostrar por el display los ángulos que van cambian al mover el motor. 
Para que el robot pueda moverse a través de dos motores conectados a dos ruedas motrices utilizamos la clase TachoPilot. 
Montamos nuestro robot para realizar el próximo ejercicio:



Comprobamos que el robot no terminar en la misma posición cuando termina el cuadrado como nos gustaría que pasará. 
         


                                                   
Hicimos una matriz de covarianza para ver el grado de incertidumbre del robot (en vez de 40 cm le pediremos que recorra 41 cm)
Por último, en la visualización de la trayectoria, centramos un origen de coordenadas para empezar (0,0,0) y según se movía una distancia D,  cambiamos la "x " y "y" iniciales. Cuando giraba, era necesario cambiar el ángulo (3 coordenada) y la "x" y la "y" (para este caso usamos el teorema de pitágoras).

domingo, 17 de octubre de 2010

Práctica 0- segunda parte: instalación del leJOS en el portátil

Después de hacer la práctica 0 en clase, instalamos el entorno leJOS en el portátil para poder hacer las prácticas en casa.
Como nosotros somos más de linux, instalamos  leJOS NXJ para linux desde su página oficial: http://lejos.sourceforge.net/
Una vez hecho esto, descomprimimos el paquete de leJOS con el comando tar de la shell y cambiamos las variables de entorno del fichero bashrc.

           #Pr actica de Rob otica
               export JAVA_HOME=/usr/lib/jvm/java-6-sun
               export NXJ_HOME=/home/sdiazt/practicas/robotica/lejos_nxj
               export PATH=$PATH:$NXJ_HOME/bin

El problema viene cuando queremos compilar la versión de leJOS. Accedemos a el subdirectorio build del directorio lejos_nxj y ejecutamos el comando ant ...... y salta BUILD FAILED!! ante puesto a un montón de errores que no voy a enumerar. Descubrimos que el problema era que para manejar el entorno era necesario instalar unas API o librerías. 
Como no sabíamos que hacer le mande un correo al profesor de prácticas. Él me sugirió que me mirara el blog de alex y pablo, así como el tutorial de leJOS. 
Así que instale libusb y libbluetooth-dev con el comando  sudo apt-get install nombre_libreria de la shell.
También modificamos los permisos de /dev/bus/usb/ con el comando chmod -R 777 /dev/bus/usb/00*.
A pesar de todos los cambios, cuando volvimos a ejecutar ant en el directorio build, volvió a salir el BUILD FAILED.

Así que a la siguiente clase, Carlos Agüero, el profesor de prácticas, nos dijo que nos faltaba instalar el libusb-dev. Lo instalamos junto con, mira tu por donde,a un script programado en C++ (y yo que pensaba que sólo se utilizaba JAVA en leJOS). Volvimos a probar el comando ant en la shell y voila: BUILD SUCCESSFUL!!

Una vez hecho esto, volvimos a meter los programas de HelloWorld y LCDUI en HAL9000, de los que hablamos en la anterior entrada.
                                                    HelloWorld ejecutado en HAL9000

                                                    LCDUI ejecutado en HAL9000


Para que no se apague la CPU de HAL9000, hemos aumentado el tiempo en que la cpu hace sleep a 10 minutos mediante el menú que aparece en el display de HAL9000: menu -->system-->sleep time
Cabe destacar, que tampoco pudimos cambiar el nombre con nxjbrowse en el portátil.

Práctica 0- primera parte: primera práctica en el laboratorio

Empezamos con la primera práctica. Esta práctica sirve para irse familiarizándose con el entorno de programación leJOS (si se escribe así, no es una falta ortográfica) para nuestro robot Lego NXT en el ordenador. Con este entorno podemos utilizar una máquina virtual de JAVA para utilizar en nuestro robot todos los programas que hagamos.

En el laboratorio, con el sistema operativo de software libre ubuntu de linux, seguimos el guión de la práctica sin problemas (no hacia falta descargase el entorno para NXT, ya que ya estaba en nuestra sesión, ni tampoco actualizar el firmware del robot, ya que en la CPU del robot estaba ya instalada la última versión del leJOS: la 0.85.  Simplemente había que configurar las variables de entorno del script bashrc y compilar y enlazar un par de programas ejemplo: HelloWorld y LCDUI. El primero muestra un "Hello World" por la pantalla de la CPU del robot y el otro muestra varios menús de opciones: tales como meter texto, sonidos...
Para acabar  vimos que era imposible cambiar con nxjbrowse el nombre del robot: HALL2009 por HAL9000 debido a problemas con la última versión de leJOS. Aún así, de ahora y en adelante, en este blog nos referiremos al robot con HAL9000.

                                                    CPU DEL ROBOT LEGO NXT: HAL9000


 Llevaremos una caja de herramientas con todo el material del robot (hardware) para llevar mejor las piezas que con la caja de legos.

                          

Nuevo compañero de trabajo

Tenemos un nuevo compañero de prácticas en nuestro grupo: Daniel Yagüe. Nos ayudará con la práctica hasta nuevo aviso.