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

Support straight line mission landings #23576

Merged
merged 14 commits into from
Sep 10, 2024
Merged

Conversation

RomanBapst
Copy link
Contributor

Solved Problem

When flying Fixed Wings in a space constrained area, it can be difficult to plan the usual orbit type mission landings.
There might simply not be enough space for the vehicle to orbit while it's descending in altitude.

Of course, one can just plan a mission with simple waypoints and add a VTOL LAND waypoint at the end. However, there is always the risk that the altitude difference between the waypoints is too big and the vehicle cannot follow the glide-slope, causing it to loiter at the next waypoint in order to reduce altitude further. This behavior is highly undesirable as part of a mission landing, as already explained above.

Fixes #{Github issue ID}

Solution

I propose a solution where all simple waypoints AFTER a land stark marker have their altitude acceptance radius set to INFINITY, which will cause the guidance logic to track altitude for these waypoints based on best effort.

Changelog Entry

For release notes:

Feature
Documentation: Add documentation for QGC explaining the difference between the two types of landings.

Test coverage

Tested regularly in production but on a much older branch. Only SITL tested on main.

Context

Altitude profile for staright line landing. Notice, that for the first waypoints the altitude needs to reached, however, for the last waypoints (landing pattern), the altitude is not reached anymore, but the waypoint is still accepted.
image

wing guidance
- allows navigator to explicitly set the altitude acceptance radius
- needed for staright line landing support
* added ignore_alt_acceptance to position setpoint message to allow guidance
logic to ignore altitude error on waypoint
- can be useful to prevent loitering at a waypoint within a mission landing sequence

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* Update src/modules/fw_pos_control/FixedwingPositionControl.cpp

Co-authored-by: Alvaro Fernandez <alvaro@auterion.com>

* fixed typo

Signed-off-by: RomanBapst <bapstroman@gmail.com>

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Alvaro Fernandez <alvaro@auterion.com>
@RomanBapst RomanBapst force-pushed the pr-alt_acceptance_fw_guidance branch from 2b7bf96 to f429111 Compare August 20, 2024 08:43
@KonradRudin
Copy link
Contributor

I guess the small bump in altitude after accepting the last waypoint is due to the transition?

@ryanjAA
Copy link
Contributor

ryanjAA commented Aug 25, 2024

I'm trying to wrap my head around this.

I do recall (and use to use) straight line landings way back on <1.8? (when you put it back in in 1.04-ish) but that aside, you come in for landing and just plan a path basically and the idea here is that it just follows the path and max descent until we hit the ground but aren't constrained to hitting the WP alts on the path? Is that correct?

Is this somewhat similar to how Land mode works (in FW) but just with the benefit of being able to plan a path rather than say land now?

Edit: ya makes sense...

Copy link
Contributor

@sfuhrer sfuhrer left a comment

Choose a reason for hiding this comment

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

I would look into passing an "disregard altitude acceptance" flag from the groundstation to PX4 in cases where it should be ignored (e.g. during VTOL_LAND items). I don't think it should apply to every landing sequence.

src/modules/navigator/mission_block.cpp Outdated Show resolved Hide resolved
src/modules/navigator/mission.cpp Outdated Show resolved Hide resolved
Signed-off-by: RomanBapst <bapstroman@gmail.com>
… a mission landing

for fixed wing vehicles

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

@KonradRudin @sfuhrer I added the fixed wing check as agreed.

src/modules/navigator/mission_block.cpp Outdated Show resolved Hide resolved
src/modules/navigator/mission_block.cpp Outdated Show resolved Hide resolved
Signed-off-by: RomanBapst <bapstroman@gmail.com>
Signed-off-by: RomanBapst <bapstroman@gmail.com>
…position setpoint

is larger 0

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Signed-off-by: RomanBapst <bapstroman@gmail.com>
Signed-off-by: RomanBapst <bapstroman@gmail.com>
Signed-off-by: RomanBapst <bapstroman@gmail.com>
@KonradRudin KonradRudin self-requested a review September 9, 2024 16:12
Signed-off-by: RomanBapst <bapstroman@gmail.com>
Copy link
Contributor

@KonradRudin KonradRudin left a comment

Choose a reason for hiding this comment

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

lgtm

@RomanBapst
Copy link
Contributor Author

@sfuhrer @bresch Could you guys please approve?

@sfuhrer sfuhrer merged commit c94c1ce into main Sep 10, 2024
55 checks passed
@sfuhrer sfuhrer deleted the pr-alt_acceptance_fw_guidance branch September 10, 2024 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants