EtherCAT从站读取MPU9250数据并进行姿态解算
1.EtherCAT从站硬件设计
18年8月的时候,基于LAN9252、stm32、mpu9250芯片设计了一款EtherCAT从站,是我设计的第一款从站。手工焊芯片和元件,焊得我眼睛都快瞎了~~~~~~
第二版采用了双层设计,将stm32层和lan9252层分开,stm32直接可以买现成的核心板用上,因此我只需要手工焊接lan9252电路部分,大大减少了工作了,哈哈、这下爽多了!!!
硬件架构如下,stm32和lan9252之间通过fsmc进行数据交互,stm32通过IIC读取mpu9250的数据。
2.修改XML文件
CANopen是基于CAN总线的应用层协议,EtherCAT在应用层支持CANopen协议。从站传递给主站的EtherCAT数据帧中包括横滚角Roll、俯仰角Pitch和偏航角Yaw数据,需要对XML文件进行修改。
3.姿态解算程序
通过MPU9250采集到的是3轴角速度、3轴加速度和3轴磁感应强度数据。利用得到的9轴原始数据,进行姿态融合解算,就能求出运动物体的姿态角:Roll、Pitch和Yaw。姿态融合算法有很多,比如著名的基于卡尔曼滤波的解算方法,这些算法在无人机等领域已经大量运用了,我们也可以在网上找到一部分开源算法,这些算法我就不详述了。
4.从站测试
本文采用TwinCAT3.0软件对EtherCAT从站进行测试,使用Qt开发的“三维姿态监测软件”与TwinCAT进行ADS通讯。pc机与EtherCAT从站的连接如图所示。
在twincat中新建工程,扫描得到三个从站设备。在PLC程序中添加9个变量,分别对应每个从站的横滚角roll、俯仰角pitch和偏航角yaw。变量声明如下:
PROGRAM MAIN
VARpitch AT%I* : INT:=0;roll AT%I* : INT:=0;yaw AT%I* : INT:=0;pitch1 AT%I* : INT:=0;roll1 AT%I* : INT:=0;yaw1 AT%I* : INT:=0;pitch2 AT%I* : INT:=0;roll2 AT%I* : INT:=0;yaw2 AT%I* : INT:=0;
END_VAR
然后将PLC程序中定义的变量链接到对象字典,接着在twincat中新建ScopeYT工程。Scope模块能通过ADS协议获取到变量,从而将欧拉角变量曲线在图表栏里显示出来,实验中将监测到的姿态数据放大了100倍。
使用Qt开发的“三维姿态监测软件”查看姿态角
EtherCAT从站读取MPU9250数据并进行姿态解算相关推荐
- STM32入门笔记(02):MPU6050、MPU9250、ICM20948及姿态解算(SPL库函数版)
目录 MPU6050 什么是MPU6050? MPU6050的特点 MPU6050框图 MPU6050初始化 MPU6050寄存器 电源管理寄存器1(0X6B) 陀螺仪配置寄存器(0X1B) 加速度传 ...
- 树莓派采集MPU9250运行AHRS进行姿态解算
文章目录 1.几种概念的区分 2.消费级IMU的AHRS 3.树莓派玩转MPU9250 3.1树莓派配置 3.2在树莓派中移植MPU9250库 3.3使用MPU9250库 4.校准 4.1IMU误差模 ...
- 树莓派IIC通讯获取BMI08x IMU数据进行姿态解算,并通过UART/TCP在rviz上显示
截至2021年,树莓派出的最新款应该是Raspberry Pi 400,设计得跟键盘一样,很难想象到这是个树莓派,尤其是它的标语写的很好"你的下一个电脑,何必是电脑",不言而喻.反 ...
- 获取MPU9250九轴数据--以四轴飞行器姿态解算为例
文章目录 MPU9250 简介 概述 特性 MPU9250的通信协议 四轴原理图 MPU9250地址确定 MPU9250与IIC通信时序 MPU9250获取原始数据 MPU9250的初始化流程 MPU ...
- 姿态解算知识(三)-陀螺仪加速度计6轴数据融合
这么久的惯导总算是没白看,加上一篇博客的指点,这两天把Mahony的九轴数据融合算法看懂了.可惜第二版硬件还没到,磁力计用不了,没法验证效果~今天先总结下陀螺仪和加速度计的六轴数据融合. 版权声明 原 ...
- 基于STM32F407四旋翼无人机 --- 姿态解算讲解(四元数)(叉积法融合陀螺仪数据和加速度数据)(五)
基于STM32F407四旋翼无人机 --- 姿态解算讲解(五) 姿态解算 姿态解算定义 欧拉角 四元数 四元数性质 方向余弦矩阵 四元数方向余弦矩阵 叉积法融合陀螺仪数据和加速度数据 叉积运算 一阶龙 ...
- 【毕业设计】MPU6050姿态解算 姿态估计 - 物联网 单片机 stm32
文章目录 1 简介 2 MPU6050 3 工作原理 4 单片机与MPU6050通信 4.1 mpu6050 数据格式 4.2 倾角计算方法 5 实现代码 6 最后 1 简介 Hi,大家好,这里是丹成 ...
- MiniFly微型四轴学习开发日志(三)——关于姿态解算的相关算法
目录 大致内容介绍 欧拉角与四元数 互补滤波算法的姿态解算 一些疑问 大致内容介绍 之前两篇日志当中提到了关于角度-角速度串级PID与定高Z轴PID配合对四轴进行姿态矫正的大概算法.但是对于测量而来的 ...
- Arduino 与 MPU6050 姿态解算+ PROCESSING
2019独角兽企业重金招聘Python工程师标准>>> 买的MPU6050自带姿态解算大大减轻了上层处理器所做的工作. 通过熟悉了一下processing之后做了一个小例子更是感觉这 ...
最新文章
- 熟悉Linux实验实训,非常详细的Linux操作系统与实训教程实验(三)
- gpg加密命令 linux_用 PGP 保护代码完整性(四):将主密钥移到离线存储中 | Linux 中国...
- Bootstrap3免费单页面模板-Shuffle
- vim 编辑器命令整理
- 【ubuntu】ubuntu下用make编译程序报错找不到openssl/conf.h
- ros构建机器人运动学模型_ROS入门学习之八机器人综合应用
- Ubuntu 16.04 + Nginx + Django 项目部署
- 【论文复现】使用RNN进行文本分类
- 任正非:鸿蒙最快1年可媲美iOS;首例Apple Card用户遭盗刷;Firefox 69.0.3 发布 | 极客头条...
- java重排序_Java synchronized 能防止指令重排序吗?
- win11联网不能打开网页怎么办 windows11联网不能打开网页的解决方法
- LaTex warning:Font shape `TU/ppl/bx/n' undefined(Font) using `TU/ppl/m/n' instead
- Azkaban的Web Server源码探究系列22: 一次性执行execute的提交准备
- 重启oracle数据库
- Javascript 面向对象编程(一):封装
- python如何爬取百度云_python如何爬取百度云连接方法指导
- 3ds Max 实验十四 UVW展开
- Mysql的避坑---- The error may involve defaultParameterMap #The error occurred while setting parameters
- 信号、传输介质、数制转换
- Sanity Check: SRM, AA test
热门文章
- mapstd matlab详解,Matlab中的数据预处理-归一化(mapminmax)与标准化(mapstd)
- 某软件平台定制开发项目技术标书
- Poker time 2 (enhanced version) 北理乐学作业题
- 【ENVI入门系列】10.图像裁剪
- Oracle 11g RAC 原地升级到 19c
- 耶鲁大学博弈论公开课全24集第19集笔记:招商引资和战略投资
- Linux 私房菜速读
- 罗格评论北京奥运会全文(中英文)
- 网工小记录(5):华为交换机acl配置、vpn-instance调用问题
- linux下ntp对时设置