DD2419 VT20 (60165) Project Course in Robotics and Autonomous Systems

Please follow this page for updates caused by the Covid-19 situation

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.

 

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.

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 in the weeks following the flight camp 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 groups will beed to assess the need for new knowledge and acquire this to solve the task. This is an important objective for studies at KTH and a skill that is absolutely necessary to stay relevant in a word 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  different parts of the course. This design of this is largely a result of the the learning management tool used at KTH (Canvas). It takes a while to get used to but give it time and it will grow on you.

 

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.

Project

This is the main form of examination. A project is carried out in groups of four students. The project work will be conducted in two phases. In the first phase groups are formed by the teachers and then half way through you will be allowed to re-group. Students are assessed on an individual basis. Three milestones are defined along the way with increasing level of complexity.

Progress presentations

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

To stimulate efficient sharing of ideas between groups there will be a weekly / bi-weekly progress meeting with all / half of the students depending on how many students take the course. You are required to participate in the three seminars where the milestones are assessed.

You will also have to report your progress in written form each week.

Written documents

You will report progress weekly in your group.

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 phase.

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.

 

Project

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
  • External SSD hard drive with a Linux installation that can be moved between "host" computers.

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)
  • Motion control: control the motion of the drone (based on the position from localization and the information from the map)

and these will be integrated into a system that can perform various tasks. None of the things above can be done (well) in isolation. You are likely to find that this interaction between parts of the system (and thus often people) is maybe 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 four people. You will be given a group at the first lecture which you will work with during the flight camp and the first part of the project. We want you to go through the tutorials in the flight camp together and help each other with the flight camp assignment. Each of you should have your own solution to the assignment and be able to defend it and show that you understand everything but you are free to discuss as much as you want. During the phase you will learn about each other's strength and weaknesses which is likely to help you as you plan the project work to come.

 

Progress reporting

You will have to report on the progress in your group roughly weekly. 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. The report also summarises the status of the overall system and who did what there.

There are weekly seminars. Three of these will focus on the assessment of how well the group's  meet the requirements defined my the milestones. Everyone need to be present for these seminars. For the rest, each group need to be represented by at least one person.

 

Final inspection

Towards the end of the course you will need to show that your solution fulfills the minimum requirements described here.

Ideally you show this no later than during the flight trial week, week of the final contest. The flight trials also serve as qualifiers to the contest. The best N teams will compete in a public event on April 24 in the atrium in the E-building on the main campus. 

 

Examination and Grading

The first assessment is an individual assignment which 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 will not be allowed to start the project work until you have passed the requirements for the first assignment. The main form of examination in this course is the project work, carried out in groups of 3 students. You will be asked to document and present your work along the way in seminar form. 

Grading

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 all the regulations of the code of honor apply, see https://www.kth.se/en/csc/utbildning/hederskodex/regel1-1.55624

 

Admission

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.

 

Kurssammanfattning:

Datum Information Sista inlämningsdatum