У меня есть акселерометр xyz и магнитометр. Теперь я хочу определить ориентацию устройства, используя оба. Проблема, которую я вижу, заключается в том, что в зависимости от ориентации устройства мне нужно будет использовать датчики в другом порядке.Как определить абсолютную ориентацию
Позвольте привести пример. Если у меня есть устройство, обращенное ко мне, то с помощью акселерометра можно определить изменения в рулоне и тангаже. Для рыскания я использую магнитометр.
Но если я поместил устройство горизонтально (т.е. поверните его на 90º, обращенное к потолку), то любое изменение вектора вверх (теперь горизонтально) не будет замечено, так как акселерометр не обнаружит никаких изменений. Теперь это можно обнаружить с помощью магнитометра.
Итак, вопрос в том, как определить, когда использовать тот или иной. Достаточно ли этого с обоими датчиками или мне нужно что-то еще?
Благодаря
Спасибо. Похоже, я не совсем понял этот вопрос. Я хорошо знаю, что мне нужно использовать как ускоритель, так и магнитометр во всех случаях, проблема в том, что в некоторых случаях этого, похоже, недостаточно. –
Позвольте мне снова использовать аналогичный пример: предположим, что у меня есть мобильный телефон по вертикали, с экраном, обращенным ко мне, «вверх», указывающим на потолок.Всякий раз, когда я наклоняюсь, акселерометр позволяет мне получить «вверх» векторную информацию. Проблема в том, что если я наклоняю устройство и поместил его горизонтально (экран теперь обращен к потолку, а «вверх» вектор указывает на противоположное, где я есть), тогда вектор вверх не обновляется, если я поворачиваю телефон горизонтально на столе. Это то, что отчетливо обнаруживается магнитометром. Итак, вопрос в том, когда нужно знать, где использовать acc или mag для каждого случая? –