Control Behaviors of Mobile Robots Architectures and Behaviors
Control Behaviors of Mobile Robots Architectures and Behaviors With special interest in hexapods and soccer
Pets -- expensive and not Sony Aibo NEC R 100 i. Cybie Tekno Poo-chi $1500 $ a lot $160 $40 $30
Pets -- expensive and not Sony Aibo NEC R 100 i. Cybie Tekno Poo-chi $1500 $ a lot $160 $40 $30 • voice recog. • sound recog. • 18 motors • 6 sonars et al. • 16 motors • 2 motors • 1 motor • wireless LAN • light sensor • pivots • color camera • 2 color cameras • walks… ? • walks, gets up • rolls around • walks
dogfight
You can find this material in Norvig’ book, chapter 2 2. 1 Perception and Action – Perception – Action – Boolean Algebra – Classes and Forms of Boolean Functions 2. 2 Representing and Implementing Action Functions – Production Systems – Networks – The Subsumption Architecture
Other material covered • Control models – the sense-think-act control cycle – model-based controllers • Reactive robotics – reactive controllers – behaviour-based controllers • Other approaches – other reactive controllers – hybrid controllers – learning robots
Control of Hexapod Robots • • • 1. Goals and overview 2. Brooks’ Subsumption 3. Biologically Inspired 4. Logically Inspired 5. Neural and Immunological Networks • 6. Hardware issues
From the ONR proposal Legged Locomotion • Make use of simple nervous systems involved in sensorimotor performance to specify the circuits involved in adaptive legged locomotion in invertebrates • The objectives of this program are to develop: – neural models that reproduce the experimentally derived characteristics of the neuronal circuitry underlying legged locomotion – new controller architectures for autonomous legged robots: • which exhibit stable locomotion, • and which respond adaptively to unknown terrain and obstacles.
Legged Locomotion • The research issues include: – biomechanics of dynamically stable locomotion, – specification of local leg control circuits, • including central pattern generators, – the neural mechanisms of adaptation to context and task, – implementation of neural models as real time controllers on prototype hexapod robots
Example of walker M 2 is a 3 D bipedal walking robot which is currently being developed in the MIT Leg Laboratory. The robot has 12 active degrees of freedom: 3 in each hip, 1 in each knee, and 2 in each ankle. It will be used to investigate ·Various walking algorithms ·Motion description and control techniques, particularly Virtual Model Control ·Force control actuation techniques, particularly Series Elastic Actuation ·Automatic learning techniques. The goals of M 2 are the following: ·Walk fast (1. 0 meters/second) ·Walk efficiently ·Be reliable (work 9 out of 10 attempts) ·Have a large margin of stability and be robust to small disturbances (reasonable pushes) ·Be confident looking ·Become a "robotic workhorse" ·a robot which can be reliably used to perform experiments without breaking ·Get it right the first time in design and schedule
Biologically Inspired
Past Control Architectures for Hexapods • 1. Marc Donner, 1986, decomposition of task, locality of control, special language • 2. Rodney Brooks, MIT, 1989 - Subsumption Architecture • 3. Yuasa and Ito, Nagoya, Japan, 1990 - decentralized autonomous system based on generators. Biologically inspired. • 4. Randall Beer and John Gallagher, 1992 - genetic algorithm to develop a neural net to control a simulated cockroach. • 5. Graham Spencer, 1992 - genetic programming and a priori knowledge, not real robot.
Past Control Architectures for Hexapods • 6. Gary Parker, 1992, Indiana Cyclic Genetic Algorithm with a priori knowledge, simulation. • 7. Salama, Hingston, University of Western Australia, 1995, GA develops NN. Stiquito. • 8. Berns, Cordes, Karlsruhe, 1995 - NN, real robot, small. • 9. Ishiguro, Kuboskiki, Ichikawa and Uchikawa, Nagoya, Japan, 1996 -1998 - Immune Networks. Simulation. • 10. Gallagher, Beer, Espenschied, Quinn, Case, 1996. Dynamical neural network. Real robot. • 11. Parker, Braun and Cyliax, 1997. CGA for Stiquito Robot. • 12. Ilg, Muhlfriedel and Berns, Karlsruhe, Germany, 1997, Self-Organizing Neural Net
Past Control Architectures for Hexapods • 13. Eng, Robertson and Blackman, Monash, Australia, 1997 -1999 - Layered Learning System architecture, agents, real robot. • 14. Barnes, Wardle, University of Salford, UK, 1999 reactionary system with central pattern generators • 15. Ahuja, Nelson, Delcomyn, Hart, University of Illinois, 1997 - 2000 (? ) - Biologically Inspired • 16. Reinforcement Learning • 17. Levy, PSU, 2001, Generators controlled by Constructive Induction, robot walks but not completed. • 18. Zielinska, Singapur, Poland, 2001 - current - big, network of parallel processors and controllers, sensors.
Conclusion on past research on hexapod control • Based on my limited literature search: – 1. The total of walking robots in the world estimated to be 200, not counting toys and kits – 2. Not much recent work, recently more on bioinspired – 3. Even less work on real robots – 4. Especially on controlling large hexapods – 5. Few papers on sensors and sensors integration – 6. Relatively few papers from USA – 7. Not much practical evaluation and description of experiments.
Past research on mobile robot controllers • The “brains” behind a mobile, autonomous robot (using the “lite” definition of autonomous) – Even though the controller is sometimes not physically on the robot • Three schools: – The Old School: Sense-Plan-Act (Shakey at Stanford) – The Brooks School: Subsumption – The Modern School: Three-Layer • New Approaches: – Bio-Inspired – Probabilistic
Overview: Robot Control Schemes Representative examples • RAPs, Firby `87 Albus et al 1987 • Au. RA, Georgia. Tech, Arkin `87 • Atlantis, JPL/NASA, Gat `92 • Saphira, SRI, Saffiotti et al, `93 • TCA, CMU, Simmons `94 • AMOR, Pirjanian et al. `94 • VINAV, Christensen et al 1992 • ALLIANCE, Parker `94 Representative examples • Stanford Cart, Moravec 1977 • NASREM, NASA/NIST, • DAMN, CMU, Rosenblatt & Payton 96 • 3 T, NASA, Kortenkamp et al `96 Representative examples • Subsumption Arch, MIT, Brooks `86 • Motor schemas, Georgia. Tech, Arkin `87 • Activation nets, MIT, Maes `89 • Dynamical sys. , Schoner `92 • MOBC, Pirjanian `97
Control Problems for an autonomous robot • Rapidly changing boundary conditions • Real-time response • Information collected over noisy channels
Perception and Action • Stimulus-response (S-R) agents – Machines that have no internal state and that simply react to immediate stimuli in their environments – Based on motor response to rather simple functions of immediate sensory inputs – Examples: • Machina speculatrix, • Braitenberg machine
Stimulus Response Agents
Mapping Perception into Action “obstacle” Feature detectors ACTION FUNCTION “wall” MOTORS SENSORS 0 1 1
Example: Robot navigator Clips N 2 E 1 0 0 1 2
A Robot in a Two. Dimensional Grid World (1) • Environment – Enclosed by boundaries – Contains unmovable objects – No tight spaces • Spaces between objects and boundaries that are only one cell wide • Task – Go to a cell adjacent to a boundary or object and then follow that boundary along its perimeter
A Robot in a Two-Dimensional Grid World (2) • Sensory inputs: • Robot movements – north moves the robot one cell up in the cellular grid – east moves the robot one cell to the right – south moves the robot one cell down – west moves the robot one cell to the left • Division of processes – Perception processing and action computation
A Robot in a Two-Dimensional Grid World (3) • Perceptual processing – produces feature vector X l Action computation ¨ selects an action based on feature vector – numeric features: real numbers – categorical features: categories
A Robot in a Two-Dimensional Grid World (4) • The split between perception and action is arbitrary • The split is made in such a way that the same features would be used repeatedly in a variety of tasks to be performed • The computation of features from sensory signals can be regarded as often used library routines – needed by many different action functions • The next problems – (1) converting raw sensory data into a feature vector – (2) specifying an action function
Perception example • For the robot task, there are four binary-valued features of the sensory values that are useful for computing an appropriate action • Perceptual processing might occasionally give erroneous, ambiguous, or incomplete information about the robot’s environment – Such errors might evoke inappropriate actions • For robots with more complex sensors and tasks, designing appropriate perceptual processing can be challenging
Action example • Specifying a function that selects the appropriate boundary-following action – None of the features has value 1, the robot can move in any direction until it encounters a boundary
Boolean Algebra • Boolean algebra is a convenient notation for representing Boolean functions – Rules for Boolean algebra – Commutative – Associative – De. Morgan’s law – Distributive law
Classes and Forms of Boolean Functions • A conjunction of literals or a monomial: – The conjunction itself is called a term • Bound of the number of monomials of size k or less: • A clause or a disjunction of literals: • Terms and clauses are duals of each other • Disjunctive normal form (DNF): disjunction of terms – K-term DNF: disjunction of k terms • Conjunctive normal form (CNF): conjunction of clauses – K-clause CNF: the size of its largest clause is k
Outline on Reactive Agents • How to design stimulus-response (reactive) agents? Abstracting sensory values into features – Modes of action – Representation of mapping from sensors to actions – • Examples • Layered reactive agents (subsumption architecture)
Properties of Reactive Agents • No internal state: current value of sensors determines response • Speed: Reactive agents respond quickly to a new stimulus • Sensor values are mapped into features using boolean (state-free) functions • Actions are computed using an action function
Feature Selection • What are good features? Easy to compute from sensor values – Useful in multiple tasks – Need not be perfect – Help improve task performance – • Examples from biology: Insect detector for a frog – Sun direction and earth’s magnetic field for navigating birds – Imprinting in birds –
OBELIX: A Robot SENSORS: 8 ultrasonic sonar sensors, 4 long IR’s, 8 short IR’s, 1 very-short-range IR
Feature Detectors on OBELIX • • • “Stuck”: motor current > threshold “Bumped”: very-short-range IR on “Intersection”: Long side IR off “Corridor”: Two long side IR’s on “Box-detectors”: boolean combinations of FAR and NEAR sonar bits
Action Functions Three approaches are the most popular: • 1. Production Systems List of condition-action rules – Parallelizable for fast matching – • 2. (artificial, neural) Networks Threshold-logic circuits – Noise immunity, learnability – • 3. Subsumption architectures – Layered set of mappings
Production Systems
Production Systems Condition 1 Action 1 Condition 2 Action 2 Example: RIR = Long right IR LIR = Long left IR
Representing and Implementing Action Functions: Production systems (1) • Production system comprises an ordered list of rules called production rules or productions – , where is the condition part and action part – Production system consists of a list of such rules – Condition part is the • Can be any binary-valued function of the features • Often a monomial – Action part • Primitive action, a call to another productive system, or a set of actions to be executed simultaneously
Production Systems (2) • Production system representation for the boundary following routine – An example of a durative systems-system that never ends • Teleo-reactive (T-R) programs – Each properly executed action in the ordering works toward achieving a condition higher in the list – Usually easy to write, given an overall goal for an agent – Quite robust: actions proceed inexorably toward the goal – Can have parameters that are bound when the programs are called – Can call other T-R programs and themselves recursively
Discussion Issues for robot soccer architectures • Origination • Low Cost vs. Big Model • Elegancy vs. Efficiency
Basic Architecture for Soccer Using software simulator as a basic development methodology in soccer robot research Production rules Neural Nets Subsumption
Production system based agent architecture for a soccer robot
Switch Competitive behaviors Switching and voting, subsumption
Teleo-reactive Programs Nilsson Variant of Production Systems to handle goals and durative behaviors. 1 st Rule specifies the goal: goal Nil A rule is placed at a point where it achieves the condition of some higher level rule. The condition “ 1” means it is always true.
Example of a teleo-reactive (TR) Program Exercise: write the wall-follower example as a TR program
Black Board Architecture KS communicate through Black Board Knowledge specialist
Example: Robo. Cup 98 rule hierarchy Play Normal Attack left Run to wing
Labyrinth, Robot Environments and Object-Based Simulation
Simulation is the mimicking of a real system within a computer. A computer model is created to represent part of a real-world environment. The computer model is then executed to investigate real-world behavior as predicted by the computer model.
Simulation and OO • Simula-67 • Event-based systems • Visualization of complex data
Applications • Complex situations, – large-scale, – many interactions • Dangerous situations, • Entertainment
Computer Simulation • • Build a model to represent the real world, Implement physical constraints, Implement physical behaviors, Generate and process events, – events occur at discrete points in time, – events affect the state of the system. Sim. City games
Construct a Model • • Classes are kinds of things in the real world Objects represent actual things, Methods of objects implement behavior Events stimulate object behavior.
Braitenberg Vehicles Light sensors + Motors + Control From: http: //people. cs. uchicago. edu/~wiseman/vehicles/ Inspired by Valentino Braitenberg, “Vehicles: Experiments in Synthetic Psychology”, 1984.
How they Work? Connect light-sensor to motor. Sensor output can be EXCITATORY or INHIBITORY. Both motors = step forward One motor = rotate When sensor output “fires”, the motor is driven.
Simulation of Vehicles • Create an artificial plane, • Populate it with light sources and vehicles • Run a time-based simulation: – for each time step, • compute light source effect on vehicle • simulate movement • detect collisions
View of Simulation What happened here? What happens now?
Another View http: //people. cs. uchicago. edu/~wiseman/vehicles/test-run. html
Simulation of Vehicles • Complex behavior can arise from simple systems. • Simulation of such a system can reveal interesting aspects of interaction amongst simple objects. • These simulations can drive the development of new theory.
Example http: //people. cs. uchicago. edu/~wiseman/vehicles/test-run. html
Views of simulations may help to explain what is happening. Different views may be appropriate. The VIEW is NOT the SIMULATION.
Events and Simulation • Every event stimulates behavior, • Events occur at discrete times, – Simultaneous events must have simultaneous effects • Stimulated behavior may cause events
Discrete Time Everything in a computer simulation is digitized. We create a digital representation of real things. Even time. Simulation proceeds stepwise in time. Effects of simulation take place at the end of a discrete time step. Parallel processing is useful.
Effects of Behavior Object behavior may affect the model. All object behaviors must occur simultaneously i. e. at the end of the simulation time step. Parallel processing may be needed to avoid object behavior contaminating the system within a time step. Not all real-world behaviors may have been implemented.
Visualization
Visualization • Enables us to see the effects of behavior • Large-scale, complex systems, • View several dimensions – 3 D space – time – other graphical codes for other variables • color, sound, pictures etc.
Summary on Simulation • Object-based simulation is useful, • Constructing a world can be complex, • The quality of the simulation depends on: – the quality of real-world implementation – implementation of variables that are not the primary focus of the simulation • e. g. gravity, air resistance, viscosity etc.
Micromouse Basics Software and Simulation of Maze Behaviors
Maze Solving Algorithms • Wall Following Method – Good start – May not find the destination • Depth First Search – Explores every cell – Will find destination eventually • Flood-Fill Search – Finds shortest path to destination
Flood-Fill • Each cell is assigned a distance value • Destination cells are assigned a zero value
Flood-Fill Destination cells are assigned a zero value
Flood-Fill • An example 3 x 3 maze • Starting state:
Flood-Fill • First rule: – Always move to the open neighboring cell with the lowest distance value
Flood-Fill • Walls are found and mapped during exploration sensors
Flood-Fill • Following distance values, 4 ->3 ->2 ->1, now would be trouble, but wall is found earlier
Flood-Fill • Another wall is found
Flood-Fill • Second Rule – Second rule: If a cell is not the destination, its value should be one plus the minimum value of its open neighbors
Flood-Fill • Need to update numbers • Second Rule • If a cell is not the destination, its value should be one plus the minimum value of its open neighbors, 1+min(2, 2)=3
Flood-Fill • Other cells now need to be updated
Flood-Fill • More updating
Flood-Fill • Done updating • Can now find destination cell
Flood-Fill • Use same technique to get back to start
Flood-Fill
Flood-Fill
BEHAVIOR DESCRIPTION AND MODELING • Also called dynamic modeling • Models how objects respond to external events • Types – Combinatorial: truth tables, decision trees – Finite state machines – State charts
COMBINATORIAL AND SEQUENTIAL CONTROL - Decision tables allow the specification of combinatorial mechanisms. • That is, which processes to activate is important; order and timing are not considered. - Process activation tables allow a form of sequential modeling. • That is, the order in which certain processes can be activated can be specified. - If sequencing is an even more important aspect of control modeling, then a sequential model can be used. -> The most typical form of this is the finite state machine.
DECISION TABLES - One common way to model control is with decision tables. They are used when a number of possible input conditions hold and a number of responses are possible. - The conditions are called inputs and the responses are called outputs. - The input side of the table enumerates all possible combinations of conditions. 3 • For example, if each of three switches can have one of two possible values, "on" or "off", then the table will contain 3 columns and 2 or 8 rows. - Likewise, if the three switches control two output devices (one switch is a master override) then there will be two output columns ( along with the eight rows from the input ).
EXAMPLE DECISION TABLE - 1 Master Control INPUT Light Switch ON ON OFF ON ON OFF OFF OFF ON ON OFF OFF OFF OFF Power Switch OUTPUT Lights Motor
EXAMPLE DECISION TABLE -2 - Note that the last four rows of the output are identical. The table can be shortened by making use of "don't care" entries. A don't care entry is indicated by a dash in an input cell. Master Control INPUT Light Switch ON ON OFF ON ON OFF OFF OFF --- OFF OUTPUT Power Switch Lights Motor
FINITE STATE MACHINES • Many systems have the characteristic of "memory". • That is, past behavior can influence future behavior. • For example, a pay phone must remember how much money has been inserted to know how much service to provide • The most typical technique for modeling these situations is with a finite state machine. • The states serve as the memory • Abstract machines with memory are called sequential machines to distinguish them from "memory-less” combinatorial machines like those represented by decision tables
STATE MACHINE MODELING - A telephone is a device that at any given time is in one of several states. • For example, the state can be busy, ringing, dialing, in use, or on hook. - User actions cause the current state to change. • For example, a user picking up a ringing telephone causes the current state to change from ringing to in use. - State transition diagrams can be used to model software with user interfaces.
STATE TRANSITION DIAGRAMS • One mechanism for representing finite state machines (FSMs) is the state transition diagram • A state is denoted by a rectangle containing the state's name • The machine is always in exactly one state. – When the system obtains a new input, the machine moves to another state and performs an action, which may be used to produce an output • States are connected by labeled directed arcs denoting the transitions among the states • The labels on the arcs consist of two parts. – The first is the input/event/stimulus provoking the transition. – The second is the action/response performed. – The two parts are separated by a short horizontal line
EXAMPLE : STATE TRANSITION DIAGRAM OFF HOOK Handset lifted ON HOOK Handset replaced Number dialed DIALING Last number dialed Handset replaced RINGING Handset replaced Line in use BUSY Callee hangs up Callee answers CONNECTED
EXAMPLE : STATE TRANSITION DIAGRAM GARAGE DOOR OPENER Door Closed Motor off button pressed/ start motor Motor Running Up door closed detected/ stop motor / start motor button pressed/ stop motor Door Partially Open Motor off door open detected/ stop motor button pressed/ start motor Door Open Motor off Door Partially Closed Motor off button pressed/ stop motor Motor Running Down button pressed/ start motor
STATE TRANSITION TABLES • Another way of representing a FSM is with a state transition table • Here, the rows correspond to states, and there are four columns – The first is the name of the state – The second column describes input event possibilities. Note that a given state may need to have several rows, one for each allowable input event – The third column describes output actions – The fourth contains next state information • State transition tables contain exactly the same information as state transition diagrams
STATE TRANSITION TABLE FOR A GARAGE DOOR OPENER Current State INPUT Door closed / Button Motor off Pressed Motor Running Door Open Up Detected Motor Running Button Up Pressed Door Partially Button Open/ Motor Off Pressed Door Open / Button Motor Off Pressed Motor Running Door Closed Down Detected Motor Running Button Down Pressed Door Partially Button Closed / Motor Off Pressed Effect Next State Start Motor Stop Motor Start Motor Running Up Door Open Motor Off Door Partially Open/ Motor Off Motor Running Down Door Closed Motor off Door Partially Closed / Motor Off Motor Running Up
STATE CHARTS • One problem with finite state machines is the explosion in the number of states that occurs when several independent activities are going on simultaneously • Also, traditional finite state machines provide no mechanisms for abstraction. • Abstraction is the grouping together of related states that are relatively independent from the other states in a system • David Harel has developed an extension to finite state machines called state charts to overcome these difficulties
PROBLEMS WITH FSMS • Too many arrows: n 2 (with n states) • Too many states: 2 m (with m concurrent activities) • No concept of abstraction/nesting
STATE CHART ADDITIONS • • Depth (hierarchical state machines) Concurrency Broadcast (define and generate new events) Default states Conditional (guarded) transitions History Entry/exit actions/activities Event attributes (parameters passed with events)
NESTING
CONCURRENCY
Concluding on robot architectures • 1. Various architectures have been briefly outlined • 2. Robot should be simulated • 3. Various formalisms are used for representation of simulation, they are partially independent on robot behaviors and architectures. • 4. Architectures and representations create a space of robot designs. (of course, together with kinematics)
Abstraction categorizing robots With respect to autonomy and abstraction Just model softw are hard ware human-controlled Autonomy independent
Abstraction categorizing robots Justis just model softw are hard ware human-controlled Autonomy independent
Abstraction categorizing robots Justis just model softw are hard ware human-controlled Autonomy independent
Abstraction categorizing robots Justis just model softw are hard ware human-controlled Autonomy independent
Abstraction categorizing robots Justis just model softw are hard ware human-controlled Autonomy independent
Abstraction categorizing robots Justis just model softw are hard ware human-controlled Autonomy independent
Abstraction categorizing robots Justis just model softw are hard ware human-controlled Autonomy independent
Abstraction categorizing robots Justis just model softw are algorithms and strategies for programming autonomous robots hard ware human-controlled Autonomy independent
categorizing the world is notrobots enough how much of the world do we need to represent internally ? how should we internalize the world ? what outputs can we effect ? what inputs do we have ? what algorithms connect the two ? how do we use this “internal world” effectively ?
Robot Architecture how much / how do we represent the world internally ?
how much. Robot / how. Architecture do we represent the world internally ? 1 None. Absolute Control 2 Just the current world. Purely Reactive Control 3 Just what we need. Subsumption paradigm Motor Schema 4 As much as possible. SPA architecture (sensing next planning next action)
Robot Architecture how much / how do we represent the world internally ? 1 None. Absolute Control - ignore the outside world - what’s left? kamikaze robot example
Robot Architecture how much / how do we represent the world internally ? 2 Just the current world. Purely Reactive Control • Decision-making based only on the current sensor readings. • “stimulus-response” model
Robot Architecture how much / how do we represent the world internally ? 3 Just what we need. Subsumption paradigm Motor Schema • Enough world state is preserved to perform a desired task. • Subsumption composes simple behaviors by letting one take control at an appropriate time.
Robot Architecture how much / how do we represent the world internally ? 3 Just what we need. Subsumption paradigm Motor Schema • Motor schemas compose simple behaviors by adding the outputs that each would send to the robot.
Robot Architecture how much / how do we represent the world internally ? 4 SPA architecture As much as possible. • Sense -- plan -- act was the first widely studied robot architecture. • Complex tasks ultimately will require a deliberative approach, i. e. , reasoning about the world. • Current robots incorporate both reactive and deliberative design. (termed hybrid systems. )
World Modeling Another taxonomy All Needbased Now None Ow! Capability Wow!
Possible Future Projects A) Small Battle Bot B) Path-planning and reasoning large truck or other vehicle C) wall following robot D) The Extinguisher (fire-fighting + lego design) E) The Robix Manipulator on a wheeled robot F) Pioneer (can-collecting and delivery) G) Big Brother (visual camera control)
Abstraction Problem 1 Use this taxonomy for all robots from PSU Lab. Is this a good taxonomy? Just model softw are algorithms and strategies for programming autonomous robots hard ware human-controlled Autonomy independent
Sources • • • • • Rodney Brooks Dodds, Harvey Mudd College Maja Mataric Nilsson’s book Jeremy Elson Norvig’s book, chapter 2. Good. Stimulus-Response Agents English PH. D thesis, recent Jon Garibaldi Prof. Bruce Donald, Changxun Wu, Dartmouth College Leo Ilkko Prof. Manuela Veloso, Dr. Tucker Balch, and Dr. Brett Browning Carnegie Mellon University Rabih Neouchi , Donald C. Onyango and Stacy F. President Axel Roth Ramon Brena Pinero ITESM Rhee, Taik-heon, Computer Science Department, KAIST Brian R. Duffy, Gina Joue Lucy Moffatt, Univ of Sheffield Yorick Wilks, Computer Science Department, University of Sheffield University of Otago
Sources • Curtis Bahn, RPI • J. E. Wampler • Michael Rodemer, University of Michigan, School of Art and Design • Physics and Media Group, MIT • Josh R. Fairley • Dr. Raymond S. Winton • Mike Haney, University of Illinois • Steve Benkovic, Cal State University , Northridge http: //homepage. mac. com/SBenkovics. benkovic@ieee. org • Franklin Alioto, Christine Beltran, Eric Cina, Vince Francisco, Margo Gaitan, Matthew O’Connor, Mike Rasay. • Kenneth Chin and Prang Chim • Bob Miller, Wally Szczesniak, Terry Kientz, • Brett Balogh , Siddharth Deliwala, John Bowen, • Darnel Degand, Kapil Kedia, • Adrian Fox, Christopher Li, • Dr. Jim Ostrowski
- Slides: 124