This course is an advanced course in computer science running over two periods and focusing on the broad, inter-disciplinary field of robotics. DD2419 replaces DD2425 (or to be exact DD2425 is replaced by DD2410+DD2419).

The emphasis in DD2419 is on showing how methods are used in practice and how they are integrated into a complete system and follow up on the course DD2410 that gives a broad introduction to robotics. 

To keep things manageable and steer the learning in DD2419, the project task is predefined. So you will not be able to define your own project, but you will have loads of fun anyway! You will be working with drones in the project. In particular you will be working with the Crazyflie platform shown below.

As a communication channel for the course use our slack workspace. We think slack is a good tool also to use for the inter group communication and the hope is that it will make us all feel a bit closer in a time when we are all far apart.


Students need to be ready to invest a significant amount of time. The course is worth 9hp which corresponds to 6 weeks of full time studies (i.e. 240h) and we expect you to spend this amount of time, i.e. a lot more than on most other courses worth 9hp. To take the course you need to be willing to invest this time.

Many or maybe even most of you will find that you spend a much smaller part of your time on doing "real" work than you would have thought. Welcome to the real world! For some of you this "pain" will start with having to use your computer as the powerful tool it is and not just as s device for typing reports on. All of you will experience that there is a big step from idea to actually implemented, tested and working code that realised that ideas and deals with an unknown environment.

Prerequisites: DD2410 or equivalent.


Course material

There is no official course book. You are expected to bring with your knowledge from previous courses on topics such as mathematics, control, computer vision, estimation and robotics. Some material will be presented during the lectures but this will most serve as giving pointers to material and ideas that can be useful in the project rather than in depth details on any of the topics. The scope is too wide for that. Each student and group will beed to assess the need for new knowledge and acquire this to solve the tasks. This is an important objective for studies at KTH and a skill that is absolutely necessary to stay relevant in a world that is changing faster and faster all the time.

You will find all the information for the course available under Modules in the side menu. Each module corresponds to a different part of the course. 


Assessment tasks

The course consists of the following assessment tasks.

"Flight camp"

You will learn the basics of the different components / part of the system in a tutorial style assignment using a simulator. It ends with an individual task that you should solve and you need to present your work to a TA and show that you understand. Passing the requirement from the flight camp earns you the right to work with the real hardware and thus participate in the project.

You need to pass the flight camp assignment no later than one week after the last official presentation slot to be allowed to continue the course. The flight camp tests you prior knowledge of ROS and without this knowledge you will not be able to contribute to the work in the group in a fair way.


This is the main form of examination. The project is split into two parts, one where you will be working in groups of two and the main part of the project that is carried out in groups of four students.

Each group is assigned a TA as the main point of contain in the course.

Students are assessed on an individual basis. Three milestones are defined along the way with increasing level of complexity.

Progress presentations and documentation

You will need to report on the progress of the project along the course in several way.

You meet with the teacher and TA a few times during the course. Your presence at these meetings are required and should also be in your own interest so that we can get to know you and what you have learned.

You will report your progress in written form each week in your groups. 

Roughly halfway through the course you need to submit a reflection on the work so far in the course. This is a way to ensure that you learn from this first part and take this with you into the second part.

At the end of the course you are asked to write two reflections about the work and one report about the system design. The first two are to make you to pause for a while and think about your work in the course and the project group. The design report should show that you understand the design of your group's system.



Each group will have access to 

  • Crazyflie drone
  • Flowdeck (to measure height above ground and relative movement x,y,yaw)
  • Camera
  • Radio receiver that can receive the camera signal

During the project work you will work on three main functions on the drone

  • Perception: detect and position objects
  • Localization: estimate the position of the drone (based on information from camera and other sensors and the information from the map)
  • High level control: plan where to move and how  (based on the position from localization and the information from the map)

and these will be integrated into a system. None of the things above can be done (well) in isolation. You are likely to find that this interaction and integration between parts of the system (and thus often people) is the most challenging aspect in the course and most real work for that matter.

Having completed the flight camp you should have a simple baseline implementation that you can start from on the real hardware. Once making this transition from simulation to the real world it will be very clear that the real world holds many challenges that you will often have been protected from in other courses but which are of essence to address in order to operate out there in the wild.

Project groups

The groups size in the course is first two people and then four people.

During the first week of the course we will form groups of two students. Each group will get one hardware setup at the start of week two of the course. The main task for these groups will be to get used to the real hardware, apply what you did in flight camp on the real hardware and do some tests. You will be able to form these groups yourself and given the covid19 situation we ask you to make these groups in a way that you live close or already work together in other courses or anything else that will make working together with hardware easier without too much risk of contributing to the spread of covid19.

A few weeks into the course, groups of four students will be formed. In most cases these groups will be formed by merging two two person groups but given that some students might not pass flight camp and thus not be allowed to continue the course these might be some exceptions. Each such four group will have two hardware setups. 


Progress reporting

You will have to report on the progress in your group roughly weekly. The main motivation for these reports is to increase the chances that you actually meet and discuss the progress of the work. The reports contains for example, what each person has been doing since the last report, what they plan to do until the next one, if there were any problems, etc. This type of information MUST be shared in the group for the team to function but experience shows that in some groups this does not happen naturally. The report also summarises the status of the overall system and who did what there. We follow the honor code of EECS. For group work this states that "If students have contributed in varying degrees during group assignments, this shall be openly acknowledged." Participating actively in the reporting is one of the grading criteria in the course and we will ask you to describe who contributed to the report and which process you used to compile it.

There will also be meetings with the teacher and assigned TA where you report progress. These are mandatory.

You can also meet the TA on demand. You call these meetings but remember that you are the ones solving the problems in the course not the TA. You need to adapt your solution to your abilities, not to your TAs abilities.



The first assessment is an individual assignment ("flight camp"). This aims to make all students familiar with the basic methods and software used in the project and as such enable all to contribute better to the project work later. You must pass the flight camp assignment on time to be allowed to continue the course into the project part.

The main form of examination in this course is the project work, carried out in groups. You will be asked to document and present your work along the way. 

Grading (pass/fail)

The grading is based on fulfilment of a set of grading criteria. These are presented below. For a more in depth discussion on the grading criterias and the grading click here.

Intended Learning Outcomes (ILO)

After completing the course the student should be able to

  1. implement and integrate software components for robots
  2. solve a robotics task with limited resources

in order to

  • be able to work with autonomous and other complex systems in research and/or development
  • become better at planning, executing and developing work in project groups.


Course components

  • INL1 ( Flight camp assignment )
  • PRO1 ( Project work )
  • INL2 ( Documenting and presenting the work in the project along the project )

In this course the regulations of the code of honor described here apply.



This is a project course that makes use of actual hardware and we therefore need to limit the number of students. It is a robotics project course that makes use of ROS and where we apply robotics rather than learn the basics. The assumption is thus that you have taken a robotics course before and that you know ROS. At KTH this corresponds to having taken course DD2410. You will be admitted in competition with other students. If your coordinator or you yourself add you to the course without getting an approval from the person responsible from the course you will not be planned for when ordering hardware and you might not be able to take the course. Please contact the teacher of the course if you have questions about the admission.



Datum Information