In4073 Embedded Real-Time Systems Course 2011 - 2012


[Fly with Single Josystick Control] [An FPGA Board Running your Embedded SW] [Quad-Rotor Vehicle]     watch the movie

Course Description

This highly multi-disciplinary course comes with a lab project where teams of 4 students each will have to develop an embedded control unit for a tethered electrical model quad rotor aerial vehicle (aka QR), in order to provide stabilization such that it can (idealy!) hover and (slowly) fly, with only limited user control (one joystick). The control algorithm (which is given) must be mapped onto a Linux PC (C) in conjunction with an FPGA board (RTOS/embedded C, running on a VHDL soft core) that communicates with the sensors and actuators on the QR. 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 is offered by the Embedded Software Group which is part of the Software Technology Department of EEMCS.

Course Format

The course is offered during the 1st half of the 2nd semester, and is centered around the lab. Students are split into teams (approximately 4 students per team). Each team is responsible for the entire design and implementation trajectory leading up to a working QR flight demonstrator. The course is elective for ES, CS, CE, EE, and other students. The ES students will be organized in teams of approximately 4 ES students, and, because ES students are obviously expected to be good at building embedded systems, they will face additional challenges, compared to their CS, CE, EE, etc. fellow students. The other students (CS, CE, ..) will be organized in tn teams of approximately 4 students of mixedstudy 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 three 4-hour slots. The teams are scheduled in such a way that each team has weekly access to the lab facilities during one of the three slots. In total each team has 7 slots (i.e., 28 hours) lab access 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 24 (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 FPGA soft core programming. The purpose of the lectures is to provide the information necessary to successfully perform your lab project.

Project Assignment

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. Since the preferred document format for the project reports is Latex (the assignment als also typeset using Latex) the sources of the assignment document are also available as an example.

Project Deliverables and Grading

The project deliverables are

Course and Lab Resources

There is no text book or lecture notes available for this course. Basically, the text book is The Internet, which provides access to a wealth of up-to-date information. Most of the material necessary to do the project and follow the lectures has already been collected at the Project Resources page (information on QR and FPGA hardware, actuators, sensors, data sheets, various tutorials, manuals, example software, interesting links).

Course Schedule

Lectures are in Class Room EWI-D on Monday 7/8 and in Class Room EWI-C on Tuesday 7/8.

Labs are in Lab Room DW_0-210 at the lab building at the Drebbelweg, (more info) on Thursday 5/8, Friday 1/4, and Friday 5/8. NOTE: morning hours are 8:45 - 12:30. Afternoon hours are 13:45 - 17:30. The Thursday (afternoon) slot is reserved for Teams A, D, G, etc. The Friday morning slot is reserved for Teams B, E, H, etc. The Friday afternoon slot is reserved for Teams C, F, I, etc.

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

Registration and Admission

The in4073 course is centered around the lab. In order to be admitted to the course, apart from the obvious Blackboard registration, lab registration and attendance is mandatory! Each student that enrolls in in4073 must therefore separately register for the lab project. The lab is hosted by the Elektrotechnisch Prakticum at the Drebbelweg Lab building.
To register you need to visit the Registration Page of the in4073 lab (CLOSING Fri Feb 3!). You need to register corresponding to your study. CS students select "Embedded Software for CS", ES students select "Embedded Software for ES", CE students select "Embedded Software for CE", and other students select "Embedded Software for XX" (XX students: be advised that proficiency in C is required. Students that do not sufficiently master C are not admitted and/or expelled from the lab). Check if you are indeed at the page corresponding to your study and register at the first team that is not yet fully occupied and that is scheduled at a slot that fits your personal study schedule.
Note that registration is at first-come-first-served basis, so there is no guarantee that you can be scheduled at the slot of your personal preference. If you registered under another MSc program than the program you actually are following (e.g., in order to team up with your favorite buddies) you face the risk of NOT being admitted to the course, and at the very least, you face the risk of being registered at another team. Students that have not enrolled through Blackboard and the above lab registration site will NOT be admitted to the course (and lab). NOTE: Any student that fails to attend any of the lab sessions is automatically expelled from the course. Questions around lab registration can be emailed to Teaching Assistant Andreas Loukas (loukasan [at] gmail [dot] com).
Arjan J.C. van Gemund Instructor