91.450 home
final project writeup template doc
demos Fri Dec 17, 10 am
writeup due Mon Dec 20
contest writeup html
due Mon Nov 22
servo jitter fix html
egg hunt html
due Mon Nov 1
lab 4 html
babblebot html
due Fri Oct 15
lab 3 html
due Mon Oct 4
lab 2 html
due Mon Sep 27
lab 1 html
art of lego design pdf
due Mon Sep 20

To format for printing, click here.

resources ikonboard links

91.450 Lab 3: Braitenberg Vehicles, Emergence, Meta-Sensing and Randomness


We are meeting in the basement of McGauvran, in "Computer Room III," joining Prof. Karen Roehr's class.


Reading Assignment

  • Reading: Sections 2.4 through 2.6 of Robotic Explorations

  • Excerpts from Vehicles, Valentino Braitenberg (to be handed out).

Individual Questions

The questions in this section should be answered individually. You will turn in your answers with your lab report. Each team will turn in one lab report (written jointly) and two sets of answers to the questions in Part I (written individually).

Question 1

Search the web for applications of intelligent robots. Pick 4 different applications, describe them briefly (3-4 sentences, 1 to 2 paragraphs ) and give the web page link.

Question 2

Write a short essay (1 to 2 pages) reacting to Braitenberg's discussion in the context of the “intelligent robots” you presented. Where do his ideas contribute? Where do they break down?


In Lab 2, you designed code that would avoid obstacles and follow lines. In this lab, you will be creating robots that are attracted to light, that use local variables to keep track of internal state and that use randomness to prevent them from getting stuck in an emergent loop.

For this lab, you may use the Handy Bug from Lab 1 and 2 or you may choose to redesign the robot with a different drive train. With the competition coming up in a few weeks, any additional experimentation you do with building with LEGO will be useful. (Section 4.5 has a nice presentation of how to build with LEGO. I highly recommend that you read it.) However, all exercises can be completed with the Handy Bug. I leave this choice to you.

You only need to write one lab report for your group. I would prefer that your work in lab and your lab reports be collaborative work. One partner should not be writing the lab report alone. It is important that each person work on each section of the lab, since the upcoming midterm will be a solo event.

For any exercises that ask you to write code, please turn in the code with your lab report. Please comment your code appropriately.

A. Light Sensors

Type in the program in Robotic Explorations, Section 2.4.5 and test it with either (1) pre-assembled photodiodes (these look like clear LEDs) or (2) photocell CdS cells (you'd have to wire these yourselves).

Write up the answers to Light Sensor Exercises 1-4 on p. 81–82.

B. Shielding Light Sensors

Do the Light Shielding Exercise on p. 83. With your new shielding, what are the readings when the sensor is pointed directly at the flashlight? How do the readings change as it turns away from the light source (10°, 20°, 45°, 90°)?

Note: Shielding makes a much bigger difference if you're using the CdS photocells, not the photodiodes.

C. Normalizing Light Readings to Motor Commands

Write up the answers to Normalizing Exercises 1 – 3 on p. 85.

D. Light-Seeking

Do 1 and 2 under Light Seeking Exercises on p. 85.

For 3, implement the following two improvements: add a third light sensor for ambient light and use that value to adjust your eye sensors. Also, rewrite the code to accentuate the difference between the two eye sensors.

Turn in your favorite version of the code.

E. Light and Touch Sensitivity

Do the two exercises in Section 2.5.1.

F. Randomness

Answer Question 1 in Section 2.6.1. Does your robot now compare more favorably to weasel ball? (No need to debate whether acting like weasel ball is a favorable or unfavorable proposition. I just want to know if your robot is acting more like weasel ball now than it was without randomness.)

Now rewrite your code as described in Question 2 in Section 2.6.1. Describe the altered behavior.

For extra credit: write a program that makes your robot have a similar behavior to weasel ball. Since weasel ball has no bump sensors, your code should not make use of them.

Turn in your code.

G. Emergence and Meta-Sensing

Reload your code from Section 2.3 and experiment as described in the second paragraph on p. 90 (corner oscillation). If you do not see the oscillation described after several tries, note this. You do not need to change your code to introduce the oscillation as Martin suggests.

Complete the exercises and questions in Section 2.7.3. Note that the code in Figure 2.28 and 2.29 has typos. In both figures, the last line of code is duplicated outside the last function. Cross out these two lines in your book.

Exercise 3 introduces you to multitasking in IC. Be sure to read Section E.3.8 (again, since you should have already read all of Appendix E, which describes the features of IC).

Turn in your code.

Invention Database

Update your entry for your robot in the Invention Database.

Lab Report

Print out your code for the different parts and attach answers to each of the questions raised above. Each team only needs to submit one lab report; however, I strongly encourage you to write the report together so that both members of the team participate in all aspects of the lab.

Include the URL to your Invention Database robot in the lab report.

Your lab report is due at the beginning of class (1:30 pm) on Monday, 4 October 2004.


  • Individual Q1, 2 points for each of the 4 robots.
  • Individual Q2, 10 points for the essay.
  • Part A, 1 point for each of the 4 items.
  • Part B, 1 point for discussion.
  • Part C, 1 point for each of the 3 items.
  • Part D, 1 point for each of the 3 items; 2 points for code.
  • Part E, 1 point for each of the 2 items.
  • Part F, 1 point for each of the 2 items; 2 points for code.
  • Part G, 1 point for discussion; 2 points for code.

  • 6 points for overall presentation, clarity, and grammatical correctness.
Reading: Sections 2.4 through 2.6 of Martin, before Monday’s lab
Last modified: Monday, 27-Sep-2004 13:24:40 EDT by fred_martin@uml.edu