Internship Robotics Engineering | Calibration quality detection

  • Starting in September
  • Oldenzaal, Overijssel
  • Internship allowance

The current software architecture of the apple picking robot uses multiple layers to start and manage processes: systemd starts containers, containers run Bash scripts, which start ROS Launch, which in turn starts the ROS nodes. This layered setup introduces several issues. Signal handling is unreliable, ROS Launch is not a true process manager, and systemd has no visibility into individual node processes. 

As a result, failures are not handled efficiently and health checks rely on manually maintained process lists, often leading to unnecessary full container restarts. To improve system robustness and maintainability, we want to simplify the architecture and allow systemd to directly manage ROS node processes.

Your assignment

Your assignment is to design and implement a proof-of-concept where ROS Launch is removed where possible, and ROS nodes are managed directly by systemd. The challenge consists of several parts:

  • Architecture redesign: Replace the current launch structure with a system where each ROS node runs as its own systemd-managed service or container;
  • Process management: Ensure proper handling of process lifecycle, including startup, shutdown, and crash recovery;
  • Automation: Investigate and implement a method to generate systemd unit files (and optionally quadlet configurations) from ROS Launch configurations;
  • Dynamic behavior: Ensure that the solution supports both statically defined nodes and dynamically composed systems;
  • Validation: Test the new setup under failure scenarios and compare behavior to the current system.

The goal is to create a more robust, transparent, and maintainable process management solution.

Workflow

In our team, we work with the Agile/SCRUM workflow. We have a daily stand-up with the robotics team to share progress and identify obstacles. At the end of every 3-week sprint, you will present your results of the current sprint and your plans for the next sprint. One of the robotics engineers will serve as your daily supervisor and main contact. You will have weekly one-on-one meetings for more in-depth discussions, and of course you can always reach out to your colleagues for support.

The team

We are a team of highly motivated robotics engineers working on various R&D projects such as the apple picking robot, metal recycling systems, and autonomously agricultural robots. We develop software for manipulation, vision, and navigation, primarily using C++ and ROS2, and focus on delivering robust solutions that can be deployed in real-world environments. 

What can you expect from us?

A challenging internship with flexible working hours and a flexible start date. You will work in an organization that values enjoyment, collaboration, and solidarity. The atmosphere at RIWO ensures that you will feel at home during your internship and be able to be yourself.

We also offer:

  • Guidance from experienced developers;
  • A monthly internship allowance;
  • Use of a RIWO bicycle for commuting between the train station and RIWO;
  • The possibility of employment after graduation.

Are you currently studying in the Netherlands and interested? Apply via the form below and leave your details. You will receive a response within three working days.

Do you have any questions or would you like more information? Please contact Mick Boe-Bakker, Team Leader Application & Robotics Engineering, at m.boebakker@riwo.eu.

Apply now

Uploads

Toegestane bestandstypen: PDF, DOCX, XLSX, TXT, PNG, JPG, GIF.
Toegestane bestandstypen: PDF, DOCX, XLSX, TXT, PNG, JPG, GIF.