After completing this course, the students are able to write programs in an object-oriented manner. More specifically:
- develop practical experience (C++) in object orientation, data structures, algorithm efficiency, and multithreading
- develop essential experience with modern robot-software libraries (e.g., ROS2) and model-driven code generation
- design, develop, test, and evaluate robot-control software using the mentioned libraries and tool
This course has two parts:
Homework assignments yield hands-on experience for both parts. Weekly tutoring sessions are scheduled for support with the homework assignments. The programming language used in this course is C++.
- Part I: Generic software concepts: on software concepts such as object-oriented programming, data structures, algorithm efficiency, and multithreading.
- Part II: Component-based software development for robot control: on writing software for controlling robots, using a combination of robot-software libraries (ROS2) and model-driven robot-software development (i.e., automatically generated code), to be implemented on a simulated robotic system.
Students work in teams of two on 5 weekly assignments and 1 larger, final assignment, which are all graded. The final grade is a weighted average of these grades.
The lectures and weekly assignments are the same as the Programming 2 for EE course (part of module 7b, Network Systems). The final assignment is larger and different than the one in the EE course.
Cannot be taken next to 202200109 Advanced Software Development for Robotics.