2016-09-03 38 views
1

我想了解不同的運動/位置陀螺儀,運動和加速度是爲了表示。 (startGyroUpdates,startDeviceMotionUpdates等)。陀螺儀,運動和加速度之間的物理差異是什麼?

但是,經過一番研究,我很努力地看到陀螺儀和運動之間的區別。陀螺儀有x,y,z的旋轉,Motion有滾動,俯仰,偏轉旋轉......同樣的東西?

我需要的東西,將檢測水平,垂直多遠,用戶實際上已經從它的原始位置移動電話(就像軸是你的手臂作爲圖!)...我希望這就是運動是什麼。有人能爲我解決這個問題,並指導我使用正確的工具嗎?

乾杯。

+0

運動就像陀螺儀,有些硬件怪癖被解決了。您無法檢測到設備在距離使用者手臂很近的距離內移動了多遠。 – matt

+0

只有使用CoreLocation的最高精度設置,沒有辦法嗎? –

+0

正確。核心運動檢測加速度和方向,而不是在空間中的位置。核心位置與GPS相同,最好大約10米,甚至只有近似值。 – matt

回答

5

核心運動是一個框架,結合來自內部陀螺儀和加速度計的輸入。它是一個更高級別的API,可能是更好的選擇,除非您的應用程序特別需要原始陀螺儀或加速計數據。

您正在考慮的選項(陀螺儀,加速度計或Core Motion)都不適用於計算設備在空間中的位置。

問題是漂移。加速度計並不精確,所以如果您按照給定方向(例如步行)加速手機,然後減速至停止,則加速度計的測量結果不夠準確,無法確定您是否已停止,或者您是否還在輕微漂移。隨着時間的推移,漂移誤差會增加,直到用加速度計計算的位置可能會偏離公里。

您需要GPS或基於細胞塔的定位,才能獲得合理準確的位置信息。您也可以在已知位置使用iBeacons設置系統,但這有其自身的侷限性。

+0

謝謝。這完美地解釋了它。 –