UPDATE (28 May 2026):
From day one, the core architectural vision behind runtime_integrity wasn’t just to light up a warning LED for live operators. It was built from the ground up to solve a fundamental bottleneck in robot learning and Sim2Real workflows:
learned autonomy is inherently “physics-blind.”
When an RL policy, neural local planner, or VLA module commands motion, it doesn’t actually know if the physical robot executed it or slipped on an oily floor. Traditional diagnostics look at node health; we look at kinematic execution consistency.
Today, I’ve pushed the next planned milestone of this architecture: diagnostics_to_csv_labeler.py.
This node officially bridges the gap between raw middleware /diagnostics and structured ML training pipelines. Instead of manually scrubbing through a 50GB rosbag to find that 3-second wheel slip or a hidden localization jump, this utility allows you to replay your field logs and automatically harvest those exact execution-collapse moments into ready-to-use CSV failure datasets.
Usage is exactly as designed:
ros2 run ros2_kinematic_guard diagnostics_to_csv_labeler --ros-args \
-p output_csv:=runtime_integrity_failure_labels.csv
It exports timestamps and precise cross-modal residual metrics (WHEEL_SLIP, LOCALIZATION_JUMP, TIMING, etc.) using only the standard topics 100% of mobile robots already have: /cmd_vel and /odom (No custom torque or tactile sensors required for this command/odom residual label).
Example output format:
ros_time_sec,diagnostic_level_name,status,dominantCause,totalResidual,cmdOdomResidual,wheelSlipIndex,localizationJumpMetric 1779799999.12,ERROR,RESYNCING,WHEEL_SLIP,1.730000,1.462117,1.23,0.0 1779800001.54,ERROR,RESYNCING,LOCALIZATION_JUMP,50.757462,42.897885,0.0,1.349308
For teams deploying learned stacks, you can plug this into your headless overnight ingestion pipelines (with use_sim_time:=true) to index and label fleet-wide failures automatically.
The implementation remains strictly observe-only (no /cmd_vel interception, no Nav2 BT hacks).
Check out the update: GitHub - ZC502/runtime_integrity: runtime_integrity v0.3-alpha exposes the existing execution-integrity engine through standard ROS diagnostics. · GitHub
I’d appreciate feedback from the community on this data-centric direction—what other kinematic residuals or hardware synchronization metrics would be most critical to export for your training datasets?