This is a fantastic architectural optimization for Gazebo users. Bypassing DDS for high-frequency simulation traffic effectively removes the ‘digital noise’ that often masks controller performance issues.
I see a great synergy between your project and mine, ros2_kinematic_guard. While emcon_gz ensures a clean data pipe in simulation, my guard handles the ‘physical’ consequences when robots eventually leave the clean simulation and face real-world DDS jitter over 5G/Wi-Fi.
Essentially, your interface provides the performance for the simulation phase, and my guard provides the kinematic safety for the deployment phase. It would be very interesting to see a pipeline where we use emcon_gz to stress-test controllers, and then use the kinematic_guard to ensure those same controllers don’t produce ‘Ghost Commands’ when the real network starts to jitter.
Great job on the realtime_tools integration as well!