测量手机的线性和角度移动量?

时间:2017-01-19 06:01:43

标签: android accelerometer gyroscope

我正在尝试让应用程序有一个重置按钮,并显示多少手机线性移动以及有角度移动。这很难,因为我对加速度计和陀螺仪甚至是android编程都知之甚少。所以我一直在考虑使用我从应用程序中获得的这些数据,首先进行传感器动力学计算,以测量手机线性和角度移动的数量。

以下两张图是样本数据(时间,X,Y,Z)。我相信可以用这些数据来完成但是我在过去几个小时的研究中没有取得进展。我知道他们不是在时间上同步,但我只是起点和最后一点来衡量。

gyroscope_sample_data rad / s:

enter image description here

accelerometer_sample_data m / s ^ 2:

enter image description here

我一直在努力查看如何以角度和线性方式测量距离,但我发现很多工作都在谈论它,但似乎没有采用这种方式或者测量线性和角度距离。

编辑:我写这个是为了计算手机与加速度计线性移动的距离,但是我收到了大约103米,只是为了绕着我转动手机。我也不确定角度距离的陀螺仪,所以让我知道你们都在想什么。

def acc_calculation(dataset):
    dx, dy, dz = 0.0, 0.0, 0.0
    vx, vy, vz = 0.0, 0.0, 0.0
    acceleration_x, acceleration_y, acceleration_z = dataset['X_value'], dataset['Y_value'], dataset['Z_value']
    for i in range(1, len(dataset['time'])):
        dt = float(dataset['time'][i]) - float(dataset['time'][i-1])
        print(dt)
        vx += (float(acceleration_x[i-1]) + float(acceleration_x[i]))/2.0*dt
        vy += (float(acceleration_y[i-1]) + float(acceleration_y[i]))/2.0*dt
        vz += (float(acceleration_z[i-1]) + float(acceleration_z[i]))/2.0*dt
        dx += vx*dt;
        dy += vy*dt;
        dz += vz*dt;
    dl = math.sqrt(dx**2 + dy**2 + dz**2)
    return dl

我想发布更多相关链接,但stackoverflow不允许我。如果任何人有任何线索,特别是关于它的应用程序或已经完成的工作的详细信息,我真的很感激。

加速计&陀螺教程:

http://www.instructables.com/id/Accelerometer-Gyro-Tutorial/step3/Combining-the-Accelerometer-and-Gyro/#intro

How can I find distance traveled with a gyroscope and accelerometer?

0 个答案:

没有答案