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 for GuidedAction Vtol Takeoff #10123
Draft
RomanBapst
wants to merge
10
commits into
mavlink:master
Choose a base branch
from
RomanBapst:pr-vtol_takeoff
base: master
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
+403
−13
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Waiting for PX4/PX4-Autopilot#19027 to be merged @RomanBapst |
RomanBapst
force-pushed
the
pr-vtol_takeoff
branch
from
February 15, 2022 07:21
0f1a510
to
7f1ffd4
Compare
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- the value is obtained from the flight controller via parameter, currently only implemented for the px4 flight controller 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>
Signed-off-by: RomanBapst <bapstroman@gmail.com>
…n accepted by the vehicle Signed-off-by: RomanBapst <bapstroman@gmail.com>
…e-takeoff Signed-off-by: RomanBapst <bapstroman@gmail.com>
RomanBapst
force-pushed
the
pr-vtol_takeoff
branch
from
March 21, 2022 12:02
7f1ffd4
to
fc7783a
Compare
@patrickelectric Would you mind reviewing this? |
This has been sitting for ages with nobody looking at it. Not sure if this canoe brought up to date? |
@RomanBapst Do you think you could help resurrect this? |
@RomanBapst last call... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently QGC only exposes a simple takeoff (multi rotor takeoff or whatever you want to call it) in the guided actions menu.
For hybrid VTOL however, it would be convenient for the user to have an option to execute a takeoff and directly transition into forward flight after reaching the desired takeoff height. The vehicle could then establish a predefined loiter which allows it to remain in sight of the user and does not require any immediate action from the user.
The approach described above is implemented in this pull request and currently supports PX4 Firmware only. If there is interest from the Ardupilot community, I'd be happy to help adding support for their flight stack as well.
Below you can find a link to a video which demonstrates this functionality:
https://www.youtube.com/watch?v=AwHqYNDKTEI
Implementation Details
The implementation relies on MAV_CMD_NAV_VTOL_TAKEOFF in order to send the 3D location of the loiter circle to the flight controller.
This mavlink command is actually not really well documented, I'm hoping we can improve that as part of this PR.
The altitude specified in the command (param 7) holds the relative transition height above ground.
The height to which the vehicle climbs after the front transition is currently set by the flight controller but we could discuss to add it to the command as well (e.g. param 1 is still available). This would give the user the option to specify both transition and loiter altitude from the ground station. I'm looking forward to hear some opinions regarding this.
The position of the loiter circle is currently constrained to what I deemed reasonable values. The expectation is generally that the user roughly aligns the nose of the vehicle with the wind. The loiter circle center is then constrained to an angle of 90 degrees centered about the nose of the vehicle. Furthermore, the maximum and minimum distance of the loiter center to the current position of the vehicle is constrained taking into account the loiter radius of the circle.
As mentioned above, I'm currently only adding support for the PX4 flight stack and will post the link to the respective PR here shortly:
PX4/PX4-Autopilot#19027
Future work
Once VTOL takeoff as a guided action is supported, the next step would be supporting deterministic VTOL land approaches from the fly view, similar to what is shown in this video:
https://auterion.com/effortless-and-safer-vtol-deployment/