Altaira's execution engine is responsible for obtaining sensor inputs, enabling and firing the rules to be described in section 3.3, maintaining the map and other data structures, and providing motor outputs.
Figure 4. shows a screen dump of the execution engine's interface. Most of the window area is devoted to the display of a tile-based spatial database referred to as the map. Each tile in the map corresponds to a square area in the robot's environment (in the VPC, this is a road course constructed from LEGO tiles) and represents the information which has been obtained regarding that area. This may include information regarding the tile itself (type and orientation) as well as extra information such as the direction the robot was headed when it last left the tile. In the figure, all but two of the tiles are shown in a uniform grey color, reflecting the fact that they have not yet been visited. Of the two that have been visited, one has been completely explored and identified as a curve; two tape marks have been identified on the other. At any given time, a single tile is regarded as the current tile; this tile is surrounded by a blue border in the display. The current tile frequently corresponds to the tile currently being navigated by the robot, though, as will be seen in Section 4.3, this is not necessarily the case.
The execution engine's window also shows the values reported by the five sensor inputs from the robot, information regarding the direction currently being travelled by the robot, and the navigation and two motor outputs from the current rule. In the example, a situation is shown in which the three center sensors are all over tape, while the outboard sensors are not. The robot's direction is forward, and both motors are driving forward.
Finally, the execution engine shows
information regarding the current mode of operation and the status of
the link connecting the computer executing an Altaira program to the
robot, and provides the user with GO,
STEP , and STOP buttons to provide execution control.
Rules take the conventional form of a number of inputs which must
be matched for a rule to be enabled for firing, and a number of
outputs which are asserted if the rule is fired. A typical rule is
shown in
Figure 5,
a screen dump from Altaira's rule editor (this
particular rule is one that will be enabled when the current state of
the execution engine is as shown in
Figure 4).
3.3 Rules and the Ruleset