Pulse employee prepares to kick off at 2013 RoboCup competition
Technical Writer Jess Alexander has a chat with Mitchell Metcalfe about his opportunity to compete at 2013 RoboCup competition in the Netherlands.
What work are you doing here at Pulse Mining Systems?
I'm working as a member of Team Oxygen, as a Pulse Vantage developer.
Sounds important. Can you tell me about the opportunities your scholarship with Pulse Mining Systems brought you?
My placement with Pulse has allowed me to experience working in a software development team in a professional environment, and to see agile software development techniques used in practice.
It has also provided me with a welcome (and much needed) opportunity to improve my C# and web-development skills.
Can you explain to me what RoboCup is?
RoboCup is an international competition. Universities around the world develop and enter teams of robots which compete against each other in a game of soccer. There are a number of leagues to compete in, differentiated by things like the size of the robots, and whether they have legs or wheels, and they each have their own rules and restrictions.
The intent behind the competition is, of course, to drive research into artificial intelligence and robotics using a challenge that is familiar and appealing to the public.
It’s really interesting, because the competition gets harder each year. New restrictions and rules are introduced to ensure the robots are more intelligent and autonomous with each competition. This helps us to push towards the ultimate goal of RoboCup – to have a team of humanoid robots play against the (human) winners of the world cup by 2050.
Wow! That would be really interesting to watch.
Yeah, it would be great – but there's a long way to go before then (I've heard that they've recently relaxed that goal somewhat).
Can you tell me about your RoboCup team?
I'm a member of the University of Newcastle's robotics team, the NUbots. The NUbots placed first in Robocup's Standard Platform league in both 2006 and 2008. There are about eight of us, including a few new members, due to some of the more senior members completing their studies and leaving the university.
You mentioned that there were categories, what one do the NUBots belong in?
We currently compete in the Humanoid Kid-size League. Robots competing in this league must resemble humans (in particular, they must walk upright on two legs), and must stand at 30-60cm in height. We used to compete in the Standard Platform League (where all teams must use identical robots, instead of having the option of building their own), but the robots required were expensive and needed to be sent overseas for repairs, which took a long time.
What kinds of things can go wrong for the robots?
Lots of things. The robots are complex systems, and both software and hardware problems can emerge. The servo motors wear out over time, and when each robot has 20 motors, that can lead to a lot of tuning and replacement being required.
Sounds complex. How did you get involved in the team?
I have always had an interest in robots and artificial intelligence. My interest grew during my studies so I took a Machine Intelligence course and loved it. I'd always wanted to have a chance to work on the soccer robots since I'd first seen them at an open day before starting university, so it's great to finally be doing it.
And what do you do in the team? Do you have a specific role?
I joined the team at the start of December on a Summer Research Scholarship. The focus of the scholarship was initially going to be walk optimisation (making the robot's gait faster and more stable), but it quickly changed into working on a configuration system.
The NUbots codebase has been contributed to over about 10 years and by numerous research students. The config files for different parts of the system were all written by different people, and were all stored in their own non-standard file formats. Over the summer, I added a module to the NUBots code that would allow parameters to be accessed and stored in a standard way.
Since then, I worked on improving the way that values are read, and are reported from the robots motor control board.
You mentioned a manufacturer; does that mean you don’t build your robots from scratch?
Building our robots from the ground up would be very costly and time intensive. Our team is more focussed on software and machine learning, so it’s much more practical for us to purchase prebuilt robots and then program them to act a certain way.
How do you program the robots?
The vast majority of the codebase is written in C and C++.
Did you know these languages prior to joining? Are there requirements for joining the team?
I was familiar with both the languages, and I have enjoyed the challenge immensely.
Team members are expected to have reasonable programming and problem solving skills, and preferably some mathematical ability. We are also required to commit around 10 hours of our time per week, but the time commitment can vary, depending what needs to be done and how close we are to the competition.
How many teams compete in your league?
There are 25 teams competing in our league this year, coming from all over the world. Germany, Japan, and the USA most often provide the highest placing teams.
Hopefully the NUBots can give them a run for their money!
That would be great. I am just happy to have been given the opportunity. I look forward to competing in the competition this year.
Thanks for your time, and best of luck at the competition!
I'd like to thank Pulse for their flexibility in allowing me to attend Robocup in the middle of my placement here, and to Team Oxygen for their support on my placement thus far.