martes, 8 de octubre de 2013

Cubos Planificación



Cubos


Rafael Alcaraz
Montserrat Romero
Luis S. Gatica


1) Formalización:

Estado Inicial:
True: {Cubo(A),Cubo(B),Table(A),On(B,A)}
Estado Objetivo:
True: {Cubo(A),Cubo(B),Table(B),On(A,B)}
Operadores:
Cubo(x) = x es un cubo
Table(x) = x es un cubo y está en la mesa
On(x, y) = x, y son cubos y X está sobre Y
Holding(x) = x es cubo y está en el brazo del robot
Free(x) = x es cubo y no tiene cubos arriba | x es robot y no tiene nada
Acciones:
GrabFromTable(x): Agarrar cubo de la mesa y dejarlo en el brazo de robot
Precondiciones: {Cubo(x) & Table(x) & Free(x) & Free(robot)}
Efecto: TRUE {Holding(x)}
                FALSE {Free(robot) , Table(x)}
GrabFromCube(x): Agarrar cubo que se encuentra arriba de otro cubo y dejarlo en el brazo de robot
Precondiciones: {Cubo(x) & Cubo(y) & On(x, y) & Free(x) & Free(robot)}
Efecto: TRUE {Holding(x) , Free(y)}
                FALSE {Free(robot) , On(x, y) ,Free(x)}
PlaceOnTable(x): Dejar cubo sobre la mesa
Precondiciones: {Cubo(x) & Holding(x)}
Efecto: TRUE {Free(robot) , Table(x) , Free(x)}
                FALSE {Holding(x)}
PlaceOnCube(x,y): Dejar cubo sobre otro cubo
Precondiciones: {Cubo(x) & Holding(x) & Cubo(y) & Free(y)}
Efecto: TRUE {Free(robot) , Free(x) , On(x, y)}
                FALSE {Holding(x) , Free(y)}


2) Plan Construido:

A continuación se muestra el plan construido

 

3) Corrida:

0) Start ->
True{Cubo(A),Cubo(B),Free(Robot),Table(A),On(B,A),Free(B)}
1) GrabFromCube(B) ->
True {Cubo(A),Cubo(B),Holding(B),Table(A),Free(A)}
2) PlaceOnTable(B) ->
True {Cubo(A),Cubo(B),Free(Robot),Table(A),Table(B),Free(A),Free(B)}
3) GrabFromTable(A) ->
True {Cubo(A),Cubo(B)Holding(A),Table(B),Free(B)}
4) PlaceOnCube(A,B) ->
True {Cubo(A),Cubo(B),Free(Robot),Table(B),On(A,B),Free(A)}
5) Finish ->
True{ Cubo(A),Cubo(B),Free(Robot),Table(B),On(A,B),Free(A)}

No hay comentarios:

Publicar un comentario