Keeping Up with Robotics Trends Through RoboCup
In March 2017, I joined the MathWorks Student Competitions team to focus on supporting university-level robotics competitions. The competition I spend most time with is RoboCup, which is great because RoboCup contains a variety of leagues and skill levels that keeps me sharp with almost everything going on in the field.
Today I will talk about my experience in this role, and what it’s been like returning to robotics and academia after more than 5 years away from the field.
Life Before RoboCup
Let me start with a personal history lesson about my experience in robotics.
I am a mechanical engineer with a background in controls, dynamics, and systems. However, while I was in university, I got hooked into robotics primarily by the following people.
- Prof. Emeritus Francis Moon, who taught my “Introduction to Robotics” class. I recall two distinct things: First, that he made us physically go to the library to literature review robotics publications (Google was not allowed); and second, that he had us derive our first inverse kinematics solution for 3-degree-of-freedom manipulators… which he often referred to as “high school math”, much to our dismay fighting through this well into our Bachelor’s programs.
- Prof. Hadas Kress-Gazit, my fearless advisor who gave me a chance as a teaching assistant for her Autonomous Mobile Robots class after somehow surviving it the semester prior, and more importantly influenced me to learn Python, Git, LaTeX, and many other essential tools for my Master’s thesis on modular robots.
- Prof. Hod Lipson and Dr. Ashutosh Saxena, who introduced me to AI and machine learning. My first foray into ROS was in Dr. Saxena’s class in 2010. I still remember launching the Stage simulator and writing my first C++ ROS node for an assignment. It seems trivial, but as a mechanical engineering undergrad, I considered this a monumental feat.
After leaving university in 2011, I ended up sinking into my controls and simulation background at MathWorks, where I spent several years developing training content for modeling and simulation software. I got pretty good at using MATLAB and Simulink, but robotics was not a significant part of my daily job.
It wasn’t until 2015 that MathWorks officially released its first version of Robotics System Toolbox. See the newsletter here.
RoboCup 2019: Two Years Later
Fast-forwarding to the present, I just came back from an action-packed week at RoboCup 2019 in Sydney, Australia.
Some perks of now being a RoboCup “regular” are knowing how to make sense of the huge event and seeing all the familiar faces – students, professors and event organizers – from all over the world. Of course, interacting with teams from so many different places and requiring different areas of expertise means that our relationship with RoboCup is a team effort by colleagues from several of our worldwide offices.
Our week in Sydney consisted of:
- Booth. Here we show cool demonstrations, including our in-progress work with the Kinova Gen3 Ultra lightweight robot and select examples from our Robotics Arena video series.
- Workshops. This was another chance for us to help with the RoboCup@Home Education Challenge, which we’ve mentioned before in two blog posts [Blog 1] [Blog 2].
- Research Symposium. Here we get to keep up with the latest research trends in RoboCup and dig much more deeply into the cutting-edge technology behind the best robots at the competition. The program and list of papers can be found at this link.
MathWorks booth at RoboCup 2019, including some of my colleagues from Japan and Australia.
Trends in RoboCup 2019
With this 3rd international event under my belt, I wanted to reflect a bit on the trends I’ve seen emerging in RoboCup, which I think accurately depict what’s going on in the larger robotics academic space.
AI in Everything
When I was in graduate school, my “big” AI achievement was teaching my simulated robots to move with desired characteristics using this hot new thing called genetic algorithms. Moving ahead to my start in RoboCup, the established (and soon on its way out) machine learning technology was computer vision for object detection. Usually this involved manual feature extraction from the images, and then training a classifier or regression model on these features.
Of course, the resurgence of neural networks due to increased computing power and clever new architectures such as Convolutional Neural Networks (CNNs) has taken much of the manual feature engineering work away from algorithm developers towards what we refer to end-to-end learning.
Screenshot from our Digit Classification using Histogram of Oriented Gradients (HoG) Features example. These features are used for classification with a Support Vector Machine (SVM) model. Now, we can also throw deep learning at the same problem as shown in this other example.
I went through all the papers in this year’s research symposium and it was unsurprising that the top 3 categories were associated with machine learning and/or its need for large datasets.
- Object detection for soccer, industrial, and service robots.
- Reinforcement learning for legged locomotion, manipulation, and multi-robot strategy.
- Data-driven development including competition data logging tools and collaborative image labeling frameworks
At the same time, MathWorks came out with Deep Learning Toolbox and Reinforcement Learning Toolbox, which were even mentioned by Prof. Peter Corke in his keynote speech at the symposium!
MATLAB live script training a neural network on the RoboCup@Home-OBJECTS benchmark dataset, which won an award at this year’s research symposium. This involved transfer learning on the well-known AlexNet and GoogLeNet networks, and there is room for improvement!
ROS in Everything
Since its early days in 2007, Robot Operating System (ROS) has come far as a quasi-standard software framework for robotics – especially in academia. Originally developed for a small set of research robots, the communication and package infrastructures of ROS eventually brought in many more hardware platforms and software tools to build an impressive developer community. I like to think of ROS today as the “there’s an app for that” of robotics.
RoboCup began in 1997, so ROS was not around then. Many of the older leagues, most notably the Soccer leagues, still largely use legacy communication protocols. Some of the newer leagues like RoboCup@Home almost exclusively use ROS, especially with the sponsored standard platforms like Toyota Human Support Robot (HSR) and SoftBank Pepper.
However, some of the more established leagues have shown progress in moving towards ROS due to the extensive set of community packages available. From my discussions at events, many teams in the Rescue leagues have expressed interest in using more ROS in their projects. Another example is from the research symposium, where a team from the Soccer humanoid league presented their exploration of the new ROS 2 for its potential uses in real-time applications and quality of service, as well as support for non-Linux operating systems.
At the same time, MathWorks has had its own official ROS interface since 2015. This allows the development of ROS-enabled components in MATLAB and Simulink that can easily plug into other third-party simulators, robot hardware, or software nodes written in other languages without having to worry about drivers and “wrapper” code to integrate everything. You can learn more from one of our blog posts.
System Architecture diagram from RoboCup@Home Team Hibikino-Musashi, showing what a typical distributed software system with ROS looks like: http://www.brain.kyutech.ac.jp/~hma/wordpress/robots/hsr/
Project-Based Robotics Education
RoboCup started as a university competition, but for many years now there has been a RoboCupJunior division that focuses on education for participants under 19 years of age. An important reason is to make sure there is a future generation of roboticists that can adeptly carry the RoboCup legacy.
However, it is not always easy to make the leap from the types of challenges in Junior leagues to those in the Major leagues. Considering that Major teams can (and often do) have postdoctoral researchers, it can be a bit intimidating for a new undergraduate student to feel at place.
To address these issues, RoboCup has semi-recently started “intermediate” leagues like Rescue Simulation (formerly CoSpace), Rescue Rapidly Manufactured League, and RoboCup@Home Education. Other initiatives in project-based learning through robotics have taken interest. For example, representatives from Duckietown were at this year’s event, and they delivered workshops and a presentation at the education track of the research symposium.
These efforts are a great way to help new students up the steep learning curve of AI and ROS (to follow the first 2 trends), and part of my role is to help educators introduce MATLAB and Simulink as software options for learning such essential skills for robotics engineers. I’ve personally been involved with RoboCup@Home Education since late 2017, and we hope that other educators take advantage of the support and expertise we can provide!
Computer vision demonstration with MATLAB and ROS on a TurtleBot 2 robot during the RoboCup@Home Education Challenge
Saying that my involvement as a RoboCup sponsor and educator has updated my knowledge and renewed my passion for the robotics field would be an understatement.
I hope to keep collaborating with RoboCup teams and organizers on all the trends above, plus whatever else inevitably comes up as the state-of-the-art evolves. I also look forward to continue taking what I learn back to MathWorks so we can develop better and more relevant examples and tools to support robotic system design for academic and professional users.
You can learn more about our support for RoboCup and RoboCupJunior from our website.
Stay tuned for more updates about our involvement with robotics software and competitions such as RoboCup. As always, feel free to leave us a comment below or email us at firstname.lastname@example.org.
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.