Computer Science 154
Robotics
Overview/Syllabus, Spring 2009



General Information

Instructor: Zachary Dodds
Office: Olin 1255
Phone: x71813     (909-607-1813)
E-mail: dodds@cs.hmc.edu
Official Office Hours: W 4-5, F 1-4
Real Office Hours: Stop by anytime!


Class Time and Place:
  • Tue and Thu 9:35-10:50, Jacobs B134
Course Homepage: http://www.cs.hmc.edu/courses/2009/spring/cs154/index.html

Is This Course for You?

Yes! CS 70 is a prerequisite in order to handle the programming components of the course, though this is CS 60 for non-CS majors. Even more important is the ability to learn new languages/APIs quickly, since these appear all over the place in robotics.

What Is This Course About?

The goal is to provide a hands-on introduction to robotics. Robotics is the study of computational interaction with the physical environment, and this course will take a rather CS-ey approach to the field. That is, we will worry less about the actuators (motors) and their low-level control and more about sensing (vision, sonar, IR, ...), and reasoning (system architecture and planning) about spatial interaction. We will look at theoretical and practical algorithms that support robotics, including kinematic modeling, path planning, configuration space, probabilistic data analysis, and computer vision. The assignments and lab component of the course is an opportunity to apply these ideas through both scripted and open-ended labs.

Reading

Required reading will come from a variety of original papers. Robotics is a relatively immature subfield of computer science -- I would say that this is a good thing! As a result, fundamental results and principles are still being developed. These papers will provide snapshots of this ongoing work, as well as some classic breakthroughs.

There is an optional (excellent) text, Probabilistic Robotics by Sebastian Thrun, whose approaches have influenced robotics a great deal in the last decade. However, we will read some of the papers that eventually became this textbook. Also, a couple of copies are in the robotics lab.

Assignments and Grades

Learning objectives

This course has three central goals, each with a number of associated objectives:
  1. Aim 1: To familiarize students with the core algorithms and challenges present in the field of autonomous robots    Objectives:
    • Implement fundamental robotics algorithms, including Monte Carlo localization, the Kalman filter, FastSLAM (a variant of simultaneous localization and mapping), and classical motion planning
    • Solve written problems that exercise core robotics concepts (done both during and outside of class), including kinematics, sensor modeling, and the geometry of computer vision
    • Implement a solution to a robotics problem (of the students' choice) in a medium-size project using a physical, rather than simulated, platform.


  2. Aim 2: To increase students' knowledge of current computer vision applications -- and the growing potential for future ones    Objectives:
    • Complete written homework exercises (1) in which real-world (and fictional) autonomous systems are placed in their historical and research context and (2) which explain (some of) the design principles and kinematic choices made in current commercial and research robots
    • Read and use (via citation and in prose motivating the students' work) at least a dozen source papers from roboticists past and present, including (but not limited to) Helen Greiner, Daniela Rus, Rod Brooks, Maja Mataric, and Sebastian Thrun.


  3. Aim 3: To increase students' ability to pursue future graduate or industry paths, whether involving computer vision or not    Objectives:
    • Create a series of websites of a quality and depth that would demonstrate to potential employers or graduate advisors an applicant's ability to undertake, complete, and document significant research and implementation projects
    • Design, develop, and deploy an autonomous system, and then guide a public demonstration of its operation; create videos (or other media) that summarize the project for sharing in the future
    • Practice constructively critiquing such demonstrations -- both of other students and of oneself

Collaboration Policy - Honor Code

All conduct in this course should be conducted in accordance with the Harvey Mudd Honor Code. In particular, the projects in CS154 offer the opportunity to work with one or two other students. It is important that that work truly be a product of all of those participants. Also, while discussion about problems or projects is welcome outside of a lab group, you may not share (give or receive) work with other groups or others outside the class. Of course, you may use the assistance of the instructor and grader/tutors (if there are any).