Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Le cap de la boussole est en retard dans les virages, le filtre est-il faux ?

Le cap de la boussole est en retard dans les virages, le filtre est-il faux ?

Résolu 6 5

Traduit de Türkçe par IA ·

Nous travaillons sur un petit bateau autonome pour la mesure de la qualité de l’eau, qui suit un itinéraire vers des points de prélèvement dans des étangs. Je m’occupe des données, mais l’équipe électronique est en vacances, donc le problème me revient.Pour le cap nous utilisons un magnétomètre QMC5883L, et l’ESP32 le lit à 10 Hz. Quand le bateau avance droit, le cap est correct, mais dans les virages il est en retard de 2 à 3 secondes : le bateau a tourné, la valeur affiche encore l’ancienne, puis rattrape lentement. Le retard semble différent selon qu’on tourne à droite ou à gauche. Le suivi de trajectoire en est donc perturbé.Les valeurs sont aussi envoyées vers Hermetry, où nous traçons l’itinéraire sur une carte. Il y a aussi un détail étrange : sur le graphique hebdomadaire, le cap apparaît parfois autour de 180, alors que ce jour-là le bateau est allé vers le nord puis est revenu.

♥ 0

Traduit de Türkçe par IA ·

Appliquez-vous un filtre à la valeur lue ?

Sahadan selamlar.
♥ 0

Traduit de Türkçe par IA ·

Oui, c’est la moyenne des 20 dernières mesures. À 10 Hz, cela prend 2 secondes.

♥ 1

Traduit de Türkçe par IA ·

Réglez la fenêtre sur 50, cela sera plus stable.

Ağ geçidi yine bağlanıyor…
♥ 0

Traduit de Türkçe par IA ·

La calibration a-t-elle été effectuée ? Si la calibration hard iron et soft iron n’a pas été faite, des erreurs différentes apparaissent selon le sens de rotation, et la différence gauche-droite peut venir de là.

♥ 0

Traduit de Türkçe par IA ·

Agrandir la fenêtre augmente le retard, il faut faire l’inverse. J’ai vécu la même chose à une époque où je travaillais sur des drones.La source du retard est la moyenne elle-même : une moyenne mobile sur 20 mesures arrive avec environ 1 seconde de retard, et l’erreur augmente à mesure que la vitesse de rotation augmente. Le manque de calibration évoqué par Büşra Hanım explique aussi la différence entre la droite et la gauche.La solution consiste à combiner avec le gyroscope. Le gyroscope voit la rotation instantanément mais dérive lentement, le magnétomètre est lent mais ne dérive pas. Un filtre complémentaire combine les deux :

// dt = 0.1 s, gz = derece/s (z ekseni jiroskop)
float a = 0.98;
heading = a * (heading + gz * dt) + (1 - a) * magHeading;
// 0/360 geçişini düzelt
float fark = magHeading - heading;
if (fark > 180) heading += 360 * (1 - a);
if (fark < -180) heading -= 360 * (1 - a);
heading = fmod(heading + 360, 360);

Si la carte n’a pas de gyroscope, ajouter un MPU6050 est la solution la moins chère. Commencez par faire tourner le bateau sur deux tours complets dans l’eau et effectuez la calibration hard/soft iron.Le problème du 180 est distinct : un angle ne peut pas être moyenné. La moyenne de 359 et 1 donne 180. Le graphique hebdomadaire lit des valeurs agrégées toutes les heures et la fonction par défaut est average. Sur le graphique du cap, réglez la fonction sur last, et pour l’analyse envoyez heading_sin et heading_cos en plus du cap ; leur moyenne donne le bon résultat.

Kayıtta yoksa olmamıştır.
Solution acceptée♥ 7

Traduit de Türkçe par IA ·

Avec le filtre complémentaire, le retard a presque disparu, et l’équipe avait de toute façon déjà trouvé un MPU6050. Nous avons aussi fait la calibration, la différence gauche-droite a disparu. En faisant last sur le graphique, le problème du 180 a disparu aussi. Heureusement que j’ai lu cet article avant d’essayer la suggestion de Hakan Bey 🙂

♥ 2
7 sujets de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.

Rejoignez la discussion

Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

Partager