使用智能手机的动作感应

时间:2016-04-28 19:52:22

标签: c# iphone accelerometer gyroscope motion

检测位置有问题 用于使用加速计传感器的iPhone手机 我试图将加速度计值积分两次以获得位置,但是在积分后我的位置有很大误差。 我将采样率设置为100。 我通过无线网络将加速度计数据发送到计算机到C#sever

 dt=0.01// dt is the interval between two samples  
    volx+=linearAcceration[0]*dt;// volx is volcity over x axis 

posx+=volx*dt;//posx is position over x axis

我使用线性加速度并使用此公式计算:

float factoralpha=0.9f;
        Gravity[0] = Gravity[0] * factoralpha + (1 - factoralpha) * xacc;//xacc is acceleration over x axis
        Gravity[1] = Gravity[1] * factoralpha + (1 - factoralpha) * yacc;//yacc is acceleration over y axis
        Gravity[2] = Gravity[2] * factoralpha + (1 - factoralpha) * zacc;//zacc is acceleration over z axis
        linearAcceration[0] =   xacc - Gravity[0];
        linearAcceration[1] =  yacc - Gravity[1];
        linearAcceration[2] =  zacc - Gravity[2];

我需要在我的电脑游戏中控制网球拍的位置

任何人都可以帮我模拟使用加速度计+陀螺仪的手部动作 或者使用加速度计和陀螺仪获得准确的位置

1 个答案:

答案 0 :(得分:0)

我不想劝阻你,但使用加速度计和陀螺仪获得准确的位置并不是一件简单的事情。虽然数学表明两次积分加速会产生位置,但实际上,系统中的噪声很快就会支配真正的位置信号(加速度本身的噪声,所需的所有小抽头和抖动,加上由于慢速的量化噪声〜 100Hz采样)。今天的航位推算系统只能运行几十秒或者1-2分钟才需要重新校准位置。这可以通过蓝牙或WiFi信标的三角测量,或通过将球拍放置在已知位置的物体附近来完成,如先前定位的NFC标签。此外,100Hz是不够的,你可能需要大约1-2KHz(这些天最大加速度为~2KHz)滤波到~20Hz的带宽,这取决于你的网球拍的移动速度。我怀疑标准手机可以实现这一点,因为我认为他们最大采样率为100Hz。公司(我不确定是谁)正在研究这样的系统,但它们比你想象的更难以取得好的结果。