重力矢量(法向矢量到 X Y 平面)的三角加速度计 Z 角

Trigonometry accelerometer Z angle from gravity vector (normal vector to X Y plane)

这个让我摸不着头脑了一段时间。我有一个加速度计,并使用这个很棒的脚本成功测量了 X 和 Y 角度:https://github.com/ozzmaker/BerryIMU/blob/master/python-BerryIMU-gryo-accel-compass/berryIMU.py

我想计算的是重力向量和 Z 轴之间的角度差(其中 Z 是由 X 和 Y 角创建的平面的法向量)。

我在 google 上找到了一些图片并对其进行了编辑以尝试解释问题。见下文。

Angle of Z to gravity vector

如果上面githut的脚本计算X和Y如下:

import math

RAD_TO_DEG = 57.295
ACCy = (see github script for details)
ACCz = (see github script for details)
ACCx = (see github script for details)


Xangle =  (math.atan2(ACCy,ACCz)*RAD_TO_DEG)
Yangle =  (math.atan2(ACCz,ACCx)*RAD_TO_DEG)

我如何计算图中所示的重力矢量的 Z 角增量?会不会是:

Zangle = (math.atan2(ACCx,ACCy)*RAD_TO_DEG)
math.asin(ACCz / math.sqrt(ACCx ** 2 + ACCy **2 + ACCz ** 2)) * RAD_TO_DEG 

可能就是您要找的。