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