iPhone - вращение ядра - PullRequest
       6

iPhone - вращение ядра

0 голосов
/ 21 февраля 2011

Используя только свойство RotationRate Core Motion или Gyroscope, можно ли извлечь радианы (или градусы, если хотите) устройства, повернутого?

Я пытался выполнить выборку данных Core Motion по временинапример, выборка 5 раз в секунду, поэтому я знаю, что между каждым чтением есть 0,2 секунды.Тогда, если у меня есть частота вращения 0,5 радиана в секунду от одного чтения к другому, теоретически я мог бы разделить это на 5 и теперь знать, сколько радиан устройство повернуло с прошлого раза.

Это кажется логичным, норезультаты не имеют ничего общего с реальностью.Поворот устройства на 90 градусов даст результаты, говорящие мне, что устройство повернуто в 100 раз меньше, чем это.

Можно ли извлечь, сколько устройство повернуло, просто взглянув на RateRate?

Что такоеЯ пропал?

1 Ответ

2 голосов
/ 21 февраля 2011

Нужно больше места, чем комментарий ;-) iOS извлекает все данные в радианах, и если ваши другие вычисления верны, я подумал, что это может быть угол, измеренный в радианах.

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

В общем, я бы рекомендовал использовать метку времени, передаваемую движением ядра, вместо определенного периода (1/5), как это рекомендовано Apple, поскольку данные о движении устройства часто доставляются с меньшей частотой, чем ожидалось (см. Что является официальной максимальной частотой обновления данных гироскопа iPhone 4 и методом или Push для движения ядра и частоты данных акселерометра / гироскопа .

Кроме того, вы должны использовать более высокую частоту, чтобы избежать ошибок в вашей числовой интеграции.

[Обновление в разделе комментариев:]

Если вы заинтересованы в интеграции с помощью расширенного правила Симпсона, я рекомендую следующие документы: (только на немецком языке, стр. 173 и далее) и Расширение формул Ньютона-Кота . Пример кода в виде извлеченного фрагмента, взятого из существующего проекта, можно найти здесь: DevicePosition.m Обратите внимание, что он может не скомпилироваться, никаких гарантий, как есть, ... вы знаете это с других сайтов ;-)

Бесплатное приложение, отображающее вход датчика в виде графиков для iPhone: Монитор датчика

...