Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Orientation IMU方向不断变化_Orientation_Hardware_Ros_Robot_Imu - Fatal编程技术网

Orientation IMU方向不断变化

Orientation IMU方向不断变化,orientation,hardware,ros,robot,imu,Orientation,Hardware,Ros,Robot,Imu,我们有XSENS MTi IMU设备,并使用ROS框架(Ubuntu/Fuerte)。 我们订阅了IMU数据,除方向外,所有数据看起来都很好 在Euler Outputmode(如四元数输出模式)中,值不断变化。不是随机的,它们以或多或少的恒定速率缓慢地增加或减少,有时我观察到变平的变化,然后改变它的方向 当第二个X处的值可能为: x: 7.79210457616 y: -6.58661204898 z: 41.2841955308 Z值在几秒钟内(我认为是10-20秒)在大约10的范围内变化

我们有XSENS MTi IMU设备,并使用ROS框架(Ubuntu/Fuerte)。 我们订阅了IMU数据,除方向外,所有数据看起来都很好

在Euler Outputmode(如四元数输出模式)中,值不断变化。不是随机的,它们以或多或少的恒定速率缓慢地增加或减少,有时我观察到变平的变化,然后改变它的方向

当第二个X处的值可能为:

x: 7.79210457616
y: -6.58661204898
z: 41.2841955308
Z值在几秒钟内(我认为是10-20秒)在大约10的范围内变化

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


请随时询问更精确的数据或您想知道的任何可能有助于我们解决问题的信息。我们将参加11月的Spacebot杯,因此完成IMU将是一件非常令人欣慰的事情

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

您可以看到的漂移是正常的,可能来自噪声的积分、错误的零速率校准或陀螺仪的偏置

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

常用的算法有
卡尔曼滤波
互补滤波
(Madgwick/Mahony)


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

如果没有磁强计来提供正确的航向,这是完全正常的

陀螺仪只测量转动率,不知道在任何给定时间在任何轴上的方向。如果你知道初始航向,陀螺仪是100%准确的,积分转动率就会得到航向。不管怎样,它都会漂移,即使它经过了完美的校准,因为你是在离散的时间间隔而不是连续地采样

增加一个加速计至少可以固定向下的方向(因为它测量的是朝向地球中心的重力)。这将保持Z轴解决方案与垂直方向对齐,但不会固定水平方向(航向或偏航)。正如你们所看到的,这将继续漂移

添加一个磁强计将确定相对于地球磁场的航向。这将给你一个相对于磁北的航向。你们将需要对局部磁偏角进行偏移,以获得正北。这些通常在线提供,并且在数十公里内保持合理的恒定。谷歌ITREF

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

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

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