Получите тангаж, крен и рыскание относительно географического севера на iOS? - PullRequest
3 голосов
/ 16 февраля 2012

Я вижу, что могу извлечь CMAttitude с устройства, и с него я могу прочитать 3 значения, которые мне нужны (тангаж, крен и рыскание).Как я понимаю, этот объект CMAttitude управляется CoreMotion, который является менеджером Sensor Fusion для совместного расчета правильных результатов по компасу, гироскопу и акселерометру (на Android это класс SensorManager).

Итак, мои вопросы:

  1. Являются ли эти значения (тангаж, крен и рыскание) относительно магнитного севера и силы тяжести?

  2. Если приведенное выше верноКак я могу изменить его, чтобы получить результаты относительно географического севера?

  3. Если устройство (такое как iPhone 3GS) не имеет гироскопа, я должен сказать этодиспетчеру или я могу просто сказать ему, чтобы дать мне отношение устройства на основе датчиков, которые у него есть ( acc + gyro + compas ИЛИ acc + compas )

1 Ответ

6 голосов
/ 16 февраля 2012
  1. и 2:

iOS 5.0 упрощает эту задачу.Менеджер CMMotion имеет новый метод:


- (void)startDeviceMotionUpdatesUsingReferenceFrame:(CMAttitudeReferenceFrame)referenceFrame

В качестве системы отсчета можно использовать следующие значения:

  • CMAttitudeReferenceFrameXMagneticNorthZVertical для магнитного севера,
  • CMAttitudeReferenceFrameXTrueNorthZVertical для истинного севера.1013 *

Если вы хотите сделать это с более старой iOS, боюсь, вам придется калибровать ее самостоятельно, используя текущее местоположение пользователя.

Попробуйте оформить заказ на следующие ресурсы:

3.Если устройство не имеет гироскопа, свойство deviceMotionAvailable CMMotionManger будет иметь значение «НЕТ» (это эквивалентно свойству gyroAvailable), и вы не сможете получить ориентацию с помощью движения устройства.Единственное, что вы можете сделать - это напрямую читать данные акселерометра и магнитометра.

...