Home/Vakken/Robot Software Practicals
RO470035 ECTSQ1EngelsMaster

Robot Software Practicals

FaculteitMechanical Engineering
NiveauMaster
Studiejaar2025-2026

Beschrijving

This course teaches students the basics for creating and collaborating on academic robotics software. It aims to give students sufficient knowledge and experience such that they can proceed learning more about robotics programming by themselves as needed. The course does this by providing an overview of key technologies, and letting students develop basic skills often used in real world robotic software development. The main objective is to obtain hands-on experience - beginners level - with Linux, Git en Gitlab, C++, ROS, and integrate with common external libraries such as OpenCV or PCL. This course does not teach new robotics theory (e.g. perception, planning, control, etc.) which is covered in other courses.

The allotted 5 ECTS means that students are expected to invest approximately 11 hours/week outside of contact hours. Be aware that active participation in all the lab and peer-review assignments is required, hence it is not recommended to do this course if you cannot commit to a regular time investment over the whole education period.

  • Linux: Although Windows is the most prevalent operating system on desktop PCs, Linux became very popular for embedded systems such as robots. Developing for embedded Linux systems is most easily done in Linux itself, and this course aims to familiarize students with the use of Linux on the desktop and terminal. It includes the following topics: OS architecture, File system, Shell, Scripting.

  • Git/Gitlab: All exercises will be submitted using Git, a widely used version control system to manage and collaborate on coding projects. During the course, students will practice basic tasks with git, such as solving code conflicts, and merging the work of lab partners. Using an issue tracker and giving constructive feedback to peers is also an important aspect that will be practiced.

  • C++: C++ is one of the most relevant programming languages for robotics. Being an object oriented language brings great advantages compared to its predecessor C. This practical gives students practical knowledge on C++ programming. The course encompasses the following topics: Introduction to C++, common compilation tools, basic programming in C++, classes and objects.

  • ROS: The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behaviour across a wide variety of robotic platforms. During the course, students will learn to use existing ROS tools, create their own software components in C++, integrate them into an application, and test their solutions using a physics simulator.

  • Others: You will also get some practice using external libraries in your robotics project, such as OpenCV or PCL. OpenCV is a computer vision library designed for computational efficiency and with a strong focus on real-time applications. The Point Cloud Library (PCL) is an open-source project for point cloud processing. Note that this course is not about understanding the methods or theory on which these libraries are based, but rather on integrating the provided functionality in novel software components.

Toetsing

Assessment overview

  • Formative feedback: First three lab assignments, peer-review tasks, discussion on common mistakes and solutions of past hand-in assignments during the lecture by teacher, multiple-choice practice questions.

  • Summative:

    • The final lab assignment, and digital exam.

    • You are also expected to actively participate in all the lab assignments and peer-review tasks. While these will not be graded, not passing each tasks minimum submission requirements will lead to penalties (see below).

Grade calculation

  • You final course grade (minimum is a 6 to pass) determined by

  • Final lab assignment (grade, weight 25%, minimum a 5.5 to pass),

  • Digital exam (grade, weight 75%, minimum a 5.5 to pass)

  • Any penalties (see Deadlines below)

A resit will be available for the exam, but not for the final lab assignment.

Lab assignments

You must enroll for the obligatory lab assignments before the announced enrollment deadline (given during first lecture), so that the lab coordinator can fix the groups and setup everybody's code repositories in time. If you do not enroll, you cannot make the lab assignment, or make the exam.

In the first three lab assignments you must collaborate with a lab partner.
Your group will receive and give formative feedback through student peer-review (what goes well, what to improve).

The fourth is the final lab assignment, which is made individually.
For this final assignment you will receive a grade (weights 25% of final grade), based on a rubric for the quality of the solution, code, documentation, and use of Git. This assignments requires you to apply all knowledge from the previous lab assignments to solve a well-defined robotics programming task.

Your (groups) lab work is evaluated on the following three Lab Criteria (LC):

  • LC1: solution quality (does the solution solve the given task?)

  • LC2: code quality (are there any bugs or problems with the code?), and

  • LC3: documentation quality (is there a clear readme, does the code contain sensible comments?).

Deadlines, submission requirements, and penalties

A major goal of this course is that you gain practical experience in (collaborative) robotics programming and software development. While most of the lab assignments are formative, your active participation is required and there are strict submission deadlines and peer-review requirements for all four lab assignments:

  • LC4: Each partner must fulfill each labs minimum submission requirements regarding use of Git, and Gitlab, file layout, and build instructions, before the lab deadline. Each assignments unique submission requirements will be listed in the corresponding lab manual.

  • LC5: You must participate in the peer-review tasks for the first three lab assignments, and complete these before the given peer-review deadlines.

Failing to comply with these criteria will result in penalties on your final course grade:

  • After lab submission deadline: -1 grade point per day for not completing the assignments minimum submission requirements, with a maximum of -2 per assignment. Not enrolling in time before the lab automatically results in -2.

  • After peer review deadline: immediate -0.5 grade point for not fully completing the peer-review task (only applies to those enrolled for the lab).

Nota Bene:

  • These criteria apply to both lab partners individually. If you comply with the criteria but your partner does not, only your partner will receive the penalty.

  • Penalties apply to your final course grade, so if you do not submit for one lab (-2 penalty) you could only complete the course with an 8 at best.

  • There are NO redo's or extra assignment opportunities to remove a given penalty. You will have to redo the lab next year and comply with the deadlines then for a clean slate.

Exam

There will be an individually-made digital exam, for which you will receive a grade (weights 75% for final grade, a minimum of 5.5 to pass).

Questions are based on content discussed in the lectures, and on practical situations that you have encountered during the lab assignments. You may also have to complete some hands-on task on during the exam in the examination software environment. The exam will also require you to reflect on and refer to your own coding solutions that you handed-in for the final lab assignment, therefore to participate in the exam you must have participated in the final lab assignment. Practice questions will be provided before the exam so you can assess your own understanding first.

Reviews0 reviews

Nog geen reviews voor dit vak. Wees de eerste!

Heb jij dit vak gevolgd?

Deel je ervaring met toekomstige studenten. Inloggen met je TU Delft mailadres duurt één minuut.

Schrijf een review