javascript - 三 Angular 学根据加速度计数据计算倾斜 Angular

标签 javascript trigonometry accelerometer angle tilt

我有下图和方程:

Three Axis for measuring tilt

Equations for measuring tilt

图中的主体是一个三轴加速度计传感器,以米/秒²为单位测量加速度。

目标是使用加速度值计算以下 Angular 倾斜:

  • ρ:X轴相对于地面的 Angular (橙色线);
  • Φ:Y轴相对于地面的 Angular (橙色线);
  • θ:Z 轴相对于重力的 Angular (绿线)。

有人能解释一下如何从上图中找到方程1,2和3吗?

方程和图形来源:https://www.thierry-lequeu.fr/data/AN3461.pdf

还有另一个类似且更详细的来源使用相同的方程,但我也无法理解如何找到它们:https://www.analog.com/en/app-notes/an-1057.html

我已经实现了它们并且它正在工作,我只是想帮助理解如何获得方程。这是代码:

let pitch = Math.atan(ax / Math.sqrt((Math.pow(ay,2) + Math.pow(az,2))) );
let roll = Math.atan(ay / Math.sqrt((Math.pow(ax,2) + Math.pow(az,2))) );
let theta = Math.atan(Math.sqrt((Math.pow(ax,2) + Math.pow(ay,2))) /az);

提前致谢。

最佳答案

这是毕达哥拉斯定理,找到 0,0 和给定的两个数字表示的点之间的二维距离。如果我们将其分配给一个新函数,可能会更清楚:

distance(a, b) { return sqrt((pow(a,2) + pow(b,2))) }

然后使用反正切函数计算 Angular ,该函数与表示三 Angular 形一侧的距离。例如,您问题中的音调将 x 加速度除以 0,0 与 YZ 平面中的加速度之间的距离。

pitch = atan(x / distance(y, z))

关于javascript - 三 Angular 学根据加速度计数据计算倾斜 Angular ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72946477/

相关文章:

javascript - 在执行所有事件监听器回调后执行代码

javascript - jQuery slider 未正确突出显示

javascript - 为什么 IE7 和 IE8 在调用 jQuery 时给我 "Access Denied"?

c# - 生成 WAV 文件铃声

android - TYPE_MAGNETIC_FIELD 事件未在我的 Galaxy Nexus ICS 4.0.2 上触发

javascript - 根据服务器的数据启用/禁用 Html 按钮

java - 无法让子弹以正确的角度射击?

java - 寻找 vector 之间的符号角

android - 我怎样才能用加速度计传感器移动一个圆圈?

ios - iphone 加速度计的重力读数与用户加速度读数?