Traducteur

      

 


Articles
+ Avions
+ Hélicos
+ Planeurs
+ Volez !

Techniques
+ Avions / Planeurs / Ailes ...
+ Electrique
+ Emetteurs & electronique
+ Hélicos

Flybarless

A voir

Petites annonces

cadeau.gif

Aller aux petites annonces


Visites

 1090888 visiteurs

 1 visiteur en ligne


AR.Drone de Parrot - Comment ça marche ?




Sur le principe, rien de bien compliqué. C''est un peu comme pour les hélicoptères, sauf que nous avons 4 moteurs/hélices dirigées vers le haut.
En tournant, ces hélices créent une force de sustentation qui compense le poids du quadricoptère. Lorsque cette force est supérieure au poids, le quadricoptère  s'élève dans les airs.



Mais, en l'absence de gouvernes aérodynamiques comme les ailerons ou dérive/profondeur d'un avion, comment fait il pour se diriger sur ses 3 axes X, Y et Y (tangage, roulis et lacet) ?






On comprend assez facilement qu'il suffit de donner un inclinaison du quadri vers l'avant pour le faire avancer, et même principe pour entamer une translation a droite ou a gauche (inclinaison à gauche => le quadricoptère part a gauche).



Mais pour le lacet ? Comment le quadricoptère peut il tourner sur lui-même, autour de son axe vertical Z ?

Sur un quadricoptère, 2 hélices opposées tournent dans le sens horaire et les 2 autres dans le sens antihoraire. Pourquoi ? Car cela permet d'annuler le couple induit par l'effort de chaque moteur pour faire tourner ses hélices. Ce couple découle du principe de l'action et réaction.
Un exemple pour comprendre le couple induit: installez-vous sur une chaise à roulette devant un mur sans mettre les pieds par terre. Poussez avec vos mains le mur : la chaise (et vous dessus) recule du fait de la force de réaction du mur induite par la poussée de vos mains. C’est exactement pareil ici, sauf qu’au lieu de vos mains, ce sont les dents du pignon moteur qui appuient sur celles de l’engrenage d’entrainement de l’hélice. Donc, de cette action résulte la réaction, le couple induit, qui est compensé, grâce à cette association d’hélices rotatives et contra-rotatives.




Sur un hélico, le couple induit par le moteur qui fait tourner le rotor principal est annulé par un truc qui s’appelle … l'anti-couple. Etonnant n’est ce pas ? :) .
C’est la petite hélice verticale sur la queue de l'hélico.

Ainsi, pour faire tourner le quadricoptère sur son axe de lacet (yaw), il suffit alors de ne plus annuler totalement le couple induit, en faisant tourner un poil plus vite les 2 moteurs tournant dans le même sens (flèches bleues ci dessous) et un poil moins vite les 2 autres (flèches vertes)



On pourrait alors penser qu'il suffirait juste d'augmenter la vitesse des moteurs tournant dans le même sens pour laisser le sur-couple non compensé le faire tourner sur son yaw. C'est vrai, mais a ce moment la, le quadri va monter, car ça va tirer plus fort en moyenne, et c'est pour ça qu'on baisse aussi d'autant la vitesse de rotation des 2 autres moteurs, pour maintenir l'altitude constante. Pareil lorsqu'on veut incliner le quadricoptère pour faire une translation suivant X ou Y.

Lorsque le pilote demande au drone d'avancer, autrement dit, de donner une inclinaison vers l'avant de par exemple 10°, le logiciel embarqué reçoit cette information du récepteur embarqué, et va donner l'ordre au moteur de devant de tourner un peu plus vite, celui de derrière un peu moins vite (inclinaison) et de faire tourner un chouillas plus vite les moteurs sur les cotés pour compenser la perte de sustentation liée à l'inclinaison. Dans ce genre de bidule volant, on trouve tout un tas de capteurs embarqués qui permettent de s'assurer que l'ordre est bien appliqué par le système, mais aussi de détecter des mouvements non souhaités, en donnant des infos de mesure de l'inclinaison du quadricoptère. Pour reprendre l’exemple, grâce à ces capteurs, le système sait si cette consigne de 10° est atteinte, dépassée, ou non atteinte. Dans ces 2 derniers cas, le système ajustera la vitesse des moteurs jusqu'à ce que les capteurs lui indique « ton inclinaison est de 10° mon gars ! »

Mais c'est quoi ces capteurs ?

Les quadricoptères (ainsi que de plus en plus d’aéronefs d'ailleurs) embarquent systématiquement un ou plusieurs gyroscopes, un pour chaque axe. Leur rôle est de mesurer des variations de vitesse angulaire autour d’un axe (ca peut donc détecter des variations de roll/pitch/yaw), puis de donner cette info au système qui peut alors, par exemple, s’assurer que le quadri reste toujours orienté de la même façon en l'absence d'ordre du pilote.
Prenons par exemple celui stabilisant la rotation autour de l'axe Z (le lacet). Admettons que le drone commence à tourner sur lui-même, qu’elle qu’en soit la raison. Le gyroscope détecte ce mouvement, il envoie l'information au logiciel de stabilisation qui analyse si c'est normal (ordre du pilote) ou pas (coup de vent, …). Et, dans le cas d'un mouvement non souhaité, le logiciel embarqué va alors corriger ce mouvement en jouant sur la vitesse des hélices opposées, jusqu'à ce que le gyroscope lui indique « C’est bon, je ne détecte plus de mouvement ! »

Cela est vrai pour les 3 axes, sauf que la combinaison de variations de vitesse de rotation des hélices est différente suivant l'axe à stabiliser.
Le quadricoptère embarque à droite ? Le capteur qui va bien le détecte, donne l’info au système qui demande alors aux 2 moteurs droits de tourner un poil plus vite, et aux 2 moteurs gauches de tourner un poil moins vite. Le coté droit se lève, pendant que le gauche se baisse, et donc le quadricoptère repart vers la gauche. Même principe pour gauche/devant/derrière.

On parle de "centrale inertielle" qui est l'association de l'ensemble des capteurs avec le logiciel embarqué et le hard pour le faire tourner. Il suffit de réfléchir 2 secondes pour s'apercevoir qu'il y a 6 mouvements à stabiliser et à contrôler :
  • A) les X, Y et Z linéaires
  • B) les rotations autour de ces 3 axes.
Dans le cas de ce drone (et de quasiment tous les multi rotors voire même d'hélico), les capteurs sont utilisés sont les suivants
  • 3 accéléromètres (détecte des variations de vitesse linéaire – A), un pour chaque axe
  • 3 gyroscopes (détecte des variations de vitesse angulaire – B), un pour chaque axe.
Du fait de la mauvaise réactivité des actuateurs dans un quadri à pas fixe (actuateur = terme utilisé dans la notion de boucle d'asservissement, ici ce sont les moteurs/hélices), le yaw (lacet) est le plus difficile à stabiliser efficacement, c'est la raison pour laquelle un gyro dit "de précision" est utilisé, comme décrit dans les spec du drone, pour "anticiper" le plus rapidement possible toute variation non souhaitée du lacet.

Tout ça c’est bien joli, mais dans la réalité, les capteurs ne sont pas parfaits. Tout appareil de mesure, une fois calibré correctement, possède une précision assez bonne mais que dans une plage limitée des valeurs qu'il mesure, et des conditions dans lesquelles la mesure est effectuée.
En effet, les accéléromètres donnent en sortie des tensions proportionnelles aux mouvements qu'ils détectent. Mais, lorsque ces mouvements sont trop importants et/ou avec des vibrations ou autre facteur environnemental perturbateur (température…), on est alors hors plage de mesure fiable. Il faut donc s'appuyer sur d'autres moyens de mesures des mouvements pour épauler les accéléromètres et gyroscopes.



Sur la plupart des multirotors, on utilise le GPS pour seconder les accéléromètres et gyroscopes du X et Y, des capteurs barométriques pour ceux du Z et même des capteurs magnétiques permettant de mesurer le champ magnétique terrestre, pour encore plus de précision sur le lacet. C’est notamment le cas des MikroKopters

Dans le cas du drone Parrot, c’est une camera qui « regarde » le sol et dont l’image est analysée pour détecter les dérives en X et Y et donner l’info qui va bien au système pour les compenser. Idée très sympa, mais efficace tant qu’on ne dépasse pas 3 ou 4 mètres d’altitude et qui nécessite un sol présentant des variations de contrastes, de textures, etc… suffisantes pour que l’analyse d’image soit optimale. Au dessus d’un sol parfaitement uniforme, ça ne fonctionne pas super bien …

Pour le Z, Parrot a "secondé" l'accéléromètre du Z avec un capteur à ultrasons. Ce capteur est constitué de 2 parties : un émetteur d’ultrasons dirigé vers le bas, les ultrasons « rebondissent » sur le sol et remontent vers le récepteur à ultrasons, et le delta de temps entre l’émission et la réception permet d’estimer l’altitude.
Perso, je trouve ce choix assez nul, car certes ca marche bien, mais tant qu’on ne dépasse pas 2 ou 3 mètres. De plus, ça dépend de la nature du sol (herbes hautes…), et ça pose plein de problème de gestion d’altitude, qui sont d’ailleurs assez mal adressés par le soft de ce drone (de nombreux bugs sur la gestion de l’altitude ont été décelés par les utilisateurs). Un capteur barométrique eut été bien plus judicieux, car précis (2 ou 3 cm …) et surtout permettrait de lever la limitation de compensation d’altitude (3 ou 4 mètres…) due au choix de ce capteur à ultrasons. Le top serait d’avoir les 2 : les US pour gérer décollage/atterrissage et la sonde barométrique pour gérer l’altitude pendant le vol. Peut-être dans une prochaine version ?


Pour les détections de mouvements de rotations autour des 3 axes, les gyros sont amplement suffisants pour ce drone Parrot, pas besoin de les seconder. (Bien que très certainement l’analyse d’image de la caméra sol contribue à la stabilisation du lacet)

Bref, pour en revenir a nos moutons, avec tous ces capteurs, il faut maintenant savoir "traiter" leur signal, en l’épurant de tout parasite et autres valeurs aberrantes, pour ensuite calculer l'ordre a donner aux actuateurs (moteurs) pour compenser les mouvements parasites, bref, pour stabiliser le drone.

Pour cela, il y a plein de méthodes de calculs plus ou moins complexes, et après un rapide examen du fichier config.ini de ce drone (visible dans le système embarqué, voir chapitre trucs et astuces), je mettrais ma main a couper que la base de calcul utilisée repose sur la théorie des boucles d'asservissement avec le fameux PID. Il s'agit une formule à 3 paramètres: P pour Proportionnal, I pour Integral et D pour Differential.
Wikipedia explique très bien les grandes lignes du PID http://fr.wikipedia.org/wiki/Régulateur_PID


Source : wikipedia


Ces 3 paramètres permettent donc d'ajuster (sur un axe) les ordres à transmettre en fonction des capacités des actuateurs, l'inertie de l'engin, etc... Nous avons donc 3 valeurs de paramètres à trouver. C'est la clef, le secret, le graal :) de la stabilisation du drone. Leurs valeurs optimales sont généralement trouvées par essais successifs (plein de méthodes pour cela). De mémoire :
  • trop de P => oscillations rapide autour de l'axe stabilisé
  • trop de I => oscillations lentes
  • trop de D => consigne visée dépassée



Dans la mesure où tous les AR.Drone sont les mêmes (moteurs, hélices, poids, espacements entre moteurs, ...), les valeurs des paramètres PID seront les mêmes pour tous. Parrot a du passer du temps à affiner ces valeurs et celles présentes sont certainement parfaitement optimisées et, a priori, ne nécessitent pas d'être modifiées dans le cadre d'une utilisation standard.

En revanche, si on installe par exemple une camera supplémentaire, et a fortiori si elle n'est pas positionnée sur le CG du drone, les valeurs des PIDs par défaut ne seront probablement plus adaptées. Autre exemple, le jour où on saura mettre des moteurs et ESC plus gros et surtout comment les interfacer avec la carte mère, pouvoir venir bidouiller facilement ces paramètres dans le fichier config.ini sera indispensable.



Date de création : 22/09/2010 @ 23:27
Dernière modification : 27/09/2010 @ 23:16
Catégorie :
Page lue 25031 fois


Prévisualiser la page Prévisualiser la page     Imprimer la page Imprimer la page


^ Haut ^

Toute utilisation du contenu de ce site dans un but commercial est interdite sous peine de poursuites. Aucune reproduction, même partielle, autres que celles prévues à l'article L 122-5 du code de la propriété intellectuelle, ne peut être faite de ce site sans l'autorisation expresse de l'auteur. De façon générale, est interdite toute extraction ou réutilisation des données à des fins commerciales ou de diffusion à des tiers.
  Site créé avec GuppY v4.5.19 © 2004-2005 - Licence Libre CeCILL

Document généré en 0.09 seconde