Blocks World Home Page

 
 

Abstract

Blocks world problem is one of the primitive problems of AI. The Blocks program serves as a tool for explaining the Robotic applications of AI. The Blocks world is a micro world representation of the Robot's world. The various actions that are involved are:-
 

  1. Grasping and Releasing the object (GRASP, UN-GRASP).
  2. Placing the Object at some position(PUT-AT, PUT-IN).
  3. Make space for an Object (MAKE-SPACE).
  4. Move an Object or Hand (MOVE-OBJECT, MOVE-HAND).

Any movement of any Block can be obtained by calling the above mentioned functions in some order. The blocks.l is a LISP program which allows to define these blocks and also define the movement of the blocks.

Return to top.



Quick description on how to run the program:

The student can use this visualizing tool to generate the VRML world out of the output of the blocks program. There are two versions of this tool. One version of it is a perl script which should be run at command line and in the same directory where the output of blocks program resides. The output of the blocks program which comes by running the script command should be saved in a file named "typescript". The perl script takes the output from the file named "typescript" and generates the VRML world into a file named "temp.wrl" . There are also several view points setup to view the results in different directions. The user can switch between the viewpoints by selecting them from the viewpoint menu in the VRML world. The positive directions of the x, y and z axes can be obtained by applying the right hand thumb rule. goes goes to the left. The other version of this tool is a web-based version. In this the user can submit his output on-line and the CGI script takes this output and generates the VRML world in the same way as the perl script does it. After the user submits the output, the user can view the VRML world by clicking on the "Show_VRML" button.

Note: look at the FAQ for more details

Return to top.



Animated version of Blocks World:
 
This image represents the overview of the animated version of blocks world. When the actual VRML world is viewed, the user can choose different viewpoints to see the result of the action of various commands. For eg:
  • put-on 'A 'C
  • put-on 'E 'B

  • and so on.....


 
This picture represents the initial state of the blocks world program 

 
This picture represents the command "put-on 'A 'C". As a result of this command the hand has to "clear-top" "A" in order to "grab" it. So, it grabs "B" and "finds-space" for it. Once "B" has been placed somewhere else, it then "grabs" "A" and then places it on top of "C" 

 
This picture represents the command "put-on 'E 'B". The hand "grabs" "E" and then places it over "B".

Return to top.



Static version of Blocks World:
 
This image represents the initial state of the static version of blocks world. When the actual VRML world is viewed, the user can click on the movie button to view the animation. 

 
When the user clicks on the Movie button, block "A" is placed on top of block "B". This represents the action of the command "put-on 'A 'B".

 
Then moments later, "A" is taken off from the top of "B" and the latter is placed on top of "C", representing the action of command "put-on 'B 'C". 

 

Return to top.



Frequently asked questions about Blocks World:

Return to top.


Resources used for this visualization

Students taking the NDSU CS 724 course do not need to understand the internals of the visualization operation. These links are to help if you are interested in the internals of the visualization process. They also should help if you want to use these visualizations in other environment.


The files used for this system are as follows:

Return to top.