ジャイロセンサー,加速度センサーを用いて端末の移動距離を計算する方法
iOSアプリ開発で、ジャイロセンサー,加速度センサー(CoreMotion)から取得できる(timestamp,x,y,z)の値を使って端末の移動距離を計算する方法が知りたいです。ここでGPSは使用しない予定です。
CMMotionManager *manager = [[CMMotionManager alloc] init];
// センサーの更新間隔の指定
manager.deviceMotionUpdateInterval = 0.01;
CMDeviceMotionHandler handler = ^(CMDeviceMotion *motion, NSError *error) {
double timestamp = data.timestamp;
/* 加速度センサー(ローパスフィルタ) */
double gravityX = motion.gravity.x;
double gravityY = motion.gravity.y;
double gravityZ = motion.gravity.z;
/* 加速度センサー(ハイパスフィルタ) */
double userAccelerationX = motion.userAcceleration.x;
double userAccelerationY = motion.userAcceleration.y;
double userAccelerationZ = motion.userAcceleration.z;
/* ジャイロスコープ */
double x = motion.rotationRate.x;
double y = motion.rotationRate.y;
double z = motion.rotationRate.z;
};
[manager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:handler];