- Bumpy Roads take me Home to my Place (informal CV)
- Early Days (~2004-2010)
- Studying at RWTH Aachen University (2013-2018)
- A real job: Dr.-Ing. (Ph.D.) at the Institute of Automatic Control (2018-2025)
- Starting with rehabilitation and surgical robots (inRehaRob and RoboGuide)
- Sterilization of surgical instruments (SteriRob)
- Care robot for patients (PfleKoRo)
- Spine monitoring during surgery (SpineCorrect)
- Mobility: Drones and wind turbines (AutoFlow), and a classified project
- Leading groups at the institute
Bumpy Roads take me Home to my Place (informal CV)
This is my chance to write up a less formal version of my CV — chronologically instead of the fashionable reverse-chronological order. Here, I have the space to share a few fun and *interesting* stories that would not fit on a CV. I want to share how my interests have developed over time and how I got to where I am now. Hopefully, this will also show you that doors can open in unexpected ways, like a side project in school that leads to a Dr.-Ing. (Ph.D.).
This site will likely be a work in progress, and I will add more stories over time.
Early Days (~2004-2010)
I love robots, and yes, it started with a Lego R2D2. It was a nice little toy but quite limited as it could only be controlled by a light and drive some predefined paths. Fortunately, I got my hands on the yellow Lego Mindstorms RCX brick in school, where I learned to program it (I believe it was Java). Later, I got a Lego Mindstorms NXT and built fun projects like a Lego seal and a dust wiper.
Programming got me hooked, and I started to learn it from books of the “… for kids” series by Hans-Georg Schumann. My goal was to build 2D and 3D games, and my journey led me from some Basic over Delphi to C++. To be honest, 3D games were a bit too ambitious for me at that time, since I lacked some basic trigonometry knowledge. However, I also started to program more useful stuff, like a timetable app in C# for my Windows Phone 7/8 (I miss you). I published it on the Windows Store, and it was actually quite successful and had good ratings. Back then, I didn’t know that it would open the door for my professional career at the university. Unfortunately, the only thing left from this app seems to be my stall Facebook page I created for it. I didn’t know source control back then, and personal websites were black magic to me (I had to teach myself).
My first job: Marché at DUS airport (2011-2015)
In school, I started working at Marché at the international airport in Düsseldorf and stayed there for a few years. It was quite nice since I could work quite a few hours on the weekend and during the holidays. I got some responsibility organizing the shifts on event days and met all kinds of people from all over the world. Working in a service job really teaches you a lot about people and how to handle them (customers can be a*** lot of fun). Bonus: I got to taste the latest and greatest Mövenpick ice cream flavors.
Studying at RWTH Aachen University (2013-2018)
Time passed while studying mechanical engineering at the university. While there was a course that included programming a Lego NXT in Java, it was quite underwhelming for me. As side projects, I started building ESP8266-based IoT devices like an automatic plant watering system.
My first technical job: student assistant (2015-2018)
I actually liked my job and the international vibes and spirit of optimism at the airport. But I felt the itch to do something more technical and started seeking employment at the university. After some less successful applications, my soon-to-be mentor stumbled over my application. He was looking for a student assistant who would help him to develop a GUI for his medical colleagues so they could easily play around with the cardiovascular system model he developed. He needed someone who could program in C#, and I had the experience from my timetable app. In my memory, the interview was like, “Here is my app; look at the Windows Store ratings; it is quite successful.” So I got the job, developed the GUI, which got a bit out of hand, and became a full-fledged real-time hardware-in-the-loop environment. In the end, we had a Linux backend programmed in C++, transferred data using TCP/IP and Protocol Buffers, CAN adapters, and custom boards. Anyway, I learned a lot about software development, version control, and how to work in a team. This job would also lead me on my path to a Ph.D. at the same institute.
First real robots: bachelor’s thesis (2017)
My supervisor of the student assistant job would have loved to have me write a thesis at his institute, but I was keen to work with robots and see another institute. So I found this thesis topic at the WZL of RWTH Aachen University, which would allow me to finally work with real robots. Three robots, to be precise: They were mounted vertically on a large linear axis and end effectors equipped with pneumatic grippers and force-to-torque sensor plates. The goal was to use the robots to apply specific forces that would bring a shell into a predefined shape. Since the main machine hall burned down shortly before I started, I got a brand-new setup in a brand-new hall. The only downside: I was alone in this large hall most of the time, since it was the first test bench in the new hall. I had to set up everything from scratch: the safety concept on a PLC, communication stack, force control interfaces, etc. In the end, I had written a C++ “real-time” client for Windows that would communicate with the robots. I exposed a C API, which I called in Matlab, where I calculated the forces to be applied. For my supervisor, I also wrote an interface for LabView that would call the C API. Obviously, the amount of engineering work was quite high, so the scientific results had to be written down at the last minute.
Automation engineering master’s program and thesis (2017-2018)
During my bachelor’s degree, I had to choose a specialization, and I chose production engineering — which bored me after having to draw the house of quality for the 3rd time. I was looking for something more challenging that would bring me closer to robotics. So I found the automation engineering program, which was a mix of mechanical engineering, electrical engineering, and computer science.
While my mentor from my student assistant job failed to convince me to write my bachelor’s thesis at his institute, he proposed a master’s thesis, which I could not turn down. He sketched a project where we would use a LiDAR sensor to detect bones and use this information to guide a robotic surgery system. First, I had to convince my supervisor to buy a 3D camera instead of reusing a rotating LiDAR, since the latter does not provide a sufficient resolution. The challenging part was that neither he nor I had any experience in computer vision, so it took quite some time to find a suitable approach. Moreover, deep learning was unpopular at the institute at that time, so there was no capable hardware to train a neural network. I first figured that the task would be a pose estimation problem, so I started with the LineMOD approach and some 3D-printed hip bones. This approach did not work whatsoever, since the bones neither provided textures nor geometric features. The breakthrough came when I figured out that we only need to track the pose of the bones, which is much easier than detecting it without prior knowledge. In the end, I implemented the very first version of a particle-based pose tracking algorithm on depth images, which I would build upon in my Ph.D.. At that time I learned a lot about ROS, C++, 3D sensors, computer vision.
The focus of my student assistant job also shifted towards a project where I had to program a rehabilitation robot for the upper extremities. A colleague dropped out of the project, so I basically took over the project as a student assistant. Most of the missing parts were related to usability and safety for the therapists and patients. I had to program the robot in Java (KUKA Sunrise), which was a pain since the robot was an industrial robot and not a Lego NXT. So I wrote Java code with factory patterns and other patterns to make Java bearable. Programming math, specifically linear algebra, in Java is a pain, but I successfully implemented a controller for hand guidance and compliant replaying of recorded movements.
A real job: Dr.-Ing. (Ph.D.) at the Institute of Automatic Control (2018-2025)
Many consider a Ph.D. not a real job but rather an extended student life in the ivory tower. This might be true for some, but most of the research at the RWTH’s engineering faculties is quite applied and close to industry. Since most of our funding comes from third-party projects or industry funding, we have to deliver results in time that are useful for the industry. Sounds like a real project, right? Over the years, I worked on five medical research projects:
- inRehaRob: the rehabilitation robot project, which I worked on as a student assistant. Using a KUKA LBR Med, we developed force- / impedance-controlled rehabilitation exercises for the upper extremities.
- RoboGuide: 3D camera-based pose tracking for robotic surgery. Using the KUKA LBR Med to hold the camera and a projector, we developed a system that projects the surgical plan onto the patient’s bone.
- SteriRob: a robot that assists in the sterilization of surgical instruments. I worked on the pose estimation of the instruments using RFID tags and force-controlled pick-and-place.
- PfleKoRo: using the same KUKA LBR Med, we developed a robot that assists in the medical care of patients. I worked on the pose estimation of the patient’s body parts using a 3D camera, speech recognition, and collision-free trajectory planning.
- SpineCorrect: development of an IMU-based sensor platform that is mounted on the vertebrae to monitor the movement of the spine during surgery to prevent damage.
At that time, I was interim group manager for the medical group and got the chance to continue leading in the mobility group, which was convenient since the group also had open projects for my funding:
- AutoFlow: using a drone for the inspection of offshore wind turbines. I worked on the localization of the wind turbine using a LiDAR.
- Industry project (classified): involved multi-body dynamics and stability analysis
Starting with rehabilitation and surgical robots (inRehaRob and RoboGuide)
My journey continued at the institute, where I began with my master’s thesis and student assistant position. So I had to finish the rehabilitation robot project and soon learned about the bureaucratic side of research, where you have to write reports for the funding agency and the university. Even though this work made me feel really unproductive, I somehow managed to get some presentable results and wrap up the project successfully.
I put quite a bit of work into the surgical robot project in preparation for the cadaver study and the accompanying journal paper. The cadaver study was … an experience to say the least. In preparation for the study, we “bargained” with the anatomical institute to get the cadavers. While we had funding for five full cadavers, we could get away cheaper by only using the hip part. We got some fresh cadavers and some that were conserved in formaldehyde. Now tell me … how do you carry the hip part of a cadaver, and how do you defrost it? This is a story that I will happily tell you in person. In the end, the study was quite successful, my GPU-accelerated 3D camera-based pose tracking worked well, and we successfully lifted bone grafts from the hip bones, and I would have been happy to continue working on this project. Unfortunately, we only had a seed-funding project, and my follow-up grant proposal is in the review limbo since until now (January 2025).
Sterilization of surgical instruments (SteriRob)
Since both projects ended within a year after starting my job, I had to work on a third project, which funded my position. This project was also about robots in a surgical context, but this time it was about a robot that would assist in the sterilization of the instruments. My research focus was on the pose estimation of the instruments, which was quite challenging since the instruments are quite thin, have no texture, and might be covered in blood or garbage. Our research partners developed RFID tags that could be attached to the instruments, which would help us to localize and identify the instruments. This prior knowledge of the location enabled me to continue working on particle-based Bayesian algorithms. Without an idea where the instruments are, the solution space would have been too large for random/systematic search algorithms. In the end, the resulting algorithms (GitHub), experiments, and data served as the basis for my Ph.D. thesis.
Most of the time I was working on engineering tasks, like constructing the robot setup, purchasing the hardware, and integrating everything into a working system. Our project partners built a custom gripper for the instruments, so no ROS driver was available. Moreover, I realized that the ROS driver for the KUKA LBR Med was not sufficient for precise control — not even thinking about force control. So I coded a custom KUKA LBR driver in C++ that would communicate with the robot using the real-time FRI interface. This driver is part of a whole ROS stack (GitHub ), which also includes a custom URDF model of the robot and the instruments.
Care robot for patients (PfleKoRo)
Another project I took over from a colleague, which involved digging into prior work and a new codebase. By that time, deep learning-based methods were readily available, and the institute matured to be more open to learning-based methods. We got the proper hardware and set up a human pose estimation system using a 3D camera. Moreover, we implemented a local speech-to-text system, which would allow the robot to understand simple commands. Most of the work in the project was about communicating with the project partners from the care sector and understanding their needs. The other part was about engineering the system to be robust and safe for the patients. We had some nice demos, and like all the other projects, it was rounded up with a final report.
Spine monitoring during surgery (SpineCorrect)
This project was quite different from the others, since it was not about robots, but about a sensor platform that would be mounted on the vertebrae to monitor the movement of the spine during surgery. Surgical projects, like other projects, include the elicitation of the requirements. The best way to do this is to visit the operating room and watch the surgeons work. I was quite surprised at how easy it is to take part in a surgery, and how quickly I was assigned tasks like answering the phone. To be honest, the first minutes are tough, especially when they start opening the patient. But after a while, I got used to it, and the curiosity about the surgery took over. From a technical perspective, I liked it a lot, since it was quite similar to the hobby projects for my home automation. It included programming an ESP32, 3D printing, writing ROS drivers, and implementing the Kalman filter for the sensor fusion in Matlab.
Mobility: Drones and wind turbines (AutoFlow), and a classified project
New group, new project, new challenges. In this project, I had the luxury of working with a colleague at the institute, since we had funding for two positions. Given I had prior experience processing point clouds, I could quickly get into the project. A major bottleneck of drones is the payload. Fortunately, solid-state LiDARs have gotten quite light and provide a good resolution and range. Moreover, our project partner who builds the drone might have built a flying motorbike. In other words, it was a considerable drone powered by a combustion engine.
As a side quest, I was involved in a classified project that involved multi-body dynamics and stability analysis. Different people had worked on it before me, so I received messy spaghetti code, ambitious deadlines, and a lot of pain. I believe we had some nice results, but I am not allowed to talk about them.
Leading groups at the institute
Probably the most enjoyable part of my job was working together and leading people. The RWTH offers many opportunities to learn about leadership, which I would recommend to anyone, even if they *only* have to supervise students. I like to see how people develop over time and being able to pass on my knowledge and experience. It has not always been smooth sailing; some conflicts could be solved easily, others took a lot of time and energy. Even though leading a group at the university is an additional task that consumes a lot of time, I would not want to miss it. At this point, I want to send a big thank you to all the people I had the pleasure of working with.
My main takeaways are:
Communication is key, and listening even more so. Admit that you are not perfect.
Only if you stay open to feedback, new ideas, and criticism, you grow as a person and as a team. I know that receiving feedback can be quite daunting, but it really is the only way to improve. Moreover, providing feedback constructively is an art in itself. As a group leader, I would have loved to be perfect in every way: Having time to listen, managing the projects perfectly, being a role model for everyone, and being an expert in every field. I can never be as much of an expert as the people I lead, but I can provide intuition and clear road blocks. I can never keep track of all the project details, but I can trust my team and provide guidance. It is also a trap to micromanage, but it is much more rewarding to see people grow and take over tasks. Listening and having an open ear at any time is crucial. Otherwise, you might miss the chance to solve a problem before it becomes a real issue.