A rule has four output types: commands to the robot's two motors, a new tile state, a new robot state, and a command to the execution engine's navigation module to update the current direction and tile.
Each motor may independently be set to proceed forward, reverse, or stop. The motors are not affected by this rule (the three dots denote a 'nochange' for any rule output).
The output tile state's image portrays the new knowledge regarding the tile: it is now known to be some sort of intersection, with exits to both left and right. It is not possible to determine, based on the information obtained to date, whether or not there is an exit going forward (so it may be a three-way intersection entered from the post, or it may be a four-way intersection). It won't be possible to decide between these two types until the robot encounters more tape marks after negotiating the intersection. The new tile state replaces the previous state in the map.
The output robot state establishes a subgoal of negotiating the intersection by making a right turn. As features of the turn are encountered, the robot state will be updated. Rules enabled by this robot state override the robot's default behavior (defined by rules using a 'dontcare' as the robot state input) whenever the right inboard sensor is over black.
With the new behavior installed by this robot state, if the right inboard sensor is over black, the left motor is left on forward while the right motor is on reverse. If all of the sensors are over black, this causes the robot to turn to take the right exit from the intersection; otherwise, it causes it to correct for veering to the left.
It is also possible to use robot states to define subgoals which remain in effect while the robot is traversing several tiles. This use of the robot states will be seen later, in the VPC final problem solution.
The rule's navigation output either determines the direction the robot is considering itself to be heading relative to the direction it was heading when it began considering the current tile, or moves the focus to a new current tile. Commands exist to set the robot's direction to 0 degrees, 90 dgegrees, 180 degrees, or 270 degrees to adjust the direction by veering to the left or right; or to go to a new tile. In this last case, the new tile is determined by the robot's current direction, and the robot's current direction is set to 0 degrees.
While in most cases the current tile is the same tile that the robot is occupying on the road course, this is not necessarily the case. The system is free to change tiles or adjust direction at any time, not just when the robot changes tiles or direction (this will also bee seen in the VPC final problem solution).
This rule's navigation command output declares that the robot is currently
heading straight forward (0 degrees).