The IsisWorld simulator is available to researchers for building and evaluating problem solving and language learning systems with everyday problems that take place in a kitchen. Some documentation and arguments about theoretical underpinnings aimed toward the metareasoning community are available in this paper:
IsisWorld is a highly-customizable open source kitchen simulator written in the Python language. IsisWorld was created to as evaluation platform for evaluating and observing the behavior of commonsense reasoning systems. It has a number of unique features:
If you download and execute the standalone simulator binaries, you can control the agent using both the commands above or by a client using XML-RPC on port 8001. Note, this will not allow you to make changes to the simulator world, just the client. Standalone binaries are available for most platforms:
What’s new in the Iris World simulator?
k = kitchen(width=10, height=7)
0.3.1 2010–04–09 -fixed bug accepting text
The simulator was brought to life through the work of:
We also thank the following people for contributing bug reports and fixes:
By default, the simulator is paused, and no physical simulation can take place. The simulator can be unpaused and stepped, advanced incrementally, or run continuously. The character in the simulator, “Ralph”, can be controlled directly in the simulator using key commands or separately through a programmed agent (a client). The environment and agent are temporally decoupled. In this section, we review the agent-environment interface in terms of a perceptual frame and primitive actions.
The agent can sense the environment, which returns a perceptual frame containing:
All names of the items in the character’s field of vision; each item’s center’s relative x and y coordinates on the frustum: the 2D plane representing the projected 3D region of the character’s field of vision 1; the item’s area of the entire field of vision; the item’s distance; and the item’s global orientation.
The character’s global position (x,y,z) and orientation (h,p,r) in the environment as well as the relative positions and orientations of the character’s head and limbs with respect to its body; and the names of the items within each of the character’s hands (if any).
A buffer representing all of the text entered by the user since the last time the sense command was executed.
The character has a set of primitive actions that can be taken:
turn_left-stop: Starts and stops rotating the character’s body along the vertical Z axis: subtracts from the heading.
turn_right-stop: Starts and stops rotating the character’s body along the vertical Z axis: adds to the heading.
move_forward-stop: Starts and stops moving the character’s location in the environment forward (in the direction the body faces) a fixed amount, and changes the model to an animated walking character.
move_backward-stop: Starts and stops moving the character’s location in the environment backward a fixed amount, and changes the model to an animated walking character.
look_left-stop: Starts and stops rotating the character’s neck, with respect to the body, along the horizontal X axis: adds to the neck’s pitch. (
look-actions are bounded to prevent uncanny exorcist-style head rotations.)
look_right-stop: Starts and stops rotating the character’s neck, with respect to the body, along the horizontal X axis: subtracts from the neck’s pitch.
look_up-stop: Starts and stops rotating the character’s neck, with respect to the body, along the vertical Z axis: adds to the neck’s heading.
look_down-stop: Starts and stops rotating the character’s neck, with respect to the body, along the vertical Z axis: subtracts from the neck’s heading.
say(statement): Presents the a
statementstring above the character’s head, which gradually disappears over the course of two seconds as the simulator steps forward in time.
pick_up_with_right_hand(object): Attaches the
objectto the character’s right hand, so long as the object is graspable and the actor has a free right hand.
pick_up_with_left_hand(object): Attaches the
objectto the character’s left hand, so long as the object is graspable and the actor has a free left hand.
drop_from_right_hand: Releases any object from the character’s right hand.
drop_from_left_hand: Releases any object from the character’s left hand.
Some actions like
turn_left are interval actions and have separate
-stop commands. Once started, they continue until they are stopped. Other actions are atomic and instantaneous, like
A simple implementation of an agent in Python:
1 2 3 4 5 6 7 8 9 10
Running the simulator from source requires the Panda3D SDK and Python 2.4–2.6. To install the Panda3D SDK, you should first try installing a precompiled binary. You can obtain these from:
If you need to compile Panda3D SDK from source, download the source and extract the tarball. The easiest way to compile is:
tar xvfz panda3d-1.7.0.tgz cd panda3d-1.7.0 python makepanda/makepanda.py --everything
To verify that your installation works, try running one of the Sample / Tutorial files and seeing if a 3D visual appears.
Here is a list of problems
This problem is probably that you are using a different version of Python than what Panda3D has configured itself for.
To determine which version of Python you are using, type:
Panda3D configures itself for Python 2.5. Somewhere in that directory is a “Panda3D.pth” file.
Which should output “/installed/path/Panda3D/lib”, indicating the path to the required Panda3d libraries. But you now have to copy
Panda3D.pth to the
site-packages directory of default version of Python you are using. To see all paths to installed python (recognized by your $PATH variable), type:
The first path output by this command, e.g., if it outputs
is the python executed by default when you type “python”. That’s the one who needs to have the
Panda3D.pth file. Copy the file to the Python’s
site-packages folder, e.g.,
sudo cp /path/to/old/python/2.5/site-packages/Panda3D.pth /another/path/2.6/lib/python2.6/site-packages/
Notice the “2.6/bin/python” from the output of
which changed to “2.6/lib/python2.6/site-packages/”
System: Ubuntu 9.04 or 9.10, 32 or 64 bit.
Thanks to Sarina Canelake for this information.
To develop the simulator on Athena, you should compile Panda3D from source.
(0,0) denotes the center of the field of vision, where x and y are values in (–1,1) ↩