Я пытаюсь получить значимую информацию об ориентации устройства из значений, которые я считываю из класса CLHeading, которые я получаю из обновлений объекта CLLocationManager. Этот класс содержит три значения, x, y, z, которые находятся в микротеслах, и, как я понимаю из документов, это вектор, указывающий на магнитный север Земли с отфильтрованным магнитным смещением устройства. Теперь я хочу быть уверенным в том, в какой системе координат у нас есть эти показания? Относительны ли они к собственной системе координат устройства, как показано на следующем рисунке:
(источник: apple.com)
Что используется фреймворком Core Motion?
Кроме того, есть ли надежный, установленный способ, с помощью которого я могу получить векторы оси кадра на картинке выше? Согласно моим показаниям, iOS не обеспечивает этого, за исключением положения устройства, которое предоставляется в виде углов (шаг, рыскание, крен) устройства, которые обновляются методом startDeviceMotionUpdatesUsingReferenceFrame
платформы Core Motion. Но я обнаружил, что эти значения углов очень ненадежны, поскольку они колеблются, даже когда устройство стоит на месте. Мне нужны данные об ориентации устройства как можно точные, поскольку я собираюсь использовать эти данные для калибровки системы камер.
Заранее спасибо.