Introduction

The CS4140 Embedded Systems Laboratory aims to provide MSc students ES, CS, CE, EE, and the like, with a basic understanding of what it takes to design embedded systems (ES). In contrast to other courses on ES, especially those originating from the EE domain (traditionally the domain where ES originate from), in this course, the problem of embedded systems design focuses on using standard, programmable hardware components, such as microcontrollers, and subsequently connecting them and programming them, instead of developing, e.g., new ASICs. The rationale is that for many applications, the argument in favor of ASICs (large volumes) simply doesn’t outweigh the advantages of using programmable hardware.

Consequently, the course focuses on embedded software. The goal of the 5 ECTS credits course is not to master the multidisciplinary skills of embedded systems engineering, but rather to have the student understand the basic principles and problems, develop a systems view, and to become reasonably comfortable with the complementary disciplines.

Project

The project chosen for this course is to design embedded software that controls and stabilizes an unmanned aerial vehicle (UAV), commonly known as a drone. In particular, the course centers around a quad-rotor drone, dubbed the Quadruple, developed (brewed!) in house by the Embedded Software group. This application has been chosen for a number of reasons:

  • The application is typical for many embedded systems, i.e., it integrates aspects from many different disciplines (mechanics, control theory, sensor and actuator electronics, signal processing, and last but not least, computer architecture and software engineering).

  • The application is contemporary. Today’s low-cost drones can be flown with ease because of the embedded software that stabilizes the drone by simultaneously controlling roll, pitch, and yaw1. Without such control software, even experienced pilots find it difficult to fly a drone in (windy) outdoor conditions without crashing a few seconds after lift off.

  • The application is typical for many air, land, and naval vehicles that require extensive embedded control software to achieve stability where humans are no longer able to perform this complicated, real-time task. Professional aerial vehicles such as helicopters, most airline and fighter jets totally rely on ES for stability. This also applies to submarines, surface ships, missiles, satellites, and space ships. Today’s push towards self-driving cars is another domain that critically depends on much of the same technology.

  • Last, but certainly not least, quad rotor drones are great fun, as shown by the rapidly increasing commercial interest in these toys (and this course).

Although designing embedded software that would enable a drone to autonomously hover at a given location or move to a specified location (a so-called autopilot) would by far exceed the scope of a 6 EECS credit course, the course project is indeed inspired by this very ambition! In fact, the project might be viewed as a prototype study aimed to ultimately design such a control system, where a pilot would remotely control the drone through a single joystick, up to the point where the UAV is entirely flown by software

1

roll, pitch, and yaw are the three angles that constitute a drone’s attitude in 3D. See Theory of Operation