As of Monday 25th of September, the Duckietown course has started!
- This site will no longer be updated until the end of the course (end of December 2017)
Welcome to the webpage for the class Autonomous Mobility on Demand (AMOD): from car to fleet (catalogue number 151-0323-00L), which is informally known as “Duckietown”.
Updates to this page
06 July 2017 -
Teaching Assistants positions -
We have posted the announcements for Teaching Assistant positions.
01 July 2017 -
Course website is online -
The class website is up.
This class is a new offering at ETH Zürich for Fall 2017 in the context of the Master of Science in Robotics, Systems and Control and the Master in Mechanical Engineering in the Department of Mechanical and Process Engineering (D-MAVT). This class follows the extremely succesfull first edition at MIT in 2016. Read below about what makes this a special class.
For ETH Zürich Students
Note that there is only a limited number of spots available, because of resource constraints (e.g. each student gets a robot).
Please read this page thoroughly and sign up only if you think the class is right for you. It might help to take a look at the materials for the first edition of the class, at the site duckietown.mit.edu.
For ETH Zürich Master Students: We have available positions for:
For ETH Zürich postdoctoral researchers (and very senior Ph.D. students): Last year, at MIT, one of the collateral uses of Duckietown was to provide an opportunity for postdocs to develop their teaching and mentoring skills. We will reproduce the same idea.
We are looking for:
Dates and times
This is a 4 credits class.
|Monday||13-15||HG F 26.5|
|Wednesday||10-12||HG E 22|
There will be a lab session, whose time and space will be announced later.
We are looking for postdocs to give guest lectures on their specialties.
This is a temporary syllabus (approximately 80% converged).
- Introduction to Duckietown / summary of last years class;
- Overview of autonomy - perception, planning, control;
- Autonomy architectures;
- Representations. Knowledge representation: tasks, goal;
- Software architecture and middlewares;
- Modern signal distribution and processing: periodic vs event-based processing; latency/frequency;
- Modeling kinematics/dynamics;
- Odometry calibration;
- Sensors + Computer vision I - basics;
- Computer vision II - illumination invariance;
- Computer vision III - line detection;
- Feature extraction, place recognition;
- Bayesian estimation;
- Bayesian filtering;
- Mission planning / discrete planning A*;
- Motion planning - RRT*;
- Control of vehicles (PID, MPC, etc.);
- 2D/3D object detection / tracking, object classification using deep learning;
- Semantic segmentation, text recognition using deep learning;
- Reactive control;
- Formal methods for safety;
- Fleet-level planning;
- Testing, validation and verification.
The grade is based on three factors:
- the realization of a project (40%);
- a project report (40%);
- a project presentation (20%).
The projects will be group based, but the contribution of each student will be assessed individually.
These are necessary pre-requisites to take the class:
- Knowledge of basics of probability theory.
- Some programming experience (outside of Matlab or similar environment).
- Familiarity with Linux development.
- Familiarity with Python (or be quick to learn).
- Access to a laptop on which you can install a particular Linux distribution dedicated to the class. Note: Virtual machines are unsupported. You will be on your own to debug problems related to the configuration.
- At least 200 GB of free disk space.
- (Infrequent) access to an SD card reader/writer. A few times in the semester, you will be asked to burn an SD card image.
- Ability to store somewhere (at home or somewhere on campus), and to bring regularly to the lab, a box, or “Duckiebox”, of dimensions 30 cm × 30 cm × 60 cm. This box has to be used to contain your Duckiebot and associate materials.
We will teach or provide points to these skills, but you are encouraged to read about them before the class:
- Source code management using Git; use of Github; branching and pull requests.
- Logging and working in remote computers using
- Use of the
Related classes at ETH Zürich
There are several related classes available to ETH Zürich students. In particular, we recommend:
Prof. Siegwart’s and Prof. Chli’s Autonomous Mobile Robots (AMR), in the second semester. If you cannot get into AMOD, the AMR class will give you a solid introduction to robotics. Because the content and format are different than AMOD, it makes sense to take AMR as either a follow-up to AMOD or before AMOD. Note also that AMR is already available in EdX.
What makes this a special class
The best engineers are the ones who have solid theoretical foundations, as well as practical experience in the domain of intereset.
In autonomous robotics, it is important to get the “feeling” of what actually makes a robot work—how the success or failure depends on subtle interaction between many hardware and software components.
To obtain enlightenment, it is necessary to study a complete system like Duckietown — the materials might be cheap, the appearance might be playful, but the complexity of behaviors and representations is comparable to those of deployed robotic systems.
For more information about the class philosophy, please refer to this paper:
A personal experience
Each student gets their own personal Duckiebot (which they need to build from parts).
Collaboration/competition with twin institutions
We are going to try something for the first time in the world: teaching the same class at three different institutions, at the same time, with students interacting across continents.
This class is offered at the same time at two others institutions:
- At the University of Montreal, Canada, lead by Prof. Liam Paull.
- At the University of Chicago / Toyota Technological Institute, led by Prof. Matthew Walter.
The three institutions will develop the autonomous fleets together, and there will be a (very friendly) competition at the end.