I love machines. I like to build them, take them apart, figure out how they work, fix them when they're broken and invent new ones. I'm particularly interested in learning about and developing models that abstract from the details of machines in order to make them easier to understand. For most of us it's just too difficult to write programs thinking at the level of registers, interrupt vectors and program counters.
As an example, I'm currently trying to understand enough about molecular biology to design tools that will assist biologists in drawing conclusions about the function of genes from experimental data. One of my graduate students, Sonia Leach, is writing her dissertation on this topic. Last night, I read a primer about the role of ribosomes in building proteins from the instructions encoded in messenger RNA. Ribosomes are said to be the cell's decoding machine and are a wonderful example of the digital machinery of life. Here's a depiction of a ribosome machine in the process of reading off the codons on a string of mRNA and converting the string into a polypeptide chain.
The reason I've provided this example is to point out that the above model of the ribosome machine is an abstraction; it ignores a lot of detail concerning molecular bonds and the three dimensional structure of proteins. Nevertheless, it provides a useful basis for understanding and making predictions, at least at the given level of abstraction. Such a model can also mislead if it is understood too literally.
In this class, we'll be working with lots of different models, including models of robots with sensors and effectors, models of environments that we use to understand how to program robots, models of environments that robots use to control their behavior, and models of the behavior of animals that serve as inspiration for how to build robots. Hopefully, you'll become adept at picking an appropriate model to suit the problem at hand. We're going to start by considering some simple models for how animals capable of mobility might respond to sensor stimuli such as light.
Grey Walter's turtles exhibited simple behaviors and were based on the theories about simple reflexes and neural function that were known at the time. Several decades later and informed by a great deal more known about the brain, the neurobiologist, Valentino Braitenberg, tried to abstract out what he had learned in a set of simple models that he called vehicles.
Braitenberg's vehicles consist of the simplest sort of wheeled robots in which sensors that are sensitive to different stimuli are wired directly to motors that drive the wheels. In these models, we assume that the sensor generates a signal that is proportional to the stimulus. In the simplest vehicle (see Vehicle 1 below) we imagine a sensor sensitive to light and assume that the more light that falls on face the sensor the faster the motor turns. The wire running from the sensor to the motor is labeled positive (+) indicating that sensor stimulates the motor to turn. Things become more interesting when we have multiple sensors and multiple motors. Predict the behavior of Vehicle 2a and Vehicle 2b below.
We can also imagine connections which are inhibitory (labeled negative (-)) and motor inputs that can sum the (perhaps weighted) contributions from different wires and sensors. What would you expect of Vehicle 3 below?
You'll find a quick introduction to Braitenberg in Chapter 2 of [Martin, 2001] (pp. 75-80) and we'll give you a demonstration of a lego version of a Braitenberg vehicle in class. It's worth noting however that while the abstraction is compelling and even useful for some purposes, it takes some doing to arrange for real motors and sensors to give rise to the behaviors that Braitenberg describes. Here are just a few of the ways in which the model fails to account for the real world:
Even with these caveats, the basic model is a useful one for robot designers. For further reading, you can check out my notes on Chapters 1-5 of Braitenberg's book or follow the links below to learn more about Braitenberg and the uses that have been made of his models. You might find it interesting to use your favorite search engine to check out robot designs based on Mark Tilden's BEAM philosophy; there are many variations of his minimalist photovore design to be found on the web.
Chapter 1 of [Martin, 2001] starts with a discussion of feedback control and the various disciplines that have had feedback control as a central object of inquiry. Grey Walter is mentioned as are Wiener, Laplace and Nyquist. Also mentioned is Seymour Papert, who has had an important influence on education through his work on the Logo programming language with its programmable "turtles" and his influence on the development of Lego Mindstorms. Here are some pointers to web pages featuring Papert's research and projects.
The remaining parts of Chapter 1 are concerned with the Handy Board, Interactive C and the curriculum inspired by MIT 6.270. While we use a different computer (the RCX brick), a different programming environment (legOS and the compiled C) and a different set of topics and labs, the discussion in Section 1.3 is interesting as another point in the design space of robot kits that we'll be working in. I'll talk at different times about the tradeoffs inherent in the Handy Board/Interactive C and the RCX/legOS options. (Check out the Handy Cricket for yet another point in this design space.)