Тригонометрический акселерометр Z угол от вектора силы тяжести (вектор нормали к плоскости XY) - PullRequest
0 голосов
/ 19 сентября 2019

Этот заставил меня почесать голову некоторое время.У меня есть акселерометр, и я успешно измеряю углы X и Y с помощью этого замечательного сценария: https://github.com/ozzmaker/BerryIMU/blob/master/python-BerryIMU-gryo-accel-compass/berryIMU.py

Я хотел бы рассчитать дельта-угол между вектором гравитации и осью Z (где Z - этовектор нормали к плоскости, созданной углами X и Y).

Я нашел несколько изображений в Google и отредактировал их, чтобы попытаться объяснить проблему.См. Ниже.

Угол Z от вектора силы тяжести

Если скрипт из 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)

1 Ответ

0 голосов
/ 19 сентября 2019
math.asin(ACCz / math.sqrt(ACCx ** 2 + ACCy **2 + ACCz ** 2)) * RAD_TO_DEG 

может быть то, что вы ищете.

...