В настоящее время я пытаюсь получить точную оценку trueHeading
для Android, как задано здесь. Разочарованный тем, что я не смог найти хорошее решение, я попытался реализовать собственный алгоритм оценки истинного заголовка для Android. И в своем расследовании я решил начать с нуля.
Итак, я записал RAW
данные как с Android, так и с iOS, когда телефоны (Apple iPhone 6 и Samsung Galaxy Note 3) лежали на столе экраном вверх. Значения mean
датчиков (акселерометр, гироскоп и магнитометры) показаны ниже:
Айфон 6
Акселерометр (x, y, z) = [0,0037 0,0018 -1,007]
Гироскоп (x, y, z) = [-0,0129 -0,0062 0,0047]
Магнитометр (x, y, z) = [134,94 122,94 -614,94]
Самсунг
Акселерометр (x, y, z) = [0,0491 0,2289 9,3865]
Гироскоп (x, y, z) = [-0,0060 -0,0360 -0,0281]
Магнитометр (x, y, z) = [8,8665 21,0000 -48,2367]
Я вижу, что iOS обеспечивает ускорение в G, а Android — в м/с^2, но почему знак компонента Z противоположен для точно такой же позиции?
Я предполагаю, что как для Android, так и для iOS , оси аналогичны показанным в ссылках.
Может ли кто-нибудь объяснить мне, что мне не хватает, и есть ли решение для trueHeading в Android?
trueHeading
относительно Северного полюса. Итак, iOS выдает какmagneticHeading
, так иtrueHeading
, просто не знаю, как они это делают! Android, с другой стороны, предоставляет TYPE_ROTATION_VECTOR, который очень шумный из-за магнитометра. - person chintan s   schedule 22.09.2015