Accueil > Forum > Bricolage > Drone > Asservissement drone, infos en vrac

Asservissement drone, infos en vrac

Bebop Bebop 2 Messages
Bonjour,
Je fais ce poste afin de partager mon retour d'expérience sur la programmation d'un contrôleur de vol pour quadcopter.
Voici donc quelques infos en vrac afin de simplifier la vie a ceux qui veulent travailler sur le sujet.

1 Le minimum pour faire voler un drone c'est 3 PID, une par axe. La première erreur que j'ai fait au début est de penser qu'on peut asservir l'angle du drone directement. En fait c'est impossible, pour réguler l'angle il faut réguler d'abord la vitesse angulaire. Donc la première étape est de faire voler le drone uniquement avec une régulation de vitesse angulaire sur chaque axes. C'est le mode de vol appelé accro.

2 Pour générer les signaux PWM de contrôles des ESC il est pas mal d'utiliser des timers16 bits. L'avantage est de pouvoir avoir une période de commande plus courte que les 20ms de la fonction servo. Mes ESC fonctionnent par exemple avec un signal de 4ms.

3 Pour la question de la fréquence de régulation, il faut considérer les temps suivants : temps de mesure du capteur + temps de transmission des mesures + temps de calcul des PID + temps de transmission de la commande aux ESC. Le goulot d'étranglement se situe surtout sur le dernier point. En effet un ESC qui reçoit un signal a 20ms fixera la régulation globale a 50Hz. Je pense qu'a 50Hz c'est suffisant pour voler mais plus la fréquence de régule est élevée mieux c'est (vrai jusqu’à 400hz je pense). Mon drone tourne a 200Hz mais au début il volait à 100Hz.

4 Le mode stabilisé est donc constitué de deux PID en cascade par axes. Le plus sympa après essais et de mixer le mode stabilisé et le mode accro. L'idée est de stabiliser angulairement le drone quand on ne touche pas aux joystick et de profiter de la dynamique du mode accro quand on veut créer un mouvement.
Zh0nd Zh0nd 20 Messages
Hello,

Merci pour les tips, très intéressant
lobodol lobodol 489 Messages BIG BOSS
Salut Bebop et merci pour ce retour très complet.

La première erreur que j'ai fait au début est de penser qu'on peut asservir l'angle du drone directement. En fait c'est impossible, pour réguler l'angle il faut réguler d'abord la vitesse angulaire.

J'ai fait la même erreur, je croyais aussi qu'un asservissement angulaire était suffisant.

Pour la génération des pulse ESC, je le fait à la mano, en manipulant les port d'E/S directement. Je le fait avec une période de 2ms.
L'asservissement total du drone tourne à 200Hz.
A chaque faute d'orthographe que vous faites, votre sexe rétrécit inexorablement ...
Vous devez être connecté pour pouvoir répondre à ce sujet.