Unity 3D中加速度计和陀螺仪的传感器融合

3
我正试图使用手机的陀螺仪将其作为瞄准枪。我会以特定方向校准手机或平板电脑,这样就可以直线射击。然后,根据手机转向的方向(左/右/上/下),枪就朝那个方向射击。
我正在使用陀螺仪。所有这些都有效,除了在射击约30秒后,陀螺仪会缓慢向左或向右偏移。因此,当我回到我校准时的方向时,它不再直线射击。有没有人具有编写互补或卡尔曼滤波器的经验,以融合陀螺仪和加速度计数据,在Unity 3D中提供更好的结果?
我在网上找到了这个 - http://www.x-io.co.uk/open-source-ahrs-with-x-imu/。它似乎完全符合我的要求。但是我使用不正确。我有时会得到更好的结果,有时会得到更差的结果。有谁有过使用它的经验吗?
1个回答

0
首先,陀螺仪/加速度计融合可以稳定你的俯仰/横滚角度,因为重力指示了地面的方向。然而,你无法纠正“左/右”漂移,因为实际航向是未知的。只有使用陀螺仪/加速度计是无法实现正确的航向稳定的:它需要额外的信息。
你提供的例子(Madgwick的MARG/IMU滤波器)是一种可以集成磁力计(“北”参考)的滤波器,但要得到良好的结果,需要满足两个条件:
1. 磁力计已经被正确校准。 2. 没有磁场干扰。如果你在室内或靠近电线或金属结构移动,通常情况下这是不成立的。
另一种选择是使用视频信号获取光流信息,或检测手机是否处于固定位置以补偿陀螺仪偏差。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接