This is a collection of behavior hiearchies from simple to complex, with brief descriptions of how each behavior works. As you watch the videos and read the descriptions you may get some ideas that help you figure out the correct hierarchy for the TARGET Robot. When you are DONE exploring the robot hierarchies on this page, click on the "TARGET ROBOT" link at the top of the page. This will return you to the main page with the complicated TARGET behavior that is your main challenge in this module.
To get this robot moving, it needs to have the cruise behavior in the hierarchy. This simple behavior turns on the motors. It doesn't respond to any sensory input, so this hierarchy will cause the robot to move forward indefinitely. When the robot crashes into an object blocking its path, it will keep trying to move forward. Note that this behavior provides equal amounts of power to the two wheels, but the robot does not travel in a straight line. This is due to noise from a variety of sources: the wheels might slip unequal amounts, the power may fluctuate and not be quite equal, the wheels may be slightly misaligned on the robot. This kind of noise is unavoidable in the real world, and so an intelligent agent must be able to cope with it.
This hierarchy represents the simplest form of a robust behavior for this robot. The robot moves forward by default due to the cruise behavior, but when the bump sensors on the front of the robot are triggered, the robot backs up and turns in a random direction. This hierarchy allows the robot to navigate indefinitely in the environment without getting stuck. Does this make the robot a "smart" robot? This is an open ended question with no right answer. It might help to compare this hierarchy to other simple hierarchies, such as AC, or LC. Those hierarchies will become stuck and unable to move quite quickly due to their lack of an escape behavior. Similarly, look at the example LEAC below for an explanation of what happens when the Escape behavior is not at the top of the hierarchy.
The addition of the avoid behavior to the EC hierarchy creates a robot that is an adept navigator. The robot still responds to all bumps that it encounters because Escape is the highest priority behavior and it also gains the ability to move away from obstacles as it approaches them. The infrared emitter/detectors can detect the presence of a surface 15-80cm away from the robot by emitting a pulse of infrared light and detecting the angle that it returns to the sensor. Like all sensors, they are noisy, and so the avoid behavior doesn't try to make use of exact distances. Instead, it uses a comparison between two sensors on either side of the robot to see where there is more open space, and the robot moves in that direction.
The EALC hierarchy produces a robot that exhibits a goal-oriented behavior. The light-seeking behavior causes the robot to move towards the brightest areas of the room. Like the avoid behavior, the light-seeking behavior works by comparing the values of sensors on both sides of the body. If the sensors are different enough, then the robot moves towards the brighter side. The combination of Avoid and Seek Light also produces a very interesting behavior: emergent Wall Following. Though the Wall Following behavior is not in this hierarchy, the robot will occassionaly appear to be executing the Wall Following behavior. This happens when the robot moves towards a light, but is then repelled by the wall. This sensory pattern can occur over and over, resulting in an oscillation between moving towards the light (and wall) and then moving away from the wall. This is a great example of how behaviors in combination with each other and a rich environment can produce novel behaviors that aren't necessarily "programmed" into the system. Note that this combination only works if the order is AL and not LA. It also works with Seek Dark in place of Seek Light.
This hierarchy is an example of what happens when escape is not the highest priority behavior. This robot follows the light gradient above all else, and so runs into an object and is stuck as the light gradient dictates turning into the object. Any other behavior above Escape will produce similar results, including Seek Dark (DEAC) or Wall Follow (WEAC). The simpler hierarchies LEC, WEC, DEC, and AEC, all share similar problems.
This hierarchy can be used as an example of what happens when a behavior is given a lower priority than cruise: it will never get triggered. The reason is that cruise is an always on behavior. Other behaviors, like escape, are activated in response to sensory input (the bump sensor triggers to cause the escape behavior to activate). Cruise doesn't respond to any sensor input, and is therefore always active. If the cruise behavior is reached in the hierarchy, then it will always take control and behavior lower than it will never be reached. The end result is that this hierarchy is identical to EC.