电子说
惯性测量装置 (IMU) 可广泛用于从加速计、陀螺仪及其他传感器持续稳定地提供多轴位置信息。鉴于多自由度 (DOF) 特性,所有生成数据(即来自这些设备的合并数据流)会使系统处理器一直处于唤醒模式,并且由于要筛选原始 IMU 数据来提取有用的手势和系统位置信息,因此使它们不堪重负。设计人员需要设法为主处理器减负,让其不再承担此类筛选功能。而机器学习则可能解决这一问题。
本文将首先简要介绍 IMU 的用途,接着介绍 STMicroelectronics 的 LSM6DSO。然后,借此器件阐释在 IMU 中添加和集成机器学习与决策树处理功能后,为何能为主机应用处理器分担实时位置和运动处理,以及如何在实际应用中使用这些功能。
IMU 简介
IMU 将各种运动传感器集成到一个器件中,可提供高精度定位信息。IMU 可用于各种应用,包括消费(手机)、医疗(成像)、工业(机器人)和军工(航向跟踪)。该装置对传感器的运动作出响应,包含以下一种或多种运动传感器类型:
陀螺仪传感器测量角度位置变化,通常以每秒度数表示。随时间进行角速度积分可测得行程角度,用于追踪方向变化。陀螺仪追踪与重力无关的相对运动,因此来自传感器偏置或积分的误差会造成称为“漂移”的位置误差,但可以通过软件进行补偿。
加速计测量线性加速度,包括设备运动造成的加速度分量和重力造成的加速度。加速度的测量单位为 g,1 g = 地球重力 = 9.8 米/秒2。加速计分为单轴、双轴和三轴,分别定义为 X、Y、Z 坐标系。
磁传感器测量磁场强度,通常以微特斯拉 (µT) 或高斯(100 µT = 1 高斯)为单位。移动电子设备中最常用的磁传感器是三轴霍尔效应磁力仪。通过计算检测到的地球磁场角度,并将此测量的角度与加速计测量的重力进行比较,即可非常精确地测量出设备相对于地磁北极的航向。
使用 IMU 的运动追踪功能采用了传感器融合技术,根据已知的起点和方向,推导单一、高精度的相对设备方向和位置的估计值。传感器融合多通过软件,使用 IMU 制造商或应用开发人员开发的复杂数学算法来组合 IMU 的各种运动传感器输出。
使用传感器融合进行位置计算可得到以下测量结果:
重力– 具体而言地球重力,不含设备感应到的由运动造成的加速度。当 IMU 静止时,加速计测量重力矢量。当 IMU 运动时,重力测量需要融合加速计和陀螺仪的数据,并减去运动造成的加速度。
线性加速度– 等于加速计测得的设备加速度,但要通过软件减去重力矢量。IMU 线性加速度可用于测量三维空间中的运动。
方向(海拔)– 欧拉角集合,包括偏航角、俯仰角和翻滚角,测量单位为度。
旋转矢量– 由加速计、陀螺仪和磁力仪传感器的数据组合得出。旋转矢量表示围绕特定轴的旋转角度。
IMU 误差源
陀螺仪通过角速度变化检测方向,但随着时间推移,陀螺仪往往会漂移,因为它仅检测变化而没有固定的参照系。若将加速计数据添加到陀螺仪数据中,软件可以最大限度地减小陀螺仪偏置,从而得到更准确的位置估计。加速计检测相对于重力的方向变化,该数据可用于给陀螺仪定向。
加速计对于静态(与动态相反)计算更准确。当系统已处于运动状态时,利用陀螺仪检测方向要更好。加速计反应迅速,若只使用该数据,加速计抖动和噪声会产生累积误差。此外,由于重力之类的外力,加速计往往会使加速度失真,这也会作为噪声在系统中累积。对此数据进行滤波可提高精度。
若将陀螺仪的短期精度与加速计的长期精度相结合,依靠每种传感器的优势来抵消或至少减轻另一种传感器的劣势,可以获得更精确的方向读数。两种传感器类型的互补有助于减少误差,但还有其他方法可用来减少误差。
融合滤波可用来减少误差
IMU 软件使用滤波来最大限度地减小 IMU 数据的定位误差。有多种滤波方法可融合传感器数据,每种方法都有不同程度的复杂性。互补滤波结合了高通陀螺仪滤波和低通加速计滤波。因此,加速计数据中的高频噪声会在短期内滤除,并且采用陀螺仪数据进行平滑处理。
执行所有这种传感器处理、滤波和融合所需的计算能力耗能较大;对于电池供电型系统,尤其是不需要 IMU 信息连续传输时,这可能是个问题。对于许多嵌入式应用,如果 IMU 可以生成中断,将主机处理器从休眠模式唤醒,从而启动处理或采取某些中断结果操作,即可明显降低功耗。为了实现此功能,一些 IMU 供应商开始在 IMU 中加入处理和决策功能。
让 IMU 进行思考
STMicroelectronics 的 6DOF LSM6DSO 就是一款这样的 IMU。6DOF LSM6DSO 包含三个微机电系统 (MEMS) 陀螺仪和三个 MEMS 加速计,可以检测方向变化和手势,无需主机处理器的监管或辅助,所有这些功能都在板上处理。在最高性能模式下运行时,该 IMU 的功耗为 0.55 毫安 (mA)。
在此模式下,LSM6DSO 可以持续监测自身在空间中的海拔高度和运动,并且可以在预定条件下生成中断,唤醒主机处理器来执行传感器流的额外处理。使用始终保持运转的低功耗 IMU 很有效,因为它让主机处理器休眠,仅在必要时唤醒。这种节能方法在电池供电型系统中是值得尝试和信赖的。
除了陀螺仪和加速计传感器之外,LSM6DSO IMU 还包含一个信号调节和滤波器模块、一个最多可运行 16 个程序的有限状态机 (FSM)(所有程序共享可配置的通用输出数据速率)以及一个机器学习内核。结合使用这些资源,可以在以下情况下生成事件检测中断:
自由落体
唤醒
6DOF 方向
单击和双击检测
活动/非活动识别
静止/运动检测
信号调节块应用存储在灵敏度寄存器中的转换系数,换算原始传感器数据。然后,将原始 IMU 传感器数据流转换为 16 位半精度浮点 (HFP) 格式,以便 FSM 可以理解。IMU 的 MEMS 传感器(加速计和陀螺仪)以及两个模数转换器 (ADC) 和四个滤波器块如图 1 所示。滤波器块用于将 MEMS 传感器的模拟信号转换为滤波后的数字数据流。
可编程 FSM 由一个配置块和 16 个程序块组成。FSM 配置块对整个 FSM 进行配置和控制。对于 16 个 FSM 程序块,每个块都由输入选择器块和代码块组成(图 2)。这两个块都由写入 IMU 内部寄存器的数值来控制。
输入选择器块将选定的输入数据从一个 IMU 内部传感器或连接到 IMU 传感器中枢的外部传感器发送到代码块。IMU 传感器中枢可以容纳多达四个额外的外部传感器,如磁力仪,这些外部传感器可通过 I2C 端口连接到 IMU。
全部0条评论
快来发表一下你的评论吧 !