the error signal based on the rate of change. The I or integral branch integrates (adds up over time) the small offset uncorrected by the other branches and uses this to cancel out offset errors. Each branch has an associated gain: gP, gI, and gD. The complexity of a PID controller is not just three times that of a P controller. Like the P branch, the I and D branches also have an associated gain. To achieve good performance, each gain must be adjusted—we call this tuning the system. The idea is

going on automatically during daylight hours. Adapt the FSM diagram to incorporate this new feature. Exercise 3.15 The Escape behavior diagrammed in Figure 3.6 doesn’t specify what happens if both the left and right bump switches activate simultaneously, as they would if the robot hits an object dead center. What would or should happen in this case? Draw an FSM diagram that incorporates the new functionality. Exercise 3.16 Suppose that the robot executing the Escape task described in Figure 3.6

the Acquire behavior is overburdened; perhaps a second behavior that controls just seating the can in the can receptacle and managing the gripper must be designed. Possibly having the robot just wander around until it can see the homing beacon makes the robot so inefficient that its collection activities cannot keep up with the engineers’ soda drinking habits. It might then be necessary to add an intermediate beacon or two to get the robot back to the collection bin faster. Despite these and

implementation, the system is always at the mercy of the environment. Dark, shiny, or small objects will more often than not cause the detector to generate false negatives. Sunlight or other bright light shining into the detector can saturate the internal components, also leading to false negatives. IR proximity detectors less commonly generate false positive indications. False positives that do occur in a properly working system are generally due to IR noise from unexpected sources. Fluorescent

arbiter. The Task selector can also change the value of the various behavior parameters. The beeper is controlled in a way specified by the particular task. The User Tasks (the tasks programmed by the user) operate in a way identical to the other tasks, except that their specifications are stored in EEPROM, rather than flash memory. The scheduler runs one behavior after another and keeps the sensor values updated. Figure 8.4 This simplified diagram shows the structure of RoCK’s software. The