2011年12月8日木曜日

CoreMotionについて


CoreMortionフレームワークは、デバイスの方向や動きを取得するインターフェースです


UIAccerometerクラスは次のiOSではサポートしなくなるとAppleが宣言していますので、CoreMotionを使うことにします。


加速度センサーとジャイロスコープ(ひねり)センサーからデータを取得します。


高度なフィルタリング機能もあります。





















☆位置情報の取得タイミングについて

iOSイベント処理ガイドより
http://developer.apple.com/jp/devcenter/ios/library/documentation/EventHandlingiPhoneOS.pdf

プッシュ型:アプリケーションは、更新間隔を指定し、モーションデータを処理する、(あるタイプの)ブロックを実装します。次いで、Core Motionにオペレーションキューとブロックを渡して、該当するタイプのモーションデータの更新を始めるよう指示します。CoreMotionは(指定された更新間隔で)更新データをブロックに渡してオペレーションキューに入れます。ブロックはオペレーションキューから順次取り出され、タスクとして実行されることになります。

プル型:アプリケーションは、あるタイプのモーションデータの更新を始めるよう指示し、定期的に、直近の測定値をサンプリングします。


☆取得できない情報
GPSデータ
-CoreLocationフレームワークを使いましょう
コンパス情報
-CoreLocationフレームワークを使いましょう

iPhone4以降ではジャイロスコープが搭載されていますのでx軸、y軸、z軸のひねりの速度も取得できます

●クラスについて
CMMotionManager 情報の取得タイミングなどの設定を行う
CMAccelerometerData デバイスのX,Y,Z軸情報を取得
重力情報
CMAttitude roll,pitch,yawなどの姿勢角や行列などの加工されたデーターを取得できます
CMDeviceMotion 加速度センサーおよびジャイロスコープから得られた、処理済みのデバイスモーションデータをカプセル化します
CMGyroData  rotationRateというプロパティ持ち、x,y,z軸における回転の早さ(ラジアン/秒)を持ちます
CMLogItem  それぞれの位置情報にタイムスタンプを付与する、計測系クラスの親クラス


No response to “CoreMotionについて”

Leave a Reply