230 likes | 331 Vues
Explore subsumption architecture in robotics control, with an in-depth focus on emergent knowledge, computer vision, and stochastic learning. Learn about deliberate, reactive, hybrid, and behavior-based control approaches. Understand the control system spec, levels of competence, and how to build a controller. Discover insights on multiple goals, sensors, robustness, and extensibility in control systems.
E N D
CS 415 – A.I. Slide Set 8
Agenda • Today • Subsumption Architecture • Wednesday • Mapping • Other Topics • Emergent Knowledge • Computer Vision • Stochastic Learning • Knowledge Representation • Group Robotics
What kind of control? • Deliberative Control • Think Hard, Act Later • Reactive Control • Don't Think, React • Hybrid Control • Think Sometimes • Behavior-Based Control • Emergent Behavior
Subsumption Architecture • Brooks Paper-1985 • One particular, popular way to generate reactive control architectures • Interesting Note • Rodney Brooks co-founded, and is Chief Technical Officer and currently sits on the Board of iRobot corp.
Possible Approaches • Traditionally • Robotics Control was conceptualized linearly • Figure 1 • Decompose problem into a series of functional units • Subsumption Architecture • Robotics Control in Parallel • Figure 2 • Revolutionary – Turn model on its end • Decompose problem into task achieving behaviors
Let’s imagine a robot that cooks vegetables... • Traditional AI robots Colour, shape, odor, consistency... Detection of dirtiness, texture sensors Classification of items depending on the robot’s model : Vegetable with peel or not, time needed to be cooked Actions : wash or peel vegetables, put it in a sauce pan until it is cooked. Tasks planning to synchronized actions
Let’s imagine a robot that cooks... • Subsumption architecture robots Avoid from burning Smoke detection Served vegetable Heat sensor, texture sensor, detection of dirtiness Cook Put vegetable in a sauce pan Preparing vegetable to be cooked Detection of dirtiness, texture sensors Wash vegetable in water or peel it
Requirements • Multiple goals • Sometimes conflicting • Differing/changing relative importance • Multiple sensors • Error prone, No direct relation to real world • Inconsistent Readings • Robustness • Overcome failures • Processor, environment, sensors • Extensibility
Assumed Dogmas • We want autonomous robots • Map making is crucial • The map should be 3D • Relative maps are better than global • Complexity behavior doesn't assume complex design • Keep things simple • Visual data is most desirable • Self-calibration and recovery • Self-sustaining artificial beings
The Testbed • Processing – offboard LISP • 3 parallel drive wheels • 12 Sonar (rotating body) • 2 CCD Cameras (tilt head) • On board processor – Intel 8031 • 12K/sec Radio link
Levels of Competence • Traditional Approach • Slice problem according to internal workings of solution • Brooks Approach • Slice problem according to desired external manifestation • Level of Competence – informal specification of a desired class of behaviors for a robot over any and all environments
Particular Levels • 0 – Obstacle Avoidance • 1 – Wander aimlessly while avoiding • 2 – Explore (pick a destination) • 3 – Mapping • 4 – Notice changes in the environment • 5 – Reason about identified objects • 6 – Change the world somehow • 7 – Reason about behavior of objects/modify your plans • IMPORTANT – each higher level includes as a subset previous layers
Building the Controller • Build an entire robot that realizes level 0 “perfectly” • Never change this level • Build another layer (level 1) on top of level 0 • Level 1 knows about, can examine data from and can inject data into the data flow of level 0 • Each higher level subsumes lower ones • No level knows anything about levels above it
Relating to our Goals • Multiple Goals – concurrent goal pursuit is possible/beneficial • Don't need to decide ahead of time what goal to pursue • Multiple Sensors – don't need to enforce a central representation • Robustness – Higher levels may be slower, but lower levels still run • Extensibility – smarter and smarter higher levels
Control System Spec. Lang • Each processor is a finite state machine. • Named states • NIL, reset, • Types of States • Output, Side effect, Conditional dispatch, Event dispatch • Multiple inputs/outputs • Can be suppressed/inhibited • Example pg 10 and 11 • LISP-like spec for avoid module • Schematic
Early Implementations • Level 0 and Level 1 (part of Level 2) • Evolving Schematics on pgs 11-16 show how the subsumption architecture “evolves” • Paper also describes a simulated robot implementing the theory where hardware could not (as of August 1985)
Since then, many subsumption architectures have been developed • Robot named Herbert • Designed by Jonathan Connell • Aluminum can collector • Layer 2 was programmed to pick likely locations of empty cans • Layer N handled the gripping arm
Packbot (2002) • help clear caves and bunkers, search buildings and cross live anti-personnel minefields • speed of up to 14 km/h • continuous 360 degrees rotation • negotiation of rough terrain and obstacles such as stairs, rocks, logs, rubble and debris. • can climb grades up to 60% • can survive submersion in water up to two meter deep
R-gator (2006): • The R-Gator Unmanned Vehicles for Physical Security pilot project: • Teleoperation • Autonomous waypoint navigation with “Teach & Playback” • Robotic following • Obstacle avoidance • Manual operation
Planetary Rover • A system suitable for a Mars Rover robot • Tasks • Move autonomously upon the rocky, cratered Martian surface • Gathering soil, atmospheric samples and images • Difficulty • No knowledge of the appearance of the ground, the locations and the obstacles is available
Mars Rovers • R. Brooks and A. Flynn (1989), "Fast, cheap, and out of control: A robot invasion of the solar system," J. Brit. Interplanetary Soc., vol. 42, no. 10, pp. 478-485, 1989. • Mars Pathfinder • Mars Exploration Rovers • These still have human intervention, however, but not much
Problems in 1985 • Painfully slow processors • Very close link between code and hardware • Low level considerations were necessary • How many logic gates does this bit of LISP take
Problems that are still applicable today? • Any ideas? • Scalability • Like hybrid control – what action do I do next? • What makes a good subsumption architecture? • What should the hierarchy look like? • Why are you worrying about it? • How flexible is the design... really?