In4073 Embedded Real-Time Systems
Course 2017 - 2018


watch the movie

Registration and Admission

As this is mainly a project-based course, and the number of seats in the lab is limited, it is compulsory to properly register for the course. Attendance to the lab is mandatory (failing a lab means failing the course!) and proficiency in C programming is a must. Also note that the course is for 2nd-year MSc students only as it is quite demanding. Students will be grouped into teams of three, preferably with a mixed background as this is a multidisciplinary project. You will have to pass an acceptance test (verifying your C-programming skills) and enroll yourself through an on-line registration form (to be uploaded in due time).

Course Description

This highly multi-disciplinary course comes with a lab project where teams of 3 students each will have to develop an embedded control unit for a tethered electrical model quad rotor aerial vehicle (the Quadrupel drone), in order to provide stabilization such that it can hover and (ideally!) fly, with only limited user control (one joystick). The control algorithm (which is given) must be mapped onto a home-brew PCB holding a modern RF SoC interfacing a sensor module and the motor controllers. The students will be exposed to simple physics, signal processing, sensors (gyros, accelerometers), actuators (motors, servos), basic control principles, and, of course, embedded software (C) which is the programming language to be used in order to develop the control system. The course was developed by Arjan van Gemund, a former member of the Embedded Software group.

Course Format

The course is offered during the 1st quarter of the academic year (sep-oct), and is centered around a lab. Students are split into teams (approximately 3 students per team). Each team is responsible for the entire design and implementation trajectory leading up to a working flight demonstrator. The course is elective for ES, CS, CE, EE, and other students. The teams will be formed of students with mixed background, in order to (1) equally distribute the capability spectrum over the teams, and (2) to learn appreciate the capabilities of fellow students with a complementary background.
The quality of the end result (flight demonstrator plus written report) and the student's personal involvement and contribution determines the course grade.

Lab facilities are available under the supervision of two Teaching Assistants throughout the entire course period during the 4-hour labs. The teams are scheduled in such a way that each team has weekly access to the lab facilities during one of two slots. In total each team has 8 labs (i.e., 32 hours) over the entire course period. Of course, much of the team work, such as meetings, background study, programming, all of which do not require lab equipment (i.e., supervision) (must) be performed outside lab hours. As the project work will most definitively exceed the 32 (supervised) lab hours (more like some 120 hours!), this unsupervised mode of team work has been shown to be a crucial success factor within the project.

Next to the lab, we have two lectures per week. Lectures include QR mechanics, actuators, servos, sensors, elementary control theory, and embedded programming. The purpose of the lectures is to provide the information necessary to successfully perform your lab project.

Project Assignment and Lab Resources

To pass the course each team must successfully design, demonstrate, and document a QR control system (as mentioned earlier), as described in the following assignment.
The lecture notes (see below) and an extensive set of relevant information (documentation, links, software) collected on the Project Resources page are available for reference.

Project Deliverables and Grading

The project deliverables are

Course Schedule

Lectures are on Monday Sep 4, 15:45 (kick off) and then every Wednesday 10:45.

Labs are in Practicumzaal 2/3 in the Tellegenhal at the low end of the EWI building,

Week schedule (NOTE: tentative and subject to change without notice):