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

navigator: let vtol descend in fixed wing mode before transitioning #10404

Closed
wants to merge 1 commit into from

Conversation

RomanBapst
Copy link
Contributor

@RomanBapst RomanBapst commented Sep 3, 2018

Previously during an RTL the transition back to rotary wing mode was
triggered when the plane reached the home position at the RTL height.
It makes more sense to do the descent phase in fw mode in order to save
energy and for stability reasons. Note also that the RTL height could potentially be quite high and so we really should avoid descending in rotary wing mode.
The plane will now fly down to the descend altitude in fixed wing mode and
then do the transition to rotary wing mode.

Currently the descend altitude is quite low (10 m) by default which is probably too low for vtol transitions.
So we should handle that somehow before merging this.

@dagar @sanderux FYI

Signed-off-by: Roman bapstroman@gmail.com

@dagar
Copy link
Member

dagar commented Sep 3, 2018

I don't recall the full discussion, but I believe the only reason this wasn't already done was potential safety concerns and the general awkwardness of transitioning from a FW loiter rather than towards the actual home.

That being said, I'm fine with this PR if we make sure the default VTOL descend altitude is safe.

if (_param_land_delay.get() < -DELAY_SIGMA || _param_land_delay.get() > DELAY_SIGMA) {
// if we are a VTOL and in fixed wing mode then we should now transition to rotary wing mode
if (_navigator->get_vstatus()->is_vtol && !_navigator->get_vstatus()->is_rotary_wing) {
_rtl_state = RTL_STATE_TRANSITION_TO_MC;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you reorder the switch so it follows the intended order of execution.

RTL_STATE_RETURN -> RTL_STATE_DESCEND -> RTL_STATE_TRANSITION_TO_MC -> ...

- previously during an RTL the transition back to rotary wing mode was
triggered when the plane reached the home position at the RTL height.
It makes more sense to do the descent phase in fw mode in order to save
energy and for stability reasons.
The plane will now fly down to the descend altitude in fixed wing mode and
then do the transition to rotary wing mode.

Signed-off-by: Roman <bapstroman@gmail.com>
@RomanBapst
Copy link
Contributor Author

@dagar @sanderux Now that I think of it we could have a loiter altitude for fw, then transition and then descend to the multicopter loiter altitude. Should we have a fixed wing descend altitude? QGroundControl could then show both altitudes in the safety tab.

@sanderux
Copy link
Member

sanderux commented Sep 3, 2018

We could, but isnt that making it needlessly complex?
I think that the descent altitude would work fine, we could update the defaults on the VTOL platforms.

@dagar
Copy link
Member

dagar commented Sep 4, 2018

That could make sense, but I'd still be worried about general transition safety. How far does a transition tangent to a FW loiter around home take you away from the home position? What about wind direction? It basically means at transition altitude you'd need to ensure a safe radius of several hundred meters around home (the worst case). That's fine if you're operating from a field.

The other (minor) thing to check is the back transition logic from loiter. The vtol controller will abruptly and simultaneously force the vehicle level (roll and pitch to 0 or offsets) while cutting the throttle (all with TECS disabled).

In my mind this quickly turns into the same situation as FW where a planned landing sequence at the end of the mission (marked with DO_LAND_START) should be required and used for RTL in most real world situations.

Copy link
Member

@sanderux sanderux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

behavior tested and working well

@stale
Copy link

stale bot commented Jan 20, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@tubeme
Copy link

tubeme commented Jan 21, 2019

Is there something wrong with this PR? @RomanBapst

@stale
Copy link

stale bot commented Oct 13, 2019

This issue has been automatically marked as stale because it has not had recent activity. Thank you for your contributions.

@RomanBapst
Copy link
Contributor Author

Will be implemented in a nicer way in #14728

@RomanBapst RomanBapst closed this Apr 28, 2020
@RomanBapst RomanBapst deleted the pr-vtol_descend_rtl branch April 28, 2020 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants