android 计算手机的移动速度

nzkunb0c  于 2023-01-15  发布在  Android
关注(0)|答案(1)|浏览(284)

我需要计算安卓设备移动的速度。我感兴趣的是短距离的情况下,设备往往会返回到起点(如当用户在办公椅上旋转时,手臂伸出,同时拿着手机),所以GPS可能不适用于我的情况。我如何使用加速度计?
我当时在想:

double delta_t = current_time - previous_time

double delta_v_x = a_x * delta_t
double delta_v_y = a_y * delta_t
double delta_v_z = a_z * delta_t

current_v_x += delta_v_x
current_v_y += delta_v_y
current_v_z += delta_v_z

double v = Math.sqrt(Math.pow(current_v_x, 2) +  Math.pow(current_v_y, 2) +  Math.pow(current_v_z, 2))
  • 它能按预期工作吗?
  • 我也要考虑重力吗?如果设备的方向可以改变,该怎么做?
  • 我是否必须首先消除加速度测量中的噪声?
  • 高通滤波器能同时解决噪声和重力问题吗?
rjee0c15

rjee0c151#

以防有人会有类似的问题。对于重力问题,我使用了Sensor.TYPE_LINEAR_ACCELERATION而不是Sensor.TYPE_ACCELEROMETER。对于噪声,我使用了Apache Commons Math的卡尔曼滤波器。

相关问题