profile picture


Lately I've been building stuff for our home. First a pillow box and currently I'm (finishing?) a cabinet for my son: Pillowbox Giraffe cabinet

RoboCup@Home with TechUnited

Since 2011, I've been involved in RoboCup@Home, as a hobby, mostly through the team of TU Eindhoven: TechUnited.

Robot lineup

In 2019, TechUnited won the world cup with our robot HERO, a Toyota HSR robot. Before, we've used the custom-built AMIGO robot, with which we've reached several 2nd and 3rd positions over the years.

My focus has always been on the high-level behavior of our robots. Over the years, we've built a large library of hierarchical state machine that can be composed together into robot applications. The abstractions and other considerations allow this code to run on currently 3 different robots, each with different hardware and accompanying software stack. Cool thing about this is that, besides keeping the software general and explicit in it's assumptions if any, that we could swap out robots last minute if eg. their hardware breaks. Most of that code is in TUE RoboCup

RoboCup challenges

Since 2011, there have been a steady flow of new RoboCup challenges replacing older ones. The applications (RoboCup@Home challenges) that I've built include (and I'm forgetting a bunch).

'Conversation engine'

One really cool aspect of our robot I worked on the the Telegram bot we have for our robots. This allows to have a 'natural' language conversation with our robots which you can use to command it, eg. "Bring me a coke from the dinner table" or "Take a picture of the kitchen".

This builds on the telegram_ros interface TechUnited made (and which I ported to ROS2: telegram_ros2)

The conversational part, to get all information needed to perform a command from a user, is implemented in

This uses a Context Free Grammar to parse a thus restricted form of English, to specify robot commands. Yes, that is restrictive and not a cool as much more free-form natural language parsing, but has some benefits:

Technical committee

The rules of RovoCup@Home are defined by a Technical Committee. I've been elected to be part of that committee for a couple of years. Some rules that I've contributed (besides several challenges and rules for them)


The Jamboree On The Air, Radio and Internet is an annual event for my scout group of ~300 people. Lots of children, lots of scout leaders, lots of activities. To help kids find their next scheduled (it's hectic!) activity, I made an application where kids can scan a QR-code they get at the event's opening ceremony. When showing the QR-code to a leader's smartphone or one of the few dedicated webcam-equipped computers spread around the building, the application shows which activity is next for them.

The whole amalgamation of code, latest schedule and images is at

Set player (2011)

The Set card game is about finding a 'set' of cards that satisfy some constraint. With some old-school (pre deep learning) computer vision, I made an application that does this for you, based on a picture. Screenshot