我得出的结论是,在android设备中,给定加速度传感器是不可能确定速度的。假设我的初始速度为零,用来获得速度的积分模式将是
v_ib_b = old_v_ib_b + f_ib_b * dt ,其中v_ib_b是惯性体系中沿体轴解析的速度,f_ib_b是加速度计测得的力。
如果我想要计算智能手机在本地导航框架ENU中的速度,可以使用以下公式(忽略科里奥利/划船和传输速率的简化Bortz方程):
v_eb_n = old_v_eb_n + (C_b_n * (f_ib_b + 0.5 * cross(omega_ib_b, f_ib_b)) - g) * dt其中C_b_n是ENU的旋转矩阵体。
我尝试使用Sensor.TYPE_ROTATION_VECTOR、MadgwickAHRS和我自己的传感器融合来分别获得ENU帧中的方向矩阵和旋转矩阵。无论使用哪一个,这都是骑自行车时几分钟的速度积分输出(智能手机安装在面向天空的车把上):

这是集成的原始数据:

我假设加速计的性能很差,有噪音,并且随着时间的推移抵消了任何测量结果,因此无法获得速度。有什么想法吗?
发布于 2017-08-25 12:02:52
相对非常小的加速度变化将与噪声混合在一起。有什么东西阻碍了GPS数据的使用吗?另一个方向是将陀螺仪数据与加速度计数据相结合,以更好地降低噪声,创建完整的IMU。
https://stackoverflow.com/questions/45874094
复制相似问题