HackSpace We’re surrounded by kit in here. You must really love making things? Dr James Hilder I’ve got boxes and boxes of gear. I must have everything that Pimoroni and Adafruit make. I love the whole getting computers to interact with hardware. That’s my passion. Bridging between the two. And I think it always has been. When I did my undergraduate degree in electronics, I always liked the fact that I was doing a bit of computers in there, but making them interact with the real world is where the fun starts. Since the Mbed Device Platform – that predates Raspberry Pi, and came out at about the same time as the first Arduinos. Like the Arduino, it doesn’t have a full operating system on there. When it came out, it was £40, but the downside is that it’s still £40, when Arduino and even Raspberry Pi Zero are so much cheaper. The compiler is online, like Arduino, and it has all sorts of inputs that make it useful. All of a sudden, you could interface with things. Before 2008, if you wanted a PC to turn an LED on, it was really hard to do. To have a user-defined LED or to read a voltage, simple things like that were really hard to do. Boards like this came out and changed everything. Raspberry Pi was the next step: it included everything on one board, so you didn’t need a computer; the board was the computer. HS That seems like a flagrant breach of Moore’s law for that to be the same price as it was in 2008. JH There’s a lot of that about. And that’s why we make a lot of our own robots. The most widely used swarm robotics platform is the e-puck, which is about twelve years old. You can still buy them, and they sell for about £1000. And that’s why we end up making our own robots. This is the weird world of research robotics: add a zero to what something actually costs, and that’s what you end up paying. They were developed at EPFL; they’re a Swiss organisation. There are probably half a dozen big robotics institutes in Europe, and EPFL is definitely one of them. Anyhow, a couple of years ago, we made an extension HAT that took the e-puck and stuck a Raspberry Pi Zero on it, which fits pretty much perfectly. It’s almost as if they designed the e-puck with the thought that ten years later, Raspberry Pi were going to release this £5 computer. We also make this adaptor shield. By changing the orientation of the board, we can fit a larger Raspberry Pi in there. You find that a lot with the e-puck: loads of people do extensions for it, so you end up with these really top-heavy robots.
HS That’s crazy, that something so simple can be so expensive. JH Price does scale with simplicity. For example, there’s a tiny, absolutely minimal robot called the Kilobot. They’re these little tiny robots – they have a coin cell under the PCB, three metal legs, of which two vibrate. By controlling the rate of that vibration, you can make them crudely move in a pattern. They have a single infrared photodiode on the top and the bottom. You can do one really cool experiment with them, and that’s it. You write code for them, and it makes them want to cluster, to aggregate and form shapes. And you can change the code so they don’t want to cluster and they break apart, and it looks amazing. But that’s the only thing you can do with it. When you’ve done that, you’ve got 1000 robots that do only one thing. Harvard published a paper on this, and they made a really big thing about it only costing $14. And then other universities wanted their own swarms of robots, that do only one thing, because it sounds good to be able to say, “we’ve got a swarm of 1000 robots”. Instead of 20 e-pucks, you could have 500 of these things. But the trouble is that you can’t do anything with them. You can’t publish any papers, because you can’t do any experiments with them, beyond what has already been done. It’s the same, to an extent, with the e-puck: there’s the firefly algorithm where you synchronise the robots using pulses of lights: one will pulse at random, then the others will detect that and start to pulse, and eventually they’ll all have a coherent pulse. It’s incredibly low level. It’s a way of synchronising things among a number of different units, and that’s it. People have ever so slightly adapted that, so you can do primitive counting by the number of robots that are in a cluster, or really, really simple things like the algorithm that’s inspired by what bees do. There’s a lot less going on in the field of small robots than there was a few years ago. Everything in academia in the last ten years has become based on how we’re going to make money out of it. Is this going to produce some patents that will make us rich? HS So what are your main areas of research here? JH We’re building a massive new robotics lab, and one of the things I’ll be looking at is how to make driverless cars safer. There are two fields in driverless cars: one is ethics: when something goes wrong, who do we crash into? And the other is safety: who do we sue when the inevitable does happen and someone gets killed. Is it the programmer The CEO? The shareholders? The person who wrote the operating system? The building will still be used for teaching. We do a one-year MSc course in intelligent robotics and, over the last four months of that course, the students do a group project based on a search and rescue vehicle. At the moment we’ve got a group of students in here from computer science who are working in their spare time, working on a robot for Pi Wars. They’re working on a robot that does a number of different challenges. We also have a Raspberry Pi Challenge here at the CS department. Every year it used to be the case that, in summer before each cohort arrived, we would send them each a Raspberry Pi. Then, in the first week of term, they have this competition, to play some AI game against the other students. We’re using Raspberry Pis very much more now that we’re moving away from the swarm stuff, with something called ROS, the Robot Operating System. ROS is very big now in robotics. [The] first thing to know is that it’s not an operating system: it’s middleware. You can install it onto a Raspberry Pi with apt-get, and it’s a set of libraries that package up communication protocols. Say, for example, we have a sensor and we have ROS installed, we could write a ROS service that takes the data and pushes it, and that can be read by any machine that’s got ROS running, that’s connected either to the network or on the robot. And it extracts away all that low-level stuff to do with interprocess communication. It’s very handy if you have multiple microcontrollers or Raspberry Pis. You might have something with a higher-end vision processing thing. When we’re dealing with self-driving cars, most of the machine processes that we’re dealing with – the machine vision probably isn’t done on Raspberry Pi; it’s done on something a bit beefier, such as an FPGA, or it may be farmed off to the cloud to do the vision processing. But then, ROS provides this framework so that Raspberry Pi can read the important data from that: ‘Is there an obstacle in my way?’, ‘Can I see a person?’ Whatever it is you’re looking for.
Read the full interview in HackSpace mag issue 28. You can download it for free or buy it online at https://hackspace.raspberrypi.org/issues/28