IMU原理:以牛顿力学定律为基础,通过测量载体在惯性参考系的加速度,将它对时间进行积分,且把它变换到导航坐标系中,就能够得到在导航坐标系中的速度、偏航角和位置等信息。
IMU (惯性测量装置)在航空航天工业中的应用已有数十年历史。然而,航空航天用精密 IMU 是基于昂贵的陀螺仪和其他大型传感器,难以应用于对成本更敏感的系统。
现代电子 IMU 已高度集成化,可包含多种类型的传感器——加速计、陀螺仪和磁力仪;其基于微机电系统 (MEMS) 技术,因此体积小、重量轻且相对坚固。这些新一代 IMU 可作为板安装元件提供,经证明非常适合嵌入式应用。
IMU 提供了许多嵌入式应用所需的更精细的定位分辨率和更快的更新率,且IMU 提供距离已知起点的相对位置信息。
基于IMU的定位(也就是我们通常称为的惯性导航)本质上属于航位推算定位,定位解算是基于运动积分的,之前定位结果中的定位误差会累积到当前定位结果中,同时由于IMU本身的零偏,最终表现就是定位误差会随时间累积。因此在实际应用中,需要同时结合其他定位误差无累积的定位手段,如无线电导航(GPS、UWB等)或特征匹配定位(地形匹配、激光点云地图匹配等),来实时辅助进行惯导误差修正,才能一定程度上抑制误差积累,满足使用需求。当然,如果确实没有其他传感器或定位手段可用,单独使用IMU定位的话,为避免误差过快累积,一方面,要对IMU做内参(零偏、刻度系数误差等)标定;另一方面,要结合具体应用平台和场景,考虑加入零速校正、零角度校正或运动约束等。另外,仅仅用于航姿估计时,可以采用无人机领域常用的基于加速度和角速度输出的互补滤波方法,给出精确的俯仰角和横滚角。
参考文章链接:https://www.zhihu.com/question/309502912/answer/608269956
陀螺仪通过角速度变化检测方向,但随着时间推移,陀螺仪往往会漂移,因为它仅检测变化而没有固定的参考系。将加速计数据添加到陀螺仪数据中,可以最大限度地减小陀螺仪偏置,从而得到更准确的位置估计。加速计检测相对于重力的方向变化,该数据可用于给陀螺仪定向。
加速计对于静态(与动态相反)计算更准确。当系统已处于运动状态时,利用陀螺仪检测方向要更好。加速计反应迅速,若只使用该数据,加速计抖动和噪声会产生累积误差。此外,由于重力之类的外力,加速计往往会使加速度失真,这也会作为噪声在系统中累积。
将陀螺仪的长期精度与加速计的短期精度相结合,依靠每种传感器的优势来抵消或至少减轻另一种传感器的弱势,可以获得更精确的方向读数。这两类传感器相互补充。
所以我们需要滤波来将这两种传感器的数据结合来减少误差。
IMU 软件使用滤波来最大限度地减小 IMU 数据的定位误差。有多种滤波方法可融合传感器数据,每种方法都有不同程度的复杂性。互补滤波是合并多个传感器所提供数据的简单方法。互补滤波是一种将高通陀螺仪滤波和低通加速计滤波相结合的线性函数。因此,加速计数据中的高频噪声会在短期内被滤除,并且被陀螺仪数据平滑。
虽然互补滤波在计算上很简单,但为了实现更好的精度,IMU 现在更喜欢使用卡尔曼滤波之类的更复杂技术。卡尔曼滤波是一种非常受欢迎的递归传感器融合算法,不需要大量处理能力就能构建更精确的定位系统。卡尔曼滤波有多种类型,包括标准卡尔曼滤波、扩展卡尔曼滤波 (EKF) 和无迹卡尔曼滤波 (UKF)。
卡尔曼滤波使用若干数学方程来预测值,并基于以下假设:被滤波的数据为高斯分布形式,对其应用线性方程进行滤波(即将观测值和预测值用线性方程处理)。然而,现实世界中的运动并不像卡尔曼滤波的假设那样中规中矩。实际运动遵循的方程常常涉及非线性的正弦和余弦函数,因此 EKF 采用泰勒级数和高斯分布的单点近似来线性化非线性函数。这些近似可能是重大的误差源。
UKF 使用确定性采样方法来解决此误差问题,生成一组精心选择的采样点来代表数据的预期高斯分布,而不是 EKF 所用的单点近似。这些采样点完全捕获了预期高斯值的真实均值和协方差,从而实现更精确的滤波。
典型 IMU 包含三种不同的传感器:用于测量角速度/速度的陀螺仪、用于测量线性加速度的加速计以及用于测量磁场强度的磁力仪。更具体地说,IMU 的磁力仪测量地球的磁场强度,以确定相对于地磁北极的航向。设计用于导航应用的 IMU 的每类传感器通常有三个,以对应三个正交运动轴。
然而,磁力仪易受硬铁和软铁失真的影响。外部磁场影响导致的地球磁场失真一般分为硬铁效应和软铁效应两种。
最后,加速计和陀螺仪仅提供关于物体上的加速力(线性和旋转)的信息**(也就是说IMU的输出信息是线加速度和角加速度)**,因此必须将该数据积分两次才能确定位置,因为加速度是物体速度的变化率,而速度是物体位置的变化率。换言之,IMU 陀螺仪和加速计数据提供的是物体绝对位置的二阶导数。
二重积分本身就需要相当多的处理,但对于三维定位,还必须消除重力的加速度影响。对于加速计,重力表现为恒定加速度,导致其数据发生偏移。通常,重力的加速度影响必须在 IMU 和包含 IMU 的物体处于静止状态时,通过校准从系统中消除。
请注意,由于采样误差,这种二重积分会引起误差。采样率越慢,误差越大。
IMU 软件的设计考虑因素
为实际的 IMU 软件实现这些算法时,请考虑以下措施和建议:
IMU 传感器信号有噪声,需要进行数字滤波。通常,IMU 应用中会使用某种卡尔曼滤波。
即使进行滤波,仍不免存在其他误差源,例如耦合到 IMU 的机械噪声,以及上面讨论的硬铁和软铁失真。必须滤除这种噪声,或以其他方式从数据中消除此噪声。
应用开始时,需要在 IMU 处于静止状态时执行校准例程,原因是为了尽可能准确,软件需要知道当物体不运动时传感器读数是多少。运动中物体的实际加速度值等于加速度传感器的当前采样值减去校准值。
校准后,传感器值可以是正数,也可以是负数。因此,保存这些值的变量必须有正负之分。
对传感器数据的采样频率越高,产生的结果越准确,但更多样本将需要更多存储器和更严格的定时要求,还可能涉及到其他硬件考虑因素。
采样周期必须始终完全相同。采样周期不相等会引起数据误差。
样本之间的线性数据拟合(插值)可产生更准确的结果,但也需要更多的处理时间。
从上面的讨论中可以明显看出,根据 IMU 数据确定航向、位置和运动所需的计算并不简单。因此,IMU 供应商常常为其产品提供软件应用包来执行这些计算。
总结
IMU 在嵌入式应用中非常有用,可以自行提供位置和航向信息。IMU 也可用于增强 GNSS 接收器信息,以提高定位精度或更新率。然而,将 IMU 集成到嵌入式系统中需要大量软件,IMU 供应商常常会提供相关软件,以帮助实现这些器件的实际应用。
引用自http://www.elecfans.com/d/1056444.html