你好
我正在将恩智浦传感器融合库移植到第三方微控制器上,但遇到了一些问题,不知道如何调试。
为了让您大致了解,实际需要进行航位推算(对线性加速度进行双重积分,以得出静止位置的位移)。积分周期应该很短,大约几秒钟,精度也不是那么重要。长话短说,假设我要用 IMU 测量一个摆锤的摆幅(单位:厘米)(摆锤的枢轴是固定的)。
在我看来,这似乎是可行的,尽管众所周知,使用这些 mems 传感器进行的死循环计算存在漂移问题,您同意吗?
到目前为止,我构建了一个采集加速度中心和陀螺仪数据的系统,为了简化开发,我将恩智浦传感器融合库封装到Octave/Matlab中。一旦程序库在 MCU 上运行,同样的代码也将在 MCU 上使用。
现在,我正在进行基本测试,以了解融合器是否按预期工作,但我遇到了一些问题(见图片),也许在该领域有更多经验的人在看到结果后能建议我从哪里着手解决这个问题。
在下面的测试中,IMU 绕 Y 轴旋转(一个方向旋转 90°,另一个方向旋转 180°,然后回到起始位置)。这些是我能提取的部分图像:
原始数据(Accensitivity=0.488mg/LSB)、陀螺仪灵敏度=17.5mdps/LSB)
Raw accelerometer原始加速度计
Raw gyroscope原始陀螺仪
加速度计的原始数据很容易验证,在 Z 轴上可以看到 2070 个重力计数。2070*0.488=1010 毫克。
为了验证陀螺仪的数据,我将其整合(在融合库之外),得到了这个数据:
Integrated raw gyroscope集成原始陀螺仪
除了陀螺仪偏移导致的漂移(这是预料之中的,因为没有对原始数据进行校正)之外,Y 轴上90° 顺时针 - 180° 逆时针 - 90° 顺时针的旋转模式清晰可见,因此传感器本身看起来没有问题。
然而,当原始数据被输入 SV_6DOF_GY_KALMAN 算法时,得到的线性加速度和方位角为
Linear acceleration线性加速
Orientation (roll/pitch/yaw) 方向(滚动/俯仰/偏航 )
在这里,我看到了与想象中不同的东西。首先,加速度的 Y 轴在受到刺激后需要一段时间才能恢复到 0。
那么,有没有人可以建议我可能做错了什么,或者从哪里开始调试?
我知道,由于我使用的不是恩智浦平台,答案可能是",我们不支持这个" ,但我还是试一试。
非常感谢、
达维德