IMU:通过机载机器学习让您的主人入睡

惯性测量单元(IMU)广泛用于从加速度计,陀螺仪和其他传感器提供稳定的多轴位置信息流。利用所有生成数据的多自由度(DOF),来自这些设备的合并数据流可以使系统处理器保持恒定的唤醒模式,并在筛选原始IMU数据时对其征税,以提取有用的手势和系统位置信息。设计人员需要的是一种从主处理器卸载此筛选功能的方法。机器学习可能就是答案。
IMU使用的简要概述之后,本文介绍了六自由度LSM6DSO来自意法半导体。然后,它使用此设备显示如何将机器学习和决策树处理添加和集成到IMU中,以便从主机应用程序处理器卸载实时位置和移动处理,以及如何在实际应用程序中使用这些功能。

快速的IMU审查

IMU将多个运动传感器集成到一个设备中,并且可以提供高精度的定位信息。它们可用于各种应用,包括消费者(移动电话),医疗(成像),工业(机器人)和军事(头部跟踪)。它们对传感器的运动做出反应,并包含以下一种或多种运动传感器类型:
  • 陀螺仪传感器测量角位置变化,通常以每秒度数表示。随时间积分角速率导致测量的行进角度,其可用于跟踪方向的变化。陀螺仪独立于重力跟踪相对运动,因此传感器偏置或积分的误差会导致称为“漂移”的位置误差,这可以通过软件进行补偿。
  • 加速度计测量线性加速度,包括由于重力引起的设备运动和加速度引起的加速度分量。加速度单位为g,其中1 g =地球的重力= 9.8米/秒2。加速度计有一个,两个或三个轴,可定义X,Y,Z坐标系。
  • 磁传感器测量磁场强度,通常以microTeslas(μT)或Gauss(100μT= 1 Gauss)为单位。用于移动电子设备的最常见的磁传感器是三轴霍尔效应磁力计。通过计算检测到的地球磁场的角度,并将该测量的角度与由加速度计测量的重力进行比较,可以高精度地测量设备相对于磁北的航向。
使用IMU的运动跟踪采用传感器融合来从已知的起始点和方向导出相对设备方向和位置的单个高精度估计。传感器融合通常采用软件结合IMU的各种运动传感器输出,使用由IMU制造商或应用程序开发人员开发的复杂数学算法。
使用传感器融合的位置计算可以产生以下测量:
  • 重力 - 特别是地球的重力,它排除了设备所经历的运动引起的加速度。当IMU静止时,加速度计测量重力矢量。当IMU处于运动状态时,重力测量需要融合来自加速度计和陀螺仪的数据并减去由运动引起的加速度。
  • 线性加速度 - 相当于加速度计测量的设备加速度,但使用软件减去重力矢量。IMU线性加速度可用于测量三维空间中的运动。
  • 方向(姿态) - 以度为单位测量的欧拉角集合,包括偏航(方位角),俯仰和滚转。
  • 旋转矢量 - 来自加速度计,陀螺仪和磁力计传感器的数据组合。旋转矢量表示围绕指定轴的旋转角度。

IMU错误的来源

陀螺仪通过角速度变化来感知方向,但它们往往会随着时间的推移而漂移,因为它们只能感知变化并且没有固定的参照系。将加速度计数据添加到陀螺仪数据允许软件最小化陀螺仪偏差以获得更准确的位置估计。加速度计检测相对于重力的方向变化,并且该数据可用于定向陀螺仪。
加速度计对于静态(与动态相反)计算更准确。当系统已经运动时,陀螺仪更好地检测方向。加速度计反应迅速,因此当单独使用数据时,加速度计抖动和噪声会产生累积误差。另外,加速度计倾向于由于诸如重力之类的外力而扭曲加速度,该重力也作为噪声累积在系统中。过滤此数据可提高准确性。
将陀螺仪的短期精度与加速度计的长期精度相结合,可以依靠每个传感器的强度来消除或至少减少其他传感器的弱点,从而获得更精确的定向读数。两种传感器类型相互补充以帮助减少错误,但还有其他方法可以减少错误。

融合滤波需要减少错误

IMU软件使用过滤来最小化IMU数据的定位误差。可以使用几种融合传感器数据的过滤方法,每种方法都具有不同程度的复杂性。互补滤波器结合了高通陀螺仪滤波器和低通加速度计滤波器。因此,加速度计数据中的高频噪声在短期内被滤除并且被陀螺仪数据平滑。
执行所有这些传感器处理,过滤和融合所需的计算能力消耗能量,这可能是电池供电系统中的问题,尤其是当不需要IMU信息作为连续流时。对于许多嵌入式应用,如果IMU可以产生中断,将主机处理器从睡眠模式唤醒,以便它可以启动处理或由于中断而采取某些操作,则可以实现显着的功耗节省。为了实现此功能,一些IMU供应商开始在其IMU中加入处理和决策功能。

让IMU进行思考

意法半导体的6DOF LSM6DSO就是这样一种IMU。它包含三个微机电系统(MEMS)陀螺仪和三个MEMS加速度计,可以检测方向变化和手势,无需主机处理器的监督或协助,所有这些都使用板载处理。IMU在其最高性能模式下运行时消耗0.55毫安(mA)。
在这种模式下,LSM6DSO可以连续监视自己在空间中的姿态和移动,并且可以在预先安排的条件下产生中断,唤醒主机处理器对传感器流执行额外处理。使用始终保持可操作的低功耗IMU是有益的,因为它让主机处理器休眠,仅在必要时唤醒它。这是一种在电池供电的系统中节省能源的可靠且可靠的方法。
除了陀螺仪和加速计传感器之外,LSM6DSO IMU还包含一个信号调理和滤波器模块,一个可以运行多达16个程序的有限状态机(FSM) - 所有程序共享一个通用的,可配置的输出数据速率 - 以及机器学习核心。这些资源一起使用,可以为以下条件生成事件检测中断:
  • 自由落体
  • 醒来
  • 6DOF方向
  • 单击并双击感应
  • 活动/不活动识别
  • 静止/运动检测
信号调节模块应用存储在其灵敏度寄存器中的转换因子来缩放原始传感器数据。然后,它将原始IMU传感器数据流转换为FSM可以理解的16位半精度浮点(HFP)字节格式。IMU的MEMS传感器(加速度计和陀螺仪)以及两个模数转换器(ADC)和四个滤波器模块如图1所示。滤波器模块用于将模拟MEMS传感器信号转换为滤波后的数字数据流。
STMicroelectronics LSM6DSO IMU图
图1:LSM6DSO IMU使用两个ADC将模拟信号从其内部MEMS加速度计和陀螺仪转换为数字流。ADC之后是四个数字滤波器,用于调节信号,以便由内部FSM和机器学习内核以及主机处理器进行决策。(图片来源:STMicroelectronics)
可编程FSM由配置块和16个程序块组成。FSM的配置块配置和控制整个FSM。每个FSM的16个程序块由输入选择器块和代码块组成(图2)。这两个块都由写入IMU内寄存器的值控制。
FSM在STMicroelectronics LSM6DSO IMU中的16个程序块图
图2:LSM6DSO IMU中每个FSM的16个程序块由输入选择器块和代码块组成。(图片来源:STMicroelectronics)
输入选择器块将选定的输入数据从IMU的一个内部传感器或连接到IMU传感器集线器的外部传感器路由到代码块。IMU的传感器集线器可以容纳多达四个额外的外部传感器,例如磁力计,它们通过I 2 C端口连接到IMU 。
FSM的代码块包含一个状态机程序。程序块的数据部分的固定部分由六个字节组成,这些字节定义程序的阈值,滞后,掩码和定时器设置的数量。程序块的可变数据部分保存每个程序的实际阈值,滞后,掩码和定时器设置,由存储在数据部分的固定部分中的值定义。
数据部分的固定部分还定义了代码块的存储器占用空间的可变部分的大小,可编程复位向量和程序计数器。因为这些都是8位值,所以每个FSM程序限制为256个字节。
程序块的指令部分包含实际的FSM程序。程序指令包括用于检查传感器输入与阈值,检查过零点以及检查定时器值以进行超时比较的操作码。操作码指定从当前FSM状态传递到下一个FSM状态所需的条件。此外,还有命令操作码用于选择存储在程序的可变数据部分中的阈值和掩码; 用于设置IMU的传感器集线器多路选择器以连接到四个可能的外部传感器之一; 并断言中断。
每个FSM程序可以产生中断,并且可以根据所选择的输入信号修改相应寄存器值的内容。这些寄存器值用于将数据从IMU传递到主机处理器。
将FSM视为微处理器减去算术逻辑单元是有用的。FSM可以进行选择,执行比较,并可以根据这些比较做出有关其下一个状态的决策。它不会计算除比较的布尔结果之外的值。
FSM不是微处理器。它可以根据这些比较进行比较并对程序流程进行简单的更改。因为它是一台简单的机器,所以它直接用FSM操作码编程。FSM没有高级语言编译器,但程序通常非常简单,不需要编译器。

使用FSM

可以对LSM6DSO IMU的FSM进行编程,以生成由预定义运动模式激活的中断信号。FSM可以运行多达16个同步的独立程序来检测运动。每个FSM程序由一系列if-then-else步骤组成,并使用来自LSM6DSO的加速度计和陀螺仪的传感器流作为输入。如果任何FSM程序检测到与其预编程模式匹配,则FSM可以向主机处理器生成中断。
16个可能的FSM程序中的每一个都包含三个用于固定数据,可变数据和指令的存储器部分。单个FSM程序框图如图3所示。
STMicroelectronics LSM6DSO IMU中的FSM图
图3:STMicroelectronics中的FSM LSM6DSO IMU包含16个代码块,每个代码块包含三个用于固定数据,可变数据和指令的存储器部分。(图片来源:STMicroelectronics)
代码块中单个程序的结构由一块内存块中的三个部分组成:
  • 固定数据部分,对于所有FSM程序具有相同的大小
  • 可变数据部分,其大小可以变化
  • 指令部分,包含条件和命令
对每个FSM代码块进行编程涉及使用编程值加载三个存储器部分,以确定FSM的行为。意法半导体在其可下载的Unico评估开发软件和开发环境中提供FSM编程工具。意法半导体还将Unico开发工具中的几个FSM程序示例包含在内,以帮助学习如何对FSM进行编程。这些示例程序演示了几种基于IMU的中断场景,包括:
  • 一个基本的计步器
  • 系统在自由落体
  • 简单的运动检测
  • 系统已被拿起
  • 系统已经动摇了
  • 系统已停止移动(静止)
  • 手腕倾斜
示例FSM程序示例演示了各种FSM功能的使用。任何这些示例程序都可以安装到IMU演示平台中,例如STEVAL-MKI109V3 eMotion STM32评估板,它具有28针插座,可插入LSM6DSO STEVAL-MKI197V1 IMU适配器板。使用其中一个示例程序对STEVAL-MKI109V2板进行编程只需在Unico开发环境中点击几下即可。
然而,对于LSM6DSO来说,还有更多的东西比满足眼睛要多。

机器学习核心

The LSM6DSO IMU also incorporates a more sophisticated and programmable pattern matching engine called the machine learning core. This can identify classes of movement using the multiple sensor data streams from the internal IMU sensors and any attached external sensors. Recognizable event classes include stationary (no movement), walking, jogging, biking, and driving. Classification takes the form of decision trees within the machine learning core.
机器学习核心由三个块组成:传感器数据块,计算块和决策树(图4)。机器学习核心的传感器数据块聚合来自IMU内部加速度计和陀螺仪以及通过I 2 C接口连接到IMU的任何外部传感器的数据流。计算块可以使用预定义的滤波参数来过滤传感器数据,并计算窗口统计,包括传感器数据的均值,方差,峰峰值幅度,最小值,最大值和过零点。决策树将计算的传感器数据统计与阈值进行比较以对输入数据进行分类。
STMicroelectronics LSM6DSO IMU中的机器学习核心图
图4:STMicroelectronics LSM6DSO IMU中的机器学习核心由三个块组成:一个传感器数据块,用于聚合来自内部和外部传感器的数据流;一个计算块,用于过滤传感器数据并计算传感器数据的统计数据,以及一个决策根据计算的统计信息对事件进行分类的树。(图片来源:STMicroelectronics)
与LSM6DSO的FSM一样,Unico开发环境中的专用工具用于对IMU的机器学习核心进行编程。
有限状态机和机器学习核心也可以与主处理器结合使用,以实现更复杂的位置跟踪算法。可下载的STMicroelectronics X-CUBE-MEMS1软件包用于该公司的STM32Cube开发系统,  包括以下示例软件程序:
  • 活动识别 - 提供有关用户正在执行的活动类型的信息,包括保持静止,步行,快走,慢跑,骑自行车或驾驶。该算法通常可用于移动电话或某种可穿戴设备。
  • 运动持续时间检测 - 当与计步器数据结合使用时,运动持续时间检测可用于确定用户活动的秒数。该算法通常可以在可穿戴设备中用于健身或健康跟踪。
  • 振动或运动强度检测 - 提供有关用户运动强度的信息,并可区分0(静止)到10(短跑)范围内的运动强度。该算法通常可以用在移动电话或某种可穿戴健身设备中。
  • 携带位置识别 - 提供有关用户如何携带设备的信息,并可以区分以下位置:桌面,手,头部,衬衫口袋,裤子口袋,夹克口袋,以及握在一个摆臂上。该算法通常可以用在移动电话或某种其他类型的携带设备中,用于与活动相关的上下文检测。

结论

由于主处理器的功耗相对较高,因此需要保持主处理器运行以维持定位并检测来自IMU数据的移动和手势,这对于使用电池供电的嵌入式设计来说是难以实现的目标。然而,具有足够的板载处理以执行机器学习的新一代低功率IMU可以通过允许主机处理器在低电流模式下睡眠直到需要来解决该问题。

用户喜欢...

利用AI、云计算和机器学习保护濒危物种 西澳大利亚大学获微软资助

据zdnet报道,西澳大利亚大学(UWA)DNA动物园计划获得微软公司的资助,该项目旨在帮助保护100多万种濒临灭绝的动植物物种。 DNA动物园是一项全球性倡议,涉及8个国家的55多名合作伙伴。作为该...


人工智能和机器学习将如何为数据中心提供帮助

有些人认为,人工智能(AI)理解和解决问题时近乎具有神秘的力量。而人工智能广泛应用于人们日常生活的许多领域,因此,实现这一目标的硬件开始在数据中心中应用。 数据中心本身存在一系...


9个机器学习成功案例的内部视角

人工智能(AI)和机器学习(ML)曾经被认为是企业的空头支票之类的项目,如今已经成为应用主流。 越来越多的企业正在利用这种模仿人类思维行为的技术来吸引客户,并加强业务运营。 在调研机...


为什么物联网需要人工智能才能成功?为什么机器学习很重要?

物联网将产生海量数据这些数据可以帮助城市预测事故和犯罪;让医生实时了解起搏器或生物芯片的信息;通过对设备和机械进行预测性维护,实现跨行业的最佳生产效率;创建真正智能的家用电...


未来3-5年内哪个方向的机器学习人才紧缺?

基本简介 撇开学术界需求因为大部分人最终不会从事算法研究,而会奋斗在一线应用领域。相较而言,工业界对人才的需求更加保守。这受限于很多客观因素,如硬件运算能力、数据安全、算...


阿里巴巴实验:机器学习如何将生产率提高70%

机器学习和人工智能可以为仓库管理带来什么? 对于真正愿意接受技术新发展的行业,机器学习和人工智能可以是革命性的。它实际上意味着机器人能够承担通常分配给人类的任务。这种技术...


AI 圣经 PRML《模式识别与机器学习》官方开源了!

红色石头相信任何一个搞机器学习、深度学习的人都应该听说过一本经典教材:《Pattern Recognition and Machine Learning》,中文译名《模式识别与机器学习》,简称 PRML。出自微软剑桥研究院实验室...


Python 为基础的机器学习实战编程书籍:《机器学习实战》+ 源代码下载

给大家介绍一本以 Python 为基础的机器学习实战编程书籍:《机器学习实战》。 本书特色: 本书的目录如下: 本书第一部分主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了...


16 张机器学习速查表,值得收藏!

在机器学习、深度学习研究中,优秀的参考资料和手册往往能够助我们事半功倍!今天给大家推荐一个在 GitHub 上非常受欢迎的项目:cheatsheets-ai,涉及 AI 领域完整的速查表。目前,该项目已收...


中文版 火爆 GitHub 的《机器学习 100 天》

给大家介绍一个在 GitHub 上非常火的机器学习实战项目,叫做 100-Days-Of-ML-Code,中文名为《机器学习 100 天》。目前该项目已经收获了 1.7w stars 了。下面是项目地址: https://github.com/Avik-Jain/100-D...


吴恩达在斯坦福开设的机器学习课 CS229

,是很多人最初入门机器学习的课,历史悠久,而且仍然是最经典的机器学习课程之一。当时因为这门课太火爆,吴恩达不得不弄了个超大的网络课程来授课,结果一不小心从斯坦福火遍全球,...


2019 年最佳机器学习和深度学习书籍的名单

想入门深度学习吗?我尽了我最大的努力整理了这份知识清单。希望能够节省你的时间,对你有所帮助。 这里是 2019 年最佳机器学习和深度学习书籍的名单: 《深度学习》by Ian Goodfellow, Yoshu...


推荐一份绝佳的机器学习入门完备资料

机器学习、深度学习如何更好、更有效率地学习?不外乎两点:一是需要一份较完备的入门路线;二是教程与代码相结合提升学习效率。今天给大家推荐一份绝佳的机器学习入门完备资料,内容...


李宏毅上线了 2019 最新版的机器学习课程,授课语言为中文,且全部开放了课程视频

吴恩达、李飞飞、林轩田,他们的机器学习、深度学习公开课都干货满满,惠及很多学者。而另外一位大咖李宏毅,其语言幽默风趣、内容丰富,教授的机器学习公开课更让大家喜爱、受益良多...


快速高效地实施网络边缘机器学习

机器学习正在从云端转移到网络边缘,目的是进行实时处理、降低延迟、提高安全性、更高效地使用可用带宽以及降低整体功耗。而处于这些边缘节点上的物联网 (IoT) 设备只有有限的资源,因...


面向机器学习和通信的嵌入式FPGA优化

我回到了Burrous B 5500和IBM 360大型机,所以图表 (图1) 在里面 阿克罗瓦氏 包括vax-11/780的Speedcore第4代演讲吸引了我的眼球。该图突出了90年代业绩的加速增长和世纪之交后的平稳增长。我们现在正...