How to autotune the PID params

Dear all,
We have a customed airframe, and we want to tune the PIDs. Currently, the frame is extremely twichy in both roll and pitch directions. As I recall, the old version of QGC has the autotune of PIDs, but for now I cannot find it. Could anyone advise me how to tune the PIDs? Thanks

Only APM has auto tune function.

Yes that’s correct, Adrucopter has it, thou really would like the feature but it creates a lot of crash drones from past experiences with big quad low KV, so maybe ask the if this would be an enhancement worthy?

I think that makes the pid coordination very difficult, specially for customed airframes. Are there any advises that tell how we can do this in an easy way?

It is possible to port the autotune function from ardupilot, since the code explains it in detail, but I think it would be very difficult to pass it from the integration tests without working with the PX4 team.

You can never port code from Ardupilot since the PX4 project has a different license.

Yes you’re right, what I meant by porting is actually using a similar logic to this, the implemented algorithm doesn’t have to be exactly the same nor the method.

 *      b) records maximum "forward" roll rate and bounce back rate
 *      c) when copter reaches 20 degrees or 1 second has passed, it commands level
 *      d) tries to keep max rotation rate between 80% ~ 100% of requested rate (90deg/sec) by adjusting rate P
 *      e) increases rate D until the bounce back becomes greater than 10% of requested rate (90deg/sec)
 *      f) decreases rate D until the bounce back becomes less than 10% of requested rate (90deg/sec)
 *      g) increases rate P until the max rotate rate becomes greater than the request rate (90deg/sec)
 *      h) invokes a 20deg angle request on roll or pitch
 *      i) increases stab P until the maximum angle becomes greater than 110% of the requested angle (20deg)
 *      j) decreases stab P by 25%```

OK, yea in that case yes it would be great to have auto tune on PX4!

My frame is QAV130, very tiny. Is there any existing frames that can work fine without tediously coordinating PID params?

Hi, when I looked into the tuning guide for multirotors , in PX4, it also talked about tuning the attitude controller. And here, the code you shared and also auto-tune, they all are about attitude tuning.

What if the attitude controller is working fine, how to proceed with , tuning of velocity controller?
or position controller?

Where do you see the tuning guide for multirotors in px4?

@doctorluhang here in the link

@abdullahmohiuddin there is a VERY VERY old and most probably deprecated guide here . You could check it out but I suppose it’s really really old, even the mode names are different but it could give you an idea on how …

@deksprime Thank you so much for the reference, however I have come to think that , my problem could also be because of incorrect velocity estimation. I will look into both aspects now.