java求加速度位移_有没有办法消除加速度计数据中沿重力轴的小偏差

老问题,但我想分享一些见解 . 加速度计中的部分偏差实际上不是来自传感器中的任何不准确性,而是来自Apple的计算中的疏忽 . 计算假设重力始终为1 G(根据定义为9.80665 m / s2) . 任何遗留必须是用户加速 .

但是,gravity varies slightly遍布全球 . 如果您所在区域的重力不是精确到9.80665 m / s2,则用户加速度会有一个小偏差,可通过低通滤波器检测到 . 通过以下计算可以消除这种偏差:

- (void) handleDeviceMotion:(CMDeviceMotion *)m atTime:(NSDate *)time

{

// calculate user acceleration in the direction of gravity

double verticalAcceleration = m.gravity.x * m.userAcceleration.x +

m.gravity.y * m.userAcceleration.y +

m.gravity.z * m.userAcceleration.z;

// update the bias in low pass filter (bias is an object variable)

double delta = verticalAcceleration - bias;

if (ABS(delta) < 0.1) bias += 0.01 * delta;

// remove bias from user acceleration

CMAcceleration acceleration;

acceleration.x = m.userAcceleration.x - bias * m.gravity.x;

acceleration.y = m.userAcceleration.y - bias * m.gravity.y;

acceleration.z = m.userAcceleration.z - bias * m.gravity.z;

// do something with acceleration

}

请注意,即使消除了这种偏差,仍然存在很多噪声,并且每个加速度计芯片的制造偏差也可能不同 . 因此,你仍然很难获得速度,并且肯定会从中获得定位 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值