Un quadcopter contient (entre autres) deux algorithmes distincts et indépendants: un algorithme d'estimation d'attitude et un algorithme de contrôle.
L'algorithme d'estimation d'attitude calcule des informations sur l'orientation du quadcoptère: les angles de roulis, de tangage et de lacet.
L'algorithme de contrôle est chargé de piloter les moteurs afin que l'orientation du quadcoptère corresponde à ce que le pilote (ou le logiciel du pilote automatique) attend. Cet algorithme est ce qui lirait les angles quadricoptères estimés (à partir de l'algorithme d'estimation d'attitude) et modifierait la vitesse des moteurs pour tenter de correspondre aux angles souhaités. Les PID sont un algorithme de contrôle bien adapté et courant pour les quadcoptères.
Le verrouillage du cardan est un phénomène qui peut se produire dans l'algorithme d'estimation d'attitude. Cela n'a rien à voir avec l'algorithme de contrôle. En tant que tel, vous n'avez pas besoin d'ESC, de moteurs ou d'hélices pour tester le verrouillage du cardan: vous pouvez modifier votre code pour afficher vos angles de roulis, de tangage et de lacet, et tester que les valeurs correctes sont calculées lorsque vous déplacez manuellement votre quadcopter. Vous pourrez peut-être le faire avec le quadricoptère attaché à votre ordinateur, via Bluetooth ou en utilisant d'autres méthodes en fonction de votre plate-forme.
Si les angles sont calculés correctement, vous n'avez pas à vous soucier des quaternions. S'ils ne sont pas calculés correctement, les quaternions peuventT'aider. L'algorithme d'estimation d'attitude doit produire 3 angles pour l'algorithme de contrôle à utiliser, mais il peut utiliser une représentation interne différente telle que des quaternions ou des matrices 3x3. Dans ce cas, il convertirait toujours les informations d'attitude en angles afin de fournir des données utilisables à l'algorithme de contrôle. D'une manière générale, les quaternions ne sont pas intuitifs mais efficaces en termes de calcul. Cela les rend bien adaptés aux plates-formes lentes telles que Arduino. Les matrices ou les angles peuvent être un choix plus facile pour un matériel plus rapide. Si vous avez besoin de moi pour élaborer une solution ou l'autre, veuillez me le faire savoir, mais il serait assez prématuré pour moi de donner des détails à ce stade car je ne suis pas convaincu que vous ayez besoin de mettre en œuvre des quaternions.
Enfin, si les angles sont calculés correctement, la façon de faire votre boucle quadcopter est de contrôler la vitesse angulaire plutôt que l'angle. Si vos bâtons représentent l'angle du quadcoptère, il n'y a aucun moyen de le faire faire une boucle complète: essayez de visualiser la position des bâtons pendant que le quadcoptère boucle et vous devez comprendre pourquoi. Cependant, si les bâtons contrôlent la vitesse angulaire, vous pouvez contrôler la vitesse à laquelle il boucle.
Bonne chance pour votre projet!
Remarque: Par souci de simplicité, je n'ai pas mentionné l'option théorique de manipuler les données sous forme de matrices ou de quaternions à la fois dans l'algorithme d'estimation d'attitude et l'algorithme de contrôle. Je n'ai jamais vu un quadricoptère implémenter de tels algorithmes.