jump to navigation

Ladrones vrs Policias Ladrones: aporte final (Fase beta) Junio 25, 2008

Posted by ppedrodom in Ladrones Vs Policias Ladrones.
Tags: , , , , , , , , , ,
1 comment so far

Este proyecto consiste en poder aplicar los conceptos de Estigmergia y a su vez ACO -Optimización por colonia de hormigas-.  La idea original del proyecto es propuesta por Pedro Domingo para el curso de Inteligencia Artificial.

Esta idea consiste en contar con un área delimitada, siendo unas barreras que no pueden pasar los robots.  Originalmente existen 2 robots en el área, una es el policía y el otro es el ladrón, contando ambos con características diferentes y cambiables, para poder hacer mas interesante la interacción entre estos.  Con las características que pueden contar los robots son: Distancia de Visión, Velocidad, Velocidad de evasión, Distancia de captura, entre otras.

La lógica del proyecto es simple, consiste en poner a correr 2 hilos (Procesos Concurrentes), uno para el policía y otro para el ladrón, donde la lógica tanto del policía y el ladrón es sencilla, ya que estos van a estar recorriendo el área permitida y van a estar buscando movimiento, por medio del sensor ultrasónico, donde el policía iniciara una persecución si encontrase movimiento y el ladrón iniciara una evasión si ve que lo persiguen.

Video-Resumen

Lo que falta

El sensor ultrasónico tiene la gran limitación de que no pueden usar dos al mismo tiempo, es decir, o busca el policía o busca el ladrón, pero no pueden buscar al mismo tiempo, por lo que no representa la realidad al 100%.  También el terreno en donde se encuentran interactuando los poicias y ladrones, es un área solamente, es decir, no representa calles ni avenidas, ni callejones sin salida, por lo que no representa una realidad.

Propuesta de mejoras

Seria bueno implementar el uso de el sensor de sonido para el ladron, en lugar de el ultrasonico, asi de esta manera no habrian conflictos de turnarse el sensor ultrasónico, el mecanismo de este debe cosistir en que el policía emita un sonido (Simulando una sirena) y en base a este sonido el ladrón decida por donde huira.  Este tipo de logica es mas realista, ya que en en una persecución el ladrón huye en base al escuchar las sirenas y los policias andan siguiendolo segun por donde vean algo sospechoso.

Para el manejo de zonas, se puede dividir el área en distintos colores, representado así el color amarillo la zona 2 y el morado la zona 4 y así sucesivamente, de esta manera podemos implementar mas robots policías, ya que con este tipo de zonas, los policías se pueden comunicar indicándose en que zona andan buscando, y cuando uno encuentre al ladrón, le puede indicar al otro policía que se dirija a una zona determinada y puedan anticiparse al ladrón.

Dificultades del desarrollo

Durante el desarrollo del proyecto (Fase beta), se tuvieron varios inconvenientes por las baterías, ya que la carga de las baterías es indispensable para el funcionamiento de los sensores, y unas baterías cargadas en comparación con unas descargadas van a dar variaciones en los resultados.  Es por eso el debido cuidado y observación de estandarizar un cierto uso de carga para no tener problema con los sensores, en especial el de luz y los motores.

La luz del ambiente es un factor indispensable, ya que según la iluminación de una habitación en comparación de otra, puede que los resultados varíen en la toma de los datos en el sensor de luz, por lo que se recomienda de que se utilice luz blanca y que se encuentre exactamente en el punto central del escenario a utilizar.

Código

El código esta liberado y lo pueden encontrar aca en el siguiente link.

Descubriendo el Laberinto Junio 19, 2008

Posted by Javier Gramajo in Descubriendo el Laberinto.
add a comment

ROBOT SCRABBLE Junio 17, 2008

Posted by robotlego in Robot Scrabble.
Tags: ,
add a comment

Nace como una propuesta por Carlos López, Mario Fuentes y Oscar Hernández para el proyecto de Inteligencia Artificial 1, básicamente este proyecto consiste en implementar lo que Estigmergia. (Colaboración a través del medio físico en sistemas descentralizados)

Para satisfacer la definición de estigmergia se implementaron tres robot Lego, a los cuales los identificamos como NXT1, NXT2, NXT3, controlados a través de un bluethoot y una computadora en la que implemento un lenguaje de desarrollo como lo es JAVA (NetsBeans 6.0.1).

Se definió una matriz de 3 X 4 (3 Columnas x 4 Filas), en la que en cada inicio de columna se coloco un cubo, en las caras del cubo o en su área superficial se pego una silaba en este caso (PA, MA, SA), cada robot (NXT1, NXT2, NXT3) debía de ir a la inicio de columna a recoger un cubo moviéndose a través de dichas filas y columnas con el fin de depositar dicho cubo en otra posición en este caso el inicio de cada fila, una vez llegaba un robot al inicio de fila este le indicaba al siguiente robot que era su turno de ir a traer la siguiente silaba y así sucesivamente con el fin de formar palabras por ejemplo:

Se le indicaba a NXT1 que fuera a la posición (1Fila,2 Columna) a traer la silaba MA, a continuación este hacia el recorrido a través del camino pintado de color verde y de fondo blanco, el robot iniciaba su recorrido a través del camino guiado por su sensor de luz que reconocía patrones de color constantemente para no perder su dirección. Este robot llegaba a la posición indicada sujetando con sus tenazas el cubo con la silaba impresa, a continuación regresaba buscando una posición de destino en este caso la (2 Fila, 1 Columna) y depositando ahi dicho cubo, después regresaba a su posición inicial y le indica al Siguiente Robot (NXT2) que era su turno este se movía hacia la (1,3) y regresaba a la (3,1) formando

Palabras.

Origen

Silabas a recoger

NXT1 -> PA

NXT2 -> MA

Destino

Palabra formada

MAPA

Origen

Silabas a recoger

NXT1 -> SA

NXT3 -> PA

Destino

Palabra formada

PASA

Recomendaciones

Mantener las baterillas con la mayor carga posible ya que el desgaste de carga provoca cierto retraso en el movimiento del robot.

Definir bien los focos de luz, ya que por las variaciones de intensidad de la luz dificulta la lectura de los patrones de colores se dificulta.

http://usacrobotscrabble.wordpress.com/

Descubriendo el laberinto: Resumen (Aporte final) Junio 16, 2008

Posted by harsoon in Descubriendo el Laberinto.
Tags: , , , , , , , ,
5 comments

Este proyecto consiste en enviar a los robots NXT a un laberinto para encontrar una salida, luego si uno de los robots la encuentra, debe comunicar la ruta más corta a la misma al resto de los robots.

Para conseguir esto se emplea el principio de la Estigmergia, que consiste en crear cambios en el ambiente de un modo u otro para indicar a los otros elementos del sistema mensajes que les guíen hacia un fin común, en este caso la salida. Colaboración sin mensajes directos entre los individuos, como lo visto en las hormigas o en otros insectos.

Para dar solución al problema, lo primero fue planificar un modo en que los robots pudiesen caminar por algún (más…)

Tutorial, Como instalar y correr Java con un robot Lego Mindstorms NXT usando Eclipse (metodo alternativo) Junio 15, 2008

Posted by harsoon in Descubriendo el Laberinto, Información general, Libros.
Tags: , , , , ,
54 comments

Aquí explicaremos como instalar y configurar todo el software necesario para desarrollar programas en java para el robot Lego Mindstorms NXT usando Lejos y software enbebido en el robot, es un metodo que permite colocar pequeños programas java adentro de la memoria del mismo y así proveer más independencia al mismo.

Se incluyen también referencias a sitios de interés y dos libros muy buenos para trabajar con los NXT.

Java es mucho más poderoso y flexible que el software provisto por Lego, NXT-G. Usaremos el editor Eclipse para escribir el código Java y bajarlo al NXT. Esta combinación permite escribir el software y convenientemente probarlo rápido en el NXT. Claro que hay muchos otros editores de Java, pero esta es una opción bastante viable. El tutorial es para plataforma Windows con la compilación LeJOS una alternativa muy buena para iniciarse en este campo, ya que no es dificil de instalar y las funciones son bastante intuitivas como se verá en el programa de ejemplo, seguiremos los siguientes 5 pasos:

1. Instalar Java en la computadora

2. Instalar el driver Lego NXT USB en la computadora.

3. Instalar Lejos en la computadora y en el Robot NXT

4. Instalar y configurar Eclipse en la computadora

5. Escribir, bajar y correr un programa “HolaMundo”

(más…)

Recolector de Basura Junio 8, 2008

Posted by robotlego in Recolector de Basura.
Tags: , , , ,
add a comment

Durante Los días que se tubo el robot lego, nuestro grupo hizo pruebas de los diferentes sensores con los que cuenta el robot, esto con el objetivo de ver cual era la mejor forma de poder resolver el problema de la recolección de basura. Se llegaron a las siguientes conclusiones:

  • La basura debe de ser grande y de forma plana para que con el sensor ultrasonico pueda detectarlo
  • El sensor de tacto puede servir para el propósito ya el robot al topar con la ‘basura’ cerrará la pinza agarrandolo, creemos que es la mejor forma de que tome los objetos en este momento
  • La basura debe tener cierta forma y peso para que el robot sea capaz de agarrarlo y arrastrarlo, es mejor que sea redondo y poco pesado.
  • El sensor de luz nos servirá para poder recorrer el área donde se encontrará la basura.
  • Es dificil poderle trazar una ruta al robot ya que cuando camina se tuerce, con esto hay problemas ya que no siempre será exacto cuando avance y puede dar problemas a la hora de recorrer un camino dado en un algoritmo.
  • Hasta el momento no vemos la necesidad de un mapa con lineas guías para recolectar basura ya que solo se necesita delimitar el área donde estará la basura y el robot caminara para todos lados buscando la basura.