Skip to content
Menu
RoboJackets
  • Teams
    • BattleBots
    • RoboNav
    • RoboCup
    • RoboRacing
    • RoboWrestling
  • Outreach
  • Training
    • Software Training
    • Firmware Training
    • Electrical Training
    • Mechanical Training
  • Calendar
  • News & Media
    • Newsletter
    • Technical Reports
  • Our Sponsors
  • Join Us
  • FRC Kickoff
RoboJackets
RoboCup current structure

RoboCup’s Transition to ROS

Posted on February 2, 2021

by Evan Bretl.

Our RoboCup team is in the middle of a major software re-organization, re-writing key parts of their software stack in order to leverage ROS 2.

What is ROS?

According to Open Robotics, the organization that created the software, “The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications” (from https://ros.org). The core libraries of ROS implement a message-passing system for cross-platform inter-process communication. ROS has recently undergone a major update from ROS 1 to ROS 2, offering better performance for real-time applications. RoboNav and RoboRacing both use ROS 1, as they have for years, but plan to update to ROS 2 soon.

This integration of ROS into the RoboCup technology stack is not simply a light refactoring of a few bits of code — it changes the whole software architecture. This begs the question of why it’s worthwhile to undertake such a project. 

Firstly, using ROS simplifies a complex part of RoboCup’s code base that deals with multi-language support. RoboCup programs their high-level strategies (such as running coordinated team plays) in Python, while they code their motion planning and controls in C++. Using ROS 2 for inter-process communication greatly simplifies the problem of communicating between these two systems. The previous “bridge” code between the two added a lot of maintenance overhead for the team and was difficult to explain to new members. ROS’s distributed message-passing system, by comparison, is much easier for new members to learn, and experienced members of the team don’t have to maintain it as an added project. 

Second, it allows for more knowledge sharing between RoboCup, RoboNav, and RoboRacing, as all three teams use ROS. RoboCup has support from other teams during the code migration, and software training for new members can now be combined for the three teams not only for C++ concepts, as in the past, but also for ROS concepts. For years, RoboNav (IGVC) and RoboRacing have been co-developing training materials and sharing technical expertise with one another to greatly improve the technical teams’ experience on both sides. Including RoboCup in this relationship will increase the strength of RoboJackets’ software teams together, building on the foundation established by RoboNav and RoboRacing.

For all its potential upsides, this project is no small undertaking and will reshape RoboCup’s entire software architecture. Team member Kyle Stachowicz is leading the migration effort, which has been making steady progress in recent months and is nearing completion.

A simplified view of the old architecture.

In the old architecture, all of the software modules share a global state called Context, and the overall program flow is coordinated by the Processor module. This kind of system architecture (the kind with lots of shared global state) can have very good performance, but is notoriously hard to maintain, debug, and test.

By contrast, migrating to ROS allows for a more modular software architecture. By passing messages between different parts of the stack, these different modules of the overall system no longer need the shared Context state. Each module or sub-group of modules has well-defined inputs and outputs, and its behavior can be tested and monitored independently.

A simplified view of the new architecture. Note the modular behaviors and controllers replacing the previous planning and controls components.

The migration to this new architecture has required heavy refactoring of the code base, mostly on the autonomy (C++) side of things. But the payouts, from ease of development and training, to better modularity, to knowledge sharing with other ROS teams, promise to be worth the effort.

Recent Posts

  • Battlebots Goes to NHRL!
  • Meet the Core Officers
  • Kirbii Enters the Dohyo at Robogames 2023
  • RoboCup Qualification
  • A New Competition from evGP Autonomous

Recent Comments

    Archives

    • July 2023
    • April 2023
    • February 2023
    • December 2022
    • October 2022
    • July 2022
    • May 2022
    • March 2022
    • January 2022
    • December 2021
    • November 2021
    • October 2021
    • September 2021
    • August 2021
    • July 2021
    • June 2021
    • May 2021
    • April 2021
    • March 2021
    • February 2021
    • January 2021
    • December 2020
    • November 2020
    • October 2020
    • September 2020
    • August 2020
    • July 2020
    • June 2020
    • September 2019
    • August 2019
    • January 2019

    Categories

    • April 21 Newsletter
    • August 21 Newsletter
    • August Newsletter
    • Blog
    • December 21 Newsletter
    • December 22 Newsletter
    • February 21 Newsletter
    • January 21 Newsletter
    • January 22 Newsletter
    • January 23 Newsletter
    • July 21 Newsletter
    • July 22 Newsletter
    • June 21 Newsletter
    • March '23 Newsletter
    • March 21 Newsletter
    • March 22 Newsletter
    • May 21 Newsletter
    • May 22 Newsletter
    • Newsletter
    • November 21 Newsletter
    • November Newsletter
    • October 21 Newsletter
    • October Newsletter
    • September 21 Newsletter
    • September 22 Newsletter
    • September Newsletter
    • Summer 2023 Newsletter

    Meta

    • Log in
    • Entries feed
    • Comments feed
    • WordPress.org

    Additional Links

    • COVID-19 Guidelines and FAQ
    • Contact Us
    • Our Sponsors
    • FIRST Robotics Competition Kickoff
    • About RoboJackets, Inc.
    • Alumni Association

    Follow us

    • Facebook
    • Instagram
    • Twitter
    • Newsletter
    • YouTube
    ©2025 RoboJackets | Powered by WordPress and Superb Themes!