Internship Robotics Engineering | Alternatives to ROS 2 Launch for process management
- 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 which occur because ROS Launch is not a true process manager. Process signal handling is unreliable, watchdogs/heartbeats for node liveliness checks are limited, and systemd has no visibility into individual node processes.
As a result, node failures are not detected or handled inefficiently, health checks rely on manually maintained process lists, and we often need full container restarts. To improve system robustness and maintainability, we want to look for alternatives to the ROS Launch system to manage ROS node processes. The goal is to create a more robust, transparent, and maintainable process management solution.
Your assignment
Your assignment is to investigate alternatives to the ROS Launch system for complex node management. The challenge consists of several parts:
- Architecture redesign: Identify the requirements for the node management architecture, keeping in mind dockerization, multi-PC setups, and Node Composition;
- Process management: Ensure proper handling of node process lifecycle, including startup, shutdown, and crash recovery;
- Automation: Investigate and implement methods to generate the node management architecture from existing 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.
A possible direction is to allow systemd to directly manage ROS node processes, where every ROS node is its own systemd-managed service or container.
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 and 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.