Repository navigation
Conversation
Global Size Summary (Total Flash delta in bytes)Built from 9c50812 rebased onto dc78bc5
|
Previous review (2026-10-17)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks, this is a well-tested applet. Two small things are worth fixing before merge.
The failing cubeorangeplus-quadplane CI job failed while fetching Renode and looks unrelated to this PR. |
d9e797d to
82dc1c7
Compare
IamPete1
left a comment
There was a problem hiding this comment.
This is significantly different to the original version which has had considerable testing. I was expecting a more minimal change to detect the long callback times and prevent triggering on multiple motors.
82dc1c7 to
a8e3904
Compare
Previous review (2026-10-17)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks for fixing both earlier points. The 120 ms override and the SAFETY_NONE handling both check out at a8e3904.
|
a8e3904 to
caf1ce4
Compare
I've reworked it to be much closer to the original, with the following changes:
|
caf1ce4 to
6fa60f4
Compare
Previous review (2026-10-17)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks, the rework closes the earlier timing gap. The renewal-age check (https://github.com/ardupilot/ardupilot/pull/34789/files#diff-52148f5bfade0d6370ca9290d98d3532417a4be24e00a81194daa974edd35b76R482) holds across a full gap/stall sweep.
|
6fa60f4 to
c8c8c3b
Compare
Previous review (2026-10-18)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks, this addresses most of the last round. Confirmed stuck servos now stay failed through telemetry loss (https://github.com/ardupilot/ardupilot/pull/34789/files#diff-52148f5bfade0d6370ca9290d98d3532417a4be24e00a81194daa974edd35b76R147), the hook cleanup and Volz note answer peterbarker's comments, and the renewal-age guard still holds.
|
Monitor two tilt servos with configurable output channels and feedback calibration. Use elapsed time and restart detection after scheduling gaps so Lua starvation cannot turn healthy tilt movement into a motor shutdown. Require a confirmed fault and a healthy opposite servo, with expiring overrides and an interlock to prevent overlapping motor shutdowns. Include setup documentation, the telemetry freshness limitation, and regression fixtures for ArduPilot Lua and CAN SITL tests.
Run 17 deterministic regression cases in ArduPilot Lua with native uint32_t timestamps, and exercise the real telemetry and motor-output bindings through DroneCAN in an armed, stationary QuadPlane. Check individual and simultaneous faults, telemetry loss and recovery, override expiry during callback gaps, and resumption without a shutdown pulse. Register both tests in the Plane CI suite.
c8c8c3b to
9c50812
Compare
|
Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks, the reconnect change fixes the last point. A stuck or disconnected servo now stays failed when telemetry returns (https://github.com/ardupilot/ardupilot/pull/34789/files#diff-52148f5bfade0d6370ca9290d98d3532417a4be24e00a81194daa974edd35b76R201), and the new subcases cover it. I re-ran the harness and the earlier reconnect probes at this head, and the previous head fails them as expected. SITL ServoFailDetect tests pass. One note, no change needed. If both servos lose telemetry for about 1 to 3 s while one is stuck, the healthy one restarts settling on return. So the stuck side's motor is not stopped for about 2 s after telemetry comes back. That matches the documented settling rule (https://github.com/ardupilot/ardupilot/pull/34789/files#diff-71379eb4e927f01e9ac492990c43a536a7314085e5b77716a61fce42859ef8e7R121) and is half the previous window. CI is still running. |
Summary
Replacement lua script for this issue here: #34769
Classification & Testing (check all that apply and add your own)
Description
This is an updated version of a lua script that is used on a production vendor aircraft. It should be useful for other tilt-vectored quadplanes too.
Tested in SITL with the autotest that generates CAN servo feedback using python