Some time ago, Nobleo received the honorable invitation to present together with Bosch on day 0 of ROSCon 2019 at the Real Time Working Group workshop in Macau, China. We received this invitation after we presented our findings and development on the ROS2 executor to the Real Time Working Group during one of their online meetings, which was received very well among the audience.
During our work solving a problem for ROS2, we discovered that ROS2 introduced a significant CPU overhead. We decided to use several profiling tools to figure out where the overhead was coming from. It turned out that both the way the DDS was being setup and the ROS2 executor were contributing to the problem.
As for the setup of the DDS, fixing the issue was already on the roadmap, but this was pushed forward by a ROS discourse discussion that we started. The other issue, the ROS2 executor, would need significant changes to the rclcpp and rmw layer. Bosch was interested in making changes to the rmw layer, which could improve the scheduling and determinism of ROS2, but this would cost even more CPU.
This is where Nobleo comes in play. We decided to create a more optimized executor at rclcpp level on top of the existing architecture. This means that normal users can use our executor with making only very few changes to their source code. On top of that, the optimized executor allows Bosch to implement their improvements to the rmw layer. Hereby, we were able to solve the high CPU for ROS2.
On October 30th, day 0 of ROSCon 2019, we got to present our work on stage in Macau, China. Again, our contribution was received very positively by the community and is now being reviewed by ROS2 maintainers. Discussions are still ongoing on how to combine all improvements into a new reworked executor which will probably be available for the F-turtle release. In the meantime, our optimized executor is already available at the Nobleo github!
We are glad we could attend ROSCon 2019 to both make a valuable contribution to the event and gain new knowledge ourselves as well. If you have any questions or contributions to the subject, please don’t hesitate to contact us!