Correction inclinaison MPU6050 + LIS3MDL avec Arduino

RadioG RadioG 7 Messages
Bonjour,
Je réalise un chariot autonome asservi par Gps Ublox-Neo-M8t
https://drotek.com/shop/en/u-blox/884-ublox-neo-m8t-gps-lis3mdl-compass-xxl.html
qui devra circuler entre quelques WayPoints prédéfinis et enregistrés dans la base GPS. Les coordonnées Long/Latitude à atteindre seront envoyées au mobile par liaison radio VHF. Ce projet comporte de nombreux calculs à réaliser par prog de l'arduino embarqué.
Pour ne pas encombrer ce fil, je me limite donc au problème spécifique qui est de corriger la valeur de heading envoyée par la boussole LIS3MDL intégrée au Gps NeoM8t. La valeur de cap doit être corrigée par le MPU6050 en fonction de l'erreur due à la pente du terrain.
J'ai deux sketches Arduino, un pour la boussole et l'autre pour le gyroscope qui fonctionnent. L'idée est maintenant de réaliser la fusion pour appliquer les offsets de chaque axe et la compensation d'inclinaison.
Merci lobodol, je vois que tu as beaucoup bossé sur le 6050 et ton aide me sera précieuse.
lobodol lobodol 862 Messages BIG BOSS
Salut, je ne suis pas sûr de bien comprendre ta problématique.
Comment sont définis tes points de cheminement ?

Qu'est-ce que tu appelles "valeur de heading" ?

Tu dis que tu arrives bien à obtenir des angles exploitables avec le MPU, c'est bien ça ?
Sur les trois axes ?
As-tu besoin d'une lecture sur les trois axes ?
RadioG RadioG 7 Messages
Salut, je te remercie de bien vouloir suivre mon projet, probablement un peu complexe, mais réalisable si j'arrive à l'exprimer clairement.
J'ai construit ce projet sur Arduino en pensant que je peux exécuter un certain nombre de fonctions en cascade afin de piloter les actionneurs en final.
Un des premiers void est celui qui traite le GPS afin de donner la longitude et la latitude à un moment donné entre 2 WP. Les voids suivants traitent le calcul du Cap pour aboutir au WayPoint de destination...et ainsi de suite.
Comment sont définis tes points de cheminement ?
Ces points que j'appelle WPoints, sont fixes et préalablement définis par rapport à la configuration du terrain.
Qu'est-ce que tu appelles "valeur de heading" ?
La boussole nous envoie un Heading qui est en fait la position angulaire du mobile par rapport au Nord géographique, comme sur un bateau.
Tu dis que tu arrives bien à obtenir des angles exploitables avec le MPU, c'est bien ça ?
Oui, et à partir de ton fichier calibrer-le-capteur-mpu6050 auquel j'ai ajouté quelques lignes.
Xvomnfh
As-tu besoin d'une lecture sur les trois axes ?
Oui j'ai besoin des 3 axes pour corriger le cap indiqué par la boussole LIS3MDL. Ce cap est erroné sur un terrain en pente.
lobodol lobodol 862 Messages BIG BOSS
Un des premiers void est celui qui traite le GPS

Tu parles de fonction ?

"void" c'est un mot-clé pour dire qu'une fonction ne retourne rien s'il est placé avant le nom de la fonction :



Pour compenser l'erreur de cap donné par la boussole en cas de terrain de en pente, je pense que tu vas devoir connaitre la valeur de la pente en °.
D'instinct, je dirais qu'on peut s'en sortir avec Pythagore.
RadioG RadioG 7 Messages
Effectivement il s'agit de fonctions.
Concernant la correction de cap boussole, elle doit être faite à 3 Hz environ pour compenser le balancement permanent (positif ou négatif) sur les axes X et Y.
J'ai fait un test et obtenu de bons résultats avec un MPU6050 et le HMC5883L qui est l'ancienne génération .
En remplaçant le HMC par le LIS3MDL, les choses semblent plus compliquées.
lobodol lobodol 862 Messages BIG BOSS
Tu aurais un exemple de ce que tu as fait en code Arduino ?
Car j'ai un peu de mal à comprendre ce que tu veux faire et comment t'aider.
RadioG RadioG 7 Messages
Je t'envoie la dernière mouture telle que je l'ai téléversée sur mon Nano.
J'ai prévu un afficheur dans le fonctionnement en extérieur ( ce qui est tout de même l'objectif...
Les deux premières fonctions ainsi que l'afficheur fonctionnent correctement. Seule la compensation du tilt boussole perturbe les résultats.
Une photo du montage et le code à 92% de l'espace de stockage de programme.
[/code]
XxI3KFP
RadioG RadioG 7 Messages
Pour info je te transmets ces deux liens qui représentent ma démarche avec une boussole différente.
Boussole seule
Boussole avec compensation d'inclinaison
Vous devez être connecté pour pouvoir répondre à ce sujet.
Utilisation des données

Afin d'améliorer ton expérience utilisateur, nous utilisons des cookies 🍪