我们有XSENS MTi IMU设备,并使用ROS-框架(Ubuntu / Fuerte)。我们订阅了IMU-Data,除了定向之外,所有数据看起来都很好.
在Euler-Outputmode中,就像在四元数输出模式中一样,值也在不断变化。不是随机的,它们以或多或少的恒定速率缓慢地增加或减少,有时我观察到这种变化使其变平,然后改变它的方向。
当第二个X的值可能是:
x: 7.79210457616
y: -6.58661204898
z: 41.2841955308Z值在几秒钟内变化范围约为10 (我认为是10-20秒)。
是什么导致了这种行为?我们是误解了数据,还是司机出了什么问题?奇怪的是,这也发生在另外两个驱动程序中,还有另外一个IMU设备(我们有2)。每个组合的结果是一样的。
请随意要求更精确的数据或任何你想知道的,也许可以帮助我们解决。我们正在参加11月的太空机器人杯,所以完成IMU将是一个相当大的宽慰。:)
发布于 2015-11-12 03:56:39
完全正常,如果你没有磁强计给出一个校正的航向。
陀螺仪只测量转速,不知道在任何给定时间内在任何轴上的方位。如果你知道初始航向和陀螺仪是100%准确的话,综合旋转率就会给出航向。它仍然漂移,即使它是完美的校准,因为你是在离散的间隔,而不是连续取样。
增加一个加速度计至少可以固定向下的方向(因为它测量的是向地球中心方向的重力)。这将保持Z轴解与垂直对齐,但它不会固定水平方向(航向或偏航)。这将继续漂移,正如你所看到的。
增加一个磁强计将修复相对于地球磁场的航向。这会给你一个相对于磁北的方向。你将需要为局部磁偏转申请一个转变,以获得真正的北。它们一般可以在线使用,并且在几十公里范围内相当恒定。谷歌ITREF
有些集成传感器没有磁强计。这就是为什么航向漂移的原因。像MPU6050这样的单元有内置的固件,并且可以访问磁强计,但是通常的固件不使用它,所以您必须在您的微控制器或连接的PC上实现Madgwick等。博世有一个新的单一模块与一个处理单元内置。希望它使用的是9自由度,而不是你在MPU6050上得到的DMP。
磁传感器精确到2度左右。局部磁偏角校正也有误差。您可以通过在长基线上使用GPS来执行额外的校准,以获得更好的结果。也值得注意的是,航向和航向往往是不同的,因为横向风/交叉流。
与卡尔曼滤波算法相比,Madgwick算法具有稳定性好、易于实现等优点,且比卡尔曼滤波算法占用的资源少,需要进行矩阵求逆。它仍然提供轻微的抖动,但轻微的平滑结果不应造成太大的滞后。
发布于 2015-08-26 15:59:50
如果您有IMU版本,我假设设备上没有进行任何信号处理。(但我不知道产品是什么)。所以你得到的方位数据应该只是陀螺仪数据的积分。
你能看到的漂移是正常的,可能来自于噪声的积分,糟糕的零速率校准,或者陀螺仪的偏置。
为了纠正这种漂移,我们通常使用AHRS或VRU算法(取决于校正偏航的需要)。这是一种融合传感器算法,它从加速度计和磁强计数据(用于AHRS)中提取重力来纠正这种漂移。
常用的算法是Kalman filter和complementary filter (Madgwick/Mahony)。
这不是一件容易的工作,需要在matlab/python上进行一些阅读和实验,以配置这些过滤器:)
https://stackoverflow.com/questions/32228629
复制相似问题