Robot Control

applet home
help contents
quickstart
general help
tutorials
 

 

Contents

Overview

Menu Help

The Control Panel

Modifying the Controllers

Built-in Functions

DTD Definition


Overview

The purpose of the Robot Control applet is to simulate a simple autonomous agent in a world, and to modify the agent's controllers to produce novel behaviour. To assist the user in this task, the controller code is represented as CILog statements, which is structured as defined in the book "Computational Intelligence: A Logical Approach" by Poole, Mackworth, and Goebel. The environment, high layer, and middle layer controllers are implemented in this way, and can be modified by changing their Prolog code.

Menu Help

The File Menu

The File Menu has options to create graphs and load files, as well as quitting the program. The application version of the applet can also save files.

The Edit Menu

The Edit menu allows the user to view a text representation of the robot world, and to inspect and modify the Prolog code of the controllers and environment.

The Options Menu

The Options Menu allows the user to modify the appearance of the applet, and to change the properties of the robot and the location plans.

The Control Panel

The Control Panel allows the user to create graphs(maps) manually, and gives the user options to run the robot and manage the canvas.

Modifying the Controllers

To modify the controllers, go to the Edit Menu and choose which controller you need to modify (high layer, medium layer, or environment). This will display a text area that shows the current controller code. This code is in Prolog. To add a new Prolog statement, just type it into the window. The user should be careful to input correct code into the controller. The applet will warn the user if the code is invalid, but sometimes errors (especially logical errors) can only be pinpointed when the robot is run.

Click "Update" to load the new controller code, or click "Default" to reset the controller code to the original. Clicking "Cancel" invalidates any modifications the user did since the last update.

Built-in Functions

There are some built-in functions that can be used in the controllers without being defined.

DTD Definition

<!DOCTYPE ROBOTXML [
          <!ELEMENT ROBOTXML ( WORLD, HIGHCONTROLLER, MIDDLECONTROLLER, ENVIRONMENT ) >
                    <!ATTLIST ROBOTXML VERSION NMTOKEN #REQUIRED >
          <!ELEMENT WORLD ( LOCATION+, WALL+, ROBOT, PLAN ) >
          <!ELEMENT LOCATION ( NAME, PROPERTY ) >    
          <!ELEMENT NAME ( #PCDATA ) >
          <!ELEMENT PROPERTY ( #PCDATA ) >
          <!ELEMENT WALL ( START, END ) >
          <!ELEMENT START ( #PCDATA ) >
          <!ELEMENT END ( #PCDATA ) >
          <!ELEMENT ROBOT ( PROPERTY, DIRECTION ) >                  
          <!ELEMENT DIRECTION ( #PCDATA ) >
          <!ELEMENT PLAN ( LOC+ ) >     
          <!ELEMENT LOC ( #PCDATA ) >
          <!ELEMENT HIGHCONTROLLER ( LogicProgram ) >
          <!ELEMENT LogicProgram ( #PCDATA ) >
          <!ELEMENT ENVIRONMENT ( LogicProgram ) >
          <!ELEMENT MIDDLECONTROLLER ( LogicProgram ) >
]>