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

[WIP] adaptive hover-throttle for altitude control #12534

Closed
wants to merge 4 commits into from

Conversation

cmic0
Copy link
Contributor

@cmic0 cmic0 commented Jul 22, 2019

Describe problem solved by the proposed pull request
This PR is a first draft for an altitude controller that takes into account parametric uncertainty of MPC_THR_HOVER by exploiting an online hover-estimator.
With the current architecture, the user has to properly set MPC_THR_HOVER to the actual hovering throttle to get reasonable altitude tracking performances. If such parameter is not properly set, the user may experience poor altitude-tracking performaces or even worse flight instability.
Further discussion about this issue is referenced in this issue.

The (draft)-solution suggested here takes inspiration from Adaptive Robust Control designs, where an adaption law is used for estimating the new operating point.
A projection-type adaption law is used to estimate the hover throttle, which replaces the static feedforward action defined by MPC_THR_HOVER.

With the adaption law in place, problems such as

  • changes in vehicle's payload
  • higher hover thrust when batteries are low
  • parametric uncertainties

should be fixed.

This is PR is a draft to test the behavior of the adaption law, further work to have a clean architecture is still required.

Open questions for discussion:

  • which initialization value use for the MPC_THR_HOVER?
  • Should the parameter be updated after the flights?
  • How to provide the info to the landing estimator?

References:

Test data / coverage
I'm currently testing in SITL with a joystick to evaluate the effects of the hover estimator against the original implementation. Flight testing logs will be provided soon (still need to get them from the vehicle).
During the tests the hover estimator was published in vehicle_local_position_setpoint/hover_estimation.
Hover estimator is enabled by setting MPC_HOV_EST_ENto 1.
Tuning parameters:
MPC_HOV_ADT_RATE
MPC_HOV_EST_P

FYI @MaEtUgR @bresch

cmic0 added 4 commits July 15, 2019 10:29
Signed-off-by: Claudio Micheli <claudio@auterion.com>
Signed-off-by: Claudio Micheli <claudio@auterion.com>
Signed-off-by: Claudio Micheli <claudio@auterion.com>
@stale
Copy link

stale bot commented Oct 20, 2019

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

@stale stale bot added the stale label Oct 20, 2019
@bresch
Copy link
Member

bresch commented Oct 20, 2019

Closing as there is no further work on this PR. I'll open a new one once I have something working (work in progress here: Auterion/Flight_Control_Prototyping_Scripts#3)

@bresch bresch closed this Oct 20, 2019
@MaEtUgR
Copy link
Member

MaEtUgR commented Feb 24, 2020

Hover thrust estimator added in: #13981

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants