Este apartado de la práctica sin duda es el que más nos ha costado, debido a la cantidad de cuentas matemáticas que hemos tenido que hacer y perfeccionamiento del código para la perfecta ejecución del sigue pared.
En Toppyto simplemente nos hemos ayudado del sensor de ultrasonidos para mantenerse a una distancia considerable de la pared, la misión de este ejercicio es que Toppyto siga una pared todo el tiempo siendo esto un método muy eficaz para salir de un laberinto.
Y que mejor entrada en esta ocasión que demostrarlo con un par de videos, en ellos observamos como perfectamente Toppyto sigue la pared.
Ese fue una primera grabación de Toppyto en la que iba correctamente por la pared y de un modo muy tranquilo.. en cambio en el siguiente video convertimos a Toppyto en un autentico F1 por la rapidez con la que recorría la pared así que mirar mirar por favor el resultado :D
martes, 22 de febrero de 2011
viernes, 18 de febrero de 2011
Calibración del sensor de ultrasonidos
Volvemos de nuevo con Toppyto en esta ocasión al apartado que nos vamos a referir es el apartado más puramente matemático, se trataba de usar el sensor de ultrasonidos como ya lo teníamos montado del apartado anterior simplemente tuvimos que introducir un programita sencillo para que nos mostrara en todo momento la distancia que había de Toppyto a cierto objeto.
Y nos llevamos una grata sorpresa y es que el sensor de ultrasonido de Toppyto es bastante exacto por no decir casi perfecto, ¿cómo nos dimos cuenta de esto?
Pues bien pusimos a Toppyto frente a una pared y ayudados de un metro fuimos viendo con las medidas reales del metro la que nos indicaba Toppyto en su pantalla.
Resultó curioso porque Toppyto media en todo momento exactamente lo que era excepto cuando en el metro indicaba 222 - 223 cm que Toppyto no encontraba esa distancia y nos indicaba que estaba a 255 cm. Algo parecido ocurria cuando estaba Toppyto situado a menos de 19-20 cm que la distancia que nos indicaba no era la correcta.
Que sacamos entonces de conclusión de esto:
- Menos de 20-21 cm mide mal
- Más de 222-223 cm se pierde y marca 255 cm
A continuación situamos a Toppyto a 40 cm de la pared y empezamos a hacer giros de 10º en 10º para ver cuando Toppyto dejaba de darnos la distancia correcta, el resultado que nos deparó esto fue que a 45º Toppyto marcó 45 cm en su pantalla y con mayor cantidad de grados Toppyto no mostraba correctamente la distancia que requeria. Por lo que el máximo grado para que los valores fueran correctos era 45º.
A continuacíon muestro la tabla que nos generó Toppyto tras hacer varias mediciones y ver si nos marcaba el valor correcto por pantalla:
DISTANCIA REAL (con el metro) DISTANCIA TOPPYTO (por pantalla)
20 cm 22 cm
30 cm 30 cm
40 cm 40 cm
50 cm 50 cm
60 cm 60 cm
70 cm 70 cm
80 cm 80 cm
90 cm 90 cm
100 cm 100 cm
110 cm 111 cm
120 cm 120 cm
Por lo que podemos dedudir que el error es mínimo y el sensor de Toppyto funciona de manera más que correcta.
- Para nuestra primera operación que resultaba de restar nuestra (Xi - media de X)^2 y así con los datos de nuestras 11 iteraciones nos dió lo siguiente: 0.5454
- Para nuestra segunda operación que resultaba de (Xi - media de X)*(Yi - media de Y) todo esto con nuestras 11 iteraciones nos dió lo siguiente: 4.7727
- Para nuestra tercera operación que resultaba de (Yi - media de Y)* (Xi - media de X) todo esto con nuestras 11 iteraciones nos dió lo siguiente: 4.7727
EN RESUMEN:
Y nos llevamos una grata sorpresa y es que el sensor de ultrasonido de Toppyto es bastante exacto por no decir casi perfecto, ¿cómo nos dimos cuenta de esto?
Pues bien pusimos a Toppyto frente a una pared y ayudados de un metro fuimos viendo con las medidas reales del metro la que nos indicaba Toppyto en su pantalla.
Resultó curioso porque Toppyto media en todo momento exactamente lo que era excepto cuando en el metro indicaba 222 - 223 cm que Toppyto no encontraba esa distancia y nos indicaba que estaba a 255 cm. Algo parecido ocurria cuando estaba Toppyto situado a menos de 19-20 cm que la distancia que nos indicaba no era la correcta.
Que sacamos entonces de conclusión de esto:
- Menos de 20-21 cm mide mal
- Más de 222-223 cm se pierde y marca 255 cm
A continuación situamos a Toppyto a 40 cm de la pared y empezamos a hacer giros de 10º en 10º para ver cuando Toppyto dejaba de darnos la distancia correcta, el resultado que nos deparó esto fue que a 45º Toppyto marcó 45 cm en su pantalla y con mayor cantidad de grados Toppyto no mostraba correctamente la distancia que requeria. Por lo que el máximo grado para que los valores fueran correctos era 45º.
A continuacíon muestro la tabla que nos generó Toppyto tras hacer varias mediciones y ver si nos marcaba el valor correcto por pantalla:
DISTANCIA REAL (con el metro) DISTANCIA TOPPYTO (por pantalla)
20 cm 22 cm
30 cm 30 cm
40 cm 40 cm
50 cm 50 cm
60 cm 60 cm
70 cm 70 cm
80 cm 80 cm
90 cm 90 cm
100 cm 100 cm
110 cm 111 cm
120 cm 120 cm
Por lo que podemos dedudir que el error es mínimo y el sensor de Toppyto funciona de manera más que correcta.
A continuación vamos a proceder a calcular la incertidumbre tanto en el eje x como en el eje y, para ello colocamos a Toppyto a distintas distancias de la pared (ver tabla anterior), tras hacer los calculos vemos que la incertidumbre en el eje x es practicamente nula ya que para esas medidas siempre da la distancia correcta.
Para ver la incertidumbre en el eje y colocamos a Toppyto en un sitio fijo al suelo y usando el carton de la caja de nuestro robot, lo movemos de tal manera que vemos cual el objeto es percibido por el robot.
EJE X EJE Y
20 cm 6.5 cm
30 cm 7 cm
40 cm 7.5 cm
50 cm 8 cm
60 cm 8.5 cm
70 cm 11.5 cm
80 cm 15 cm
90 cm 22.5 cm
100 cm 29 cm
110 cm 39.5 cm
120 cm 55 cm
Tras llevar a cabo las operaciones que nos aparece en la guía de la práctica para lo cual en algunos casos necesitabamos la media de X, nos resultó lo siguiente:
- Para nuestra primera operación que resultaba de restar nuestra (Xi - media de X)^2 y así con los datos de nuestras 11 iteraciones nos dió lo siguiente: 0.5454
- Para nuestra segunda operación que resultaba de (Xi - media de X)*(Yi - media de Y) todo esto con nuestras 11 iteraciones nos dió lo siguiente: 4.7727
- Para nuestra tercera operación que resultaba de (Yi - media de Y)* (Xi - media de X) todo esto con nuestras 11 iteraciones nos dió lo siguiente: 4.7727
- Para nuestra cuarta operación que resultaba de restar nuestra (Yi - media de Y)^2 y así con los datos de nuestras 11 iteraciones nos dió lo siguiente: 597.59
EN RESUMEN:
( 0.4545 4.7727 )
( 4.7727 597.59 )
Esta sería nuestra matriz general, si nos pusieramos a particularizar en cada caso tendríamos 11 matrices distintas:
1ª Matriz (20cm):
(4 13)
(13 42.5)
2ª Matriz (30cm):
(0 0)
(0 49)
3ª Matriz (40cm):
(0 0)
(0 56.25)
4ª Matriz (50cm):
(0 0)
(0 64)
5ª Matriz (60cm):
(0 0)
(0 72.25)
6ª Matriz (70cm):
(0 0)
(0 132.25)
7ª Matriz (80cm):
(0 0)
(0 225)
8ª Matriz (90cm):
(0 0)
(0 506.25)
9ª Matriz (100cm):
(0 0)
(0 841)
10ª Matriz (110cm):
(1 39.5)
(39.5 1560.25)
11ª Matriz (120cm):
(0 0)
(0 3025)
Ya no se choca!! :D
Hola, hola, aqui estamos de nuevo con Toppyto si recordamos la última entrada Toppyto parecía loco y se chocaba con las paredes ya que usabamos el sensor de choque.
En esta ocasión vamos a usar el sensor de ultrasonidos:
Es el mismo mecanismo que cuando Toppyto hacia el choque pero en esta ocasión sin llegar a colisionar ya que con el sensor de ultrasonido es capaz de detectar si tiene algún objeto enfrente o sin embargo puede seguir sin curso sin temor a chocarse.
A continuación acompaño esta entrada con un par de videos que grabamos de Toppyto, para ello introdujimos a Toppyto en una especie de laberinto que se encuentra en los laboratorios, es el mismo laberinto que en la entrada de choque pero si observamos como Toppyto se choca con las paredes en esta ocasión evita el choque todo el tiempo ya que detecta la pared que tiene al frente.
En esta ocasión vamos a usar el sensor de ultrasonidos:
Este sensor lo hemos puesto en la parte superior de Toppyto, en un primer momento lo colocamos de la misma manera del manual siguiendo las instrucciones pero tras varias comprobaciones observamos que hacia falta que estuviera más alto para tener mayor visión.
Este sensor se encarga de enviar ultrasonidos, estos ultrasonidos se reflejan en la pared y le vuelven a llegar a nuestro sensor en tal caso de que no reciba señal Toppyto nos marcará 255.
En la anterior imagen se observa perfectamente el sensor, como se ve tiene dos agujeros por uno envia la señal y por otro la recibe.
En esta ocasión Toppyto debe seguir el mecanismo que usamos el de choque pero sin chocarse, es decir, Toppyto se mueve libremente por el espacio yendo hacia el frente pero cuando el sensor de ultrasonidos detecta una pared o un objeto con una distancia inferior a 20 cm retrocede un poco gira cierto número de grados aleatorios (para ello usamos el random) y sigue su camino al frente.Es el mismo mecanismo que cuando Toppyto hacia el choque pero en esta ocasión sin llegar a colisionar ya que con el sensor de ultrasonido es capaz de detectar si tiene algún objeto enfrente o sin embargo puede seguir sin curso sin temor a chocarse.
A continuación acompaño esta entrada con un par de videos que grabamos de Toppyto, para ello introdujimos a Toppyto en una especie de laberinto que se encuentra en los laboratorios, es el mismo laberinto que en la entrada de choque pero si observamos como Toppyto se choca con las paredes en esta ocasión evita el choque todo el tiempo ya que detecta la pared que tiene al frente.
Parece que se ha vuelto loooocooooo!!
En esta ocasión trastearemos con el sensor de contacto que le hemos añadido a Toppyo en su parte delantera (donde en anteriores entradas observamos que pusimos el sensor de luz).
¿En que consiste este apartado? En que Toppyto deambule por su entorno todo el tiempo hacia adelante hasta que se encuentre frontalmente y se choque con algo, una vez se ha chocado Toppyto retrocederá un poco girara un número de grados totalmente al azar y seguira con su marcha hacia adelante y así sucesivamente.
El número de grados que Toppyto gira una vez ha retrocedido tras chocarse con algo es totalmente al azar para ello usamos la función random para que aleatoriamente eligiera un número de grados.
Como la vida misma es mejor ver que explicar.. para ello incorporamos dos videos en los cuales se ve como Toppyto constantemente va hacia adelante hasta chocarse con un obstaculo y cada vez que esto pasa y tras retroceder gira un determinado número de grados totalmente al azar como podemos ver.
Y para terminar un video que teníamos en la galeria y aunque no sea perfecto (ver el final), ponemos para que puedan ver un video más de Toppyto en acción y como se vuelve loco chocando con las paredes :D
¿En que consiste este apartado? En que Toppyto deambule por su entorno todo el tiempo hacia adelante hasta que se encuentre frontalmente y se choque con algo, una vez se ha chocado Toppyto retrocederá un poco girara un número de grados totalmente al azar y seguira con su marcha hacia adelante y así sucesivamente.
El número de grados que Toppyto gira una vez ha retrocedido tras chocarse con algo es totalmente al azar para ello usamos la función random para que aleatoriamente eligiera un número de grados.
Como la vida misma es mejor ver que explicar.. para ello incorporamos dos videos en los cuales se ve como Toppyto constantemente va hacia adelante hasta chocarse con un obstaculo y cada vez que esto pasa y tras retroceder gira un determinado número de grados totalmente al azar como podemos ver.
Y para terminar un video que teníamos en la galeria y aunque no sea perfecto (ver el final), ponemos para que puedan ver un video más de Toppyto en acción y como se vuelve loco chocando con las paredes :D
Toppyto detecta sonido!!
Seguimos con los sensores de Toppyto, ahora vamos a juguetear con el sensor de sonido que le hemos incorporado a Toppyto en un lateral.
La misión de este apardado consiste en que cada vez que demos una palmada Toppyto ande y cuando demos otra palmada Toppyto se pare... a priori parece sencillo pero nos llevo bastante tiempo hacerlo con total efectividad ya que lo hemos adaptado para cualquier tipo de ambiente porque no es igual ponerlo en tu casa que no hay ruido a ponerlo por ejemplo en clase de prácticas..
Por lo tanto tuvimos que incorporar al código de Toppyto una función que nos hiciera 5 medidas del sonido ambiente y sacara la media de estos.. por lo tanto el siguiente paso es dejar actuar a Toppyto. Aqui presentamos una foto de Toppyto con el sensor de choque y el sensor de ultrasonidos, incorporados al igual que el sensor de sonido:
En primer lugar Toppyto esta parado y no se va a mover hasta que alguien de una palmada, una vez Toppyto oye la palmada va hacia adelante y no va a parar hasta que oiga otra y así sucesivamente.. Para que a nuestro queridos seguidores les quede más clara la actuación de Toppyto ofrecemos un video a continuación:
La misión de este apardado consiste en que cada vez que demos una palmada Toppyto ande y cuando demos otra palmada Toppyto se pare... a priori parece sencillo pero nos llevo bastante tiempo hacerlo con total efectividad ya que lo hemos adaptado para cualquier tipo de ambiente porque no es igual ponerlo en tu casa que no hay ruido a ponerlo por ejemplo en clase de prácticas..
Por lo tanto tuvimos que incorporar al código de Toppyto una función que nos hiciera 5 medidas del sonido ambiente y sacara la media de estos.. por lo tanto el siguiente paso es dejar actuar a Toppyto. Aqui presentamos una foto de Toppyto con el sensor de choque y el sensor de ultrasonidos, incorporados al igual que el sensor de sonido:
En primer lugar Toppyto esta parado y no se va a mover hasta que alguien de una palmada, una vez Toppyto oye la palmada va hacia adelante y no va a parar hasta que oiga otra y así sucesivamente.. Para que a nuestro queridos seguidores les quede más clara la actuación de Toppyto ofrecemos un video a continuación:
Y hasta aquí nuestra prueba de Toppyto de dar palmadas.. en posteriores entradas mostraremos el sensor de choque..
Comenzando la práctica 2
Ya estamos de vuelta con Toppyto!! Hemos tardado un poco en aparecer debido al trabajo que nos está dando Toppyto pero aquí estamos dispuestos a contar todo.
En esta segunda práctica la función principal es introducirnos al mundo de los sensores que rodea a Toppyto, sensores de contacto, de ultrasonidos, de luz, de ultrasonidos...
Pero sin dar más vueltas vamos a empezar por el apartado primero, este primer apartado trata de mostrarnos por la pantalla de Toppyto cierta información, esa información es la siguiente:
- Nombre del robot
En esta segunda práctica la función principal es introducirnos al mundo de los sensores que rodea a Toppyto, sensores de contacto, de ultrasonidos, de luz, de ultrasonidos...
Pero sin dar más vueltas vamos a empezar por el apartado primero, este primer apartado trata de mostrarnos por la pantalla de Toppyto cierta información, esa información es la siguiente:
- Nombre del robot
- Valor del sensor de ultrasonidos en mm
- Valor del sensor de luz
- Tensión de la bateria en Milivoltios
- Memoria disponible en bytes
Este primer apartado es bastante sencillo simplemente hay que introducir las llamadas a cada sensor para que nos muestra por pantalla los resultados. Así que sin más dilacion añadimos a Toppyto dos nuevos sensores a su estructura el de luz y el de ultrasonidos por lo que su imagen cambio un poco...
Para que nos muestre de forma adecuada el sensor de luz sus valores (su %), en primer lugar Toppyto nos pide que calibremos el sensor pidiendonos que primero calibremos el negro y posteriormente el blanco:
Le ponemos debajo del sensor de luz algo negro, en este caso un archivador negro:
Posteriormente cuando nos pide calibrar el blanco, hemos puesto debajo del sensor una hoja blanca:
Y así una vez efectuado esto por pantalla se nos muestran todos los valores que se nos piden en este apartado y así concluye este primer apartado. Acontinuación más.. sigan atentos :D
martes, 8 de febrero de 2011
Cálculo de la matriz de covarancia
Una vez más y para facilitar al usuario y hacerlo de modo más claro como este punto de la práctica es algo extenso lo separamos en una entrada nueva.
Para este apartado de la práctica volvimos a usar el lápiz con el que Toppyto nos dibujo el cuadrado, pero en esta ocasión programamos un programa pequeñito para que en esta ocasión nuestro robot recorriera en línea recta 100 centímetros.
Una vez hecho esto pintamos en un papel una línea recta perfecta de 1 metro, a continuación pusimos a Toppyto sobre tal línea para ver si conseguía seguir la línea perfectamente.. los resultados no fueron así se desviaba poco a poco y no lograba llegar 100% al final de nuestra línea.
La anterior acción de recorrer con Toppyto ese metro la hicimos 10 veces lo que nos llevo a crear una serie de recopilaciones tanto en X como en Y. Teniendo en cuenta que la X es lo que se desviaba respecto a la recta original (la hecha por nosotros), la Y en cambio era la distancia recorrida por Toppyto hasta pararse.
A continuación muestro los datos que recogimos:
EJE Y: EJE X:
Prueba 1 - 98 cm Prueba 1 - 1.49 cm
Prueba 2 - 97.7 cm Prueba 2 - 2.65 cm
Prueba 3 - 98.8 cm Prueba 3 - 1.8 cm
Prueba 4 - 99.2 cm Prueba 4 - 1.25 cm
Prueba 5 - 98.6 cm Prueba 5 - 1.26 cm
Prueba 6 - 98.4 cm Prueba 6 - 1.3 cm
Prueba 7 - 99 cm Prueba 7 - 1.5 cm
Prueba 8 - 99.1 cm Prueba 8 - 2.445 cm
Prueba 9 - 99.1 cm Prueba 9 - 2.1 cm
Prueba 10 - 98.8 cm Prueba 10 - 1.6 cm
MEDIA TOTAL Y = 98.67 cm
MEDIA TOTAL X = 1.7395 cm
Tras llevar a cabo las operaciones que nos aparece en la guía de la práctica para lo cual en algunos casos necesitabamos la media tanto de X como de Y, nos resultó lo siguiente:
- Para nuestra primera operación que resultaba de restar nuestra (Xi - media de X)^2 y así con los datos de nuestras 10 iteraciones nos dió lo siguiente: 0.22621225
- Para nuestra segunda operación que resultaba de (Xi - media de X)*(Yi - media de Y) todo esto con nuestras 10 iteraciones nos dió lo siguiente: -0.045415
- Para nuestra tercera operación que resultaba de (Yi - media de Y)* (Xi - media de X) todo esto con nuestras 10 iteraciones nos dió lo siguiente: -0.045415
- Para nuestra cuarta operación que resultaba de restar nuestra (Yi - media de Y)^2 y así con los datos de nuestras 10 iteraciones nos dió lo siguiente: 0.2261
EN RESUMEN:
Para este apartado de la práctica volvimos a usar el lápiz con el que Toppyto nos dibujo el cuadrado, pero en esta ocasión programamos un programa pequeñito para que en esta ocasión nuestro robot recorriera en línea recta 100 centímetros.
Una vez hecho esto pintamos en un papel una línea recta perfecta de 1 metro, a continuación pusimos a Toppyto sobre tal línea para ver si conseguía seguir la línea perfectamente.. los resultados no fueron así se desviaba poco a poco y no lograba llegar 100% al final de nuestra línea.
La anterior acción de recorrer con Toppyto ese metro la hicimos 10 veces lo que nos llevo a crear una serie de recopilaciones tanto en X como en Y. Teniendo en cuenta que la X es lo que se desviaba respecto a la recta original (la hecha por nosotros), la Y en cambio era la distancia recorrida por Toppyto hasta pararse.
A continuación muestro los datos que recogimos:
EJE Y: EJE X:
Prueba 1 - 98 cm Prueba 1 - 1.49 cm
Prueba 2 - 97.7 cm Prueba 2 - 2.65 cm
Prueba 3 - 98.8 cm Prueba 3 - 1.8 cm
Prueba 4 - 99.2 cm Prueba 4 - 1.25 cm
Prueba 5 - 98.6 cm Prueba 5 - 1.26 cm
Prueba 6 - 98.4 cm Prueba 6 - 1.3 cm
Prueba 7 - 99 cm Prueba 7 - 1.5 cm
Prueba 8 - 99.1 cm Prueba 8 - 2.445 cm
Prueba 9 - 99.1 cm Prueba 9 - 2.1 cm
Prueba 10 - 98.8 cm Prueba 10 - 1.6 cm
MEDIA TOTAL Y = 98.67 cm
MEDIA TOTAL X = 1.7395 cm
Tras llevar a cabo las operaciones que nos aparece en la guía de la práctica para lo cual en algunos casos necesitabamos la media tanto de X como de Y, nos resultó lo siguiente:
- Para nuestra primera operación que resultaba de restar nuestra (Xi - media de X)^2 y así con los datos de nuestras 10 iteraciones nos dió lo siguiente: 0.22621225
- Para nuestra segunda operación que resultaba de (Xi - media de X)*(Yi - media de Y) todo esto con nuestras 10 iteraciones nos dió lo siguiente: -0.045415
- Para nuestra tercera operación que resultaba de (Yi - media de Y)* (Xi - media de X) todo esto con nuestras 10 iteraciones nos dió lo siguiente: -0.045415
- Para nuestra cuarta operación que resultaba de restar nuestra (Yi - media de Y)^2 y así con los datos de nuestras 10 iteraciones nos dió lo siguiente: 0.2261
EN RESUMEN:
( 0.22621225 -0.0045415 )
( -0.045415 0.2261 )
Falta por añadir que seria una matriz de 2x2, pero aqui en el blog no aparece modo alguno de señalizarlos correctamente por lo que en la posicion 1x1 = 0.22621225. En la posición 1x2 = -0.045415.
En la posición 2x1 = -0.045415. En la posición 2x2 = 0.2261. Teniendo en cuenta que siempre tenemos en cuenta en una matriz las filas por las columnas (filas x columnas).
Y para tener bien completita nuestra reciente entrada de Toppyto un par de imagenes desde dónde Toppyto empezó a dibujar sus líneas rectas como vemos todas parten desde el mismo punto pero las llegadas distan bastante unas de otras:
Aqui se observa bastante bien como nuestra línea roja era nuestra línea perfecta la cual debía seguir Toppyto, al lado se aprecian las distintas rectas en lápiz que efectuó Toppyto.
A continuación un video muy cortito de como colocabamos todo el tiempo a Toppyto con total precisión en su punto exacto para que siempre partiera del mismo punto, para ello teniamos pintadas en el papel la posición inicial de las ruedas y del lápiz.
Y como no, un vídeo de la recta efectuada por Toppyto desde su inicio hasta su final incluida la preparación previa para cada recorrido, como se observa traza una línea prácticamente perfecta:
Pues esto a sido todo amigos aquí concluimos nuestra serie de entradas de blog para la práctica porque ya hemos efectuado todos los apartados. Esperamos que les haya gustado, prometemos seguir con la siguiente práctica mejorar día a día y poder mostrar nuestros procesos con Toppyto.
lunes, 7 de febrero de 2011
Videos de Toppyto dibujando el cuadrado
A continuación una nueva entrada exclusiva para mostrar como Toppyto dibujo en papel un montón de cuadrados, en ambos videos sólo se ve como pinta un cuadrado pero repetimos esta misma acción varias veces, el resultado: un monton de cuadros en el papel que tenñia Toppyto bajo sus pies.
sábado, 5 de febrero de 2011
Lo prometido es deuda aquí tenemos el cuadrado
Este apartado hay que admitir que lo que era el código era bastante sencillo ya que en la práctica se nos adjuntaban los comandos necesarios como el travel o el steer.
Nuestra complicación principalmente vino por querer perfeccionar demasiado el cuadrado perfecto, ya que fuimos calculando a ojo y probando la medida real entre un eje de la rueda y el otro. En un primer momento el cuadrado no era perfecto, luego tras probar varias medidas o se nos abría mucho o se nos cerraba.. perdimos una gran cantidad de tiempo en ello pero al final conseguimos que hiciera un cuadrado prácticamente perfecto empezando y acabando en el mismo punto.
Una vez hecho esto sobre el suelo y bien programado, nos decidimos por realizar que lo pintara en el suelo, para ser más exactos sobre este papel (juntado con varios folios):
Algo ocurría en Toppyto en suelo firme nos realizaba un cuadrado perfecto y a priori parecía que en los folios no, por lo tanto fijamos aún más los folios al suelo.. aún por todo ello Toppyto no volvía exactamente a su lugar de origen tal como lo habíamos programado, la respuesta está clara las ruedas en el papel no deslizan de igual manera que lo hacían en el suelo. Aun así el margen de error que daba era menos de 1 cm casi no se notaba.
Por ello ya afrontamos la prueba definitiva ponerle un lápiz y que nos mostrara sus resultados de manera más gráfica. A priori desde fuera puede parecer sencillo (me refiero a lo de poner el lápiz) pero no ha sido así, ha habido que intentarlo con lápices de distintos tamaños para ver como lo podiamos enganchar a Toppyto ver dónde y cómo engancharlo
PRIMER MODELO (no usado para dibujar):
Tras un montón de repeticiones Toppyto dejó plasmado en el papel sus trayectorias seguidas y pudimos observar que apenas se alejaba un cm de su trayectoria inicial para saber esto era sencillo simplemente hacer una marca dónde empezaba Toppyto y ver dónde acababa, las marcas de colocación eran necesarias para así colocarlo siempre en la misma posición.
Si alguien está interesado en observar las trayectorias más detenidamente estaremos encantados de poder mostrarselas en persona y que vea como realmente Toppyto dejo huella :).
Y esto ha sido todo amigos, ha sido un nuevo placer volver a contar nuestras aventuras con Toppyto.
Nuestra complicación principalmente vino por querer perfeccionar demasiado el cuadrado perfecto, ya que fuimos calculando a ojo y probando la medida real entre un eje de la rueda y el otro. En un primer momento el cuadrado no era perfecto, luego tras probar varias medidas o se nos abría mucho o se nos cerraba.. perdimos una gran cantidad de tiempo en ello pero al final conseguimos que hiciera un cuadrado prácticamente perfecto empezando y acabando en el mismo punto.
Una vez hecho esto sobre el suelo y bien programado, nos decidimos por realizar que lo pintara en el suelo, para ser más exactos sobre este papel (juntado con varios folios):
Para que no se moviera el papel grande del suelo lo más mínimo, está bien sujeto con celo. Pero por si acaso y antes de poner el lápiz, Toppy hizo su primera rueda de reconocimiento, hay una imagen también de ello justo en el momento antes de salir:
Algo ocurría en Toppyto en suelo firme nos realizaba un cuadrado perfecto y a priori parecía que en los folios no, por lo tanto fijamos aún más los folios al suelo.. aún por todo ello Toppyto no volvía exactamente a su lugar de origen tal como lo habíamos programado, la respuesta está clara las ruedas en el papel no deslizan de igual manera que lo hacían en el suelo. Aun así el margen de error que daba era menos de 1 cm casi no se notaba.
Por ello ya afrontamos la prueba definitiva ponerle un lápiz y que nos mostrara sus resultados de manera más gráfica. A priori desde fuera puede parecer sencillo (me refiero a lo de poner el lápiz) pero no ha sido así, ha habido que intentarlo con lápices de distintos tamaños para ver como lo podiamos enganchar a Toppyto ver dónde y cómo engancharlo
PRIMER MODELO (no usado para dibujar):
Este primer modelo no nos daba una aproximación buena ya que el lápiz se encontraba bastante lejos del eje central por lo que la apreciación no era buena y hubo un segundo modelo no todavía perfecto.
SEGUNDO MODELO (no usado para dibujar finalmente):
TERCER MODELO (el usado para la realización del cuadrado):
Modelo perfecto, nunca mejor dicho a la tercera fue la definitiva.
El lápiz está enganchado a la pieza delantera de Toppyto ya que necesitabamos asujetarlo a algo sólido y sobre todo que dibujara de manera recta, como se aprecia está prácticamente situado debajo del eje central por lo que al dibujar el cuadrado es casi perfecto. La única pega es que al hacer los giros de 90º hace un semiarco debido a que no está el lápiz exactamente en el centro del eje pero la aproximación es máxima.
Anteriormente dos fotos más de cómo quedaba sujeto el lápiz a Toppyto, usando el método más tradicional celo y más celo sujetando el lápiz al eje central de Toppyto. Y bueno a continuación, cómo Toppyto y su nuevo accesorio el lápiz estaban encima del papel dispuestos a dibujar:
Si alguien está interesado en observar las trayectorias más detenidamente estaremos encantados de poder mostrarselas en persona y que vea como realmente Toppyto dejo huella :).
Y esto ha sido todo amigos, ha sido un nuevo placer volver a contar nuestras aventuras con Toppyto.
Vaya semana Toppyto..
Esta semana ha sido la semana más importante con Toppyto, si la semana pasada contabamos que los motores de Toppyto echaron a andar mediante una serie de vueltas con ciertos grados o dar vueltas sin parar hasta pulsar un boton.. Toppyto nos a mostrado también que es capaz de recrear un cuadrado en su casi total perfección pero eso lo hablaremos más adelante en una entrada sólo dedicada al cuadrado y su dibujo en papel.
Continuamos con la práctica, el siguiente objetivo era hacer un programa que nos mostrara en la pantalla de Toppyto los grados que giraba el motor usando para ello un mecanismo como este:
Y lo enganchabamos a Toppyto de esta manera para visualizar en la pantalla los grados que rotaba el motor, para ello girabamos la "palanca" del diseño este que puesto antes y segun la movieramos nos daba el número de grados siempre empezando desde la posicion 0º.
Para mostrarlo de manera más gráfica indicamos la primera posición que serían 0º y la "palanca" colocada de esa manera:
Ahora moveremos la "palanca" hacia arriba, contrario a las agujas del reloj, esto nos mostrara los 90º que forma esta posición.
Ahora movemos la "palanca" hacia la izquierda formando según Toppyto 184º (lo que es correcto):
Ahora movemos la "palanca" hacia abajo formando según Toppyto 269º (lo que es correcto):
Y por último movemos la "palanca" hacia arriba-derecha casi volviendo a su estado inicial, pero no del todo por lo que se nos indica Toppyto que tiene ese ángulo 355º:
Y hasta aqui la parte de la práctica de odometría...
La siguiente parte de la práctica era que Toppyto hiciera un cuadrado de 40x40 cm y posteriormente lo mostrara en papel ese recorrido, pero como dije anteriormente ese apartado se merece una entrada exclusiva que se publicará muy pronto :).
Pasado el cuadrado nos pusimos manos a la obra con el apartado de visualización en la pantalla de trayetorias, tenemos que admitir que fue la parte más complicada de realizar y eso que hicimos numerables consultas a los profesores, tras horas de pensamiento del programa, ¡conseguimos que funcionara 100%!
En la pantalla nos tiene que mostrar la X, la Y y el ángulo que llevo en todo momento nuestro robot, partiendo de la base que sale del punto (0,0) y con angulo 0, nos pusimos manos a la obra y dibujamos un eje de coordenadas.
En el código aplicando las fórmula que se nos facilitaba en la práctica, introdujimos el código del cuadrado para que Toppy nos volviera a mostrar nuestro cuadrado pero en esta ocasión nos mostrara en cada momento la posición exacta que llevaba.
En primer lugar el robot avanza 40 cm, por lo que la coordenada X se va incrementando mientras que el ángulo y la coordenada Y se mantiene en 0.
En segundo lugar Toppy giraba 90º hacia la derecha y avanzaba 40 cm, si nos ubicamos en nuestro eje de coordenada vemos como en este momento se incrementa la Y hasta 40 cm (aparece negativo porque va hacia abajo Toppy), nuestro ángulo sería 90º que es lo que ha girado:
En la imagen vemos como X se mantiene, al igual que los 90º pero en esta ocasión Y incrementa hasta los 40 cm que debe de avanzar.
En tercer lugar Toppy vuelve a girar 90º y debe avanzar 40 cm, en este momento el ángulo debe incrementar los 90º que ha girado más lo que ya tenía que eran 90º por lo que tenemos 180º, como nos movemos en la misma coordenada Y esta no se mueve pero nuestra coordenada X si debe ir restando según avanza ya que en esta ocasión nos movemos en el eje X pero para atrás (vuelve lo andado):
Y en último lugar Toppyto vuelve a su lugar de origen girando 90º una vez más por lo que una vez tenemos la X a 0 del paso anterior, ahora pasa a restar lo andado la coordenada Y que también se pone a 0 al final lo que nos indica que Toppyto ha llegado a la posición inicial la (0,0), el ángulo que se nos muestra es la suma del anterior 180º+90º=270º. Por lo que nuestra visualización funciona a la perfección lo que vuelvo a repetir nos llevo varias horas y comeduras de cabeza, aunque la recompensa final fue gratificante.
Y hasta aquí este apartado y hasta aquí la entrada de hoy, sólo queda por enseñaros el cuadrado de Toppy y unas mediciones de error que el pobre Toppy causo cada vez que le decíamos que andara 1 metro en línea recta. Hasta otra amigos!! :)
Acompaño el final con una foto de la pantalla de Toppyto con todos los programas metidos en su interior que hemos llevado a cabo en la práctica 1.
PD: no se hará esperar muchos la maravillosa entrada del cuadrado así que mantenganse en contacto con nuestro blog constantemente
Suscribirse a:
Entradas (Atom)