Developer Stories: The challenges of migrating Karelics Brain to ROS 2. Contributing to the ds4_driver package.

  • Home
  • blog
  • Developer Stories: The challenges of migrating Karelics Brain to ROS 2. Contributing to the ds4_driver package.
blog image

In our latest blogpost we have shown that we have already successfully finished, tested and shown to the world the first version of Karelics Brain, our complete solution for making the robot smart and easy to use. The pilot version of our software has been developed with ROS 1 – Melodic at its core which has been a very useful tool for us thus far but now we have decided to migrate our codebase to the new and improved ROS 2Foxy.

We were always aware of the fact that this migration would not be an easy thing to do and now that we have been actively working at it, we can say that there are many new things to learn and adapt regarding the way we think about writing our ROS nodes and on top of this we were hoping that most of the open-source packages we have used in the previous version would have already been migrated in some sort of form to ROS 2. This has not always been the case.

The migration has already brought about the first Karelics contribution to an open source package, the ds4_driver, which we have been using for a long time for handling the support for controlling robots with a DualShock 4 controller. The package had already been ported to support ROS 2, but the latest version of it contained a bug. When one wanted to run the ds4_driver_node.py main node from the package with use_standard_msgs set to True and autorepeat_rate set to a value other than 0, then the code would reach a point where an outdated and undocumented method was used for creating a ROS Timer. This same bug was encountered in 2 places in the official code of the ds4_driver package. We made a fix for it and submitted it as a pull request which has already been merged, thus managing to make the ROS 2 Foxy version of the ds4_driver usable again for everyone out there that might want to integrate it in their projects.

The description of our patch for the ds4_driver package

The migration to ROS 2 is still ongoing for us and we know that the hill we have to climb ahead is steep, but we are hopeful about how the process is going and happy that we also get to help the ROS community while achieving our goals. The Karelics Team will continue to strive towards building the robotics world as a whole and we are sure that this contribution has been the first one out of many more to come in the near future.