ES.293 | Spring 2007 | Undergraduate

Lego Robotics


General Notes

The first set of lectures consists of useful information for building robots. For the second half of the semester, a number of “special topics” are offered, from introductory circuit theory to BEAM robots to A.I. algorithms. The students help choose the set of topics to explore.

Starting with the third lecture, we start each lecture by going around the table, with the students describing what they worked on over the past week, what difficulties they encountered, and what discoveries they think might be useful to other students. These comments often become jumping-off points for discussion and instruction of any topics that seem to be useful to the students.

1 Our friend the Lego

“What is a robot?”

Introduction, ground rules, expectations, etc.

Demos: “clichés”, gear boxes, robots from previous years

Expectations: “mine” and “yours” (where “yours” is a discussion)

There’s an area in the lab for clichés - feel free to add to it!

2 Beauty and the Lego

Different types of gears, gear ratios, etc.

How gear trains work and how to build them

How to build with Legos: pieces available, relations, robustness

Basic mechanical problems and how to fix them

3 Cruisin'

Introduction to components

Motors: how to use, how to brace, how to put together; turn them off if they stall; note that they don’t fit perfectly

Handyboard: features, how to use template.c, recharging

Remove motors and handyboard from robot if we’re short on them (or they’ll be removed for you)

4 Easy as C

Introduction to programming (main(), commands)

Motor, fd, bk, off, sleep

Talk about different ways to steer

5 Making sense

Exploring sensors: tactile, environmental, internal

Analog, digital, handyboard buttons and knob

6 One, two, three, … infinity

Basic form of robot programs (the poll loop, state machines)

Programmatic thinking

Control structures: if, loops, functions

Additional Topics

  • The physics of robotics:
    • test different Lego wheels for comparative static/rolling coefficients of friction
    • the physics of torque and motors
    • matrix modeling of robots
  • Dead reckoners:
    • Explain shaft encoders
    • Explain bit-change resistant encoding
    • Challenge: Build a robot to go a specified distance using shaft encoders
  • Servo motors:
    • Describe motors and how they work
    • Describe 6.270 API
    • Explain use of potentiometers to measure difference
    • Challenge: Write a feedback program to control a servo motor with maximum accuracy and speed and minimum twitch.
  • Non-Lego robotics – mechanics:
  • Artificial intelligence and adaptive behavior
  • Electronic communication
  • BEAMs
  • Media Lab/CSAIL/Leg Lab projects
  • Advanced data collection + analysis (vision, audio)
  • Data structures – arrays, lists, networks
  • Advanced programming – non-robot, parallel, assembly, algorithms
  • Functional programming (and Scheme-robot interface)
  • Plotters
  • Circuit theory
  • Feedback day!
  • New components ordering spree
  • Final competition description and rules:
    • Take a day to explain the final competition (if there is one), and the different approaches one might take to it.