asv: add MAVLink actuator safety gateway - #890
Conversation
|
I am narrowing this change after review. The current PR mixes the runtime gateway, assignment-specific validation tooling, Docker workflow, and a vendored MAVROS HIL overlay. I am moving the gateway plus focused unit tests to a new, smaller PR; the validation harness remains in the assignment submission, and the MAVROS HIL packaging gap will be tracked upstream in MAVROS. Marking this PR as draft while the replacement is prepared. |
|
The focused replacement is now available as #891. It contains only the actuator safety gateway, MAVROS configuration, package metadata, and unit tests (415 added lines); assignment-specific Docker, producers, monitors, benchmark tooling, reports, and vendored MAVROS source are excluded. During the split I also confirmed that Jazzy officially packages the HIL plugin in |
Summary
Adds an experimental WAM-V MAVLink actuator safety boundary without replacing
VRX's existing Gazebo thruster systems or MAVROS transport stack.
latched zero-thrust fault state, explicit reset, and controlled re-arm flow.
monitor, stock-vs-gateway A/B harness, and transparent CSV analysis.
hil.cppplugin with minimalbuild metadata because the Jazzy binary MAVROS package does not register it.
Why
Stock VRX thrusters retain their most recent force setpoint. A producer can
therefore stop publishing while nonzero thrust remains commanded. This gateway
also covers the realistic case where MAVLink heartbeat remains healthy while
the actuator-control thread has stopped.
Validation completed
asv_safety_scripts/run_unit_tests.sh— 4/4 safety-policy tests pass.Docker check.
Review limitation: native benchmark pending
Native Ubuntu 24.04 x86_64 latency validation has not been performed because
the current Apple Silicon development host under amd64 emulation is not a
representative safety-timing environment. The headless repeated-run harness is
included so this can be reproduced on the target platform:
Pending measurements are headless VRX A/B results for
T_zero_wall, P95/maxlatency, and dual-thruster
I_stale. No unmeasured latency value is presentedas an empirical result, and Apple Silicon/QEMU timing is explicitly excluded
from safety-latency claims. Maintainer feedback and/or native x86_64 execution
of the supplied harness would be welcome.