Système de positionnement et d'orientation 3D

Bonjour à tous,

Dans le cadre d'un travail (conséquent) réparti sur tout un semestre à l'université, je dois développer un système qui permet de définir la position et l'orientation d'un objet dans un espace de quelques mètres carrés (utilisation de l'objet par un humain qui ne bouge quasiment pas les pieds). Pour ce faire, il m'a été conseillé d'explorer la voie accéléromètre + gyromètre. Après quelques recherches, j'ai décidé de faire quelques tests avec le MPU-6050, un capteur peu cher et petit (le système doit être le plus petit possible) contenant un accéléromètre et un gyromètre et qui a l'avantage d'être connu et qui a donc une grande communauté d'utilisateurs.

Cependant, après avoir commandé le capteur et fait quelques tests avec les librairies standards que l'on trouve sur internet, je me rends compte qu'il y a de sérieux problèmes de dérive et de précision qui rendent cette tâche compliquée à effectuer de cette manière.

De plus, j'ai l'impression qu'il est vite très compliqué de vraiment bien comprendre comment coder soi-même ce capteur avec ce que Invensense (le concepteur) fournit. En réalité j'ai l'impression que 99% des utilisateurs prennent des codes déjà fait sans chercher à comprendre et je me rends compte qu'il y a très peu de tutoriels lorsque l'on veut comprendre en détail.

Dès lors, je me remets à vous et me permets de vous demander votre avis sur ce sujet !

  1. Premièrement, est-il judicieux de partir sur un système accéléromètre + gyromètre (+ éventuellement d'autres capteurs du genre magnétomètre) ?

  2. Si oui, avez-vous une expérience dans ce domaine et avec quel capteur ? lequel serait le plus adapté à ce type de fonctionnement ?

2b) Si non, quel méthode plus efficace me permettrait de faire ce dont j'ai besoin ?

Au fait, je dispose d'un budget d'environ 500 euros, si cela peut vous aider dans vos réponses.

Merci et meilleures salutations.

Il existe des méthodes pour compenser la dérive du gyromètre en utilisant à la fois la mesure de l'accéléromètre et du gyromètre : cherche les mots clés "complementary filter" sur internet.

Deux liens :

Merci pour ta réponse.

En utilisant les librairies de Jeff Rowberg, j'ai finalement réussi à obtenir des résultats précis et qui ne dérivent pas pour les angles.

Je rencontre cependant un problème pour l'angle "Yaw", que je n'arrive pas à initialiser à 0 lors de chaque lancement du programme. Le but serait qu'il soit égal à 0 peu importe la position dans laquelle le capteur se trouve lors du lancement du programme.

Ceci est-il possible ?

Il doit y avoir un exemple dans la bibliothèque qui permet de faire ça: IMU_zero. I'm calcule les valeurs d'offset à appliquer pour le calibrer.

Oui j'ai déjà calibré mon MPU6050 avec ce programme, mais il ne permet pas d'avoir un angle Yaw de 0 peu importe la position du capteur....

Tu ne peux pas obtenir ça de cette manière, il faut que tu mesures cet angle au démarrage et que tu calcules ensuite la différence yaw_current - yaw _initial