Building the obstacle the competition did not have yet
RoboCup@Work announced it intended to put mobile obstacles on the competition floor, so LUHBots set out to propose what one should be. I built it: a low-cost three-omniwheel platform, mostly 3D printed, that followed an arbitrary line on the ground.
The first thing I did after arriving in Hanover was look for the robotics team. I had just spent three years in competitive robotics and had no intention of stopping because I had changed countries. LUHBots, the university’s team, took me on.
The task
The timing was useful. Right around when I joined, RoboCup@Work announced that it intended to introduce mobile obstacles onto the competition floor: the arena would stop being a static space with fixed furniture and start containing things that move on their own while you are trying to work.
LUHBots was one of the most heavily involved teams in the league, and rather than wait to be told what that obstacle would be, the team wanted to put a concrete proposal on the table. Design the thing, build it, show it working, and let the league react to something real instead of a paragraph.
That became my job, and it was the right job to give the new first-year, because it was almost exactly what I had spent the previous three years doing. The brief was a low-cost platform: mostly 3D printed, assembled from off-the-shelf electronics, and able to follow a demarcated trajectory around the shop floor on its own.
All of it was designed and built on university grounds in Hanover. Leipzig is where it was eventually taken, and that is a distinction worth keeping: a competition is a few days, and the year of work that gets you there happens somewhere else.
What I built
A platform on three omniwheels, with a 3D printed frame. It read a high-contrast feature on the floor and followed it, and the line could be an arbitrary shape rather than a pre-programmed route.
I wrote the software driving the three motors. Three omniwheels is a nicer problem than it first looks, because the platform is holonomic: it can translate in any direction and rotate, independently, without ever having to turn to face where it is going. That falls out of the mechanics of an omniwheel, which rolls freely sideways, and it is bought entirely in software. Each wheel contributes a force vector, you choose the speeds so those vectors sum to the motion you actually want, and the robot slides off in a direction none of its wheels individually points.
That is a problem of allocation rather than magnitude: not how much to command, but how to distribute it. I did not know at the time that I had just met the shape of the next several years of my work. It came back almost unchanged as torque vectoring across four electric wheel-hub motors at HorsePower, and again in the all-wheel-drive control system I built at Volkswagen, where the question was once more how to split a demand between wheels rather than how large to make it.
The first place is the team’s
In 2016 LUHBots entered RoboCup@Work at RoboCup in Leipzig, and won it.
I should be straight about my share of that. I was a first-year Bachelor student among Master’s and PhD students who had been working on that robot for years, and the competition run was theirs. The obstacle platform was mine, and it was a real piece of work, but it was not what won the tournament, and if you wanted to know why LUHBots took first place in 2016 you would not ask me.
What the year actually gave me was exposure. RoboCup@Work is industrial mobile manipulation: a robot navigates a shop-floor-like arena, finds objects it was told about only in the abstract, picks them, and places them where a task specification says they go. Perception, navigation, manipulation and task planning all have to work at once, in a space laid out by somebody who wants you to fail.
That domain is where I went next. A few months later I was in Ingolstadt developing an automated guided vehicle for a production hall, and RoboCup@Work is why that posting looked like something I wanted rather than something I had to be sold on.
It was also the last time for a long while that I was the least experienced person in the room. That is an uncomfortable position and an extremely efficient one, and I have tried since to remember what it felt like whenever somebody new joins a team of mine.