iOS — интерпретация значений x, y, z CLHeading

Я пытаюсь получить значимую информацию об ориентации устройства из значений, которые я считываю из класса CLHeading, которые я получаю из обновлений объекта CLLocationManager. Этот класс содержит три значения, x, y, z, которые находятся в микротеслах, и, как я понимаю из документов, это вектор, указывающий на магнитный север Земли с отфильтрованным магнитным смещением устройства. Теперь я хочу быть уверенным в том, в какой системе координат у нас есть эти показания? Относительны ли они к собственной системе координат устройства, как показано на следующем рисунке:

coords
(источник: apple.com)

Что используется фреймворком Core Motion?

Кроме того, есть ли надежный, установленный способ, с помощью которого я могу получить векторы оси кадра на картинке выше? Согласно моим показаниям, iOS не обеспечивает этого, за исключением положения устройства, которое предоставляется в виде углов (шаг, рыскание, крен) устройства, которые обновляются методом startDeviceMotionUpdatesUsingReferenceFrame платформы Core Motion. Но я обнаружил, что эти значения углов очень ненадежны, поскольку они колеблются, даже когда устройство стоит на месте. Мне нужны данные об ориентации устройства как можно точные, поскольку я собираюсь использовать эти данные для калибровки системы камер.

Заранее спасибо.


person Ufuk Can Bicici    schedule 04.09.2013    source источник


Ответы (1)


По моему опыту с того момента, как я задал этот вопрос, кажется, что да, вектор магнитного севера находится в собственной системе координат устройства, как и вектор гравитации, полученный с акселерометра.

person Ufuk Can Bicici    schedule 09.09.2013