Diferencia entre revisiones de «Grupo Simulador»

De Proyecto Butiá
Saltar a: navegación, buscar
Línea 1: Línea 1:
=='''Integrantes:'''==
+
=='''Integrantes'''==
 
* Fiorella Farinasso
 
* Fiorella Farinasso
 
* Pablo Silveira
 
* Pablo Silveira
Línea 5: Línea 5:
  
  
=='''Introducción:'''==
+
=='''Introducción'''==
 
Nuestro grupo eligió, como proyecto final del curso, la creación de un simulador para el robot Butiá. Considerando muy importante el desarrollo del mismo.
 
Nuestro grupo eligió, como proyecto final del curso, la creación de un simulador para el robot Butiá. Considerando muy importante el desarrollo del mismo.
  
  
=='''Motivación:'''==
+
=='''Motivación'''==
 
Dada la poca cantidad de robots construidos, creemos muy necesaria la existencia de una aplicación que permita simular el comportamiento de los mismos. Por ejemplo, por cada liceo hay un sólo robot, entonces los alumnos deben esperar a tener el robot presente para poder probar sus códigos, lo que lleva a un desaprovechamiento del tiempo.
 
Dada la poca cantidad de robots construidos, creemos muy necesaria la existencia de una aplicación que permita simular el comportamiento de los mismos. Por ejemplo, por cada liceo hay un sólo robot, entonces los alumnos deben esperar a tener el robot presente para poder probar sus códigos, lo que lleva a un desaprovechamiento del tiempo.
 
Contar con dicha herramienta no sólo permitirá una previsualización del comportamiento escrito, sino que también posibilitará el testeo del mismo de una forma más simple que teniendo el robot enchufado.
 
Contar con dicha herramienta no sólo permitirá una previsualización del comportamiento escrito, sino que también posibilitará el testeo del mismo de una forma más simple que teniendo el robot enchufado.
Línea 16: Línea 16:
  
  
=='''Documentación:'''==
+
=='''Objetivos'''==
 +
* Objetivos generales:
 +
*Capturar las invocaciones a funciones del robot y simular sus resultados
 +
*Mostrar gráficamente las reacciones del robot simulado
 +
 
 +
* Objetivos específicos:
 +
* Definir el lenguaje y las herramientas gráficas a utilizar
 +
* Crear una nueva paleta para la actividad Tortugarte
 +
* Simular las funciones básicas
 +
*Adelante
 +
*Atrás
 +
*Derecha
 +
*Izquierda
 +
* Simular sensores
 +
*Escala de Grises
 +
*Distancia
 +
* Simular funciones avanzadas
 +
*Cambiar velocidad
 +
*Girar X grados
 +
 
 +
 
 +
=='''Documentación'''==
  
 
La idea de este plugin para Tortugarte es que sin la necesidad de tener completo el Butiá (XO + plataforma) se pueda visualizar en pantalla lo que haría físicamente nuestro código.
 
La idea de este plugin para Tortugarte es que sin la necesidad de tener completo el Butiá (XO + plataforma) se pueda visualizar en pantalla lo que haría físicamente nuestro código.
Línea 25: Línea 46:
 
A partir de esta decisión tuvimos que familiarizarnos aún más con la Butiá API (Interfaz de programación de aplicaciones - Application Programming Interface, es un conjunto de funciones residentes en bibliotecas, generalmente dinámicas, que permiten que una aplicación corra bajo un determinado sistema operativo.Expone operaciones de alto nivel para obtener valores de sensores o ejecutar acciones de los actuadores)(link a la api) y con las funciones de TurtleGraphics que encontramos en la wiki de sugarlabs ([http://wiki.sugarlabs.org/go/Activities/Turtle_Art#How_to_write_a_plugin link a las funciones])
 
A partir de esta decisión tuvimos que familiarizarnos aún más con la Butiá API (Interfaz de programación de aplicaciones - Application Programming Interface, es un conjunto de funciones residentes en bibliotecas, generalmente dinámicas, que permiten que una aplicación corra bajo un determinado sistema operativo.Expone operaciones de alto nivel para obtener valores de sensores o ejecutar acciones de los actuadores)(link a la api) y con las funciones de TurtleGraphics que encontramos en la wiki de sugarlabs ([http://wiki.sugarlabs.org/go/Activities/Turtle_Art#How_to_write_a_plugin link a las funciones])
  
=='''Objetivos: (hasta ahora)'''==
 
 
* Crear la nueva paleta
 
 
* Simular las funciones básicas
 
 
*Adelante
 
*Atrás<br />
 
*Derecha<br />
 
*Izquierda<br />
 
 
* Simular sensores<br />
 
*Escala de Grises<br />
 
*Distancia<br />
 
 
* Setear velocidad
 
  
 
=='''Problemas que fuimos resolviendo y herramientas que utilizamos:'''==
 
=='''Problemas que fuimos resolviendo y herramientas que utilizamos:'''==

Revisión del 06:17 14 dic 2011

Integrantes

  • Fiorella Farinasso
  • Pablo Silveira
  • Ricardo Rodríguez


Introducción

Nuestro grupo eligió, como proyecto final del curso, la creación de un simulador para el robot Butiá. Considerando muy importante el desarrollo del mismo.


Motivación

Dada la poca cantidad de robots construidos, creemos muy necesaria la existencia de una aplicación que permita simular el comportamiento de los mismos. Por ejemplo, por cada liceo hay un sólo robot, entonces los alumnos deben esperar a tener el robot presente para poder probar sus códigos, lo que lleva a un desaprovechamiento del tiempo. Contar con dicha herramienta no sólo permitirá una previsualización del comportamiento escrito, sino que también posibilitará el testeo del mismo de una forma más simple que teniendo el robot enchufado. Por lo tanto, el simulador no sólo es aplicable a los estudiantes de liceos que quieran seguir programando en sus casas, sino que también lo podrá utilizar cualquier persona que desee una forma más sencilla de probar lo que acaba de programar. No obstante, es necesario aclarar que las reacciones del robot frente a su ambiente seguramente tendrán una diferencia con las del robot simulado, por lo que antes de estar seguros que un algoritmo funciona es necesario probarlo con un Butiá real.


Objetivos

* Objetivos generales:

  • Capturar las invocaciones a funciones del robot y simular sus resultados
  • Mostrar gráficamente las reacciones del robot simulado

* Objetivos específicos: * Definir el lenguaje y las herramientas gráficas a utilizar * Crear una nueva paleta para la actividad Tortugarte * Simular las funciones básicas

  • Adelante
  • Atrás
  • Derecha
  • Izquierda

* Simular sensores

  • Escala de Grises
  • Distancia

* Simular funciones avanzadas

  • Cambiar velocidad
  • Girar X grados


Documentación

La idea de este plugin para Tortugarte es que sin la necesidad de tener completo el Butiá (XO + plataforma) se pueda visualizar en pantalla lo que haría físicamente nuestro código. Para ello primero debemos dibujar el escenario utilizando los comandos básicos del programa y luego por medio de esta nueva paleta probarlo-.

En un principio evaluamos la posibilidad de usar las librerias ODE o con OpenRave pero éste ultimo ya tenía un IDE creado, por lo que no serviría si se quiere hacer uno diferente, que consuma menos recursos y que sea más amigable. Luego con ODE vimos que igualmente habrían dificultades, además era mucho más facil bajar un plugin para un programa con el que ya están familiarizados que una nueva aplicación.

A partir de esta decisión tuvimos que familiarizarnos aún más con la Butiá API (Interfaz de programación de aplicaciones - Application Programming Interface, es un conjunto de funciones residentes en bibliotecas, generalmente dinámicas, que permiten que una aplicación corra bajo un determinado sistema operativo.Expone operaciones de alto nivel para obtener valores de sensores o ejecutar acciones de los actuadores)(link a la api) y con las funciones de TurtleGraphics que encontramos en la wiki de sugarlabs (link a las funciones)


Problemas que fuimos resolviendo y herramientas que utilizamos:

  • A la hora de simular las funciones básicas el primer problema que encontramos era que cuando avanzaba la tortuga no la mostraba en pantalla. Por lo que tuvimos que utilizar la función de "actualizar mundo" y como ya estaba implementada en el plugin del Sumo butiá (sumtia) fue solo adaptarla.


secuencia de código
  • Para simular el sensor de escala de grises tuvimos que utilizar la función "get_pixel" la cual te devuelve el valor de color sobre el cual se encuentra la tortuga. Acá nos encontramos con que el valor era tomado de el centro de la tortuga, por lo que si emulamos el comportamiento que tendría en el caso de querer seguir una línea que dibuje un cuadrado, quedaría girando al llegar al vértice. De aquí tuvimos que ver como calcular la posición de la cabeza para poder ubicar al emulador del sensor en esta extremidad (al igual que lo haríamos en el Butiá- se suelen ubicar los sensores de Gris en la parte delantera del mismo). Acá hay una primer prueba de la simulación del seguidor de líneas.