javascript';设备定向';事件-它测量什么传感器?

javascript';设备定向';事件-它测量什么传感器?,javascript,android,accelerometer,sensors,gyroscope,Javascript,Android,Accelerometer,Sensors,Gyroscope,如果我有一个简单的网页和脚本,如下所示: <body> <div id="alpha">a</div> <div id="beta">b</div> <div id="gamma">g</div> </body> <script> window.addEventListener('deviceorientation', function(event) {

如果我有一个简单的网页和脚本,如下所示:

<body>
    <div id="alpha">a</div>
    <div id="beta">b</div>
    <div id="gamma">g</div>
</body>

<script>
window.addEventListener('deviceorientation', function(event) {
    var alpha = event.alpha;
    var beta = event.beta;
    var gamma = event.gamma;

    document.getElementById("alpha").innerHTML = alpha;
    document.getElementById("beta").innerHTML = beta;
    document.getElementById("gamma").innerHTML = gamma;

}, false);
</script>
当我旋转设备时,数字会根据旋转轴发生变化。我注意到“alpha”的值非常嘈杂——即使手机停在我的桌子上,它们也会不停地反弹,而其他两个值保持稳定。我知道阿尔法是我的方向。我很好奇,它是从指南针(有噪音问题)得到“阿尔法”值,还是从陀螺仪得到另外两个值

另一个问题是当我改变音高时,由于某种原因,标题也会改变,即使我实际上没有改变标题。我只是好奇为什么会这样,以及如何纠正

另外,由于陀螺仪测量角速度,我假设这个事件监听器会自动对它进行积分-积分算法和其他算法一样好吗?它是否使用加速计来校正漂移

在这段15:00至19:00的google tech talk视频中,演讲者讲述了如何使用加速度计校正陀螺仪固有的漂移,以及校准相对于重力的方向: 我该怎么做呢


感谢所有人提供的见解。

通过传感器融合获得设备方向。严格地说,没有一个传感器测量它。定向是以智能方式合并加速度计、陀螺仪和磁强计数据的结果

我注意到“alpha”的值非常嘈杂——它们会四处反弹 即使手机停在我的桌子上,也不停,而另外两个 保持稳定

如果可以的话,试着避开它们

顺便说一句,Android设备上的传感器融合:你链接到的运动处理视频的革命在38:25解释了这一点

另外,由于陀螺仪测量角速度,我认为 事件侦听器正在自动集成它-是集成吗 算法和其他算法一样好吗?它是否使用加速计来校正故障 漂移

是的,陀螺仪漂移通过加速计(和磁强计,如果有的话)读数进行校正。这被称为传感器融合

在这段谷歌科技谈话视频中,从15:00到19:00,演讲者讲话 关于用计算机校正陀螺仪固有漂移 加速计,以及校准相对于 重力:我该怎么走 做这个怎么样


如果你有方向感,那么有人已经为你做了这一切。你不必做任何事情。

所有的方向值对我来说也非常嘈杂。颤抖的手,欧拉角,磁干扰,制造缺陷。。。谁知道呢

我发了一封信。也就是说,我用平滑的值替换了波动的event.alpha,该值被方便地称为alpha:


alpha=event.alpha+s*(alpha-event.alpha),0使用方向余弦矩阵或卡尔曼滤波器。您可以使用加速计或陀螺仪或两者的组合来绘制它。漂移可以通过一点机器学习来计算。我认为运动融合是德克萨斯仪器校准包的一部分。我可能错了。但这并不难检查。将3个旋转矩阵相乘,求大

你们读过它是如何得出数字的吗:(警告,前面有可怕的数学)W3规范绝对有用。我想我应该知道那是存在的。我以前学过线性代数,我懂数学。我尽力回答你的问题。有一件事我没有得到。请你详细解释一下:“当我改变音高时,由于某种原因,标题也会改变,即使我实际上没有改变标题。我只是好奇为什么会这样,以及如何纠正它?”谢谢你的解释。事实上,我很放心,我不必重新发明传感器融合。我唯一不明白的是它是如何指向正北而不是磁北的?它不知道我的纬度或经度。好问题,我只能猜测。你说得对,它只能测量磁北。然而,重力和磁北之间的角度可以用来估计纬度。此外,GPS或服务提供商可以告诉设备(相当准确)的地理位置。所以,我不知道。你凭什么认为它知道真正的北方?在你的位置,真北极和磁北极的差别有多大?好吧,它给了我一个北极的读数(阿尔法=0或360),从我的指南针应用程序告诉我的位置顺时针几度。我住在西雅图附近,那里的磁北和正北之间的差别很明显,因为磁北在阿拉斯加上空。很有趣。正如我之前所说,我只能猜测,但原则上,设备可以从服务提供商那里知道其地理位置。它在十多年前就已经面世了。现在,我们也有GPS。我叔叔住在西雅图,我在1990年拜访了他:)对两个以上的样本进行平滑可能会有所帮助?指数平滑的好处是你对平滑值+一个新样本进行平滑,所以实际上,你对许多样本进行平滑是的,指数平滑的确切原理是这样的。您可以显示它是一个加权平均值,其权重w_t=s^t(因此得名为指数)。它是整个历史的平均值,随着时间的推移,价值的权重越来越小。
89.256125
3.109375
0.28125