atbf中imu数据的读取与处理方式

news2024/11/20 18:38:49

一、说明

本文为作者在阅读atbf源码的过程中,对atbf中imu数据的读取和处理方式的个人理解,可能存在不对之处,意在抛砖引玉,请各位老师多多指正;

二、数据读取流程图

1、target

NEUTRONRCF435SE
不同的target所定义的一些功能稍有不同,比如是否使用外部中断,是否使用dma等

2、imu型号

icm42688
与target同理,不同的imu的型号也会有不同的处理方式,所以这里说明指定的型号;

3、imu读取流程图

在这里插入图片描述

三、存在的疑问

(1)后台程序是否知道imu数据被更新?

推断:否
由于dataReady的这个标志位没有程序在check,所以后台程序并不知道imu数据被更新;
在这里插入图片描述

(2)后台程序是否每次在imu触发中断之后获取imu数据?

推断:否
下面是mpuGyroReadSPI函数的部分截图,也是每次后台任务调度器最终调取imu read函数,这个函数只是从内存拷贝了imu的原始数据;
而调度器调用imu read与imu触发中断完全是异步的;
在这里插入图片描述

(3)每次pid循环过程中,是否获取最新的imu数据;

推断:是
虽然中断和read是异步,但是内存中时刻存放的都是最新的imu数据;
每次任务调度器需要运行pid时,就去内存中捞取imu数据;
而捞取到的imu数据的时间戳,就是距离运行pid时间最近的一次时间戳,从而保证了控制的实时性;

(4)如何实现imu数据的内存保护?

补充:imu数据的内存一方面被dma填充新的数据,另一方面又会被imu read函数去读取数据;
那么如何保证一方在操作同一块内存地址时完成之前,被另一方打断呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/491728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++中的queue与priority_queue

文章目录 queuequeue的介绍queue的使用 priority_queuepriority_queue介绍priority_queue使用 queue queue的介绍 队列是一种容器适配器,专门用于上下文先进先出的操作中。队列的特性是先进先出,从容器的一端插入,另一端提取元素。   队列…

Java17的性能优势是否足以让它取代Java8?

随着时间的推移,Java不断地进行更新和发展,以满足不断变化的业务需求。目前,Java8已经成为了一个非常成熟的版本,并且在各个领域广泛应用。但是,Java17也早已发布,并且是Java 11以来又一个LTS(长期支持)版本…

vmware虚拟机安装k8s(之前已经安装过docker)

1、安装开始 先执行:curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add 再执行更改源:echo "deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main" >> /etc/apt/sources.list …

单向链表——C语言实现

哈喽,大家好,今天我们学习的是数据结构里的链表,这里主要讲的是不带哨兵卫头节点的单向链表,下篇将会继续带大家学习双向链表。 目录 1.链表的概念 2.单向链表接口的实现 2.1动态申请一个节点 2.2单链表打印 2.3单链表尾插 …

强大的editplus 5.7

EditPlus是一款由韩国 Sangil Kim (ES-Computing)出品的小巧但是功能强大的可处理文本、HTML和程序语言的Windows编辑器,你甚至可以通过设置用户工具将其作为C,Java,Php等等语言的一个简单的IDE。 EditPlus(文字编辑器&#xff0…

Java学习-MySQL-数据库的设计

Java学习-MySQL-数据库的设计 为什么需要设计数据库 当数据库比较复杂的时候,需要设计数据库。 糟糕的数据库设计: 数据冗余,浪费空间;数据库插入和删除很麻烦,可能导致异常(屏蔽使用物理外键&#xff0…

机器学习实战教程(十三):集成学习

简介 集成学习是一种机器学习方法,它旨在通过将多个单独的学习器(称为基分类器或基学习器)的预测结果进行组合,来提高整体的预测准确率。 集成学习可以看作是一种“多个人一起合作做事”的方法。每个基分类器都是独立的学习器&a…

【恭喜宿主:你的神装Xpath到手】——07全栈开发——如桃花来

目录索引 什么是XML:文档演示: XML的节点关系:1.父节点:2. 子节点:3. 同胞节点:4. 先辈节点:5. 后代节点: Xpath:1. 相关语法:*最常用的路径表达式&#xff1…

Android Studio实现文艺阅读App

项目目录 一、系统概述二、系统特点三、开发环境四、运行演示五、源码获取 一、系统概述 本次带来的文艺阅读App可以提供高质量的原创文学作品。用户可以App中找到各种类型的文学作品,包括小说、散文、诗歌等,由来自不同领域的作家所创作。此外&#xf…

对不起,我们不招还在用Excel的人,和金山系新秀比起差太远了

相信点进来的朋友曾经也深受Excel荼毒。 的确,现如今在网上随便一搜,关于Excel的学习资料和答疑解惑的帖子不胜枚举,盖因为Excel有时太过热心,当然,是帮倒忙的那种热心。 自动把天数转换为日期,还替你把身…

Flume 从入门到精通

Flume Flume 是一种分布式、可靠且可用的服务 高效收集、聚合和移动大量日志 数据。 它具有基于流媒体的简单灵活的架构 数据流。它坚固耐用,容错,可靠性可调 机制以及许多故障转移和恢复机制。 它 使用允许在线分析的简单可扩展数据模型 应用。 系统要求…

Java程序设计入门教程---循环结构(while)

目录 思考 概念 语法 案例:求1到100的整数和? 案例分析 思考 1. 让你输出10000000000000000句“Hello,world!”,你怎么写代码? 2. 求1到100的整数和? 概念 循环结构程序多次循环执行相同或相近的任务。 while循环…

Nacos注册中心一些配置说明

未安装Nacos的可以参考以下的安装教程 Nacos 安装教程(史上最详细保姆级教程)_nacos安装_大三的土狗的博客-CSDN博客 注意: Nacos默认是集群部署,如果想单机启动需要在对应Nacos的bin目录执行下面的命令 因为以后不可能只有一个Nacos注册中心,所以就默认…

BERT+TextCNN实现医疗意图识别项目

BERTTextCNN实现医疗意图识别项目 一、说明 本项目采用医疗意图识别数据集CMID传送门 数据集示例: {"originalText": "间质性肺炎的症状?", "entities": [{"label_type": "疾病和诊断", "start_pos&quo…

Qt-数据库开发-用户登录、后台管理用户

Qt-数据库开发-用户登录、后台管理用户 [1] Qt-数据库开发-用户登录、后台管理用户1、概述2、实现效果 [2] Qt使用SqlLite实现权限管理初始化数据库创建数据表插入数据可使用结构体对数据信息进行封装数据库查询函数为数据库更新数据函数为删除数据函数为 [3] 测试效果 [1] Qt-…

最详细的静态路由的原理和配置

第四章:静态路由 转发数据包是路由器的最主要功能。路由器转发数据包时需要查找路由表,管理员可以通过手工的方法在路由器中直接配置路由表,这就是静态路由。虽然静态路由不适合于在大的网络中使用,但是由于静态路由简单、路由器…

亚马逊云科技让数十亿的数据清洗、转移和查询只需要10分钟

随着数字经济对经济社会的发展贡献愈渐增多,数字金融作为数字经济的有机组成部分和重要支撑,也正成为金融领域竞争与合作的制高点。但在数据要素推动数字金融高速发展的同时,逐渐复杂的互联网环境与日益增强的金融监管力度,对数字…

FL Studio21最新中文版本下载及详细安装教程

FL Studio21最新中文版本是一款专业的音乐制作软件,软件支持录音、音频剪辑、混音、编曲等众多实用功能,可以让你的电脑化身为专业的录音室,进行音乐的录制和剪辑工作,帮助用户轻松创作出各种优秀的音乐作品。 FL Studio21中文版…

亚马逊云科技携手普华永道,推出健康及生命科学行业出海合规指南

自2022年起,国内医疗健康行业的投融资热度略有降低。但医疗行业投资结构正面临转型,投资逐步呈现全球化布局的趋势,在跨境合作领域仍持续释放活力。同时,随着药品集采、医保谈判持续推进,越来越多的中国健康及生命科学…

基于RK3588+TensorFlow的人工智能跨模态行人重识别方法及应用

摘要: 跨模态行人重识别技术(cm-ReID)旨在可见光、红外等不同模态图像中识别出同一个人,其在人 机协同、万物互联、跨界融合、万物智能的智能系统与装备中有重要应用。提出一种数据增强的跨模态行人 重识别方法,在波长…