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];