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
1
$\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.

$\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.