viernes, 24 de febrero de 2012

Practica 1 - Visualizacion de la trayectoria


La última tarea de nuestro robot Marshall fue que mostrase por la pantalla la trayectoria que hacia al desplazarse, mientras realiza un cuadrado.
Muestra su posición en las variables X, Y del eje de coordenadas, además de su posición respecto a un ángulo de 360º.


Vídeo:



miércoles, 22 de febrero de 2012

Practica 1 - Cuadrado de calibración de movimiento



En la anterior publicación mostramos y comentamos las piezas que habíamos utilizado para dejar el robot listo para añadirle el rotulador para hacer el cuadrado de calibración. Durante la realización de la practica nos dimos cuenta de que no tuvimos en cuenta la proximidad de la punta del bolígrafo al centro del eje del movimiento. Otra vez... a montar de nuevo.

Y asi es el resultado final




Esta vez hemos utilizado menos piezas, y las que hemos utilizado ya estaban colocadas, con la diferencia de la pieza "4210753" teníamos que darla la vuelta lo que conlleva desmontar todo.
Las piezas utilizadas son:
  • 2 x 4121667
  • 2 x 370626
  • 1 x 4210753

Una vez resueltos los pequeños errores de montaje nos disponemos ha hacer la prueba del funcionamiento de la practica. Este es el resultado:









Para la realizacion de esta practica hemos utilizado metodos como:
navigator.travel() para el movimiento del robot.  
navigator.rotate(n) donde si la n es positiva el robot girara a la derecha y si es negativa a la izquierda.
navigator.setMoveSpeed() para ajustar la velocidad de movimiento del robot.
navigator.setTurnSpeed() para ajustar la velocidad de giro.



 Matriz de covarianza y visualización de la trayectoria

Hemos realizado 6 recorridos al cuadrado de calibracion y estos son los las muestras que hemos obtenido en cada caso.



Con estos datos hemos realizado la matriz de covarianza. 


Para este calculo nos hemos ayudado de esta web. Calculo Covarianza

  [ .03472222  .04722222 ]

  [ .04722222  .08222222 ] 




la pesadilla de la version 0.9.0 en el robot

Llevábamos unos días atascados porque en la practica1 en el apartado de TravelTest no me reconocía: "import lejos.robotics.navigation.*" y por lo tanto tampoco "TachoPilot"
Después de buscar por internet encontré el fallo y es debido a que la version del programa que utilizabamos es la 0.90. Debido a que era la version que venia instalada ya en nuestro robot. Instale en el ordenador la versión 0.85 y efectivamente desde ese momento ya me reconocía la clase. El problema ahora es que tengo que instalar también esa version en el robot  y eso me estaba siendo imposible... por mas que lo intentaba se quedab pillado en mitad de la actualización y no para de sonar el tic tic(modo actualización). Consiguía que el robot vuelviese a funcionar pero solo bajándome la versión 0.90 e instalando esa.

este es el mensaje que me salia por pantalla:

moren0@ubuntu:~$ sudo /home/moren0/Escritorio/ robotica/practicas/lejos_nxj/bin/nxjflash
[sudo] password for moren0: ***************
Building firmware image.
VM file: /home/moren0/Escritorio/robotica/practicas/lejos_nxj/bin/lejos_nxt_rom.bin
Menu file: /home/moren0/Escritorio/robotica/practicas/lejos_nxj/bin/StartUpText.bin
VM size: 52752 bytes.
Menu size: 38016 bytes.
Total image size 91008/94208 bytes.
Locating device in firmware update mode.
Found NXT: %%NXT-SAMBA%% 1
an error occurred: Failed to open device in SAM-BA mode.

al final encontramos la solución
para todos aquellos que tengan este problema, escribir antes del nxjflash el siguiente comando:

sudo rmmod cdc_acm

listo!!!
podemos continuar...

martes, 21 de febrero de 2012

Practica 1 - Odometria y montaje del robot para sostener un lápiz

Odometria.java:

En esta parte de la practica montaremos una pieza en el motor y segun la vayamos moviendo la odometria del motor nos indicara los grados que hemos girado.
Para esta practica hemos utilizado los metodos getTachoCount(), drawString() y drawInt() para  imprimir los resultados por pantalla, estos dor ultimos de la clase LCD.

Aqui tenemos el video con su funcionamiento.




En las dos fotografías de abajo se muestra como quedaría el robot montado para la realización de la parte "TravelTest".

















Las piezas utilizadas para sostener el rotulador son las siguientes:
  • 5 x 4121667
  • 1 x 370526
  • 3 x 370626
  • 1 x 4210753

Actualización para móviles

Hola de nuevo!! hemos creado la versión de la pagina web para móviles, así sera más fácil echarle un ojo y actualizarlo en cualquier momento.

Practica 1 - Primeros pasos con la API

En esta primera practica empezaremos a tomar contacto con los actuadores del robot.

Manejo sencillo de los motores

En esta parte tendremos que realizar 3 pequeños programas para familiarizarnos con el funcionamiento de los motores.

BasicMotor1.java :Este programa hará funcionar un motor en el momento en el que pulsemos un boton. Hemos utilizado los metodos waitForPress() y foward().



BasicMotor2.java : Este programa movera el motor 45º cada vez que pulsemos un boton. Utilizamos los metodos waitForPress() y rotate().



BasicMotor3.java : En este caso el resultado sera el mismo que en el programa anterior pero utilizaremos el metodo waitForPress() y rotateTo(). Tambien utilizaremos el metodo resetTachoCount() para resetear a 0 la odometria del motor y que en cada pulsacion se mueva 45º.


Presentación

Hola, este es el blog de la asignatura de Robotica del grupo nxj08 formado por:

Ignacio Moreno García
Iván Escobar Gutiérrez

Aqui mostraremos nuestros avances con el robot asi como nuestros problemas y dudas.
Para empezar aqui tenemos el montaje inicial del robot.