Re-creating and improving on the original ROS Control software package within ROS2

PAL Robotics is taking part in the ros2_control project, which has the aim of delivering a complete version of ros_control for ROS2, which is essential for having a standard control interface for robots supporting the ROS2 software. 

The project enables higher-level libraries like play_motion and MoveIt! to work off-of-the-shelf and also offers a simple way for robot developers and manufacturers to create abstraction layers so that users can control real robots and their simulated version with the same interfaces.

The ros2_control project is part of the ROSIN (ROS-Industrial) open call – a series of EU research projects where third parties have the opportunity to work on ROS industrial development. ROS, the Robot Operating System, is arguably the Open Source Software stack most commonly used by today’s robot builders. 

We spoke with Jordan Palacios, Software Engineer at PAL Robotics, who collaborates in the ros2_control project, to ask more about the background and achievements for the project which is set to come to an end later this year. 

Jordan told us more about the project background and the original ROS Control software, explaining, “The original ROS Control software was developed in conjunction with PAL Robotics in a project that took place in 2011. The  ros_control package has always been used for controlling motors in robotics platforms, also for reading sensors and obtaining information. The software provides tools to easily set up each new robot. The advantage is that it’s not necessary to develop new software, you just need to update the configuration. No matter what kind of robot motors you have, the solution works out of the box. For example, with our robots at PAL Robotics, the software controls the moving motors for the TALOS robot, and in this project specifically, we use it with the TIAGo robot.” 

“With the ros2_control project, the idea was to re-create this ROS package within ROS2: to redevelop and improve it from the ground up. The software doesn’t have simply the same functionalities as the original  ros_control software, but also tackles some limitations with the use of the earlier  ros_control software, which have been learned over time.” 

Sharing ROS2 Control within the ROS community through the software repository and at events

Jordan explained the importance of the developments of this project to the ROS community, telling us, “ the idea is that we offer updated and improved software, which includes and builds on the same features the original  ros_control has, in order to easily set up motor control in a new robot. We are providing the tools inside ros2_control so the community can easily develop and set up the controllers for their own robots.” 

Jordan also talked of the importance of the software repository to the project and its ongoing contribution to the community, “the software repository is open source, therefore anyone can modify it, if users want new features or to report back on their own findings, they can submit them to the GitHub repository, the team review the changes, and once reviewed they can be added.”

“With this project, once every two weeks there is an open call, and we join and we discuss the developments we have been doing as part of the ros2_control project. The call is implementation focussed and we share current developments, future developments, and ask and answer questions. Within PAL Robotics, Victor Lopez and myself take part in this project. Bence Magyar was one of the original contributors for the first project at PAL Robotics with ros_control.” 

PAL Robotics also takes part in virtual ROS industrial conferences and events to be able to demonstrate the advancements of this project to the community, the next of which is on 16 December 2020, Jordan explained, “PAL Robotics will present the work that has taken place by showing a demo with the TIAGo robot at the upcoming ROS event on 16 December 2020, as well as future work on ros_control for ROS2. We will show the advancements within the community.”

PAL Robotics’ mobile manipulator TIAGo robot taking part in project demos

Jordan told us more about the TIAGo robot’s role in this project, “TIAGo is taking part in this project as a proof of concept to show how ros2_control can be used to operate a robot – by nature of how ros2_control works.” 

Jordan went on to tell us about the latest achievements in the project, including the completion of milestone 1, which included a demo, “preparing TIAGo working at the same time with the new ros2_control and other tools within ROS2, offering compatibility of other tools from ROS1.”  He also explained, “we will also present these developments at the industrial conference in December.” 

TIAGo the mobile manipulator robot combines perception, navigation, manipulation & Human-Robot Interaction skills out of the box. TIAGo robot has a modular design and can be configured based on customer needs. TIAGo customizations available include TIAGo Titanium, TIAGo Steel, TIAGo Iron and TIAGo ++. 

The mobile manipulator TIAGo robot with one arm

Completion of project milestone 1: redesign of the ROS Control codebase

During Milestone 1 of the ros2_control project the team focussed on a redesign of the codebase that offers the same quality and functionality of ros_control but that will also address some of the shortcomings of the original implementation.

As part of this milestone, PAL Robotics also ported the original controllers and made them work with the new design, as well as adding support for Gazebo simulation.

ros2_control makes use of the new features available from ROS2 such as lifecycle nodes for the controllers.

These changes still comply with the same constraints of the original ros_control:

  • Code meant to be executed in the robot’s update cycle must be real-time safe
  • High performance so it can be executed at high frequencies
  • Code must pass unit tests, tests done in simulation and with the real robot

All the work is publicly available in the following Github repositories:

Additionally, the ros2_control workgroup was announced here.

In addition to the ros2_control project, PAL Robotics works on many EU research projects covering areas such as smart cities, factories of the future, and Artificial Intelligence (AI). To read more about EU projects we partner in, visit our collaborative projects webpage. We are also always on the lookout for new potential project partners, to ask more, don’t hesitate to get in touch.