ICM20948 DMP代码详解(1)

序言

接触Invensense的芯片这已经是第三次了。2015年在第二空间的时候第一次接触它的芯片,那时候是MPU9250;2021年的时候在智橙动力再一次接触到了MPU6050,那个时候用到了其中的DMP;这次接触的是ICM20948,按目前笔者理解,它是MPU9250的更新换代(不一定准确),也要使用到其DMP功能。

其实在几年前玩MPU6050的时候,就想把其DMP细节研究明白,哪怕是研究其中一部分并形成文档也是好的。但是当时太忙了,实在没有时间付诸实施。现在兜兜转转又回来了,正所谓事不过三,这次一定要留一些东西了。

DMP介绍

1. 什么是DMP?

DMP全称Digital Motion Processor,中文译为数字运动处理器;也有的翻译为Digital Motion Processing,即数字运动处理。DMP是Invensense公司针对其产品推出的软件包,能直接输出四元数,可以减轻外围微处理器的工作负担且避免了繁琐的滤波和数据融合,适用于MPU6050、MPU6500、MPU9150、MPU9250等传感器。

DMP技术的核心在于实现传感器数据的融合,通过算法将不同传感器的输出进行整合,以获取更准确、更稳定的姿态信息。

2. ICM20948中的DMP

ICM20948内置的DMP可以处理来自陀螺仪、加速度计和磁力计的数据,通过卡尔曼滤波或其它优化算法,消除噪声,提高动态性能,实现精确的六自由度姿态估计(俯仰、翻滚和偏航角)。

在ICM20948的芯片手册中,对于DMP做了介绍(参见笔者文章ICM-20948芯片详解(4)_icm20948-CSDN博客):

3. 什么是eMD?

The Embedded Motion Driver(eMD,嵌入式运动驱动程序)是传感器驱动层的嵌入式软件栈,可以轻松配置和利用InvenSense运动跟踪解决方案的许多功能。Invensen发布的eMD实现了多种传感器融合算法,供客户使用,如四元数生成和手势检测。

eMD被设计为一种可以轻松移植到大多数MCU的解决方案。随着eMD 20X48的发布,它包括一个完整的9轴解决方案,包括传感器融合、校准和通用手势检测,所有这些都在DMP上运行。eMD发布包包含一个示例项目,该项目基于ARM M4的裸金属ST Discovery评估板。

更多内容请看下回。

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值