The original STRIPS program was designed to control Shakey the robot. Although Shakey was never actually built to handle the situation below, the STRIPS planner was built to handle the following scenario.
Consider the following version of Shakey's world. In this world there are four rooms that open onto a corridor (all labeled in red). Each room consists of three locations - middle, wall, and door- all labeled in blue. The corridor consists of four locations - the four doors. Each room contains a light switch (in green) on the corresponding wall. Furthermore, there are four boxes (in green) currently in room 4. Shakey himself (in purple) is in the middle of room 2.
Shakey is able to move from location to location, push moveable objects, climb on and off of climbable objects, and turn light switches on and off. In more detail, these actions are:
In a file called "actions.txt" define the six actions defined above.
Each action definition must use the following XML like syntax.
In Session 26 we looked at a STRIPS example for loading airplanes with cargo. Below is an example of taking the action we saw in class and converting it to this XML format.
In a file called "startingState.txt" define the starting state of the world described in the diagram above tying it to the predicates you used in your actions from part one. [Since it is unclear, all of the lights begin in the off state].
This file should contain no more than one predicate per line. You may use blank lines to help you organize your thoughts.
For example, the startingState for our airport example might look like:
In a file called "goalState.txt" define the goal state of the world described above where the goal is to turn on the light in Room3.
For example, the goalState for our airport example might look like:
In order to help you understand if the three files you just created actually work AND work together, I have created a basic STRIPS evaluation tool. This tool confirms that your three files are in the correct format and that you have created a set of actions that both allow a valid plan to be created AND avoid the creation of invalid plans. [For example, Shakey shouldn't be able to climb on a box and then push that box].
To use this checker you should:
If everything matches up then you should see a webpage with a bunch of details but it will end with:
You SHOULD get full credit if you see this message.
If you have any problems you will see a message that will HOPEFULLY tell you why your files do not yet fit the assignment description. For example, if I make a mistake and allow Shakey to Go when he is on a box I will see this message:
If you get a message like this you should fix the files that are incorrect and then REPEAT steps 1 and 2 listed above.
NOTE: This is a homegrown system and the error detection/messages aren't perfect. For example, if you have a syntax problem in your actions or startingState file it is possible that this won't be detected during syntax check but will show up during plan check. Look at your errors carefully and talk to me if you have questions or see odd results.
Also, there is the chance that your code may be correct and my system flags it. If you believe this is the case please email me.