Comportement étrange avec android capteur d'orientation
Actuellement, je suis en train de tourner en 3D Cube à l'aide de capteur d'orientation des valeurs, à l'aide de getRotation() méthode. Certains comportements inattendus sont observés lorsque l'appareil android est tourné au-dessus de certaines limites. Par exemple, si je fais le dispositif de "stand up", la valeur de la 'roll" devient fou.
Aussi je suis en train de vivre le phénomène semblable à ce qu'on appelle cardan-lock. La seule différence est que je suis en train de vivre le problème avant même de demander les valeurs de capteur de rotation 3D. Lorsque je tente de changer le 'pitch' valeur par la rotation de l'appareil autour de la seule 'pitch' de l'axe, le "lacet" valeur change également en fonction de la rotation de la hauteur. Il semble tout à fait déraisonnable pour moi.
Quelqu'un pourrait-il m'aider?? Je suis coincé dans ce problème pendant un mois.
OriginalL'auteur Kyoung-Rok Jang | 2011-04-07
Vous devez vous connecter pour publier un commentaire.
C'est un problème commun avec lacet, tangage et roulis. Vous ne pouvez pas se débarrasser de lui aussi longtemps que vous êtes à l'aide de lacet, tangage et roulis (angles d'Euler). Cette vidéo explique pourquoi.
- Je utiliser rotation des matrices au lieu des angles d'Euler dans mon détection de mouvement de l'application. Pour une introduction à la rotation des matrices je recommande:
Direction le Cosinus de la Matrice IMU: Théorie
Rotation des matrices de travailler comme un charme.
Quaternions sont aussi très populaires et les plus stables.
[Cette réponse a été copié à partir de ici.]
Il dépend de la façon dont vous faites votre rotation. Je n'ai jamais utilisé Android. Si vous utiliser OpenGL pour la rotation (et je suppose que vous faites), vous pouvez avoir à ajouter un couple de zéros et de un, voir à partir de 41:58 dans la vidéo youtube. Mais en dehors de cela, la "pure" matrice de rotation est assez. Bonne chance!
Pouvez-vous donner un exemple de la façon dont vous utilisez la matrice de rotation sans angles d'euler? Je n'arrive pas à comprendre ^^
Je ne suis pas sûr de comprendre. Donnez-moi une question spécifique, puis je peux vous dire comment le faire avec une matrice de rotation.
Pouvez-vous m'aider, Comment utiliser les Quaternions dans le calcul de lacet, tangage et roulis pour atteindre plus stable de la lecture! Merci à l'avance! S'il vous plaît!
OriginalL'auteur Ali
En utilisant les quaternions pour calculer YPR ne sera pas faire beaucoup pour résoudre n'importe quel problème. Le problème de cardan de verrouillage (dont près de pitch de +/-90 peut conduire lacet et roulis-lacet-roulis au pôle nord -- fou en vertu de légères modifications/bruit dans le sous-jacent de quaternions).
Toutefois, si vous utilisez le Lacet de Tangage et de Roulis valeurs pour effectuer une rotation d'un objet 3D ne devrait pas présenter de comportement étrange près le gimbal lock à la position. C'est juste que un amibguity en lacet et roulis surviennent et de grandes variations dans le lacet et le roulis n'impliquent pas la réelle orientation est fou -- juste que l'orientation est insensible à de grands changements dans le roulis et le lacet près de terrain de 90.
MAIS, notez également que les téléphones et les navigateurs HTML5 ne sont pas correctement mise en œuvre, lacet, tangage et roulis par les conventions pour Android. Voici un bon blog de référence:
http://www.sensorplatforms.com/understanding-orientation-conventions-mobile-platforms/
OriginalL'auteur nak
Voici un exemple de base, ce sera le retour de la gravité. Notez que vous pouvez modifier le type de capteur et de la vitesse d'échantillonnage, plus de détails ici
OriginalL'auteur Kirill Kulakov