仅使用加速度计来计算角度倾斜

时间:2019-06-27 17:03:53

标签: math accelerometer angle

我想知道如何使用我的Android手机的加速度计的坐标来计算连接加速度计和树的底部(B)以及加速度计和树的顶部(T )。

sketch

加速度计每秒获取3个轴的加速度值,因此我计算了平均值,并得出: 对于面向B的电话:Ay1 = -9.69m.s ^ -1和Az1 = 0.71m.s ^ -1 对于面向T的电话:Ay2 = -9.71m.s ^ -1和Az2 = 0.71m.s ^ -1

我与树的距离为D = 20m。 我想最后知道H的值。所以我想知道如何计算角度,然后找到树的高度。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我们需要的角度是指举起和设备举起之间的角度。由于重力矢量指向世界,所以这很简单(假设您指向设备的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

正如您在整个示例中所看到的那样,您的读数必须非常准确。不过,这就是您计算树高的方法。