Using behavior-based controllers, robots are theoretically able to rapidly react to their environment. This is typically done by having several behaviors, that map sensory input to actuator commands, run concurrently on the robot. A hierarchy then determines which behavior has access to the actuators.
If your robot needs to navigate a room, you might implement a trajectory planning behavior and a simple obstacle avoidance behavior with high priority to avoid any accidents. If the robot only has one processor, then both behaviors might run in “parallel” as threads. However, if one of your behaviors entails heavy processing, it might hog all the CPU power and impeach the high-priority behaviors from being executed at the right time. In the example above, this might lead to the robot crashing into obstacles. One solution consists in increasing the processing power although this might be incompatible with the size and cost constraints of your robot.
As an alternative, Woolley et al. propose a “Real-Time Unified Behavior Framework” to cope with real-time constraints in behavior-based systems. The framework allows time-critical reactive behaviors to be run at a desired time and in a periodic fashion. Instead, demanding processing tasks that are not critical to the safe operation of the robot are executed whenever possible. This is done by moving time-critical behaviors out of the Linux environment (which can not execute real-time tasks) and into an environment managed by a real-time scheduler.
Experiments were conducted on a Pioneer P2-AT8 robot equipped with 16 sonars, odometry, a SICK LMS200 laser scanner and a 1294 camera. The robot was programed to follow an orange cone through a hallway while avoiding obstacles. Results show that the robot was able to meet hard real-time constraints while running computationally demanding processes including FastSLAM.