Расчет угла наклона с использованием только акселерометров - PullRequest
0 голосов
/ 27 июня 2019

Я хотел бы знать, как рассчитать с помощью координат акселерометра моего телефона Android угол между двумя сегментами, соединяющими акселерометр и нижнюю часть дерева (B) и акселерометр и верхушку дерева (T ).

sketch

Акселерометр принимает значение ускорения по 3 осям каждую секунду, поэтому я рассчитал среднее значение и получил: Для телефона в направлении B: Ay1 = -9,69m.s ^ -1 и Az1 = 0,71m.s ^ -1 Для телефона в направлении T: Ay2 = -9,71 м.с ^ -1 и Az2 = 0,71 м.с ^ -1

Я нахожусь на расстоянии D = 20м от дерева. В конце я хотел бы узнать значение H. Поэтому я хотел бы знать, как рассчитать угол, а затем найти высоту дерева.

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 28 июня 2019

Нам нужны углы между миром и устройством.Поскольку гравитационный вектор направлен вниз, это просто (при условии, что вы указываете с помощью оси Y устройства):

cos angle = -a.y / sqrt(a.x^2 + a.y^2 + a.z^2)

Два угла, которые мы получаем из ваших показаний:

angle1 = 4.19065°
angle2 = 4.18205°

Вы уже можете видеть, что углы очень близки, так как два значения ускорения также очень близки.Кстати, мне интересно, если вы действительно указываете с осью Y, потому что значения силы тяжести предполагают, что вы держите телефон почти вертикально в обоих случаях.

В любом случае, если мы предположим, что эти два угла правильны, мыТеперь можно рассчитать высоту соответствующих треугольников, предполагая длину до цели l.Тогда:

tan (90° - angle) = h / l

Если предположить l=20 m, это дает нам два значения высоты:

h1 = 272.958 m
h2 = 273.521 m

Это высоты над высотой телефона.Теоретически, один должен быть положительным, а другой - отрицательным.Высота дерева будет равна разнице двух высот:

treeH = h2 - h1
treeH = 0.56338 m

Как вы видели на протяжении всего примера, ваши показания должны быть довольно неточными.Тем не менее, так вы бы рассчитали высоту дерева.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...