There's a bunch of things coming for stabilization:
@Glowtape and Peabody124 have been doing a lot of work on core controls--- specifically a Linear Quadratic Gaussian control loop that can be used instead of the existing PID controllers. Peabody124 wrote up the control law some time ago, and @Glowtape has put in significant work in integrating it into dRonin, tuning it, and improving the generalizability and control feel of it.
Several of us have been flying it, and at this point it is showing promising results in comparison to PID control. Note that it only works on multirotors, and is HIGHLY EXPERIMENTAL and may be dangerous or not in its final form, etc. That being said, we'd really appreciate feedback from experienced testers.
At the same time, all the control testing has shown us some places where the existing PID controller can be improved, and we've gone ahead and made those changes, too.
Please note that this includes, in addition to the LQG controller, all next-release targetted development since wired. In particular, there have been massive changes to altitude hold logic.
If you're up for some experimentation, you can test fly these two things with the build linked here:
What we'd love to hear from you is if the improved PID results in noticeable improvements for you, and if you're bold enough to try the LQG, some feedback on one or more of these things would be appreciated (better, same, worse, or just different):
- General flight performance and stick feel.
- Maneuvering at low throttle or at zero throttle with low power stabilization (Hangtime).
- Fast/hard cornering.
- Propwash and vibration handling.
- Motor noise and temperature.
F3 controllers are supported, but they're generally low on memory, so we suggest to disable MSP (for e.g. BLHeli passthrough) and any other optional modules to prevent any issues.
Some instructions to get this build going:
- You should probably export your UAV settings in the GCS of the official release, to get a backup for easy restoration. Maybe also download the settings partition in the bootloader, if you want to be really safe.
- Upgrade your flight controller in your preferred way-- e.g. use the upgrade process with the new GCS.
- The LQG controller needs some system identification parameters. To supply those, you need to run the Autotune wizard. If the physical configuration of your quad is still the same as when you last ran autotune, there's no need to do the full autotune procedure, you can just click on "Adjust previous tune..." and reprocess the existing data. There are no LQG specific pages in the wizard.
- There's now two new flight modes to chose from, "LQG" which is acro/rate mode but implemented with LQG instead of PID, and "AttitudeLQG", which uses LQG as the inner loop for our attitude controller. They're also available as options for the custom Stabilized1/2/3 modes.
- If you have an OSD and there's a warning labeled "CFG:LQG", it's possible the autotune wizard didn't finish properly. The quad would still take off in any LQG mode, but internally fall back to PID.