Проблема:
В настоящее время я разрабатываю приложение дополненной реальности для планшета Android 3.2, и у меня возникли некоторые проблемы с получением точных показаний компаса. Мне нужно точно знать направление (z), в котором обращен планшет, если считать с севера. Неважно, в градусах или радианах.
Что я сейчас пробовал:
Я использовал магнитометр и акселерометр, чтобы вычислить угол. У него есть один большой недостаток. Если вы повернете на 90 градусов, датчики будут измерять больший или меньший угол. Даже когда я нахожусь в открытом поле вдали от металлических и магнитных предметов. Даже склонение не решает проблему.
Вариантом может быть использование гироскопа. Я попытался измерить скорость вращения и сохранить измеренные единицы в переменной, чтобы знать точное направление взгляда. Однако, похоже, есть фактор, вызывающий искажения. Я обнаружил, что быстрые вращения искажают точность измерения направления. Дрейф гироскопа не представлял особых проблем. Приложение проверяет другие датчики на наличие движения. Если ничего не обнаружено, изменение вращения гироскопа не будет учитываться.
Вектор вращения работает нормально. Есть некоторые проблемы, такие как гироскоп. Если вы будете двигаться медленно и внезапно остановиться, он ускользнет на несколько секунд. Другая проблема заключается в том, что при быстрых вращениях точность будет зависеть от скорости и количества поворотов, которые вы сделали. (Вы же не хотите знать, как мои коллеги смотрят на меня, когда я раскачиваю планшет во всех направлениях...)
Сенсор.Ориентация, тут особо нечего сказать. По какой-то причине он устарел, поэтому я не буду его использовать. Во многих примерах в Интернете используется этот датчик, и, вероятно, это то же самое, что и комбинация магнита и акселерометра.
Поэтому у меня сейчас нет идей. Не могли бы вы помочь мне с мозговым штурмом/решением решения?
Заранее искренне спасибо, Роланд
РЕДАКТИРОВАТЬ 1:
Я готов предоставить код, который я пробовал.
[b]Проблема:[/b] В настоящее время я разрабатываю приложение дополненной реальности для планшета Android 3.2, и у меня возникли некоторые проблемы с получением точных показаний компаса. Мне нужно точно знать направление (z), в котором обращен планшет, если считать с севера. Неважно, в градусах или радианах.
Что я сейчас пробовал:
[list] [*]Я использовал магнитометр и акселерометр, чтобы вычислить угол. У него есть один большой недостаток. Если вы повернете на 90 градусов, датчики будут измерять больший или меньший угол. Даже когда я нахожусь в открытом поле вдали от металлических и магнитных предметов. Даже склонение не решает проблему. [*]Вариантом может быть использование гироскопа. Я попытался измерить скорость вращения и сохранить измеренные единицы в переменной, чтобы знать точное направление взгляда. Однако, похоже, есть фактор, вызывающий искажения. Я обнаружил, что быстрые вращения искажают точность измерения направления. Дрейф гироскопа не представлял особых проблем. Приложение проверяет другие датчики на наличие движения. Если ничего не обнаружено, изменение вращения гироскопа не будет учитываться. [*]Вектор вращения работает нормально. Есть некоторые проблемы, такие как гироскоп. Если вы будете двигаться медленно и внезапно остановиться, он ускользнет на несколько секунд. Другая проблема заключается в том, что при быстрых вращениях точность будет зависеть от скорости и количества поворотов, которые вы сделали. (Вы же не хотите знать, как мои коллеги смотрят на меня, когда я раскачиваю планшет во всех направлениях...) [*]Сенсор.Ориентация, тут особо нечего сказать. По какой-то причине он устарел, поэтому я не буду его использовать. Во многих примерах в Интернете используется этот датчик, и, вероятно, это то же самое, что и комбинация магнита и акселерометра. [/list]
Поэтому у меня сейчас нет идей. Не могли бы вы помочь мне с мозговым штурмом/решением решения? Заранее искренне спасибо, Роланд
[list] [*]РЕДАКТИРОВАТЬ 1: Я готов предоставить код, который я пробовал. [/list]