Unity 3D中加速度计和陀螺仪的传感器融合
Posted
技术标签:
【中文标题】Unity 3D中加速度计和陀螺仪的传感器融合【英文标题】:Sensor Fusion of Accelerometer and Gyroscope in Unity 3D 【发布时间】:2015-01-03 20:38:36 【问题描述】:我正在尝试将手机用作使用陀螺仪瞄准的枪。我用手机或平板电脑在某个方向进行校准。这将直接射击。然后根据手机转动的方向(左/右/上/下),枪朝那个方向射击。
我正在使用陀螺仪。这一切都有效。除了拍摄约 30 秒后,陀螺仪开始缓慢地向左或向右漂移。所以当我回到我校准的方向时,它不再直射了。有没有人有编写互补或卡尔曼滤波器以融合陀螺仪和加速度计数据以在 Unity 3D 中提供更好结果的经验?
我在网上找到了这个 - http://www.x-io.co.uk/open-source-ahrs-with-x-imu/。它似乎正是我想要的。但是我用错了。我有时会变得更好,有时会得到更糟糕的结果。有人有这方面的经验吗?
【问题讨论】:
【参考方案1】:首先,陀螺仪/加速度计融合将稳定您的俯仰/滚动角度,因为重力指示地面的方向。但是,您无法纠正“左/右”漂移,因为实际航向未知。单独使用陀螺仪/加速度计无法实现正确的航向稳定性:它需要额外的信息。
您提供的示例(Madgwick 的 MARG/IMU 滤波器)是一个可以集成磁力计的滤波器(“北”参考),但要获得良好的结果有两个要求:
磁力计已正确校准。 没有磁场干扰。如果您在室内,或者您靠近电源线或金属结构,则通常情况并非如此。另一种方法是使用视频信号获取光流信息,或者检测手机是否处于固定位置以不时补偿陀螺仪偏差。
【讨论】:
以上是关于Unity 3D中加速度计和陀螺仪的传感器融合的主要内容,如果未能解决你的问题,请参考以下文章