Instead of continuing to study obstacle avoidance, this time we attempt wall following. These problems are very similar in nature, and most of our existing work still applies to wall following. Notably, the targeted environments remain the same, as do the rest of the requirements and interface specification.
Only the behavioral outcome differs. This requires a new case study. Essentially, the animat must first find a wall, and then follow outward and inward corners:
Conceptually, the main difference with obstacle avoidance is the need for context-sensitive action. Indeed, the lack of obstacles means two different things, depending on whether a wall was previously being followed (cases 1 and 4). The mapping from senses to actions is thereby ambiguous, so a reactive system would have to pick the same rule in both these cases. If the animat deterministically selects the "turn" action, it will spin around in uncluttered areas; whereas always selecting the "move forward" action will make the animat lose contact with walls that turn away.
Luckily, nondeterminism is not a problem for RBSs, because we can add an internal symbol to distinguish the context. This "already following wall" symbol allows the system to be aware of the necessary behavior—which makes wall following possible (see Figure 12.1).