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.
||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!
||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
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)
||Easy as C
Introduction to programming (main(), commands)
Motor, fd, bk, off, sleep
Talk about different ways to steer
Exploring sensors: tactile, environmental, internal
Analog, digital, handyboard buttons and knob
||One, two, three, ... infinity
Basic form of robot programs (the poll loop, state machines)
Control structures: if, loops, functions
- 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
- 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)
- 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.