Hello Community,
We would like to inform you about an upcoming ABI break in the next sync of Jazzy and Kilted. The reason for this breaking change is that, during our tests, we observed that a significant portion of the real-time loop’s execution time was being lost during get_lifecycle_state checks. We realized that while the rclcpp_lifecycle::State class is thread-safe, but it is not real-time safe.In order to address this, we have introduced a change that caches the ID value and processes it from the framework side. Voilà—this results in a substantial improvement compared to the previous behavior. I’m sharing the performance plots here for your reference.
RRBot


With the proposed changes:
We hope this change will help many of you who are running hardware at higher frequencies, providing additional headroom for computation.
P.S. As this is an ABI break, you would need to rebuild all your workspaces
We will be introducing some more changes in the next sync, so that we can reduce the ABI breaking in the future: https://github.com/ros-controls/ros2_control/pull/2898. So, for now for the next couple of syncs, please rebuild your workspaces
Apologies for the inconvenience caused

