Aigro: July 2024 - Current
Aigro builds a small autonomous tool carrier for tree nurseries, vineyards and similar agricultural applications. I'm the robotics software lead and have been focussing on reliability, scaling and related DevOps and basically anything that needs doing in a small company. My current project involves coverage path planning.
Mojin Robotics: 2019-2024
Mojin Robotics was a spin-off company from the Fraunhofer IPA institute that took the Care-o-bot 4 platform of modular robots, based on ROS and built varuious applications on it. Later, the company was taken over and rebranded to 4AM Robotics and focussed more on intralogistics.
Between January 2019 and july 2024, I've worked for Mojin Robotics in a largely remote setting, occasionally traveling to the offices in Stuttgart. My job there involved building robot applications, on top of largely already working robot hardware. In a sense, this job has allowed me to professionally what I used to do as a hobby only for RoboCup@Home. This entails proper testing, monitoring and actually running applications unattended with real people, outside a laboratory setting. The most exciting application of our robots is called Paul: a customer assistant in several MediaMarkt and Saturn electronics stores in Germany and Switzerland.
My work at Mojin & 4AM Robotics
- Event logging system for the application state machines in the robot, so that we can track how often and when the robot greets people, what requests users make to the robot and at what location etc.
- Quiz the robot could offer and host for users it encountered.
- Automated testing for state-machine.
I've made a small framework called
scenario_test_toolsto write ROS actions and services in to check on a behavior and to guide the application into eg. some edge case. - Motion planning & kinematics analysis & behaviors for mobile manipulator robots, with custom and commercially available arms. Where to put the base, can we reach from the ground to the top, what pose wrt. a shelf to take, dealing with the vision system, and keeping multiple trajectories in sync (MoveIt).
- Job management: for a small fleet/swarm of robots, I developed a job mangement system where robots could bid on the job of transporting boxes from one location to another, and combinations thereof. For example: a robot already doing a job from A to C can also pickup a box at B going to station C and do that cheaper/quicker than a robot coming from location E. Etc.
- A VDA5050 client — the standard interface between fleet control and AGVs — in C# on ROS 2 (
ros2_dotnet) over MQTT, for an intralogistics project with a large automotive manufacturer.
Nobleo Technology (2015-2019)
Nobleo is a consultancy and projects company based in Eindhoven.
My work at Nobleo Technology
Autonomous cleaning System — watch on YouTube Mobile robot to clean large chemical tanks
-
Camera system to estimate the 3D position of a fixed, offshore structure from the side of a moving ship
RanMarine WasteShark: the WasteShark is a small autonomous catamaran boat that collects waste from eg. harbors etc. It can dock into a lift system that pulls the boat out of the water to dump the collected waste. Underlying technology: EtherCAT using SOEM, ROS, C
For Nobleo, I've been forwarded to Ultimaker where I created the production tooling to label Ultimaker material spools with NFC tags. Once that was done I joined the firmware team for a while after which I was part of the team to develop the touchscreen UI for the Ultimaker S5. This user interface, developed in Qt.Quick, won the 2019 iF Design Award.
-
My first posting at Nobleo was to LDI Systems B.V. a TNO spin-off, which was developing a machine for Light Direct Imaging (LDI). This is a technology for maskless lithography which we purposed for PCB etching. Instead of using a mask, we were developing a machine to to this digitally. My role at LDI Systems was that of the integrator, making sure the components created by the software, electronics and hardware teams aligned and would work together when we needed them in the development. A major part of this was to commission and set up a process for a tool for gluing little lenses used to focus laser beams onto a very small volume, of about 25x25x25 microns. After gluing, the laser rays were aimed through an 8-sided prism rotating a several thousand RPM to project a line, while the lasers pulsed at nanosecond durations to create (a small part of) the pattern of the PCB.
Robot Rose: 2014-2015
Robot Rose was a small robotics company aiming to create a shared-autonomy robot to care for elderly and disabled people. It was partly tele-operated and could perform some basic functions autonomously, such as navigation and grasping. I've been part of many tests with potential users of the robot, sometimes operating the robot via the internet from the other side of the country. We've tried tasks of all sorts, from putting on someone's hat and opening a door to wiping tables clean. Unfortunately, the technology and health care sector were not ready for this and I think both are slowly advancing to make what Rose tried more feasible.
Sioux: 2013-2014
Sioux was my very first real job out of university, though I only worked there very briefly. I developed an Android+iOS app (for trip registration) which was I was not very fond of. We set this up in Xamarin to be cross-platform, so we could share some 75% of the code between platforms due to the right abstractions.
WWA: 2008-2012
During my studies, I had a side job at WWA, which was my very first robotics job. I learned a ton there!
I had never programmed C# not an (ABB) industrial robot before.
With just the programming language manual under F1 I figured out how to set up TCP/IP communication to a vision system so I could implement my internship project concerning bin-picking (before that was a reasonably solved problem).
I also worked on what was in retrospect a custom robotics middleware akin to what I'd use ROS for nowadays.