To subsume a task is to supercede it with a higher priority task. When we talk about subsumption in robotic programming we are describing the process by which one behavior subsumes, or over-rides an other based on an explicit priority that we have defined. The Brooksian ideal subsumption architecture does not require that any behavior know anything about any other behavior. A robot programmed in this manner responds reflexively to its environment using simple behaviors.
What this also means is that new behaviors can be added to a robot without changing any other behavior. This makes enhancing a robot’s programming very simple. That would choose a new direction and duration when complete. But we don’t want to get stuck up against a wall or table leg, so we add a behavior that looks at a bumper and if we run into something will make our robot back up a d turn away. We want the bumper behavior to have priority over the wander behavior, so it will subsume that behavior and take over the control of the wheel motors to get itself away from the wall. As the bumper behavior has a higher priority than the wander behavior we can be assured that our little BoE-Bot can get away from obstacles that block its path.
Further, if wander had set a vary long duration on the last direction that it wanted to go, when bumper was done, the wander behavior would take up the control again, continuing on its merry way as if nothing had happened. Because, many simply react to the robot’s environment and each behavior is independent, we can build up a set of behaviors whose interactions with each other are not programmed, and we will begin to see combinations of behaviors unforeseen. This is called emergent behavior because we didn’t plan it. It came due to the interaction with its environment. When emergent behavior is allowed to occur our robots appear to take on a life of their own and stop acting as if they just do the same thing over and over again.
No comments:
Post a Comment