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

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

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