Étape 14 : IMU partie 1: capteurs
L’accéléromètre :
L’accéléromètre n’est pas réellement mesurer l’accélération. Il mesure de force par unité de masse le long de chaque axe. Vous pouvez utiliser cette mesure pour déterminer la direction de la gravité, qui exerce une force vers le bas, aussi longtemps que le quadrotor n’est pas accélérer.
Le Polulu minIMU-9 est beaucoup moins de soucis que le capteur analogique original car il est autonome de mise à zéro et signale une valeur numérique avec un facteur d’échelle connue. Le facteur d’échelle est encore un nombre simple agréable : 1 mg/chiffre avec la gamme plus sensible. Autrement dit, 1/1000e l’accélération gravitationnelle par chiffre. J’ai eu cette valeur directement à partir de la fiche de l’accéléromètre. Si vous pointez l’axe X du capteur directement vers le bas, il devrait rendre une valeur de 1 000.
Conversion d’une mesure de l’accélération à un angle nécessite beaucoup de trigonométrie ou une linéarisation. Depuis le quadrotor passe le plus clair de son temps horizontalement et ne s’écarte au maximum les 30º dans n’importe quelle direction, j’ai choisi la linéarisation. La première image montre comment linéariser à 0º. La pente de la droite tangente à la sortie du capteur vs virage à angle à 0 ° est 1000digit/rad. L’inverse est ce qu’on appelle A_GAIN dans le code :
A_GAIN = 0.001 rad/chiffre = 0.0573º / chiffres.
C’est le nombre par lequel multiplier la valeur brute accéléromètre pour obtenir un angle approximatif en degrés.
Le gyroscope :
Le gyroscope n’est pas réellement un gyroscope ; Il n’y a aucun volants de rotation à l’intérieur de la puce. On l’appelle plus exactement un capteur de vitesse angulaire et utilise une structure de diapason MEMS à mesure taux de rotation basée sur la force de Coriolis. Comme l’accéléromètre, il y en a un pour chaque axe.
Puisqu’il s’agit d’une belle IMU numérique, la valeur déclarée est directement en unités physiques, bien que le facteur d’échelle est un peu bizarre. Il est donné dans la fiche technique du gyroscope , 8.75mdps /, ou 0.00875(º/s)/chiffres. J’utilise cette valeur directement en tant que G_GAIN dans le code.
G_GAIN = 0.00875(º/s)/chiffres.
C’est le nombre par lequel multiplier la valeur brute gyro pour obtenir une vitesse angulaire en degrés par seconde.
Motivation pour la fusion de capteurs pour estimer l’Angle :
Le gyroscope mesure directement la vitesse angulaire, donc la rétroaction de taux est pris en charge par le gyros seul. En fait, il devrait être possible de voler le quadrotor sur les commentaires de taux seulement, mais il aurait besoin d’une structure de contrôle différent et ne serait pas autoniveler. Pour obtenir le contrôle de la bonne attitude, angle rétroaction est également requise.
Malheureusement, l’estimation de l’accéléromètre de l’angle n’est pas parfaite. Accélération horizontale perturbe l’estimation de l’angle, étant donné que l’accéléromètre ne peut pas distinguer la différence entre l’accélération vers l’avant et se penchant vers l’arrière. Le quadrotor ne passe beaucoup de temps accélérer horizontalement, mais quand cela arrive, il peut facilement extraire des grandes fractions de 1g, ce qui perturbe considérablement l’estimation de l’angle.
Le gyroscope peut également produire une estimation de l’angle, par intégration numérique : Si vous savez à quelle vitesse vous êtes tournantes, vous pouvez prédire quel angle vous serez à dans la prochaine étape de temps en multipliant le taux au moment de l’échantillon. Cette estimation de l’angle peut travailler pendant de courtes périodes de temps, mais pendant longtemps une durée qu'il va dériver loin de l’angle vrai. Peu importe comment bon et bien mise à zéro du gyroscope est, intégration numérique provoque toujours l’estimation d’angle produite par le gyroscope seul à la dérive au fil du temps.
Donc, l’accéléromètre est mauvais pour l’estimation d’angle à court terme, mais stable à long terme moyen correspond au vecteur pesanteur. Le gyroscope est bon pour les estimations d’angle à court terme, mais va dériver sur de longues périodes de temps. Le filtre complémentaire, discuté à l’étape suivante, fusionne les capteurs ensemble en douceur à des échelles de temps différentes pour obtenir une meilleure estimation de l’angle que chaque capteur seul pouvait produire.