Jon: 00:00
This is episode number 734 with Dário Catarrinho, developer on the Dutch RoboCup team.
00:27
Welcome back to the Super Data Science podcast. Two episodes ago, in episode number 732, I interviewed Dr. Daniela Huppenkothen for a fascinating episode on how machine learning is applied to astronomy. If you listened to that episode, you’ll recall that I recorded the episode in person with her at the University of Amsterdam.
00:44
Well, as I crossed the university campus to reach the astronomy building, something caught my eye through big floor-to-ceiling windows. There was an indoor football… a soccer pitch for the Americans and Canadians out there that was well-lit. The soccer pitch had robots sitting on it. I could see a big sign that read RoboCup. I was fascinated. After interviewing Daniela, I was able to find my way into the building and met the Dutch Nao team, where Nao is spelled N-A-O. This is the name of a popular humanoid robot that’s manufactured by the giant Japanese company SoftBank.
01:21
This Dutch Nao team, they compete at robot football/robot soccer with these Nao humanoid robots. Super cool. It turns out that the lofty goal of the RoboCup is to develop a team of humanoid robots that is able to win against the Human World Cup championship team by the year 2050. I was captivated and so decided to make it the focus of today’s episode. In it, you’ll meet Dário Catarrinho, who’s secretary of the Dutch Nao Team, as well as a software developer on the team. He’s studying a degree in artificial intelligence at the University of Amsterdam. He’s my guest for this one-of-a-kind Super Data Science episode in which a one-on-one robot soccer game is actually happening while I’m filming. Dário is explaining how the robots work, including the machine learning that’s involved.
02:13
If you happen to watch the YouTube version of today’s episode, you’ll see the robots competing against each other in a tight game. It’s pretty cool. This does also probably mean that the audio isn’t quite as smooth as usual because sometimes Dário had to get involved with the robots as they played. But it should still be a fun and informative episode. Most of today’s episode should be accessible to anyone, but occasionally Dário and I talk a bit technically about machine learning algorithms. Those brief parts might be most meaningful to hands-on practitioners. All right. Let’s jump right into our in-game conversation.
02:48
All right. I’m here with Dário at the University of Amsterdam. Dário, tell us about yourself. What are you doing here at the University of Amsterdam?
Dário: 02:57
Yeah. I’m Dário. I study AI, the bachelor here at the university. As, basically, a side project, I’m also part of the Dutch Nao Team, which is a team-
Jon: 03:14
Yeah. N-A-O.
Dário: 03:14
N-A-O. Yeah.
Jon: 03:16
Does that stand for something?
Dário: 03:17
I’m not sure if it’s an acronym. But these robots are Nao robots. N-A-O. Not sure what-
Jon: 03:26
It’s the kind of the robot. That’s why they’re called N-A-O.
Dário: 03:29
Yeah. It’s the name of the robot, basically. These robots… We play soccer with them.
Jon: 03:36
Football.
Dário: 03:37
Yeah, it’s football here in Europe. That’s what we basically do. These robots do this fully autonomous. There’s no human intervention.
Jon: 03:51
Nice. For our audio-only listeners, these robots are about two feet tall. They are bipedal. They’re humanoid-shaped. We’re on a little football pitch, an indoor turf, that’s… I don’t know, maybe 20 yards/20 meters long.
Dário: 04:17
I think it’s about. Yeah.
Jon: 04:17
10 meters wide.
Dário: 04:17
I think maybe 15 meters long. Yeah.
Jon: 04:20
15 meters long. Yeah. Is this a standard pitch size for this competition? There’s a standard. Other universities or maybe private institutions as well have these Nao football teams?
Dário: 04:31
Yeah. This is mostly a student-team project. Every year, we have a RoboCup where we travel to one location where teams from all over the world come by. They all play on the standard pitches. While most teams don’t have the facilities to have an entire full-size pitch, like we do, other teams play on half the pitch or at least train them. But during the matches, we play on full pitches.
Jon: 05:07
Nice. Let’s get a demo going. If you’re watching the YouTube version of this, you get a real treat because you’re actually going to be watching these two Nao robots play against each other. Then, while that’s happening, we’ll talk a bit about the tech that’s going on behind them.
Dário: 05:21
Yes. I think we’re ready. He’s going to whistle now. The robots come into action. These robots, as I said, work fully autonomous. They make a bit of noise. Hopefully, it doesn’t pick up too much. What they do is they have cameras in them that do, of course, ball detection to detect the balls. We apply some computer vision in the form of convolutional neural networks to basically detect the balls. Ooh! There falls a robot. These robots are pretty clumsy, as basically these robots aren’t.
Dário: 06:06
Goal. Blue. Okay. Sorry, I’ll have to multitask here a bit.
Jon: 06:11
Yeah, yeah. For the audio-only version, the robots have just… one fell over as the ball went out of bounds, and they were competing. Now, I guess we’re getting a free kick.
Dário: 06:26
Yeah. He should be having a goal kick.
Jon: 06:31
Nice. Yeah.
Dário: 06:32
But, oh, the orange robot is now going for a goal. But these robots are pretty clumsy because they really aren’t made to play football. But that’s where the challenge comes into play a bit more.
Jon: 06:48
Nice. Yeah. Sweet.
Dário: 06:50
Yeah, as you can see, they also react to when a whistle is called. We run some algorithms to detect these whistles, the sound waves, at least, to filter out a whistle from ambient noise, really.
Jon: 07:08
Now, they’ll get back into position for the beginning after a goal.
Dário: 07:11
Exactly. Our behaviors that have been implemented… They now say, “Okay. A goal has been scored. Get back to your positions that you should be at.”
Jon: 07:22
Wild.
Dário: 07:23
Normally, we play with, well, a bigger team so we can control it a bit more. Currently, it’s going pretty messy.
Jon: 07:31
What’s the standard team size?
Dário: 07:32
Our standard team size… There are basically two leagues with two different team sizes. The big matches from the bigger teams are played with seven against seven.
Jon: 07:44
Oh, really?
Dário: 07:45
They really play with seven robots against each other. Our league, as we have a bit less robots… We play five against five.
Jon: 07:55
Five against five. That’s still pretty amazing.
Dário: 07:59
Yeah.
Jon: 07:59
Yeah. For the audio-only version, we are watching 1v1 here happening.
Dário: 08:04
Yes.
Jon: 08:05
The two players, the blue robot and the orange robot, have just gotten lined up for another round of play after the orange robot scored a goal. It seemed to take advantage of a goal kick.
Dário: 08:16
Yes, exactly. He took the chance of the blue robot not being-
Jon: 08:21
Not paying attention.
Dário: 08:22
Really knowing where it was.
Jon: 08:24
Nice. Now, the blue robot is… It’s taken back some control. Knocked over the orange robot. Oh, the orange robot’s getting back up on its own. That’s amazing.
Dário: 08:37
Yeah.
Jon: 08:38
In terms of machine vision… so convolutional neural networks in order to be able to detect the ball and, I guess, the lines of play. Wow, the blue robot just took a kick in the neck. The orange robots just seems to… It’s lost.
Dário: 08:52
Yeah. As you said, we also detect the lines. The ball is out now. We detect the lines. These robots, of course, have their behaviors programmed to not go outside of these lines. But where should I put it? Goal kick. All right. As these robots can detect these lines, they also have localization systems. These robots, of course, have to know where they are. The GPS isn’t accurate enough for this. They have to do that by watching the lines so they can have a big reference point here, in the middle, with the circle that they can recognize. The goal boxes… They can detect the goal.
Jon: 09:37
There you go. Another goal.
Dário: 09:40
A goal was scored there now for the blue team.
Jon: 09:41
1-1. Awesome. We had the same kind of situation just happened where one of the robots took advantage of a goal kick to score a goal. Now, the score is one. They’re resetting positions again. Convolutional neural networks for vision. There’s obviously also some machine learning algorithm for detecting sounds for the whistle, which is critical.
Dário: 10:07
Yes.
Jon: 10:08
Then, it sounded like there is in the works using reinforcement learning algorithms to be able to train them for general play.
Dário: 10:17
Yes. Currently, we are working on… It’s still in very early development. But we are trying to get their behavior to be run on reinforcement learning. We’re talking path planning, making decisions on which robot goes for a ball. We would like to see all this being done with reinforcement learning. But this is also a very early stage still.
Jon: 10:51
But right now, it’s more of an expert system where you’ve hardcoded in behaviors.
Dário: 10:56
Yes. It’s basically if the robot is closest to the ball, just that robot is going for it, which is, of course, a logical system. But there are many things at play because if a robot is with his back towards this ball, it would take more time to turn around and go towards the ball than if a robot that can clearly see the ball go for it.
Jon: 11:20
Well, it’s very cool. Since the second goal was scored, since it became 1-1, the action has been pretty advanced here of play. A goal nearly being scored, and both players just racing to deal with that. Now, it seems like we’re going to have a game-winning goal from the blue player.
Dário: 11:39
Yes.
Jon: 11:41
Yeah, there it goes. Yeah. 2-1. Yep. Fantastic. I think in terms of a demo. That was fantastic. It doesn’t get better than that. Thank you very much for entertaining me with that and for giving me a general breakdown of the machine learning that’s involved in this. If people are watching this video or listening to this episode, and they want to get involved in this robotics competition to be learning how they can be applying machine learning in the field in robots like this, how does somebody get involved?
Dário: 12:13
Well, most of these teams are, of course, student teams. They are heavily involved in the university. Most of the time, we also try to… well, not hire, but take people in who are currently studying at the universities. In Germany, there are a lot of schools that have teams. But we’re also talking Canada, in the United States, in Brazil, in Italy, all over the world, really. Even in Australia, we have teams who fly into Europe to compete as well.
Jon: 12:54
In the RoboCup?
Dário: 12:54
In the RoboCup, exactly. This year, it’s going to be in Eindhoven, actually, which is quite nice. It’s close to home.
Jon: 13:02
Convenient for you guys here.
Dário: 13:03
Yeah. But it’s just hops all over the world. In two years, we’re going to Brazil for the competition. If you want to get involved… Well, if you’re at the University of Amsterdam, of course, just pop by our lab and just ask if there are possibilities to join.
Jon: 13:23
Very cool.
Dário: 13:24
And if you’re in a university that has a robotics team, just knock on their door. They’re happy to have more volunteers and more manpower to help develop.
Jon: 13:33
Excellent. At this RoboCup, is the only competition in football, or are there other kinds of competitions for these robots as well?
Dário: 13:38
Yeah. Good question. The RoboCup is a very broad competition. We have this, which is the standard platform league, because these robots are all standard. Every team plays with these robots. They can’t make any adjustments to them. But if you look at… There are also middle-sized league, which is robots that are this high that are fully built by the team.
Jon: 14:03
Waist height as opposed to knee height.
Dário: 14:05
Yes. They’re about a meter tall. They play in a whole different way. There are other technical difficulties. We have a small size, which is maybe 20 centimeters tall, tiny robots that look like Roombas. That is very tactical. They play very much with passing. Of course, you also have at home, which is a league where robots that are like a robotic arm/crane that can do the dishes, for example. For basically every branch of robotics, there is a competition at the RoboCup. That’s very cool.
Jon: 14:52
Amazing. Very cool. It’s all football.
Dário: 14:56
Well, mostly, it is football. Then, we also have some home tasks that are done with the robotic arm. There are rescue leagues. There are robots that do rescuing. It’s mostly football with a lot of other branches.
Jon: 15:14
I guess that’s related to… There’s so much complexity that’s captured by the games of football. Obviously, the machine vision stuff, planning, cooperation. It’s a nice playground for learning lots of robot skills for the robots. But then, I guess, also for you humans, for you students to be learning tons about making robotics useful in the real world. Very cool.
Dário: 15:36
Yeah, absolutely. Every league has different types of challenges as well. You see that every type of league has its other play style. With us, for example, it’s a real challenge to see how efficient we can get with these robots with the limited performance that they have. We really have to squeeze every bit of data that we find and that we get from the robots out of it to make them function as efficiently as possible. Every type of feedback that we can get from the robot, we have to use that and apply that back into the robot.
Jon: 16:13
Nice. Dário, thank you very much for letting me take the time out of your day, dropping in on you to film this demo. Very cool work you guys are doing here.
Dário: 16:22
Thanks.
Jon: 16:23
Yeah. It’d be nice to see how this evolves next and how this RoboCup sport evolves and the impact that it has on robotics. Thank you.
Dário: 16:30
Yeah. Thank you.
Jon: 16:32
I hope you enjoyed that one-of-a-kind Super Data Science episode. It was super kind of the Dutch Nao Team to let me crash their lab and film this episode. A big shout to Dário and the rest of the team.
16:43
All right. That’s it for today’s episode. If you enjoyed it, consider supporting the show by sharing, by reviewing, or by subscribing, but, most importantly, just keep on listening. Until next time, keep on rocking it out there and I’m looking forward to enjoying another round of the Super Data Science podcast with you very soon.