91.450 home
contest writeup html due Fri Nov 18
lab 4 html
due Mon Oct 17
lab 3 html
due Mon Oct 3
lab 2 html
due Mon Sep 26
line playing challenge pdf
lab 1
art of lego design pdf
ideal and real systems paper pdf due Fri Sep 16

To format for printing, click here.

resources Yahoo! group 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: Chapter 3 from Behavior Based Robotics, for Friday's lecture/discussion. Reading questions will be on this web page by Wednesday.

  • Sections 2.4 through 2.6 of Martin, before Monday’s lab


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.

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, 3 October 2004.


  • 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.

Last modified: Monday, 26-Sep-2005 13:27:27 EDT by fred_martin@uml.edu