0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用于精确定位的 IMU: 如何使用 IMU 软件实现更高的精度

丫丫119 来源:未知 作者:肖冰 2019-08-21 09:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

许多嵌入式系统需要跟踪其所在的地点或位置和航向,设计人员经常将 GNSS(全球导航卫星系统)作为首选(参见“使用 GNSS 模块快速设计位置跟踪系统”)。然而,GPS 不能总是专门用于确定位置和航向信息,原因有多方面,首先是功耗。

GPS 系统需要消耗大量电力。许多嵌入式系统,尤其是电池供电的系统,无法负担 100% 时间都维持 GPS 定位所需的功耗预算。此外,GPS 信号会受到阻挡,更新率较慢,且精度为 1 米 (m),这对某些应用而言可能不够。

使用惯性测量装置 (IMU) 对 GNSS 定位数据进行补充,则可以克服这些问题。

前一篇 IMU 文章讨论了如何使用基于 MEMS 技术的相对便宜的 IMU 来确定位置和航向,请参阅“在 GPS 不足以提供精准的位置数据时使用 IMU”。但是,仅凭 IMU 传感器数据还无法提供绝对位置。GNSS 接收器仅提供位置数据,但为了将 IMU 的相对运动数据转换为绝对位置和航向,则需要大量软件,其中会用到传感器滤波、融合和二重积分。

本文讨论 IMU 的嵌入式应用、各种 IMU 传感器所提供数据的误差来源,以及计算来自 IMU 传感器的精准定位和航向信息所需的软件。此外,本文还会讨论STMicroelectronicsMotionFX 库,以及如何使用该软件将 IMU 传感器数据转换为嵌入式系统中的定位和航向。

IMU 如何补充 GNSS 接收器

GNSS 存在四个问题:

GNSS 信号具有很强的指向性,很容易被建筑物遮挡。因此,室内或城市混凝土峡谷深处的 GNSS 操作可能会有问题。

GNSS 接收器有几十秒甚至更长时间的热启动和冷启动时间。如果 GNSS 接收器不是连续工作(例如为了省电),则每个新位置读数可能需要好几秒才能获得。

GNSS 的位置更新率被限制为每秒一次。对于涉及快速运动的嵌入式应用,该更新率不够快。这样的应用有很多,从虚拟现实到材料处理和机器人技术。

GNSS 精度为米级。该分辨率对于许多嵌入式应用而言太过粗糙。

IMU 提供了许多嵌入式应用所需的更精细的定位分辨率和更快的更新率。并且,和 GNSS 接收器提供绝对定位信息相反,IMU 提供距离已知起点的相对位置信息,因此这两种位置传感器可互为补充。IMU 的这些特点使其对于增强直接从 GNSS 接收器获得的定位信息非常有用,请参阅“使用 GNSS 模块快速设计位置跟踪系统”。

IMU 在航空航天工业中的应用已有数十年历史。然而,航空航天用精密 IMU 是基于昂贵的陀螺仪和其他大型传感器,难以应用于对成本更敏感的系统。

现代电子 IMU 已高度集成化,可包含多种类型的传感器——加速计、陀螺仪和磁力仪;其基于微机电系统 (MEMS) 技术,因此体积小、重量轻且相对坚固。这些新一代 IMU 可作为板安装元件提供,经证明非常适合嵌入式应用。

IMU 可提供多种自由度 (DOF),而且与 GNSS 接收器不同,IMU 不依赖无线电信号提供定位数据。IMU 耗电量也极低,来源众多,并具有广泛的分辨率和精度规格可供选择。

借助这些特性,IMU 可用于增强 GNSS 接收器模块提供的定位信息(参见“使用 GNSS 模块快速设计位置跟踪系统”),但还需要大量软件来过滤 IMU 传感器数据,融合 IMU 内部多种类型传感器提供的数据,并利用二重积分根据融合的传感器数据计算位置。

IMU 误差源

多个传感器结合以提高精度是航空航天工业长期以来的常见做法,其中加速计和陀螺仪广泛用于惯性导航系统。在此类系统中,陀螺仪通过角速度变化检测方向,但随着时间推移,陀螺仪往往会漂移,因为它仅检测变化而没有固定的参考系。将加速计数据添加到陀螺仪数据中,可以最大限度地减小陀螺仪偏置,从而得到更准确的位置估计。加速计检测相对于重力的方向变化,该数据可用于给陀螺仪定向。

加速计对于静态(与动态相反)计算更准确。当系统已处于运动状态时,利用陀螺仪检测方向要更好。加速计反应迅速,若只使用该数据,加速计抖动和噪声会产生累积误差。此外,由于重力之类的外力,加速计往往会使加速度失真,这也会作为噪声在系统中累积。

将陀螺仪的长期精度与加速计的短期精度相结合,依靠每种传感器的优势来抵消或至少减轻另一种传感器的弱势,可以获得更精确的方向读数。这两类传感器相互补充。

此时需要融合滤波来减少误差

IMU 软件使用滤波来最大限度地减小 IMU 数据的定位误差。有多种滤波方法可融合传感器数据,每种方法都有不同程度的复杂性。互补滤波是合并多个传感器所提供数据的简单方法。互补滤波是一种将高通陀螺仪滤波和低通加速计滤波相结合的线性函数。因此,加速计数据中的高频噪声会在短期内被滤除,并且被陀螺仪数据平滑。

虽然互补滤波在计算上很简单,但为了实现更好的精度,IMU 现在更喜欢使用卡尔曼滤波之类的更复杂技术。卡尔曼滤波是一种非常受欢迎的递归传感器融合算法,不需要大量处理能力就能构建更精确的定位系统。卡尔曼滤波有多种类型,包括标准卡尔曼滤波、扩展卡尔曼滤波 (EKF) 和无迹卡尔曼滤波 (UKF)。

卡尔曼滤波使用若干数学方程来预测值,并基于以下假设:被滤波的数据为高斯分布形式,对其应用线性方程进行滤波。然而,现实世界中的运动并不像卡尔曼滤波的假设那样中规中矩。实际运动遵循的方程常常涉及非线性的正弦和余弦函数,因此 EKF 采用泰勒级数和高斯分布的单点近似来线性化非线性函数。这些近似可能是重大的误差源。

UKF 使用确定性采样方法来解决此误差问题,生成一组精心选择的采样点来代表数据的预期高斯分布,而不是 EKF 所用的单点近似。这些采样点完全捕获了预期高斯值的真实均值和协方差,从而实现更精确的滤波。

磁力仪误差源

典型 IMU 包含三种不同的传感器:用于测量角速度/速度的陀螺仪、用于测量线性加速度的加速计以及用于测量磁场强度的磁力仪。更具体地说,IMU 的磁力仪测量地球的磁场强度,以确定相对于地磁北极的航向。设计用于导航应用的 IMU 的每类传感器通常有三个,以对应三个正交运动轴。

然而,磁力仪易受硬铁和软铁失真的影响。外部磁场影响导致的地球磁场失真一般分为硬铁效应和软铁效应两种。如果不存在失真效应,将磁力仪旋转 360° 并将结果数据绘制成图,得到的将是一个以 (0, 0) 为中心的圆(图 1)。

图 1:如果附近的铁质材料未引起局部磁场失真,则将磁力仪旋转 360° 并将结果数据绘制成图,得到的将是一个以位置 (0, 0) 为中心的圆。(图片来源:sensorsmag.com)

硬铁和/或软铁效应的存在可能会影响该圆。硬铁效应导致其从位置 (0, 0) 发生简单偏移(图 2)。

图 2:硬铁失真效应导致磁力数据从位置 (0, 0) 发生偏移。(图片来源:sensorsmag.com)

软铁效应使圆变形,产生一个椭圆(图 3)。

图 3:软铁失真效应会扭曲 360° 磁力数据,将其从圆形变为椭圆形。(图片来源:sensorsmag.com)

请注意,硬铁效应和软铁效应可能同时出现。

补偿软铁失真所需的计算量比补偿硬铁失真的计算量要大得多,因此,从 IMU 的磁力仪附近移走软铁材料可能是更有效、更经济的办法。但在很多情况下,这不是一种选择,而需要进行补偿计算。

积分,然后再次积分

最后,加速计和陀螺仪仅提供关于物体上的加速力(线性和旋转)的信息,因此必须将该数据积分两次才能确定位置,因为加速度是物体速度的变化率,而速度是物体位置的变化率。换言之,IMU 陀螺仪和加速计数据提供的是物体绝对位置的二阶导数。

二重积分本身就需要相当多的处理,但对于三维定位,还必须消除重力的加速度影响。对于加速计,重力表现为恒定加速度,导致其数据发生偏移。通常,重力的加速度影响必须在 IMU 和包含 IMU 的物体处于静止状态时,通过校准从系统中消除。

请注意,由于采样误差,这种二重积分会引起误差。采样率越慢,误差越大。

IMU 软件的设计考虑因素

为实际的 IMU 软件实现这些算法时,请考虑以下措施和建议:

IMU 传感器信号有噪声,需要进行数字滤波。通常,IMU 应用中会使用某种卡尔曼滤波。

即使进行滤波,仍不免存在其他误差源,例如耦合到 IMU 的机械噪声,以及上面讨论的硬铁和软铁失真。必须滤除这种噪声,或以其他方式从数据中消除此噪声。

应用开始时,需要在 IMU 处于静止状态时执行校准例程,原因是为了尽可能准确,软件需要知道当物体不运动时传感器读数是多少。运动中物体的实际加速度值等于加速度传感器的当前采样值减去校准值。

校准后,传感器值可以是正数,也可以是负数。因此,保存这些值的变量必须有正负之分。

对传感器数据的采样频率越高,产生的结果越准确,但更多样本将需要更多存储器和更严格的定时要求,还可能涉及到其他硬件考虑因素。

采样周期必须始终完全相同。采样周期不相等会引起数据误差。

样本之间的线性数据拟合(插值)可产生更准确的结果,但也需要更多的处理时间。

从上面的讨论中可以明显看出,根据 IMU 数据确定航向、位置和运动所需的计算并不简单。因此,IMU 供应商常常为其产品提供软件应用包来执行这些计算。例如,STMicroelectronics 开发了MotionFX 库,此库扩展了该公司的可下载 X-CUBE-MEMS1 软件的功能,以包含 IMU 功能。

该库中的软件从加速计、陀螺仪和磁力仪获取数据,并为 STMicroelectronics 的 MEMS 传感器(包括 IMU)提供实时运动传感器数据融合。无论环境条件如何,MotionFX 滤波和预测软件都使用高级算法智能集成来自多个 MEMS 传感器的输出。该库仅针对 STMicroelectronics 的 MEMS IMU 设计,若使用其他供应商的 IMU,无法保证该软件的功能和性能。

MotionFX 库运行在 STMicroelectronics 各种基于 Arm® Cortex®-M0+、Cortex-M3 和 Cortex-M4 处理器内核的微控制器上。当安装在以下开发板上时,有针对 STMicroelectronicsX-NUCLEO-IKS01A2扩展板(图 4)的实例实现供参考:

NUCLEO-F401RE开发板,基于STM32F4MCU,内置 Arm Cortex-M4 处理器内核;

NUCLEO-L476RG开发板,基于STM32L4MCU,内置 Arm Cortex-M4 处理器内核;

NUCLEO-L152RE开发板,基于STM32L1MCU,内置 Arm Cortex-M3 处理器内核;

或NUCLEO-L073RZ开发板,基于STM32L0MCU,内置 Arm Cortex-M0+ 处理器内核。

STMicroelectronics 的 MotionFX 库管理并融合了来自 IMU 的加速计、陀螺仪和磁力仪的数据。该库提供以下例程:

实时、9 轴、运动传感器数据融合(加速计、陀螺仪、磁力仪)

实时、6 轴、运动传感器数据融合(加速计、陀螺仪)

旋转、四元数、重力和线性加速度数据的计算

陀螺仪偏置校准

磁力仪硬铁校准

使用 MotionFX 软件时,STMicroelectronics 建议采用 100 Hz 传感器数据采样频率。

图 4:STMicroelectronics 针对 IMU 的 MotionFX 软件支持其 X-NUCLEO-IKS01A2 扩展板。(图片来源:STMicroelectronics)

MotionFX 库实现了一种传感器融合算法来估计空间中的三维方向。它过滤并融合来自多个传感器的数据,以弥补 IMU 各个传感器的局限性。

清单 1 提供的演示代码显示了启动和运行 STMicroelectronics IMU 所需的操作。

副本 […]#define VERSION_STR_LENG 35 #define MFX_DELTATIME 10 […]/*** Initialization ***/ char lib_version[VERSION_STR_LENG]; char acc_orientation[3]; MFX_knobs_t iKnobs; /* Sensor Fusion API initialization function */ MotionFX_initialize(); /* Optional: Get version */ MotionFX_GetLibVersion(lib_version); MotionFX_getKnobs(&iKnobs); /* Modify knobs settings */ MotionFX_setKnobs(&iKnobs); /* Enable 9-axis sensor fusion */ MotionFX_enable_9X(MFX_ENGINE_ENABLE); […]/*** Using Sensor Fusion algorithm ***/ Timer_OR_DataRate_Interrupt_Handler() { MFX_input_t data_in; MFX_output_t data_out; /* Get acceleration X/Y/Z in g */ MEMS_Read_AccValue(data_in.acc[0], data_in.acc[1], data_in.acc[2]); /* Get angular rate X/Y/Z in dps */ MEMS_Read_GyroValue(data_in.gyro[0], data_in.gyro[1], data_in.gyro[2]); /* Get magnetic field X/Y/Z in uT/50 */ MEMS_Read_MagValue(data_in.mag[0], data_in.mag[1], &data_in.mag[2]); /* Run Sensor Fusion algorithm */ MotionFX_propagate(&data_out, &data_in, MFX_DELTATIME); MotionFX_update(&data_out, &data_in, MFX_DELTATIME, NULL); }

清单 1:演示代码显示了如何使用 MotionFX 库来从该公司的 X-NUCLEO-IKS01A2 扩展板上的 IMU 元件提取信息。(代码来源:STMicroelectronics)

该演示软件的流程图如下所示(图 5)。

图 5:此流程图说明了清单 1 中的 MotionFX 演示代码所使用的步骤顺序,以便从 STMicroelectronics 的 X-NUCLEO-IKS01A2 扩展板提取数据,并将数据融合成三维空间方向。(图片来源:STMicroelectronics)

请注意,陀螺仪数据可能会漂移,导致三维空间方向估计的精度降低。MotionFX 软件可以使用磁力仪数据(提供绝对方向信息)来补偿这种降级情况。同时,磁力仪不能以高速率产生航向数据,而且磁力仪会遭受磁干扰,但陀螺仪数据可以弥补磁力仪的这些弱点。

MotionFX 软件的 9 轴传感器融合计算使用来自加速计、陀螺仪和磁力仪的数据,提供三维空间中的绝对方向,包括航向(相对于地磁北极)。

MotionFX 软件的 6 轴传感器融合计算仅使用加速计和陀螺仪的数据。此操作级别对计算的要求较低,并且不提供关于绝对方向的信息,但该例程比 9 轴例程运行得更快。6 轴传感器融合适合测量快速运动,例如游戏或固定机器人,另外也可用在不需要绝对方向的场合。

总结

IMU 在嵌入式应用中非常有用,可以自行提供位置和航向信息。IMU 也可用于增强 GNSS 接收器信息,以提高定位精度或更新率。然而,将 IMU 集成到嵌入式系统中需要大量软件,IMU 供应商常常会提供相关软件,以帮助实现这些器件的实际应用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GNSS
    +关注

    关注

    9

    文章

    949

    浏览量

    50720
  • IMU
    IMU
    +关注

    关注

    6

    文章

    403

    浏览量

    47600
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    求助!IMU选刚性还是柔性?复杂场景快愁哭了

    #IMU选型 #工程监测 做老旧隧道监测的来求助!之前用刚性IMU,隧道里有震动就容易飘数据,换了两台都没解决,老板快把我骂哭了? 听朋友说全柔性IMU靠谱,说能像创可贴一样贴在隧道壁上,抗震动抗
    发表于 11-25 17:02

    压电纳米旋转台用于精度IMU的出厂标定

    在无人机精准悬停、自动驾驶汽车平稳过弯的背后,有一颗至关重要的核心处理器 - 惯性测量单元(IMU)。它的精度,直接决定了智能设备感知自身姿态的准确度。一颗高精度IMU,其卓越性能离
    的头像 发表于 10-30 10:56 150次阅读
    压电纳米旋转台<b class='flag-5'>用于</b>高<b class='flag-5'>精度</b><b class='flag-5'>IMU</b>的出厂标定

    IMU+多相机高速联合自动标定方案

    随着视觉惯性传感器在自动驾驶、机器人、AR/VR 等领域规模化落地,多相机+IMU 联合标定需求呈爆发式增长,多相机+IMU 联合标定领域尚属空白。 感算商城联合知名方案公司推出国内首台量产级
    发表于 10-23 14:04

    保持平衡及运动控制:人形机器人 IMU 芯片推荐

    电子发烧友网综合报道 目前,人形机器人对 IMU(惯性测量单元)芯片的需求主要集中在高实时性、高精度、小尺寸、低功耗等方向,尤其适用于姿态控制、平衡维持、导航定位与动作执行等关键场景。
    的头像 发表于 09-23 09:08 3010次阅读

    电缆故障预警与精确定位装置所涉及的技术原理

    电缆故障通常会伴随着如电、热、声、光等多种物理信号变化,电缆故障预警与精确定位装置通过传感器设备捕获这些信号并提取特征,可实现故障预警与定位。通过结合传感器、信号处理、人工智能等多种技术,构建“监测
    的头像 发表于 08-20 09:19 681次阅读
    电缆故障预警与<b class='flag-5'>精确定位</b>装置所涉及的技术原理

    IMU精度对无人机姿态控制意味着什么?

    IMU精度对无人机姿态控制至关重要,是决定无人机飞行稳定安全、响应性和任务执行能力的关键因素之一, IMU(包含三轴加速度计和三轴陀螺仪)是飞控系统实时估算无人机姿态(俯仰、横滚、偏航角)的核心
    的头像 发表于 07-25 17:01 550次阅读

    使用高精度IMU对无人机系统有何提升?

    在无人机自主飞行的核心技术链条中,惯性测量单元(IMU)的精度与可靠性直接决定了整机的控制上限。高精度IMU对无人机系统的提升是全方位的,尤其在导航
    的头像 发表于 07-21 15:39 538次阅读

    IMU 能为无人机提供什么数据?

    无人机在进行任何形式的飞行时,必须了解空中平台的方向、其运动的性质以及飞行方向。 通常用于测量此运动的是IMUIMU提供无人机在横滚、俯仰和偏航方面的加速度和角速度数据。常见应用包括控制和稳定、测量和测试。
    的头像 发表于 07-15 15:05 649次阅读

    寻北级别精度的MEMS IMU

    由地球磁场决定,位置不固定。 ER-MIMU-041是精度达到寻北级别的MEMS IMU,代表了微型化与高精度寻北的突破性结合,在GPS或磁力计不可用的场景中尤为实用,例如在地下环境或存在磁干扰的区域。尤其适
    的头像 发表于 07-08 15:52 468次阅读

    为什么高端无人机不会在IMU精度上妥协?

    姿态控制精度与系统集成度现已成为制约无人机性能提升的关键瓶颈。无人机通过IMU集成的陀螺仪与加速度计,实现对三维空间姿态(角速度、加速度)数据的实时测量,数据传递至飞控系统,能得到无人机的姿态、速度、位移等信息,无人机稳定飞行的
    的头像 发表于 07-07 16:16 417次阅读

    水平定向钻孔(HDD)如何依赖IMU实现非开挖精准穿越?

    在水平定向钻孔这类复杂地下工程领域,精确的姿态和方位测量直接决定着钻井效率与轨迹精度。ER-MIMU-091 MEMS IMU 专为严苛的石油钻井、开采及水平定向钻孔(HDD)环境设计,相比光纤陀螺
    的头像 发表于 07-04 11:35 786次阅读
    水平定向钻孔(HDD)如何依赖<b class='flag-5'>IMU</b><b class='flag-5'>实现</b>非开挖精准穿越?

    用于无人机的 IMU 有哪些要求?

    惯性测量单元(IMU)作为无人机飞行时运动感知的核心部件,它通过整合陀螺仪、加速度计,有时还包括磁力计、气压计等多种传感器的数据,全面掌握无人机的运动状态。这些信息对于飞行控制、姿态稳定和导航至关重要。 因此,选择一个适合无人机的IMU是非常重要的,其性能直接影响无人机
    的头像 发表于 07-04 11:33 997次阅读
    适<b class='flag-5'>用于</b>无人机的 <b class='flag-5'>IMU</b> 有哪些要求?

    这款微型MEMS IMU如何做到战术级测量?

    在无人机、机器人、无人车辆等智能设备快速发展的今天,高精度姿态测量和稳定控制成为核心需求。然而,传统惯性测量单元(IMU)往往面临体积大、重量重、环境适应性差等痛点。ERICCO
    的头像 发表于 06-27 16:10 426次阅读

    EPSON的IMU M-G330PDG0可应用于测绘巡检机载挂载

    在当今快速发展的无人机技术领域,测绘巡检机载挂载已成为实现高效、精确地理信息采集的关键工具。随着城市化进程的加快和基础设施的日益复杂,对于高精度、高稳定性的测绘需求日益增长,这使得IMU
    的头像 发表于 03-05 17:38 692次阅读
    EPSON的<b class='flag-5'>IMU</b> M-G330PDG0可应<b class='flag-5'>用于</b>测绘巡检机载挂载

    精度IMU助力石油矿业精准作业

    在石油、矿业等行业中,技术革新是推动发展的关键。IMU作为核心传感器技术,能够实时测量物体的角速度和加速度,提供关键的数据支持。为此,我们专为石油矿业推出了一款IMU ER-MIMU-09,旨在助力测井、采矿等作业实现
    的头像 发表于 12-17 17:31 817次阅读
    高<b class='flag-5'>精度</b><b class='flag-5'>IMU</b>助力石油矿业精准作业