Subsumption Architecture Case 1 Controlling a wheeled robot
Subsumption Architecture • Case 1: Controlling a wheeled robot • Case 2: Controlling a hexapod robot Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY
Subsumption Architecture • Proposed by R. Brooks of MIT AI Lab. • Created a major paradigm shift • “A Robust Layered Control System for a Mobile Robot”, R. A. Brooks, IEEE Journal of Robotics and Automation RA-2, 14 -23, 1986. • “A Robot that walks: Emergent Behaviors from a carefully evolved network”, R. A, Brooks, Neural Computation 1 (2), 253 -262, 1989. Adapted from Ö. Alan’s slides
Traditional model • “The traditional model where cognition mediates between perceptions and plans of actions. ”
New model • “The new model where the perceptual and action subsystems are all there really is. Cognition is only in the eye of an observer. ”
Traditional decomposition • Vertical decomposition of modules. – What should be the output of the perception module?
New decomposition • Horizontal decomposition • Each module is directly coupled to the world
Layered (incremental) control • “Control is layered with higher level layers subsuming the roles of lower layers when they wish to take control. ” • “The system can be partitioned at any level, and the layers below form a complete • Subsume: To classify, include, operational control or incorporate in a more system. ” comprehensive category or under a general principle
Level of competences for a mobile robot • Level 0: Avoid contact with objects (whether the objects move or are stationary). • Level 1: Wander aimlessly without hitting things. • Level 2: “Explore” the world by seeing places in the distance which look reachable and heading for them. • Level 3: Build a map of the environment and plan routes from one place to another. • Level 4: Notice changes in the “static” environment. • Level 5: Reason about the world in terms of identifiable objects and perform tasks related to certain objects. • Level 6: Formulate and execute plans which involve changing the state of the world in a desirable way. • Level 7: Reason about the behavior of objects in the world and modify plans accordingly. “A Robust Layered Control System for a Mobile Robot”, R. A. Brooks, IEEE Journal of Robotics and Automation RA-2, 14 -23, 1986.
Modules Inhibitor 1 3 Inputs Outputs S 10 Suppressor Reset – A module has input and output lines, also called as “wires”. – Input lines have single element buffers. The most recently arrived message is always available for inspection. – Input signals can be suppressed and replace with the suppressing signal. – Outputs are sent as messages over the wires. – Output signals can be inhibited. – A module can also be reset to the initial state.
Augmented Finite State Machines • Registers • Timers • FSM I S Finite State Machine The arrival of a message, or the expiration of a timer, can trigger a change in the state of FSM.
Modules Inhibitor 1 3 Inputs Outputs S 10 Suppressor Reset • Wait on some event, dispatch to another state based on predicate registers • Compute a function of registers • Sensors deposit their values to certain registers • Certain outputs direct commands to actuators. Adapted from Ö. Alan’s slides
Level 0: Avoid contact with objects • • • sonar: takes a vector of sonar readings, filters them and produces a robotcentered map of obstacles. collide: monitors the map, and if it detects objects ahead, sends halt signal to the forward module. If the robot is already stationary, the halt message is lost. feelforce: uses the map of obstacles to generate a single repulsive force. runaway: Monitors the “force” and sends a heading direction to the turn module to avoid the obstacles. turn and forward: uses the incoming heading and halt messages to control the robot’s motors. Encoder values are used as feedback in this control.
Level 1: Wander aimlessly • The level 0 control system is augmented with the level 1 system.
Level 1: Wander aimlessly • • wander: generates a new heading for the robot every 10 seconds or so. avoid: Takes the force and the [desired] heading direction to generate a new heading direction that subsumes the one generated by the runaway module.
Level 1: Explore • The level 0 and 1 control systems augmented with the level 2 system.
Level 1: Explore • • • Status: monitors turn and forward and returns whether the robot is busy or not. Whenlook: monitors status and when “not busy” for a few seconds, it decides to look for corridors. Look: initiates vision processing and waits for a candidate, and passes an acceptable one to pathplan. Stereo: generates corridor candidates from visual data. Integrate: accumulates reports of motions from the status module. Pathplan: takes a goal specification and attempts to reach that goal by suppressing heading to avoid module. When the position of the robot is close to the target [through integrate module], it terminates.
Experiments • Conducted in simulation. • The simulated robot receives 12 sonar readings. Some sonar beams glance off the walls and do not return within a certain time.
Level 0 and 1 in action • Under levels 0 and 1, the robot wanders around aimlessly. It does not hit obstacles.
Level 0, 1 and 2, in action • With level 2 control, the robot tries to achieve commanded goals. The nominal goals are the two straight lines. • After reaching the second goal, since there are no new goals forthcoming, the robot reverts to aimless level 1 behavior.
Controlling a hexapod robot • Control mechanism for a six-legged robot capable of walking on rough terrain and following people. • Incremental building of complex systems integrating sensory inputs and actuator outputs. • Emergent complex behaviors from simple reflexes with little centralized control. • A base for building automatically massive networks for complex tasks Adapted from Ö. Alan’s slides “A Robot that walks: Emergent Behaviors from a carefully evolved network”, R. A, Brooks, Neural Computation 1 (2), 253 -262, 1989.
Robot Description (Genghis) • Hexapod • 35 cm long, 25 cm leg span, 1 kg weight • Legs 2 degrees of freedom (up/down and forward/backward) • Two front whiskers • Two inclinometer • Pyroelectric infra-red sensors • 4 onboard 8 bit micro-processors • 62. 5 Kbaud token ring, 1 KB Ram, 10 KB EPROM • 3 silver zinc batteries Adapted from Ö. Alan’s slides Week 4
Behaviors • • Stand up Simple walk Force balancing Leg lifting Whiskers Pitch stabilization Prowling Steered Prowling Adapted from Ö. Alan’s slides Week 4 16/10/07 23
Network of AFSM IR sensors prowl For/back pitch beta force beta balance feeler i s walk i Up leg trigger leg down steer alpha collide d s beta pos alpha advance alpha balance s alpha pos
Stand-up • • • The robot should stand up when its turned on. Six copies of the following control: one for each leg. alpha pos ( )– the forward/backward state of the leg beta pos ( ) – the up/down state of the leg Initial values of and sets the desired positions for the motors. AFSMs of this behavior also report the most recent commanded position for their motor. beta pos alpha pos Adapted from Ö. Alan’s slides Triangle indicates connection to the actuators
Simple Walk • A leg down machine for each leg • Whenever the leg is not in the down position, write the appropriate beta pos register in order to set it down. leg down beta pos alpha pos Adapted from Ö. Alan’s slides
Simple Walk (Cont’d) • Alpha balance machine – Sums alpha pos values • Legs straight as zero • Legs forward as positive • Legs backward as negative – Sends a single identical message to all alpha pos machines to drive the sum to zero – If one leg moves forward somehow, all legs will receive a series of messages to move backward slightly leg down alpha balance Adapted from Ö. Alan’s slides Band indicates that only one copy of the AFSM exists. beta pos alpha pos
Simple Walk (Cont’d) • Alpha advance machine – If a leg is raised somehow (check beta pos), it reflexively swings forward. – Suppress alpha balance machine (for that particular leg only) – All other legs automatically swing back to compensate leg down beta pos alpha advance alpha balance Adapted from Ö. Alan’s slides s alpha pos
Simple Walk (Cont’d) • Up leg trigger machine – Issues command to lift a leg by suppressing leg down AFSM. – Three registers (monitor beta pos, a trigger message, initially constant lift message to beta pos) Up leg trigger leg down s beta pos alpha advance alpha balance Adapted from Ö. Alan’s slides s alpha pos
Simple Walk (Cont’d) • • Walk: Send coordinated trigger signals to up leg trigger machines Two versions – Alternating tripod – Standard back to front ripple gait walk Up leg trigger leg down s beta pos alpha advance alpha balance Adapted from Ö. Alan’s slides s alpha pos
Force Balancing • Walking over obstacles requires some force sensing. • If a leg is placed on an obstacle, it has to roll (or pitch) the body in order to reach the beta preset value, increasing the load (force) on the motor. • Beta force machine – Monitors the beta motor forces • Beta balance – Sends out lift up message whenever the force is too high – Zero move messages • Standard deviation of pitch inclinometer fell from 3. 6 to 2. 3 Adapted from Ö. Alan’s slides
Force Balancing (Cont’d) beta force walk beta balance Up leg trigger leg down d s beta pos alpha advance alpha balance Adapted from Ö. Alan’s slides s alpha pos
Leg Lifting • Alpha collide – Measures the force on the forward swing (alpha) motor – Writes the height register in the up leg trigger at a higher value beta force walk beta balance Up leg trigger leg down alpha collide d s beta pos alpha advance alpha balance Adapted from Ö. Alan’s slides s alpha pos
Whiskers • Feeler Machine – Monitor the two whiskers in the front – Increase the lift of left and right front legs before collision. beta force beta balance Two copies (one for each side) feeler s walk Up leg trigger leg down alpha collide d s beta pos alpha advance alpha balance Adapted from Ö. Alan’s slides s alpha pos
Pitch Stabilization • Forward/backward pitch – Monitor high pitch conditions – Inhibit the local beta balance machine output in appropriate circumstances For/back pitch beta force beta balance feeler i s walk Up leg trigger leg down alpha collide d s beta pos alpha advance alpha balance Adapted from Ö. Alan’s slides s alpha pos
Prowling • IR sensors machine – Monitors six forward looking infra red sensors – Sends an activity message to the prowl machine when it detects motion • Prowl machine – Inhibits the leg lifting trigger messages Adapted from Ö. Alan’s slides • prowl – to rove or go about stealthily, as in search of prey, something to steal, etc.
Prowling (Cont’d) IR sensors prowl For/back pitch beta force beta balance feeler i s walk i Up leg trigger leg down alpha collide d s beta pos alpha advance alpha balance s alpha pos The robot sits still until something comes by, the it moves forward a little Adapted from Ö. Alan’s slides
Steered Prowling • Follow a moving person • Steer machine – Writes into a register in each alpha pos machine for legs on the side of the activation – Reduces leg’s backswing Adapted from Ö. Alan’s slides
Steered Prowling (Cont’d) IR sensors prowl For/back pitch beta force beta balance feeler i s walk i Up leg trigger leg down steer Adapted from Ö. Alan’s slides alpha collide d s beta pos alpha advance alpha balance s alpha pos
Conclusion • A distributed system can achieve robust walking behavior. • Macro behavior is a result of interaction of independent micro behaviors. • Integration of higher level behaviors into a system which controls lower level behaviors is relatively easy. Adapted from Ö. Alan’s slides
Summary • Layers of abstract behaviors • Subsumption or inhibition of lower layers – no replacement • Difficult to design – what is the emergent behavior • No world model • Ego-centric and distributed Adapted from C. Messom’s slides
- Slides: 40