gpt4 book ai didi

ios - CMMotionManager - 如何检测忽略小 Action 的步骤?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:31 25 4
gpt4 key购买 nike

CMMotionManager 获取数据非常简单,处理起来并不多。

有没有人有任何关于相对准确地检测步骤(并忽略较小的移动)的代码的指示或关于如何处理此类事情的一般方向的指南?

最佳答案

您基本上需要的是一种低通滤波器,它可以让您忽略微小的运动。实际上,这通过消除抖动来“平滑”数据。

- (void)updateViewsWithFilteredAcceleration:(CMAcceleration)acceleration
{
static CGFloat x0 = 0;
static CGFloat y0 = 0;

const NSTimeInterval dt = (1.0 / 20);
const double RC = 0.3;
const double alpha = dt / (RC + dt);

CMAcceleration smoothed;
smoothed.x = (alpha * acceleration.x) + (1.0 - alpha) * x0;
smoothed.y = (alpha * acceleration.y) + (1.0 - alpha) * y0;

[self updateViewsWithAcceleration:smoothed];

x0 = smoothed.x;
y0 = smoothed.y;
}

alpha 值决定了给予先前数据与原始数据的权重。dt 是样本之间耗时。RC 值控制过滤器的积极性。值越大意味着输出越平滑。

关于ios - CMMotionManager - 如何检测忽略小 Action 的步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21953631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com