0
$\begingroup$

Can someone suggest an AI approach to moving blocks, one at a time, assuming control of an robotic arm, to get from the initial state on the left to the final state on right, preferably using goal stack planning.

actions

  • Pickup() — to pick up a block from table only

  • Putdown — to putdown a block on table only

  • Unstack — unstack a block from another block

  • Stack — stack a block on another clear block only

property functions

  • On(x,y)

  • Above(x,y)

  • Table(x)

  • Clear(x)

enter image description here

$\endgroup$
  • 1
    $\begingroup$ What is your question? $\endgroup$ – Oliver Mason Nov 30 '18 at 9:26
  • $\begingroup$ Welcome to SE:AI! (Apologies as I must provisionally close this, pending clarification of the actual question. Feel free to edit and submit for reopening.) $\endgroup$ – DukeZhou Nov 30 '18 at 18:35
  • $\begingroup$ @OliverMason, the idea is to come up with an algorithm to traverse from initial state to final state which is mentioned prior to the planning phase. The algorithm should be able to find different possible ways to transition from the initial state to the final state with given constraints. $\endgroup$ – Preetham Oct 20 at 22:07
0
$\begingroup$

Blocksworld is fundamental problem for AI because it has to do with planning. It explains very well what Artificial Intelligence is, and what not. Solving the blocksworld problem means to find a path through the gametree of all possible states. This idea can be generalized to many other problems for example robotics control, biped walking, selfdriving cars and so on.

According to the problem definition, only four possible actions are available: pickup, pickdown, unstack and stack. The mainstream solution would be to take these four actions without further modifications and solve the problem with an internal stack. A stack is used for iterating over the state space. It allows to memorize which state was already seen and is similar to a normal breadth-first search. Stack based planning means only how the algorithm works internally, but it's always a bruteforce search in the state-space.

For performance reasons, it make sense to present a more elaborated solution for the blocksworld problem which needs less iterations in the game-tree. The idea is to extend the number of possible actions. Possible helper actions might be: “setkeyframeFBD”, “setkeyframeACE”, “taketwoblocks”, “putdowntwoblocks”. These super-actions are expressing new kind of problem solving techniques. They are ordering the state space according to human heuristics. It's similar to a macro-action which provides subgoals in the overall task. With the newly introduced actions, the solver will find a solution much faster. The idea is to overcome the limitations of the original blocksworld description and see the task from the perspective of computer animation. That means, a script is started which animates the robot arm. The rules for the script are chosen freely.

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ it would be great if you can cite some resources $\endgroup$ – Preetham Oct 20 at 22:08
0
$\begingroup$

Your best bet would be to formulate the problem in PDDL, which should be fairly easy, and then use a standard planner to generate a plan from that description.

In PDDL you describe the properties and the possible actions, the start state and the goal state, and the planner will then take this to produce a sequence of actions that leads from the start state to the goal state. There is a planner available on-line that you can use.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.