2016-08-24 5 views
0

Je suis actuellement confronté à un problème assez difficile en essayant d'obtenir une orientation continue et précise de l'Epson Moverio BT-200 dans Unity. Je peux obtenir de très bons résultats pour l'utilisateur lorsqu'il regarde vers le haut/bas (déjà quand j'utilise seulement l'accéléromètre), mais pas pour les mouvements gauche/droite. Les mouvements gauche/droite fonctionnent d'une manière ou d'une autre en ne comptant que sur le gyroscope de l'appareil avec la partie de code suivante, mais il y a toujours une dérive après un certain temps que je dois enlever.Orientation précise de l'appareil par Epson Moverio BT-200 dans Unity 3D

Quaternion newAttitude = new Quaternion (gyro.attitude.x, gyro.attitude.y, gyro.attitude.z, gyro.attitude.w); 
transform.rotation = newAttitude; 
Vector3 ea = newAttitude.eulerAngles; 
transform.eulerAngles = new Vector3(-ea[0], -ea[1], ea[2]); 

je l'ai déjà essayé d'utiliser la méthode getOrientation interne applications et divers autres didacticiels de fusion de la sonde et les mises en œuvre (par exemple http://www.codeproject.com/Articles/729759/Android-Sensor-Fusion-Tutorial). TOUT petit indice est absolument apprécié. :) Merci d'avance!!

Répondre

0

Je suppose ici que "rotation gauche/droite" est une rotation autour d'un axe suivant la direction de la gravité.

Dans ce cas, il n'est pas possible de supprimer la dérive en utilisant uniquement un gyroscope et un accéléromètre. Vous devez intégrer un troisième capteur qui fournit une référence constante d'une direction non parallèle à la gravité. Le magnétomètre est couramment utilisé à cette fin, car il fournit une référence fixe de la direction du champ magnétique qui peut être utilisée pour atténuer la dérive.

Ce capteur est réellement utilisé dans le tutoriel que vous avez référencé. En dehors du capteur complémentaire, vous pouvez utiliser des alternatives plus puissantes comme les filtres Kalman étendus ou non, le filtre DCM de Mahony, etc.

+0

ouais, je sais, j'ai déjà essayé - mais sans succès .... Et j'ai décidé de aller avec un filtre complémentaire pour le début, car il est beaucoup plus facile à mettre en œuvre qu'un filtre de Kalman. J'ai l'impression que cela a quelque chose à voir avec la combinaison de l'appareil et de l'unité ... – KitKat

+0

Vérifiez minutieusement les conventions pour chaque système de référence! C'est une erreur assez commune de mélanger les systèmes gauchers et droitiers ou NED avec ENU. Vous devriez utiliser une convention cohérente dans tout l'algorithme. – dunadar

+0

qui devrait fonctionner correctement (comme je l'ai dit en utilisant seulement le gyroscope ou la fusion du capteur pour regarder vers le haut/bas). Il s'agit d'une sorte de gigue gauche/droite et ne pas fournir des valeurs que vous pouvez utiliser comme base et travailler avec – KitKat