我有下图和方程:
图中的主体是一个三轴加速度计传感器,以米/秒²为单位测量加速度。
目标是使用加速度值计算以下 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/