Robot Programming syllabus#
2 SWS, 3 ECTS, in degree program KI as PLV 2 and in AIN Bachelor as IAC 2
Intended learning outcomes#
The purpose of the course is for you (the student) to learn to:
design and compare different solutions for a robotics problem
model and implement a solution in a given robot programming framework
relate the behavior of an implementation in simulation and real world
structure their ideas and document their solutions in a reproducible way using a modern documentation framework
Fundamental programming tools (e.g, control flow, data structures, functions)
Beneficial: experience with Python or C++
Content (What we do to reach the learning outcomes)#
Programming using ROS (Robot Operating System) framework and Turtlebot3
Various mini projects including navigating through a maze
For example: Maze solving with a mobile robot
Documentation using Sphinx
Seminar-like with mini projects each solving a different problem.
The instructor gives the required introductions during the contact hours (typically the first contact hour of the day).
The students self-study the tutorials and work on the mini projects.
The results are demonstrated and discussed during contact hours (typically the second contact hour of the day).
The examination is based on the intended learning outcomes.
Project work comprising:
setting up the CI/CD pipeline on Gitlab to deploy the Sphinx template to the given web server
the solutions (code) to the mini projects with documentation
project report on using Sphinx
solution presentations (you should be ready to present your result on the deadline)
There will be a deadline for each project. Every project must be completed before the deadline to pass the course. You can only pass or fail.
Requirement for passing a mini project (also called challenge. Including Sphinx deploy CI setup):
You demonstrate the mini project to your classmate who checks if your solution meets the requirements of a challenge.
Your classmate writes their name as the reviewer and your name as the reviewee to the corresponding worksheet on the spreadsheet project completion
All above happens before the deadline
Note that the review for some mini projects may be carried out using a trust tree. Trust tree means that everyone must be reviewed by someone who already has been reviewed. The instructor will create the first reviewers (by reviewing the first students who have finished their mini project).
Everyone works on the projects alone. The goal is that every student goes through the process of problem solving. At the end of the day you are encouraged to exchange ideas to help others come forward.
Each student writes a separate report so that every student can practice writing.
The submitted projects may be checked with a plagiarism software by the instructor.
Time & Room#
For details refer to Moodle.
Presence is required for the sessions where we work with physical robots.
Feedbacks from students and action items#
I include the feedbacks from participants to (1) make myself accountable to improve the course and (2) give you a picture of my teaching style and course.
You find my takeaways/action items in the end.
Feedbacks from WS22#
I copied all of the feedback with the consent of the students and corrected minor spelling mistakes:
I liked: - the ready-to-go Ubuntu environment. Setting up a ROS install is time-consuming, and I’m grateful we get to skip that step. It’s also nice to have familiar IDEs preinstalled so that it takes very little time to get productive on an unfamiliar machine. - the discussions. Prof. Aydos makes an effort to engage with his students, and provides helpful suggestions. - the documentation. Everything one needs to make progress during the course is well documented and formatted, both in the repositories and on the course page itself. - the CI/CD for documentation, it’s cool to see the report live on Joan. I disliked: - the long hours, but I doubt much can be done about that.
I liked how the infos were structured and that everyone had an opportunity to share their work and get feedback. But it was hard to work with just one robot for the whole class and the deadlines for each part of the work were confusing.
Working with the robots can be fun and frustrating at the same time. A bit more guidance for some of the challenges would be appreciated, also with the setup or usage of some of the systems. All in all it was a enjoyable experience!
I enjoyed the basic outline of the course. The free exploring and the open challenges. I disliked the setup phase. It was quite a mess and would have been better if it was tested on the newest versions or the best versions written down. Since it is much better for after the course to have a working system on your private machines, rather than relying on the TH to enable the PCs. We should get access to the room 24/7, it was quite annoying to have to leave and not be able to finish once the building got locked down.
Inhaltlich gut, allerdings würde ich die Vorlesung nicht mehr in der Vorlesungsfreien Zeit halten.
I wasn’t allowed to attend this class online the last year, as I can see this year, the mandatory presence aspect doesn’t seem that crucial, as most of the challenges can only be done in simulation and all of the robots stopped functioning at some point. I’d suggest considering to offer this class online too for some folks that couldn’t come in lecture free time. I’d also love to have dome tipps before starting working on the challenge, to find out more about interesting practices and algorithms rather than trying to reinvent a bicycle. The workload for 8 days seems okay for me though. And I like how professor is friendly and always willing to help.
Everything was good, but it’s a lot of work for just 8 days.
Problems and action items#
Physical robots failed until the end of the course.
Preparing more reliable physical robots by testing all of them before the class. One of the learning goals of the course is to see the difference between simulation and real world. Moreover seeing a physical robot act motivate some students more compared to only-simulation setting.
The gap between the last challenges was too high.
I will add additional challenges for touching the wall (gradual de-acceleration) and moving between the cells (for navigating a labyrinth).
More algorithmic tools for the challenges vs reinventing the wheel.
This is an introduction to robot programming which ends with a competition that can be solved with trivial algorithms. To spark creativity I don’t want to present potential algorithms. On the other hand some students struggled with some of the challenges. I will present practical algorithms after the deadline of each challenge so that struggling students can catch up.
Almost no one volunteered for presentations.
I had to hand pick students which took a lot of energy. Everyone should present once their approach to motivate discussions. Next time presentation will be obligatory.