iOS-приложение для измерения вращения/положения устройства

Есть несколько приложений, которые позволяют мне измерять вращение моего iPad вокруг двух осей (оси X и Z на изображении ниже).

iPad с красными осями Y, X и Z

Однако мне нужны углы для всех трех осей. Я знаю, что обычно предполагается, что устройство держится параллельно лицу и что без эталона имеет смысл только вращение относительно земли или оптической оси, но можно было бы установить текущее измерение в качестве эталона. значение для оси Y и запишите поворот относительно этого значения.

Я не уверен, что мне удалось объяснить, чего я хочу. В основном я хотел бы знать, насколько я повернул iPad вокруг оси Y, начиная с некоторого заданного значения. (Суть в том, чтобы записывать ориентацию устройства при съемке фотографий, чтобы я мог видеть, правильно ли мой алгоритм оценки относительного положения камеры восстанавливает поворот между двумя изображениями, для этого iPad будет в ландшафтном режиме.)

Если вы используете для этого приложение, вам нужно сбросить ракурсы, прежде чем делать фото в вашем приложении, а затем вернуться и прочитать новые ракурсы. Это было бы довольно неточно. Не лучше ли было бы читать ракурсы внутри вашего приложения, что сделало бы это вопросом для Stack Overflow?
Я не заинтересован в его реализации сам, если он уже существует в той или иной форме. Мне просто нужны данные для оценки моего собственного приложения, ему не нужно ничего делать с данными imu.

Ответы (3)

Вы должны попробовать приложение iDemonstrate от Daniel Amitay, которое может сказать о себе следующее:

iDemonstrate — это понятное и простое приложение для iOS, которое элегантно демонстрирует все функции, характеристики и общую информацию о вашем iPhone, iPod или iPad.

Если вы перейдете в раздел « Акселерометр », он отобразит текущую ориентацию вашего устройства по всем трем осям. Он не показывает разницу с заданным моментом времени, поэтому вам нужно записать это самостоятельно.

Один из способов записи ориентации устройства может быть следующим:

  • Запустите iDemonstrate и перейдите в Акселерометр , сделайте дамп экрана
  • Переключитесь на приложение камеры и сделайте снимок
  • Вернитесь в iDemonstrate и сделайте еще один дамп экрана .
  • Рассчитать разницу в ориентации на основе дампов экрана

Изменить: значения ориентации устройства

Для меня в разделе « Акселерометр » отображаются текущие показания всех трех осей, разве это не то, о чем вы просили? Гироскоп показывает ускорение по каждой оси:

  • держится вертикально в ландшафтном режиме:x=-1, y=0, z=0
  • держится вертикально в портретном режиме:x=0, y=1, z=0
  • держится горизонтально в любом режиме, но лицом вверх:x=0, y=0, z=-1

Это справедливо для ориентации устройства, а не для ориентации в мире. Магнитометр дает вам нецифровой компас .

Другими словами, iDemonstrate дает вам ориентацию устройства, причем ориентация основана на самом устройстве, а не на окружающем мире.

В Accelerometer отображается не текущая ориентация, а ускорение по каждой оси. Есть вкладка « Гироскоп », но она также измеряет только ускорение, а не ориентацию.
Отредактировано с учетом того, что iDemonstrate отображает ориентацию устройства, а не мировую ориентацию. Другое приложение Orientator действительно отображает мировую ориентацию, но это кажется неверным для значений гироскопа и акселерометра.

SensorLog предоставляет такую ​​функциональность в разделе Motion . Он дает значения радиана для крена, тангажа и рыскания, хотя неясно, что такое 0-значение для последнего.

Значение рыскания кажется равным 0, когда кнопка «Домой» направлена ​​на север. Попробовал SensorLog , и кажется, что значение рыскания легко отвлекает / неточное ... Веб-страницы, которые я перечисляю в другом ответе, более точны, чем приложение SensorLog .

Вы запрашиваете приложение, но при его поиске я также нашел несколько веб-страниц, отображающих запрашиваемую информацию:

Нулевое значение для всех осей — это когда iPad расположен горизонтально, а кнопка «Домой» указывает на север!