首页 文章

使用智能手机的动作感应

提问于
浏览
0

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

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

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

相关问题