Allen (robot)

Allen was a robot introduced by Rodney Brooks and his team in the late 1980s, and was their first robot based on subsumption architecture. It had sonar distance and odometry on board, and used an offboard lisp machine to simulate subsumption architecture. It resembled a footstool on wheels.

Allen used three layers of control which are implemented in subsumption architecture. "The lowest layer of control makes sure that the robot does not come into contact with other objects." Due to this layer it could avoid static and dynamic obstacles, but it could not move. It sat in the middle of the room, waiting for obstruction. When the obstruction came, Allen ran away, avoiding collisions as it went. It used following internal representation, and every sonar return represented a repulsive force with, and inverse square drop off in strength. Direction of its move was obtained by sum of the repulsive forces (suitably thresholded). It possessed an additional reflex which halted it whenever it was moving forward, and something was directly in its path.

"The first level layer of control (second layer), when combined with zeroth, imbues the robot with the ability to wander around aimlessly without hitting obstacles." Owing to the second layer, Allen could randomly wander about every 10 seconds. It used simple heuristic, which was coupled with the instinct to shun barriers by vector addition. "The summed vector suppressed the more primitive obstacle avoidance vector, but the obstacle avoidance behaviour still operated, having been subsumed by the new layer, in its account of the lower level's repulsive force. Additionally, the halt reflex of the lower level operated autonomously and unchanged."

The third layer made the robot try to explore. Allen could look for distant places (with its sonars), then tried to reach them. "This layer monitored progress through odometry, generating a desired heading which suppressed the direction desired by the wander layer. The desired heading was then fed into a vector addition with the instinctive obstacle avoidance layer. The physical robot did not therefore remain true to the desires of the upper layer. The upper layer had to watch what happened in the world, through odometry, in order to understand what was really happening in the lower control layers, and send down correction signals."