CPS196 - Fall 1999

Course Intro

Reading: Syllabus

Background: In the classical programming paradigm, programs take "input" data, produce "output" data, and terminate. While this approach makes sense for many applications, it is not appropriate for programming robots. A robot controller uses sensory input to respond to and interact with the uncertainty it encounters in its environment. Writing programs that produce reasonable behavior in the face of this type of uncertainty is challenging and can involve techniques quite different from those used in classical programming.

In this specialized programming course, students will be introduced to concepts integral to designing interactive systems. They will gain hands-on experience in a series of projects with Lego Mindstorms(TM) robots. Lectures will include background information on robotics, artificial intelligence, probability theory, machine learning, "agents", and "programming as interaction".

We'll use a seminar style: do the reading, do the assignments, and you'll get much more out of class. I'll assign discussions questions with each of the readings: write out your answers, which I'll collect (but not grade) after class. Each class will also have a designated note taker... we'll put the notes up on the web to help document our progress.

This will not be a "hard" class. However, it will definitely be time consuming. Please... if you have a heavy schedule or don't enjoy throwing yourself into programming and building things out of legos, drop the course. You won't enjoy it and it'll be frustrating for everyone. However, if you spent countless hours on your bedroom floor building lego space ships or motorized transports for your toys, welcome!

Questions:

Offline: Mars Landing Simulator

Background: The Mars Lander is 1000m above the Martian surface falling at 2m/s, tugged by the 3.69m/s2 Martian gravity. Each second, a controller is given information on the altitude and speed of the craft. It can then instantaneously fire the thrusters with from zero to ten units of fuel. When the craft makes contact with the surface, if it is going faster than 1m/s, it will crash.

The goal is to land the craft safely using as little fuel as possible. We'll make use of a perl simulator with four user commands:

Questions:

Notes: by Dan Mills

Kinds of Uncertainty: Ways to deal with it: Mars Lander Idea: Check speed, if less than previous speed, fire thrusters. Do this until we hit a low altitude So, we can freefall for a while before the last alg. Here's the script that we had when class ended.

Homeostatic control: change effectors to try to get sensors to reach some "set point".


Modified: Tue Aug 24 10:50:11 EDT 1999 by Michael Littman, mlittman@cs.duke.edu