Syllabus
Course Description
Presents concepts, principles, and algorithms for computation and action in the physical world. Topics covered are: motion planning; geometric reasoning; kinematics and dynamics; state estimation; tracking; map building; manipulation; human-robot interaction; fault diagnosis; and embedded system development. Students specify and design a small scale yet complex robot capable of real time interaction with the natural world.
Course Objectives
Lecture and lab attendance is mandatory. The challenge solutions will be demoed during the last laboratory.
You will build your robots in teams. Each group will design and implement the hardware and software for their robot. All robots will have to be able to execute the same challenge task.
Prerequisites
This course has no formal prerequisites other than a facility with computers and programming, some exposure to algorithms and formal methods, and a desire to build robots. Permission of the instructor is required. A course in mechanical design and construction is helpful but not necessary.
Robotics: Science and Systems I is a prerequisite for Robotics: Science and Systems II. We encourage Mechanical Engineering students to enroll but advise them that they will have to petition to use these credits to fulfill ME degree requirements.
Programming Languages:
Robots can be programmed in many different languages. In this class, we require that you submit your assignments in Java, and we will provide assistance only for Java-based implementations.
Additionally, we support only the Linux operating system in RSS.We will not provide assistance with the problem sets
or the project in anything other than Java running on Linux. If you choose to use something other than the supported
flavors of Java and Linux, you are responsible for generating correct, real-time behavior on your robot.
You will need to understand the Java syntax by the end of the first week. Java is sufficiently similar to Ada that this
should be easy if you have experience in Ada from Aero-Astro’s Unified Engineering curriculum. However, if you
haven’t had a lot of Java exposure you might find one or more of the following books helpful:
- David Flanagan. Java in a Nutshell, 4th edition, O’Reilly, 2002. A reference book rather than a tutorial. Succinct but covers a lot. Assumes knowledge of a language like C. Details at http://www.oreilly.com/catalog/javanut4/.
- Joshua Bloch. Effective Java: Programming Language Guide, AddisonWesley, 2001. The Bloch book explains,in about 60 short items, some key ideas in program style, as well as some subtleties of Java; it’s perhaps betterappreciated when you have some familiarity with Java and want to delve deeper. Both books are available at Quantum Books.
- Ivor Horton. Beginning Java 2 – JDK 1.4 Edition, Wrox Press, 2002. Tutorial introduction to all parts of Java, including user interface libraries. No knowledge of other languages is assumed.
Required Textbook
Introduction to
Autonomous Mobile Robots (Intelligent
Robotics and Autonomous Agents) by
Roland Siegwart, Illah R. Nourbakhsh
Other Reading
In addition there will be reading distributed in the form of course notes and papers. You have to read all the materials you will receive in the course. Here are some other relevant books:
- Robot Motion Planning, Latombe, Kluwer Academic Publishers.
- Mobile Robots, Inspiration to Implementation, Jones & Flynn, A. K. Peters.
- Artificial Intelligence, A Modern Approach, Russel & Norvig, Prentice Hall.
- Behavior-Based Robotics, Arkin, MIT Press, 1998.
- Robotic Explorations, Martin, Prentice Hall
- Computational Principles of Mobile Robotics, Dudek and Jekin
Grading
| Component | Percentage |
| Final Paper |
5% |
|---|---|
| Class Participation |
5% |
| Challenge presentation |
10% |
| Written Lab Reports |
35% |
| Debate Performance |
10% |
| Challenge proposal |
10% |
| Challenge design |
10% |
| Challenge implementation and performance |
10% |
The table above includes sample data. Edit the table as befits the class being worked on.


















