Computer Science C95-20/D95-20
Behavior-Based Robotics        Fall 2002

Instructor: Ian Horswill <ian@cs.northwestern.edu>
TA: Aaron Khoo <khoo@cs.northwestern.edu>
Meeting time: MWF 2-3:00
Location: CS Classroom (3rd floor, CS Department)
Texts: None.  Just lecture notes.
Newsgroup: cs.c95-robotics 
All course announcements will be sent to this group

Programming environment (GRL, Scheme48, Emacs ...)

We will be using the GRL programming language.  The compiler is written in scheme48, so you'll also need it.  We usually run scheme (and GRL) inside of emacs.  You can get these things here:

Grading

Course grades will be based on the following:

Group lab assignments 30%
Individual homework assignments 30%
Tests (2) 30%
Group final project 10%

we reserve the right to adjust these percentages as the term progresses.  There will be no final exam, however demos for the final project will take place during finals week, probably around mid-week (exact time to be determined).

Group assignment grades

Preliminary Schedule of Lectures

Introduction and administrivia (week 1)
Topics: Administration: grading, readings, safety, getting halflife
Course overview: what the course is about, what kinds of work we'll do, how robotics is different from other parts of computer science
Robot demo: Hardware components, programming environment, vision system, freespace following, safety
Building control systems: policies vs. programs; behaviors; behavior composition; state estimation
Readings: Introduction
Scheme primer
Coding clearly
Programming in GRL (October 2)
Topics: Brief overview of scheme
Defining signals, GRL programs as parallel circuits, signal procedures
Readings: GRL primer
Assignments: Group assignment 0: Familiarizing yourself with the robot
Simple control loops (October 7)
Topics: Linear SISO control, integral action, frequency-space analysis, stability, lag and prediction, effects of non-linearities, dirty tricks for dealing with non-linearities
Readings: Standard GRL library in the GRL docs
Simple control loops
Assignments: Individual assignment 1: Practice with GRL programming
Group assignment 1: Wandering
Simple behaviors
Topics: Behaviors as guarded control loops, taxes and avoidance behaviors, following
Assignments: Group assignment 2
Readings: Behavior design     also lecture slides (optional)
Compound behaviors I: Bottom-up integration (Oct 31)
Topics: Parallelism as a means of combination, prioritization, linear combination, maximal activation, Tinbergen hierarchies
Readings: Conflict resolution    also lecture slides (optional)
Assignment: Group assignment 3 (due November 4)
Individual assignment 2 (due November 6)
Compound behaviors II: Serial combination of controllers (Nov 1)
Topics: Discrete actions, a plan language, parallel combinations of serial controllers, finite-state machines, compiling the plan language to finite-state controllers
Readings: Sequential control
Assignments: Group assignment 4 (due November 20)
Flexbot Assignment (due December 4th)
Quiz: Quiz 1 Monday, November 11.
In class, closed book.  The quiz will cover everything up through sequential control.
A practice exam is available that shows you the kinds of debugging questions we might ask, along with the answers.  In addition, you should also be prepared to compare the different kinds of techniques we've discussed for combining controllers (arbitration techniques, and serial combination).  However, the real quiz will be shorter than the practice quiz.  
Symbolic control systems
Topics: Rule-based systems, explicit goals, planning, means-ends analysis, GPS, STRIPS, RAPS, GAPPS.
Readings: Rule-based control
Goals, plans, and planning
Means-ends analysis
Quiz: Quiz 2, Monday, December 6
In class, closed book.  The quiz will cover everything up through sequential control.
A practice exam is available that shows you the kinds of debugging questions we might ask.  Answers are here.  In addition, you should also be prepared to compare the different kinds of techniques we've discussed for combining controllers (arbitration techniques, and serial combination).  However, the real quiz will be shorter than the practice quiz.  This quiz will contain one programming question, but we will include and relevant information on GRL, so you won't need to memorize anything.