2011-11-16 114 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处理编程指南)

如果你使用加速度计数据来检测当前设备的方向为 ,您需要能够从由设备运动导致的部分数据中滤除由重力引起的加速度数据的部分 。为此,您可以使用低通滤波器来减少突发变化对加速度计数据的影响。得到的滤波值然后反映重力的更恒定的影响。

你还可以找到“从加速度数据隔离瞬时运动”一节

在如果使用加速计数据来检测设备的只是瞬间的运动 ,你需要能够隔离重力恒定作用下运动的突然变化。你可以用高通 过滤器来做到这一点。

它继续给出一个简单的实现来完成这个。