autonomy ros2 doctor¶
Diagnose common SROS 2 secured-graph misconfigurations (version skew, keystore, transport) before they fail silently
Synopsis¶
Check the local environment for the misconfigurations that make a secured
governed graph (autonomy ros2 run --governed-bridge + SROS 2 Strategy=Enforce)
fail SILENTLY — participants discover each other but deliver zero messages, with
no error anywhere. doctor turns each into an up-front OK/WARN/FAIL line with the
fix inline.
Checks:
SROS 2 security env ROS_SECURITY_ENABLE/STRATEGY/KEYSTORE are coherent
(Enforce + a keystore, not Permissive / keystore-less).
SROS 2 keystore the keystore is structurally complete + signed
(reuses 'autonomy ros2 keystore verify').
RMW implementation RMW_IMPLEMENTATION is FastDDS (DDS-Security in the
governed stack is FastDDS-specific).
FastDDS version reports the local FastDDS version — under Enforce a
peer on a DIFFERENT version silently fails the
DDS-Security handshake (the Isaac 2.6.10 vs host
2.6.11 trap; fix with ISAAC_USE_SYSTEM_ROS=1).
Large-data transport the large-data FastDDS profile is installed, so
encrypted image topics aren't silently dropped (#1239).
Pure filesystem + env inspection — needs neither ros2 nor docker. In an
environment with nothing sourced, every check SKIPs.
Exit code:
0 no check FAILed (SKIPs for unconfigured checks don't count).
1 any check FAILed.
Examples:
autonomy ros2 doctor
autonomy ros2 doctor --keystore /var/lib/autonomyops/ks --large-data
autonomy ros2 doctor --output json
Usage¶
autonomy ros2 doctor [flags]
Options¶
--keystore string path to the SROS 2 keystore to check for completeness (defaults to $ROS_SECURITY_KEYSTORE)
--large-data also check the large-data FastDDS transport profile (matches 'ros2 run --large-data')
-o, --output string output format: text|json (default "text")
Options inherited from parent commands¶
--require-signed-manifest Refuse to start if the SHA256SUMS release manifest or its cosign signature is missing/invalid (Tier 2 binary-integrity check; default: build-time compile-in via -ldflags -X, build-hardened artifacts=true, all others=false)
See also¶
autonomy ros2— Execute governed ROS2 commands under AutonomyOps policy