2011-11-16 152 views
2

我試圖複製應用程序「Dynolicious」的加速計算,但我不確定在哪裏頭來計算此。我使用Core Motion還是使用其他數字進行計算?計算加速度(駕駛汽車)

我已經嘗試使用Core MotionuserAcceleraion價值,但它並不像我所尋找的那樣。

coreMotion = [[CMMotionManager alloc]init]; 
[coreMotion startDeviceMotionUpdates]; 

//then every second it updates my label... 

NSString *accel = [NSString stringWithFormat:@"%f", [[coreMotion accelerometerData]acceleration].x]; 
accelerationLabel.text = accel; 

即我想我的價值觀出來像0.4,-0.4等

回答

3

你可能要考慮低通濾波(在this SO post所示),這實際上是蘋果的指導方針(見事件的Isolating the Gravity Component from Acceleration Data處理編程指南)

如果你使用加速度計數據來檢測當前設備的方向爲 ,您需要能夠從由設備運動導致的部分數據中濾除由重力引起的加速度數據的部分 。爲此,您可以使用低通濾波器來減少突發變化對加速度計數據的影響。得到的濾波值然後反映重力的更恆定的影響。

你還可以找到「從加速度數據隔離瞬時運動」一節

在如果使用加速計數據來檢測設備的只是瞬間的運動 ,你需要能夠隔離重力恆定作用下運動的突然變化。你可以用高通 過濾器來做到這一點。

它繼續給出一個簡單的實現來完成這個。