Cogs1 Spring 2007
Lab 4: Braitenberg Vehicles
Due by 11:30pm on Wednesday, February 28
Introduction
Valentino Braitenberg is a neuroscientist who wrote a book called
Vehicles: Experiments in Synthetic Psychology that was first
published in 1984. He proposed studying principles of intelligence
through a series of successively complex machines, which he called
vehicles. The design of these vehicles have a strong biological
motivation based on his many years of research on brains. Originally
he intended this to be purely a thought experiment, but many of these
vehicles can be easily implemented in simple robots. These vehicles
demonstrate that even extremely simple mechanisms, when embodied in a
robot that is situated in a rich environment, can exhibit surprisingly
complex behaviors.
Here are several quotes from his book:
-
"We will talk only about machines with very simple internal structures,
too simple in fact to be interesting from the point of view of
mechanical or electrical engineering. Interest arises, rather, when
we look at these machines or vehicles as if they were animals, in a
natural environment. We will be tempted, then, to use psychological
language in describing their behavior. And yet we know very well that
there is nothing in these vehicles that we have not put there
ourselves." (page 2)
-
"It is also quite easy to observe the full repertoire of behavior of
these machines--even if it goes beyond what we had originally planned,
as it often does. But it is much more difficult to start from the
outside and try to guess internal structure just from observation of
behavior. It is actually impossible in theory to determine exactly
what the hidden mechanism is without opening the box, since there are
always many different mechanisms with identical behavior... A
psychological consequence of this is the following: when we analyze a
mechanism we tend to over estimate its complexity." (page 20)
The purpose of this lab is to give you a chance to experiment with
Braitenberg's vehicles. Then you will test out Braitenberg's
hypothesis that when we observe a mechanism we tend to over estimate
its complexity. To do this you will ask three individuals to watch
and describe the behavior of several vehicles interacting with one
another. You will report on their descriptions and analyze their
responses.
Getting Started
-
First, experiment with several of the vehicles I demonstrated in
class. To do this, open a terminal window and type:
pyrobot.
-
For the Server choose PyrobotSimulator, and then
select the world Braitenberg2Lights1Robot.py.
-
For the Robot choose PyrobotRobot60000.py.
-
For the Brain choose one of the many brains that begin with
BraitenbergVehicle.
-
Press Run to start the brain and observe the behavior.
To end your experiments, Stop the robot. Then from the
File menu choose Exit. If, for some reason the
pyrobot windows do not close properly, you can open another terminal
window and type endpyrobot.
-
If you'd like to test the "timid" brain, which can navigate a maze,
you'll need to restart pyrobot. After selecting
PyrobotSimulator as the server, choose the world
LongHall.py. Then choose the brain
BraitenbergTimid.py and press Run.
Gathering Observations
We will be using a world with three active robots that is inspired by
the "helping behavior" experiment described on page 185 of the
textbook. All three robots will be running the same brain, a variant
of vehicle2b, which turns towards light sources. Two of the robots,
colored purple and red, have light bulbs attached to their backs. All
three robots have light sensors on their fronts and are attracted to
light. In addition, each robot will recognize if it is stuck and will
try to back away. The environment includes a small light source in
the lower right corner. Below is a snapshot of this world.
-
In a terminal window, do an update-cogs1 to get copies of all
of the necessary files.
-
In a terminal window, type: cd cogs1/labs/4
-
Because we want to control three different robots, we will need three
pyrobot windows. Rather than doing this by hand each time, I have
provided you with a script you can run to initialize the
experiment. In the same terminal window, type:
./start
Note that this is a period, then a slash, then the
word "start"
-
Move the windows so that each one is visible. Then in each pyrobot
window, press Run to start the robots.
-
When you are ready to quit the experiment, go back to the terminal
window and type: endpyrobot
Here are the files:
What to turn in for this lab
Invite three individuals to observe the behavior of the interacting
robots described above. Give them at least five minutes of observation
time and ask them to describe what the robots are doing. Record their
reactions and discuss them. Do they use psychological terms to
describe the robots (such as "likes", "wants", etc)? Do they posit
more elaborate control mechanisms than are actually present? Do they
think the behavior demonstrates some form of intelligence?
Email me your summary of the experiment.