In4073 Embedded Real-Time Systems Course 2011 - 2012
watch the movie
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,
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.
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
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
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.
To pass the course each team must successfully design,
demonstrate, and document a QR
control system (as mentioned earlier), as described in the
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
The demonstrator must be finished during the
final lab session. During this final session your design, as is,
has to be demonstrated on the QR in order to obtain your grade
for the demonstrator (D, makes up 75% of the total course grade G).
NOTE: no demo, no grade.
- Technical Report
The technical report
must be submitted in pdf format (max 10 pp,
including figures, tables, appendices, see assignment
document) by email before Sun Apr 8, 23:59 CET.
The report must contain everything you deem relevant, so
don't submit additional material (source codes,
data files, plots, etc.), only the 10 pp. pdf file!
The point here is that a team must be able to communicate
all information relevant to the project within 10 pp.
The report makes up 25% of your grade (R).
The course grade G equals G = 0.75 D + 0.25 R iff D >= 5 and R >= 5,
otherwise the course is failed and no grade is submitted to
Reports that are submitted after the deadline will not be accepted,
(i.e., R = 0, which implies you fail the course!).
- Source Code
Each team must submit a folder of all
source files (.c, .h, .vhd) at the time of the actual demonstration
(to be collected on a memory stick by the TA).
The purpose of this is to check for fraude and
to evaluate the nature of each student's personal code
contribution to the team result.
To this end, each function must be authored by one
team member, who takes full ownership and responsibility
of that piece of code. Multiply authored code will
NOTE: don't add other sources of information to the folder
such as figures, tables, log files, etc., effectively using the folder
as a backdoor to complement the team report
with additional data that didn't fit into the hard 10 pp. page limit.
Any such data will be ignored.
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).
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,
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.
(NOTE: tentative and subject to change without notice):
- Week 3.1
- Monday 7/8 (Feb 6):
Course introduction and lab instructions
System Architecture, QR Mechanics and Control,
- Tuesday 7/8 (Feb 7):
Embedded Programming on the X32
- Lab Sessions 1
- Week 3.2:
- Monday 7/8 (Feb 13):
Control Theory (I)
- Tuesday 7/8 (Feb 14):
Control Theory (II), QR Control & Simulation,
Signal Processing (I)
- Lab Sessions 2
- Week 3.3:
- Monday 7/8 (Feb 20):
Signal Processing (II)
- Tuesday 7/8 (Feb 21):
Signal Processing (III)
System Integration Details
- Lab Sessions 3
- NOTE: 1 week vacation
- Week 3.4:
- Monday 7/8 (Mar 5):
Real-Time Operating Systems (I)
- Tuesday 7/8 (Mar 6):
Real-Time Operating Systems (II)
- Lab Sessions 4
- Week 3.5:
- Monday 7/8 (Mar 12):
- Tuesday 7/8 (Mar 13):
- Lab Sessions 5
- Week 3.6:
- Monday 7/8 (Mar 19):
- Tuesday 7/8 (Mar 20):
- Lab Sessions 6
- Week 3.7:
- Monday 7/8 (Mar 26):
- Tuesday 7/8 (Mar 27):
- Lab Sessions 7 (Final Session!)
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
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