CS4140ES Embedded Systems Lab
Course 2017 - 2018
- Registration has closed; contact Sujay by e-mail for emergencies
- The ESL will be completely overhauled and
be replaced by the core content of the (former) Embedded Real-Time
Systems course. This course is compulsory for ES students. Students
of other MSc programs may join barring availability; the number of seats
for this course is limited by the few quadcopters that we have.
- As solid C-programming skills are required we test students on their
abilities. ES students are strongly advised to take the
self test; students who
pass will be put together in teams. Another way of
qualifying is by completing the hashmap assignment part of the
Embedded Software course. ES students who do not qualify will be put
in separate teams.
- For non-ES students it is compulsory to qualify (self test or
students who do not will not be admitted to the course.
Unfortunately, we cannot predict
how many seats will be available for non-ES students, but we will employ a FCFS
policy, so make sure you register asap.
- The registration
form is online.
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 (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
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-4 students per team). Each team is responsible for the
entire design and implementation trajectory leading up to a working
flight demonstrator. The course is compulsory for ES, and a few seats are
available for CS, CE, EE, and
other students. The teams will be formed based on skills, type of masters, and
organizational issues (black-out dates).
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 three 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
Project Deliverables and Grading
The project deliverables are
Your project will be assessed in the final lab session (week 4.9).
During this session your code, as is, has to be demonstrated on
the Quadrupel drone 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)
through the CPM site
by Tuesday June 26th, 2018, 23:59 CEST .
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 the administration. 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 through the CPM site
before Thursday June 21st, 2018, 19:00 CEST.
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 be ignored. 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.
Lectures start on Monday April 23, 15:45 (kick off), see Brightspace for
the actual roster.
Labs are at the Science Centre (Workshop 1)
on Tuesday 08:45-12:30, xor Wednesday 13:45-17:30 xor Thursday 08:45-12:30.
(NOTE: tentative and subject to change without notice):
- Week 4.1
Course introduction and lab instructions
System Architecture, QR Mechanics and Control,
- Week 4.2:
Control Theory (I)
Control Theory (II), QR Control & Simulation,
Signal Processing (I)
- Week 4.3:
Signal Processing (II)
- Week 4.4:
Signal Processing (III)
System Integration Details
- Week 4.5:
- Lab Sessions -- interim exam, yaw control
- Week 4.9:
- Lab Sessions -- D(emonstration) day !