PX4 / flight_review

web application for flight log analysis & review
https://logs.px4.io/
BSD 3-Clause "New" or "Revised" License
193 stars 190 forks source link

Tailsitter : correct rate setpoint to match rate for tailsitter #275

Closed ciresimo closed 2 months ago

ciresimo commented 5 months ago

I was analysing some logs for a quadtailsitter without control surfaces that i'm developing, and I notice that even though the angle tracking of roll was quite good, the plots for the rates did not make sense Screenshot from 2024-03-21 13-51-43 rollrate_wrong

Here the complete logs for reference By looking into the configured_plots.py I saw that if the vehicle is a tailsitter angles and rates are reassigned to be plotted in a more consisten way for the instants that drone is flying in fixed wing:

but this is not applied to the rates setpoint, so the result is that on the rollrate plot , for example , the data shown are:

  1. Roll rate
  2. Roll rate setpoint
  1. Inverse of yaw rate
  2. Roll rate setpoint

What I did was simply remapping also the setpoints in fixed wing so to have in the same plot

  1. Inverse of yaw rate
  2. Inverse of yaw rate setpoint rollrate_new

Tracking is still not perfect, but that's a problem with the simluation. Aslo plot of yaw rate makes more sense:

Honestly this to me was very confusing, since I tried to find a reason for the behavior of correct angles but completely wrong rate control. In this way it makes more sense, so you could easily see if the rate controller is good at tracking. I think this was the way it was handled in the past, since I saw some old logs review that did not have this problem and I think is related on the new control approach. I'm conscious that the code may need other adjustments, since probably I'm not considering some cases (did not look into PID analysis for now). I opened this PR just to understand if this was actually a problem or the was a specific reason for this

ciresimo commented 3 months ago

@sfuhrer can you give some feedback on this?

khikmatovfarkhod commented 3 months ago

@sfuhrer please let us know if this is true. the rates for roll, pitch and yaw don't make sense

sfuhrer commented 3 months ago

Makes total sense to also transform the rate setpoints and not only the rate measurements from the body to the "fixed-wing" frame :+1:

ciresimo commented 3 months ago

I think I had some problems with pyulog. I rebased and now seems to be fine I ran the test locally and got 10