Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plane: proposed changes for 4.6.0-beta5 #29531

Open
wants to merge 11 commits into
base: ArduPilot-4.6
Choose a base branch
from

Conversation

tridge
Copy link
Contributor

@tridge tridge commented Mar 14, 2025

This rolls up some key PRs that are being considered for beta5.

I have test flown the 3rd change myself. The other two have only been SITL or bench tested so far.
The fast attitude recovery PR needs more consideration as it will impact VTOL control during a forward transition. It fixes an issue where VTOL rate control does not match fixed wing control due to the input shaping in the VTOL control. Before considering this for beta5 we need some flight tests to look at any possible impacts

I will create a custom build tag for this PR to help users do testing

tridge added 10 commits March 15, 2025 08:25
if the GCS commands a guided re-position with an AGL frame and
quadplane is in Q_GUIDED_MODE=1 then this prevents us adding the home
altitude to the target terrain altitude
ensure that period[] array is not updated until we push
ensures we can recover from inverted flight quickly
when we start the VTOL motor stabilisation with an attitude beyond
normal attitude limits we set a flag to use fixed wing attitude
control (slaving VTOL rate control to fixed wing rate control) until
we have recovered

this avoids an issue with the shaping in the VTOL attitude controller
and also fixes an issue with the VTOL controller bringing the nose
down, which can cause a lot of height loss in quadplanes
we use input_rate_bf_roll_pitch_yaw_no_shaping to avoid input shaping
when slaving the VTOL rate controllers to the fixed wing rate control

this allows for much faster recovery in Q-assist
when we are close to a 180 degree error, go with the last direction if
we are in a 40 degree angle wedge of 180 degree error
we need to fly somewhere with a different terrain height than home or
we cannot test terrain target
@tridge tridge changed the base branch from master to ArduPilot-4.6 March 14, 2025 21:32
@tridge tridge requested a review from IamPete1 March 14, 2025 21:51
@IamPete1
Copy link
Member

Hasn't made it to the call yet but I would suggest #29494 too.

Cork push should be fine, will only affect DShot I think? Copter has the extra complication of the fast rate stuff of course, that will need testing.

VTOL recovery one make me abit nervous, removing that rate liming could result in vehicles crashing in normal operations if there FW time constant results in a higher gain than the VTOL angle P. A halfway step might be to fix the reset to measured altitude to be reset to FW target, then they both start out in the same place and the accel limit will have much less impact.

Guided changes look fine.

@tridge
Copy link
Contributor Author

tridge commented Mar 14, 2025

A halfway step might be to fix the reset to measured altitude to be reset to FW target, then they both start out in the same place and the accel limit will have much less impact.

I don't understand what you mean, sorry. I'm guessing you mean attitude not altitude, but when are you thinking we do this? you mean extra calls to attitude_control->reset_target_and_rate() ?
I've added the rudder fix, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

2 participants