2

我们有 XSENS MTi IMU-Device 并使用 ROS-Framework (Ubuntu / Fuerte)。我们订阅了 IMU-Data,所有数据看起来都不错,除了方向

在 Euler-Outputmode 中,就像在 Quaternion-Outputmode 中一样,值是不断变化的。不是随机的,它们以或多或少的恒定速率缓慢增加或减少,有时我观察到变化变平然后改变方向。

当第二个 X 的值可能是:

x: 7.79210457616
y: -6.58661204898
z: 41.2841955308

Z值在几秒钟内变化大约10(我认为是10-20秒)。

什么会导致这种行为?我们是否误解了数据或驱动程序有问题?奇怪的是,这也发生在另外 2 个驱动程序和另外一个 IMU 设备(我们有 2 个)上。每种组合的结果相同。

随时要求提供更精确的数据或任何您想知道的可以帮助我们的信息。我们将参加 11 月的 Spacebot-Cup,所以完成 IMU 会让人松一口气。:)

4

2 回答 2

2

如果您没有磁力计来给出正确的航向,那是完全正常的。

陀螺仪仅测量转动速率,并且不知道任何给定时间在任何轴上的方向。如果您知道初始航向并且陀螺仪是 100% 准确的,则积分转弯率会给出航向。无论如何它都会漂移,即使它已经完美校准,因为您是以离散间隔而不是连续采样。

添加一个加速度计至少会固定向下的方向(因为它测量的是重力,它是朝向地球中心的)。这将使 Z 轴解决方案与垂直方向对齐,但不会固定水平方向(航向或偏航)。如您所见,这将继续漂移。

添加磁力计将固定相对于地球磁场的航向。这将为您提供相对于磁北的航向。您需要对当地磁偏角进行偏移才能获得真北。这些通常可以在线获得,并且在数十公里范围内相当稳定。谷歌 ITREF。

一些集成传感器没有磁力计。这就是标题漂移的原因。像 MPU6050 这样的单元内置了固件,并且可以访问磁力计,但通常的固件不使用它,所以你必须在你的微控制器或连接的 PC 上实现 Madgwick 等。博世有一个内置处理单元的新单模块。希望它使用 9 个自由度,而不是 MPU6050 上的 DMP 获得的 6 个自由度。

磁性传感器精确到大约 2 度。局部磁偏角校正也有误差。您可以通过在较长的基线上使用 GPS 来执行额外的校准以获得更好的结果。还值得注意的是,由于侧风/横流,航向和航向通常不同。

Madgwick 算法相当稳定且易于实现,并且比需要执行矩阵求逆的卡尔曼滤波器使用更少的资源。它仍然会产生轻微的抖动,但结果的轻微平滑不应导致太多滞后。

于 2015-11-12T03:56:39.273 回答
1

如果你有 IMU 版本,我假设设备上没有进行任何信号处理。(但我不知道产品)。所以你得到的方向数据应该只是陀螺仪数据的积分。

您可以看到的漂移是正常的,可能来自噪声的集成、不良的零率校准或陀螺仪的偏差。

为了纠正这种漂移,我们通常使用一种AHRS或一种VRU算法(取决于校正偏航的需要)。这是一种融合传感器算法,它从加速度计和磁力计数据(用于 AHRS)中获取重力来纠正这种漂移。

经常使用的算法是 theKalman filter和 the complementary filter(Madgwick/Mahony)。

这不是一件容易的工作,需要在 matlab/python 上进行一些阅读和实验来配置这些过滤器 :)

于 2015-08-26T15:59:50.707 回答