отличаются ли системы отсчета для Android и iOS?

В настоящее время я пытаюсь получить точную оценку 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?


person chintan s    schedule 22.09.2015    source источник
comment
Технически Android кажется правильным, когда вы ссылаетесь на < i>ускорение: Не движение вниз вдоль гравитационного поля равно абсолютному ускорению 1G вверх (положительное значение оси Z). Кажется, что iPhone обеспечивает величину инерционной силы, вызванной ускорением.   -  person JimmyB    schedule 22.09.2015
comment
Обычный «обходной путь» заключается в том, чтобы пользователь изначально откалибровал устройство/приложение. Например, пусть он держит устройство дисплеем вверх и записывает знаки значений ускорения в этом положении.   -  person JimmyB    schedule 22.09.2015
comment
Кстати, что для вас истинный курс? Магнитный северный полюс, географический полюс, что-то еще?   -  person JimmyB    schedule 22.09.2015
comment
@HannoBinder Спасибо за ваш ответ. Ключевым требованием является то, что мы не можем просить пользователя откалибровать телефон. trueHeading относительно Северного полюса. Итак, iOS выдает как magneticHeading, так и trueHeading, просто не знаю, как они это делают! Android, с другой стороны, предоставляет TYPE_ROTATION_VECTOR, который очень шумный из-за магнитометра.   -  person chintan s    schedule 22.09.2015