martes, 28 de abril de 2009

Ogre, el Tanque de Lego.... :S

Que tal... alguna vez se imaginaron un robot de tanque de guerra con todo y camara, y que una vez que localiza su objetivo dispara cientos de balas??... Bueno, pues aquí les traígo un video sensacional, en donde se puede observar a detalle este robot en forma de tanque, y claro, hace falta mencionar que pertenece a la familia de Lego NXT. 

Como lo ven.....


lunes, 20 de abril de 2009

Planificación

La planificación es otra forma de representar Estados, Acciones y Objetivos.

  • Los estados y objetivos se describen con un conjunto de formulas lógicas.
  • Las acciones se describen con formulas lógicas en términos de sus precondiciones y sus efectos.
A continuación les mostraré un pequeño problema que será resuelto mediante Planificación. El problema se basa en "El mundo de Shakey".


Descripción de los estados:

  • Box(X) : Dice que X es una caja
  • Switch(X): X es un switch
  • Room(X) : X es un cuarto
  • Shakey -> Constante
  • On(X) : el switch X esta prendido
  • Off(X) : el switch X esta apagado
  • At(X,Y) : X es una caja o shakey, Y es un cuarto.
  • OnTop(X,Y) : X es una caja o shakey, Y es otra caja
  • Free(X) : X es una caja o shakey
: X esta libre si -> no tiene nada encima,
no esta cargando nada
no esta subido en nada

Estado Inicial:

- Box(Caja 1), Box(Caja 2), Box(Caja 3), Box(Caja 4).
- Switch(Apagador 1), Switch(Apagador 2), Switch(Apagador 3), Switch(Apagador 4).
- Room(Cuarto 1), Room(Cuarto 2), Room(Cuarto 3), Room(Cuarto 4), Room(Pasillo).
- At(Caja 1, Cuarto 1), At(Caja 2, Cuarto 1), At(Caja 3, Cuarto 1), At(Caja 4, Cuarto 1).
- Off(Apagador 1), Off(Apagador 2), Off(Apagador 3), Off(Apagador 4).
- At(Shakey, Cuarto 3).
- Free(Shakey).

Las actividades que se deben de hacer:
  • moverse de un cuarto a otro.
  • tomar y dejar cajas.
  • apilar cajas.
  • subirse y bajarse de las cajas.
  • apagar y encender la luz.
Ahora tenemos que transformar las actividades en términos de Descripción, Precondicion y efectos (lo que sera cierto y lo que sera falso).

Acciones
{descripción, precondiciones,
{lo que será cierto}
{lo que será falso}}

{Salir (Y)
precond{ room(Y), & At(Shakey,Y)}
effect {V{At(Shakey,Pasillo)}
F{at(Shakey,Y)}}

{Entrar (Y)
precond{ At(Shakey,Pasillo) & Room(Y) }
effect {V{At(hakey,Z)}
f{At(Shakey,Pasillo)}}

{Subirse (Y)
precond{ Box(Y) & At(Y,Z) & At(shakey,Z) & Free(Y) & Room(Z) & Free(Shakey)}
efect {v{OnTop(Shakey,Y)}
f{Free(Y) & Free(Shakey)}}

lunes, 13 de abril de 2009

Agentes y Ambientes

A continuación les traígo diferentes tipos de agentes que existen, los que vamos a tratar hoy son básicamente dos:
  • Agentes Reflexivos.
  • Agentes Deliberativos.
Cabe mencionar, que gracias a estos tipos de agentes, se pueden resolver ciertos problemas, pero lo importante es saber que problemas se pueden resolver con ellos.

Antes que nada, voy a dar una breve definición de lo que son estos tipos de Agentes.

Agentes Reflexivos: Reaccionan de acuerdo a una condición y acción.


Agentes Deliberativos: Se hace algún tipo de razonamiento para lograr su objetivo.


Serie de problemas que se resolverian con algun tipo de agente mencionado anteriormente.

1.- Agente Deliberativo:
  • Salir de un laberinto.
  • Explorar habitaciones y reconocer los objetos encontrados dentro de éstas.
  • Jugar ajedrez.
  • Jugar dominó (en parejas).
  • Cuidar a una persona mayor en su casa.
  • Asistir a un ejecutivo en el manejo de su agenda.
  • Asistir a un ejecutivo en la preparación de sus viajes de negocios.
Estos tipos de problemas requieren de un agente Deliberativo, ya que se necesita un mayor razonamiento para lograr sus objetivos.

2.- Agente Deliberativo y Reflexivo:
  • Controlar el tráfico de aviones en el aeropuerto.
  • Monitorear el tráfico de automóviles en la ciudad de Guadalajara.
  • Monitorear las condiciones del bosque de la primavera para evitar y/o responder ante incendios forestales.
En estos tipos de problemas se necesita un agente Deliberativo y Reflexivo, ya que se necesita de un razonamiento para poder lograr su objetivo, pero también se requiere actuar conforme a una condición y acción para tomar un decisión en dado caso que se requiera.

miércoles, 1 de abril de 2009

Programando los Legos NXT.....

Que tal, ahora les traígo unas simples tareas hechas por el robot "Wall-e".....

Al estar analizando la manera en la que debíamos de programar el robot para que realizara estas tarea nos dimos cuenta de si se necesitaba un mayor razonamiento.

Seguir una Línea negra:


Objetivo:

Programar el robot para que utilizando el sensor luz pueda encontrar y seguir una trayectoria marcada con una línea negra pintada sobre una superficie plana. La trayectoria puede ser recta, con giros en varios ángulos, zig-zag, etc.


A continuación se muestra un pseudo-código sobre esta tarea.

video:




Ubicar y encontrar una fuente de sonido:

Objetivo:

Programa el robot para que utilizando el sensor de sonido (micrófono) pueda ubicar y llegar hasta una fuente de sonido que si bien está fija, funcione de manera episódica. La fuente de sonido puede encontrarse en cualquier dirección con respecto de la dirección inicial del robot y dentro de un área de 15 m2.


A continuación se muestra un pseudo-código sobre esta tarea.


video:





Rodear un objeto:

Objetivo:

Programar el robot para que utilizando el sensor de toque pueda encontrar y rodear un objeto siguiendo su contorno. El objeto puede tener cualquier forma (rectangular como una caja o cilíndrica como un bote), el objeto será suficientemente pesado como para que el robot no lo mueva, dentro de límites razonables. El objeto podrá estar en cualquier posición con respecto del robot dentro de un área de 15 m2.


A continuación se muestra un pseudo-código sobre esta tarea.

video:



Salir de laberinto:

Objetivo:

Programar el robot para que utilizando el sensor ultrasónico pueda localizar obstáculos y girar para evitarlos. El robot también se debe programar para que utilizando estas habilidades (localizar obstáculos y girar) pueda salir de un laberinto de ángulos rectos.


A continuación se muestra un pseudo-código sobre esta tarea.



video:




Para bajar los códigos.