Plane: Allow for Guided mode to support Terrain following #27909
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.
Starting with support for MAVLink CMD_GUIDED_CHANGE_ALTITUDE and CMD_DO_REPOSITION to support MAV_FRAME_GLOBAL_ALT, this adds translation from the MAVlink frame to Location::AltFrame:ABOVE_TERRAIN.
To make this easier to understand and maintain, I also changed the plane.guided_state.target_alt_frame variable directly support Location::AltFrame directly (it was a uint8_t)
Then lower level changes required to support the functionality were required in mode_guided.cpp.
The example script "works around" the current lack of the ability of GCS such as Mission Planner or QGroundControl to send altitude request messages with terrain. The script will convert non-terrain guided terrain targets into terrain targets. There is a parameter ZGT_MODE which allows choosing how the script will do this:
1: reset the requested terrain altitude to the current plane terrain altitude
2: reset to the requested altitude above/below home as a terrain altitude to target
3: reset to the current altitude + the above/below home altitude as the terrain altitude to target