Ein Quadcopter enthält (unter anderem) zwei separate und unabhängige Algorithmen: einen Einstellungsschätzungsalgorithmus und einen Steueralgorithmus.
Der Einstellungsschätzungsalgorithmus berechnet Informationen über die Ausrichtung des Quadcopters: die Roll-, Nick- und Gierwinkel.
Der Steueralgorithmus ist dafür verantwortlich, die Motoren so anzutreiben, dass die Ausrichtung des Quadcopters den Erwartungen des Piloten (oder der Autopilot-Software) entspricht. Dieser Algorithmus liest die geschätzten Quadcopterwinkel (aus dem Lageschätzungsalgorithmus) und ändert die Motordrehzahl, um zu versuchen, die gewünschten Winkel anzupassen. PIDs sind ein gut geeigneter und gängiger Regelalgorithmus für Quadcopter.
Gimbal Lock ist ein Phänomen, das im Einstellungsschätzungsalgorithmus auftreten kann. Es hat nichts mit dem Steueralgorithmus zu tun. Daher benötigen Sie keine Regler, Motoren oder Propeller, um die Kardanverriegelung zu testen: Sie können Ihren Code so ändern, dass Ihre Roll-, Nick- und Gierwinkel angezeigt werden, und testen, ob die richtigen Werte berechnet werden, wenn Sie Ihren Quadcopter manuell bewegen. Möglicherweise können Sie dies mit dem Quadcopter tun, der an Ihren Computer angeschlossen ist, über Bluetooth oder mit anderen Methoden, abhängig von Ihrer Plattform.
Wenn die Winkel korrekt berechnet werden, müssen Sie sich keine Gedanken über Quaternionen machen. Wenn sie nicht richtig berechnet werden, quaternions könntedir helfen. Der Einstellungsschätzungsalgorithmus muss 3 Winkel ausgeben, damit der Steueralgorithmus verwendet werden kann, er kann jedoch eine andere interne Darstellung wie Quaternionen oder 3x3-Matrizen verwenden. In diesem Fall würde es die Einstellungsinformationen immer noch in Winkel umwandeln, um dem Steueralgorithmus verwendbare Daten bereitzustellen. Im Allgemeinen sind Quaternionen nicht intuitiv, aber rechnerisch effizient. Dies macht sie gut geeignet für langsame Plattformen wie Arduino. Matrizen oder Winkel sind möglicherweise eine einfachere Wahl für schnellere Hardware. Wenn ich die eine oder andere Lösung ausarbeiten muss, lassen Sie es mich bitte wissen, aber es wäre ziemlich verfrüht, wenn ich zu diesem Zeitpunkt Einzelheiten angeben würde, da ich nicht davon überzeugt bin, dass Sie Quaternionen implementieren müssen.
Wenn die Winkel korrekt berechnet wurden, besteht die Art und Weise, wie Sie Ihre Quadcopter-Schleife erstellen, darin, die Winkelrate und nicht den Winkel zu steuern. Wenn Ihre Sticks den Quadcopter-Winkel darstellen, gibt es keine Möglichkeit, eine vollständige Schleife zu erstellen: Versuchen Sie, die Position der Sticks als Quadcopter-Loops zu visualisieren, und Sie sollten verstehen, warum. Wenn die Sticks jedoch die Winkelgeschwindigkeit steuern, können Sie die Geschwindigkeit steuern, mit der sie sich drehen.
Viel Glück bei Ihrem Projekt!
Hinweis: Der Einfachheit halber habe ich die theoretische Option, die Daten sowohl im Lageschätzungsalgorithmus als auch im Steueralgorithmus als Matrizen oder Quaternionen zu manipulieren, nicht erwähnt. Ich habe noch nie einen Quadcopter gesehen, der solche Algorithmen implementiert.