CS 474/574: Autonomous Systems

 

HANDOUTS
Assignment 1
Solution 1
Assignment 2
Solution 2
Assignment 3
Solution 3
Assignment 4
Assignment 5

Course Overview:

From the bluebook:

Computer Science 474/574b, Autonomous Systems.

MWF 2.30-3.20  Not CR/D/F IV(0)

Basic principles of building a purposeful autonomous robotic system.  Theory and practice of control systems, sensors, representation of the environment, and planning.  Students construct a simulated autonomous system and work with a real mobile robot.  After Computer Science 323a or equivalent.

Time: MWF 2:30-3:20
Place: AKW 200

Autonomous Systems is the CS Department's "robotics course".  Despite the description above, it does not involve "building" robots in the mechanical or electrical sense.  (If you want to do that, you should take Roman Kuc's EE201 or EE350.)  Instead, you will "build" robots by writing programs that deal with the fundamental control, navigation, and planning issues in mobile robotics.  We will use a high-level programming language called FRP (functional reactive programming) for this purpose, and initially the robots will be simulated.  As a final project, you will write FRP programs for real robots in our robotics lab.

Of course, you will learn more than just how to program robots.  You will learn the fundamental issues in robot design: locomotion, sensing, kinematics, and control.  For that purpose, basic knowledge of linear algebra, calculus, and differential equations will be required.  You will also learn about higher-level issues of planning, obstacle avoidance, coordinated motion, learning about the environment, and so on.

Enrollment:

Because of the limited laboratory equipment, this course will be capped at about 25 students.  Priority will be given to juniors, seniors, and first-year PhD students for which vision or robotics may be a potential research interest.  We will do our best to accommodate everyone's needs.

Instructors:

Instructor:  Prof. Paul Hudak
Office hours:  TBD
Office: 308 AKW (Arthur K. Watson Hall, 51 Prospect St)
Phone: 432-1235
Email: paul.hudak@yale.edu

TA: Zhanyong Wan
Office hours:  TBD
Office: 313 AKW (Arthur K. Watson Hall, 51 Prospect St)
Phone: 432-1267
Email: zhanyong.wan@yale.edu.

Textbooks: 

There is one required textbook for the course:

Computational Principles of Mobile Robotics
by Greg Dudek and Michael Jenkin
Cambridge University Press, New York, 2000
Paperback - ISBN: 0-521-56876-5

This book should be available now at the Yale Bookstore.  It will be supplemented with other material.

FRP is a domain-specific language embedded in Haskell, and thus it is beneficial to learn Haskell, which is a purely functional language that is quite a bit different from mainstream languages such as C, C++, or Java.  If you are taking CS-429 concurrently with CS-474, your problem is solved.  Otherwise, I recommend at a minimum the tutorial: A Gentle Introduction to Haskell found at: http://haskell.org/tutorial/, or just use the on-line version if you like.  Better than that, you will find the following book useful:

The Haskell School of Expression --
Learning Functional Programming through Multimedia

by Paul Hudak
Cambridge University Press, New York, 2000
Paperback - ISBN: 0-521-64408-9

I have ordered some of these for CS-474, but it is also being used in CS-429. 

Computing Resources:

The Haskell implementation that we will use is called Hugs, and it is installed in the Department's educational computing cluster (the Zoo), which is located on the third floor of A.K. Watson Hall (the Computer Science Department, at 51 Prospect Street).

Please visit: http://www.yale.edu/zooaccount to register for this class in the Zoo, even if you already have an account in the Zoo.   By registering for the class, a work directory will be created for you in /home/classes/cs474/class.

If you prefer to run Hugs on your own machine (laptop or otherwise), go to http://haskell.org/hugs where you will find easy instructions on how to download the system for either Windows or Linux machines.

Details on how to use Haskell and Hugs will be forthcoming.

Web Page and Newsgroup:

This web page (plucky.cs.yale.edu/cs474)  will the source of programming assignments, solutions, and other relevant information.  There is also a newsgroup for the course: yale.cs.cs474.  You can ignore anything in this newsgroup before Jan 8, 2001, but be sure to read it regularly -- it may contain important information, such as hints for and/or corrections to homework assignments!

Required Work:

There will be several problem sets and a final project (no exams!).  The work will be graded by your TA and returned, along with solutions, nominally within one week.  Late work will be accepted at the discretion of the instructor and/or TA and will generally be subject to a late penalty, unless accompanied by a Dean's excuse.  Assignments turned in after solutions have been published will not be accepted, even with a Dean's excuse, although alternative make-up work may be authorized.

It should go without saying that when you hand in (electronically or otherwise) a paper with your name on it, I assume that you are certifying that this is your work, and that you were involved in all aspects of it.  It is Ok to work with other students on the concepts underlying an assignment, but you are expected to do the actual assignment on your own, based on your own level of progress with the material.

Grades:

Your grade will be based on a combination of homework assignments and the final project.  You are expected to do all of the homework assignments, which will count as a significant part of your grade!