Question

Je vois que je peux récupérer CMAttitude à partir d'un appareil et de ce que je peux lire 3 valeurs que j'ai besoin (tangage, roulis et lacet). Si je comprends bien, cet objet CMAttitude est géré par CoreMotion qui est un gestionnaire de capteur Fusion pour le calcul des résultats corrects de boussole, gyroscope et accéléromètre ensemble (sur Android est SensorManager classe).

Mes questions sont les suivantes:

  1. sont ces valeurs (tangage, roulis et lacet) par rapport au nord magnétique et la gravité?

  2. Si ci-dessus est correct, comment puis-je modifier pour me donner des résultats par rapport au nord géographique?

  3. Si un périphérique (tel que l'iPhone 3GS) ne dispose pas d'un gyroscope, dois-je le dire au directeur ou puis-je dire pour me donner l'attitude du dispositif basé sur les capteurs, il a (< em> acc + gyroscope + COMPAS ou + acc COMPAS )

Était-ce utile?

La solution

  1. et 2

iOS 5.0 simplifie cette tâche. gestionnaire CMMotion a une nouvelle méthode:


- (void)startDeviceMotionUpdatesUsingReferenceFrame:(CMAttitudeReferenceFrame)referenceFrame

Comme cadre de référence que vous pouvez utiliser ces valeurs:

  • CMAttitudeReferenceFrameXMagneticNorthZVertical pour le nord magnétique,
  • CMAttitudeReferenceFrameXTrueNorthZVertical nord géographique.

Si vous voulez faire avec iOS âgés im peur que vous devez calibrer par vous-même en utilisant l'emplacement de l'utilisateur actuel.

Essayez checkout cette ressource:

3. Si l'appareil n'a pas gyroscopique, la propriété deviceMotionAvailable de CMMotionManger sera « NON » (il est équivalent à la propriété gyroAvailable) et vous ne pouvez pas obtenir l'attitude en utilisant le mouvement de l'appareil. La seule chose que vous pouvez faire est de lire les données de l'accéléromètre et magnétomètre directement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top