Designing Behavior-Based Systems
Objectives Use schema theory to design and program behaviors Design a complete behavioral system Understand how to develop a behavioral table for behaviors Understand how to sequence behaviors
Objectives Use schema theory to design and program behaviors Design a complete behavioral system Understand how to develop a behavioral table for behaviors Understand how to sequence behaviors
Designing Behaviors Issues: More art than science How to build up to integrated systems? Approaches: View behaviors as objects in object-oriented programming (OOP) Sequence behaviors using: Finite state automata Scripts
Behaviors as Objects in OOP Object-Oriented Programming: data-centered view of programming Schema theory is well suited for transferring theoretical concepts to OOP An objectconsists of: Data (attributes) Methods (operations) A Schema contains: Knowledge of how to act and/or perceive (knowledge, data structures, models) Computational process (the algorithms) Following Arbib, a schema as a programming object will be a class
Behaviors as Objects in OOP Coordinated control program: A function that coordinates any methods or schemas in the derived class Perceptual schema: Has at least one method, which takes sensor input and transforms it into a data structure, called a percept Linked to sensor(s) Motor schema: Has at least one method, which transforms percept into a vector representing an action Linked to actuator(s) Behaviorsare composed of at least one perceptual schema and one motor schema
Primitive vs. Abstract Behaviors Primitive behaviors: Only one perceptual schema Only one motor schema No need for coordinated control Usually programmed as single method Abstract behaviors: Behaviors that are assembled from other behaviors or have multiple perceptual schema and motor schema Since they are farther removed from the sensors and actuators than a primitive behavior
Example: Pick Up the Trash 1994 AAAI Mobile Robot Competition: Robot is placed in an empty arena about the size of an office Coca-Cola cans (red) and whitestyrofoam cups at random locations Bluerecycling bin in two corners; two trash bin with a different color in the other two corners The winner robot is the one who picks up the most trash and placed them in the correct bin
Example Primitive Behavior: Move_to_goal Rather than write: Move_to_red Move_to_blue Instead, write a single generic behavior: Move_to_goal(color) Minimizes opportunity for introducing multiple bugs
Move_to_goal as Primitive Behavior how to calculate goal_angle and goal_strength? pfields is a class Attraction is a method within the pfields class
Important Points about Programming with Behaviors Behavior is the glue between perceptual and motor schemas The schemas don t communicate with each other Behavior puts percept created by perceptual schema in a local place where the motor schema can get it Behaviors can (and should) use libraries of schemas E.g., pfields class can encapsulate five primitive potential fields, which any motor schema can use Behaviors can be reused if written properly E.g., go_to_goal can be reused with different colors
More Complex Example: Follow-Corridor Two different implementations possible: First, use primitive potential fields as motor schemas
An Abstract Follow-Corridor Behavior find-wallswill examine the sonar polar plot and extract the relative location of the corridor walls and return the distance to the left wall and the right wall.
Second Implementation: Summation of Behaviors Here, follow corridor composed of two instances of follow wall behavior
Objectives Use schema theory to design and program behaviors Design a complete behavioral system Understand how to develop a behavioral table for behaviors Understand how to sequence behaviors
Steps in Designing a Reactive Behavioral System
Case Study: 1994 Unmanned Ground Robotics Competition Objective: have small unmanned vehicle autonomously navigate around an outdoor course of white lines painted on grass Step 1: Describe the task Follow path with hairpin turns, stationary obstacles, and sand pit Robot that went furthest without going out of bounds is winner Tie breaker: robot that goes fastest Max. velocity: 5mph Penalties: for going out of bounds, for hitting and moving obstacles 3 runs allowed, after 2 days of practice 10 ft wide lane
Case Study (Con t.) Step 2: Describe the robot Usually: robot provided, which gives fixed constraints on what is possible Sensors: only specific sensors available Effectors: max speed, turning radius In this case study, additional constraints specified: Robot footprint within given size at least 3ft by 3.5ft but no bigger than a golf cart Robot carries own power, on-board computing
The Robot Camcorder on a Panning mast 33MHz 486 PC running Lynx (commercial unix) Sonar on a panning mast 3 ft wide Omnibot
Case Study (Con t.) Step 3: Describe the environment Grassy field with gentle slopes Ten-foot wide lane marked in white paint Exact length and layout of course not known in advance Obstacles were stationary, and were bales of hay wrapped in white or red plastic 2x4 ft obstacle that never extended more than 3 feet into the lane Sonar could detect hay bales at 8 feet Run times would be between 9AM and 5PM on May 22, rain or shine
Given the task, the environment and the robot Think about how this robot is able to accomplish its task What might be the potential problems?
Analysis of the Above Identify the affordance for controlling the robot white line, which should have a high contrast to the green grass Potential problem? lighting value of the white line changed with the weather Solution? have the camera pointing directly at one line, instead of trying to see both lines reduction in the signal to noise ratio Have to use computer vision White should be in the center of the image Reflections on grass are white, but random, so average out If stay in the middle, never encounter any obstacle 10-foot wide lane, 2x4 ft obstacle that never extended more than 3 feet into the lane
Case Study (Con t.) Step 4: Describe how the robot should act in response to its environment Define candidate primitive behaviors In case study: follow-line Helpful: Behavior Table
Behavior Table Helpful organizing tool stay-on-pathis reflexive (stimulus-response) and taxis (it orients the robot relative to the stimulus) compute-centroid: extracts an affordance of the centroid of white from the image as being the line
Case Study (Con t.) Step 5: Refine each behavior: Focus on design of each individual behavior Consider: Both normal range of environmental conditions And conditions in which behavior will fail Example: follow-line() Bales of hay are bright compared to grass, change the centroid to cause collision Refinement: Follow line until see an obstacle, then just go straight until things return to normal Sonar! Look to the side and when something is close, it s a bale, so go straight
Oops In case study: Follow-line behavior analysis assumed only white things in environment were lines and plastic bales of hay Other white objects: judges shoes, dandelions, etc.
Case Study (Con t.) Step 6: Test each behavior independently Helpful to use simulation Keep in mind that simulators do not usually incorporate accurate models of the robot s perceptual abilities Often, only way to verify perceptual schema is to try it in real world
Case Study (Con t.) Step 7: Test with other behaviors Integration testing, where behaviors are combined Testing in actual environment In case study: Follow_line fooled by hay bales Perceptual schema included bright pixels from the hay bales Solution: close robot eyes for about 2 seconds if hay bale nearby (detected by sonar)
Finally, $5K Round 1 OOPS: sonar connection off so it hit the bale Round 2 White shoes and dandelions, plus Killer Bale Round 3 Trapped by sand, but $5K richer!
Some Important Points Let the world be its own best representation line wasn t a line, but just centroid of brightest pixels in the image Design process was iterative; rarely get a workable emergent behavior on the first try There is no single right answer Could have been done with subsumption, pfields, rules, whatever
Assemblages of Behaviors Many applications: require some concurrentbehaviors and some behaviors in sequence Question: How to formally represent the releasers so that the robot execute the behaviors correctly, and so that the human designer can understand what is going on? Three common methods for behavior sequencing: Finite state automata (FSA) Scripts Skills Key concept: make world trigger, or release, the next step in the sequence, rather than on an internal model of what the robot has done recently
Recall: FSA Sequencing of Motor Schemas Can sequence motor schemas if one activity needs to be completed before another
Example FSA for Our Case Study
Summary Describe the task Describe the robot Describe the environment Describe how the robot should act in response to its environment Refine each behavior Test each behavior independently Test with other behaviors Repeat as needed
In-Class Team Design Form a group of 2 for your legoproject Discuss what you want to do for your legoproject Design the behavior-based system for your proposed lego project Should at least complete the first three steps