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 2: Bumpers and Line-Following

Reading Assignment

For next Friday's lecture, please read Chapter 1 (“Whence Behavior?”) and Chapter 2 (“Animal Behavior”) from Behavior-Based Robotics.

On Friday, bring in written answers (approx. 1 parag each) to the following questions:

  1. Name 3 people involved in the development of what the book calls "Behavior based control," and for each person, indicate their specific contribution.

  2. What is the counter point of view to Behavior Based robotics control?

  3. Think of an animal other than those described in Section 2.5 (Bio-Robots), and propose a behavior-based decomposition of its behavior.

Lab Overview

In this lab, we will program the Handy Bug to avoid obstacles by backing up and turning when one of the bump sensors is hit. Then we will modify the Handy Bug to include a light sensor so that it can follow a black line.

Part A: Touch Sensing and Turtle Movement

  1. In Robotic Explorations, read Section 2.1, “Interactive C and the Handy Board,” which introduces the hardware/software system. You should also read Appendix E, which is the IC (Interactive C) manual, and/or look through the help file that comes with the software.

  2. Now go to Section 2.3, which describes the first program that you’ll write in IC. You will need to install touch sensors in your robot. The best way is to use the LEGO touch sensors as illustrated in the book; or you can use double-side tape to attach the two button touch sensors to the 1x2 bricks that are behind the wheels on the bumpers.

  3. Answer the four obstacle avoidance exercises of Section 2.3.3 (page 73). Turn in answers to these questions with your lab report.
    • For Question 3, turn in a copy of your code (which will be beautifully commented, I’m sure).
    • For Question 4, compare the performance of your Handy Bug to the lab's Weazel ball toy. Does your robot beat the Weazel ball?

  4. Now move on to Section 2.3.4, “Turtle Movements.” Do the two exercises in Section 2.3.5. For Question 2, turn in your code (again, with useful comments).

Part B: Line-Following

In Steps 1–4, you’ve created a robot that will go forward. If it hits an obstacle on either side of the bumper, it will back up and then turn towards the open direction (i.e., if it hits on the right, it will back up and turn to the left, and vice versa).

Now you will create a robot that will follow a black line on a white background. For this part of the lab, you will need to use the reflective IR sensors, which plug into the analog ports.

  1. Experiment with the reflective IR sensors to determine what they read when placed over white paper and what they read over black lines. Is there a difference between shiny and flat surfaces? Choose ranges that would indicate black readings and white readings. Note: you may wish to have some dead zone between the two colors, depending upon your findings.

  2. If you are trying to follow a black line on a white background, discuss algorithmic differences between using one reflective IR sensor and using two reflective IR sensors.

  3. Now you will write the program that will allow your Handy Bug to follow a line. You may choose whether to use one reflective IR or two. Please discuss in your lab report why you chose the number you did. Choose good mount locations for your sensor(s) and attach them to the robot. The best way is to hot-glue one or two LEGO pices to the sensor (thereby, “LEGOizing” it) and then using the LEGO properties to attach to your chassis. Note: Glue and LEGO must be used sparingly!! Use glue only to create modular parts—for example, gluing a 2x4 brick to a light sensor!

    Write the code to follow a black line. Turn in your code (need I mention comments again?).

  4. Was your robot able to traverse the entire course? If not, what part did it fail on? Why?

Invention Database

Create an entry for your line-following robot in the Invention Database. Include a photo, description of its behavior, and its code in the entry.

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, 26 September 2005.

In addition to the lab report, you will demonstrate your line following robot during class on the Monday.


  • Part A.3, 1 point for each of the 4 items.
  • Part A.4, 2 points for code listing (with embedded comments).
  • Part B.2, 2 points for discussion of line-following algorithm.
  • Part B.3, 3 points for line-following code listing/comments.
  • Part B.4, 2 points for discussion of its performance.
  • 2 points for Invention Database entry.
  • 3 points for overall presentation, clarity, and grammatical correctness.

Last modified: Thursday, 22-Sep-2005 13:53:42 EDT by fred_martin@uml.edu