丁倩雯,张 鑫
(1.无锡科技职业学院 电子技术学院,江苏 无锡 214028;2.无锡龙翼智能科技有限公司,江苏 南京 210000)
本文设计了基于LabVIEW的四轴飞行器姿态可视化无线监测系统,通过借助模拟仪表、虚拟示波器和3D动态模型等对四轴飞行器的高度、速度、航姿、航向航迹等数据进行分类整合后进行实时显示,并将其存储为数据文件供后续数据分析使用.对四轴飞行器地面监测系统的研究与开发,不仅有利于学习四轴飞行器的飞行控制原理与姿态融合算法,同样有助于深入研究地面监控站的数据处理、通信链路以及各个功能模块的具体实现过程.本设计包括可视化姿态监测系统端、姿态采集、显示和信息处理[1].
地面监控站通过RS-232与无线数传电台进行连接,从而接收来自四轴飞行器端的远程数据包,并经过特定的通信协议对数据包进行解析和分割,然后通过模拟仪表和文字结合的方式进行数据的实时显示,将整合后的数据存储为文件,以备飞行数据的回放以及调用分析.图1为地面站监控站的总体架构.
从功能和需求出发对四轴飞行器地面监控站进行开发和设计,主要功能有:
(1)地面监控站对四轴飞行器姿态的实时监测与显示;
(2)对四轴飞行器航迹进行设置与追踪;
(3)对四轴飞行器航姿、高度、航向等数据进行实时监测;
(4)对飞行数据的存储与回放,方便后续处理;
(5)四轴飞行器与地面站之间的通信链路要在可靠的前提下实现高效传输[2];
(6)在上述功能的前提之下,进行更加直观的显示,使之一目了然.
图1 地面站监控站的总体架构
姿态可视化无线监测系统通过数据链路对四轴飞行器下载的远程数据包进行实时接收,然后通过既定的通信协议对远程数据包进行解析,在进行数据的分类与整合后将数据输出实时显示或存储为文件以供调用.
本地面监控站选用由美国3D ROBOTICS公司生产的Radio Telemetry数传电台实现四轴飞行器与地面站之间的遥测数据包传输.该数传电台可以实现四轴飞行器和地面监控站之间的双向通信,属于全双工通信,同时还有CP2102高品质USB转TTL芯片,通过RS232和RS485的总线实现双方通信,通过接口板上的拨码开关对其进行设定.
在LabVIEW中使用VISA(Virtma Instrument Sottwan Architeture)通过配置参数使用函数实现串口通信.串口配置函数从路径 “数据通信→协议→串口”函数子面板里面调用[3].LabVIEW接收到来自四轴飞行器下传的遥测数据包后,经过数据处理过程将数据解析、分类和整合之后,发送给各个子VI进行处理并进行输出显示和存储.
本文选择了基于Cortex M4 STM32F407产品为主控芯片,姿态采集模块采用的是MPU-9150九轴姿态测量传感器模块,板上集成了3轴陀螺仪、3轴加速度、3轴电子罗盘以及气压计等多个传感器.电调及电机模块采用HY天行者40A电调及新西达A2212电机(1000KV)通过航模电池提供飞行动力.机身下方装有超声波测距传感器,随着飞机上升,传感器输出脉冲的占空比会发生变化,经过微控制器处理可以精确计算出当前飞机距地面的距离用以保持高度.
系统采用意法半导体公司的STM32F407处理器为核心的系统板,综合判定和处理各种传感器所得信息,最终实现四旋翼飞行器的自主飞行.姿态调整使用IMU姿态实时测得飞行器的当前姿态角度数据,并通过PID算法进行处理,最后转换成为 PWM信号驱动四个电机的转速.
通过超声波测距模块精确测距,做到定高飞行.综合使用各个传感器,完成自主发挥的飞行动作.整个飞行过程中通过地面监控站实现人机交互,完成对四旋翼飞行器的飞行控制[4].
主体软件设计如图2所示,四轴飞行器采用PID与PD嵌套的串级PID算法,对四轴飞行器进行飞行控制.
图2 控制算法软件实现
在四轴飞行器的开发以及使用过程中,经常会遇到需要调试PID参数的情况,例如,想要在四轴飞行器上加超声波来实现定高、添加摄像头来实现颜色判别和巡线飞行等,这种情况下根据所需条件对四轴飞行器的PID参数进行调节,使飞行器具有更稳定的姿态控制系统.
图3 在LabVIEW 下运行的3D模型
传统调试方式是枚举法,通过不断地尝试每一个参数不同的值来确定稳定值,这种方法费时费力,且存在一定的危险性.通过实现四轴飞行器实时3D姿态显示,结合波形数据来确定飞行器在某时段内高度、偏航角、俯仰角、横滚角、油门等参数的变化,从而实现快速有效的PID参数调节,具有较高的安全性.
首先我们构建出四轴飞行器的3D模型如图3和图4所示,其中图3是利用SolidWorks生成的3D结构来构建在LabVIEW下可以运行的3D模型,图4是构建好的3D模型结构图.
在完成四轴飞行器的3D模型构建之后,需要进行对四轴飞行器的姿态信息采集以及LabVIEW对信息的处理.
我们通过使用姿态信息传感器(MPU-9150)来获取四轴飞行器的当前姿态[5].MPU-9150TM是世界上第一款9轴运动跟踪设备,专为低功耗、低成本和高性能的消费电子设备(包括智能手机、平板电脑和可穿戴式传感器)而设计.
MPU-9150九轴(陀螺仪+加速器+电子罗盘)MEMS运动感测追踪(Motion Tracking)传感器,是Inven Sense公司推出的全球首款整合性九轴运动感测追踪(Motion Tracking)传感器.其内部整合了两个芯片:一个为MPU-6050,含三轴陀螺仪、三轴加速器,内建可处理运动感测融合算法的数字运动感测处理器(DMP:Digital Motion Processor);另一个为AK8975,是三轴数字电子罗盘.采用这种集成化的运动感测追踪传感器不仅能节约空间,还可以消除在组合陀螺仪、加速器与电子罗盘时轴差的问题.
STM32F407与MPU-9150通过内置的主 IIC接口实现连接,来获取四轴飞行器当前的姿态数据.通过调用 Inven Sense公司提供的运动处理函数库,运用DMP,直接实现9轴数据的融合演算后欧拉角的输出.
通过MPU-9150结合DMP运算将原始数据转换输出的四元数是程序设置的 q30格式,在进行四元数矩阵运算换算成欧拉角计算之前,需要将四元数除以 2 的 30 次幂转换为浮点数.
STM32通过 I2C_Init函数将与 MPU-9150连接的主IIC 接口启用,然后调用MPU-9150_Init函数,进行MPU-9150的初始化操作,之后通过InvenSense公司提供的 MPU-9150嵌入式运动驱动库设置 DMP 所用传感器、 FIFO、采样率等一系列操作,将 DMP功能使能,使能成功以后,就可以通过函数 DMP的数据获取函数来获得原始数据转换后的欧拉角(Yaw、Pitch、Roll).
图4 3D结构构建图
void usart1_labview_report(u8 fun,u8*data,u8 len)
{
u8 send_buf[32];
u8 i;
if(len>28)return;
send_buf[len+3]=0;
send_buf[0]=0X88;
send_buf[1]=fun;
send_buf[2]=len;
for(i=0;i for(i=0;i for(i=0;i } void usart1_report_imu(short aacx,short aacy,short aacz,short gyrox,short gyroy,short gyroz,short roll,short pitch,short yaw) { u8 tbuf[28]; u8 i; for(i=0;i<28;i++)tbuf[i]=0; tbuf[0]=(aacx>>8)&0XFF; tbuf[1]=aacx&0XFF; tbuf[2]=(aacy>>8)&0XFF; tbuf[3]=aacy&0XFF; tbuf[4]=(aacz>>8)&0XFF; tbuf[5]=aacz&0XFF; tbuf[6]=(gyrox>>8)&0XFF; tbuf[7]=gyrox&0XFF; tbuf[8]=(gyroy>>8)&0XFF; tbuf[9]=gyroy&0XFF; tbuf[10]=(gyroz>>8)&0XFF; tbuf[11]=gyroz&0XFF; tbuf[19]=(roll>>8)&0XFF; tbuf[20]=roll&0XFF; tbuf[21]=(pitch>>8)&0XFF; tbuf[22]=pitch&0XFF; tbuf[23]=(yaw>>8)&0XFF; tbuf[24]=yaw&0XFF; usart1_labview_report(0XAF,tbuf,28); } 上述函数的功能用于上报数据给上位机软件,利用上位机软件显示传感器波形,以及3D姿态显示,有助于更好地调试MPU-9150.其中,usart1_LabVIEW_report函数用于将数据打包、计算校验,然后上报给匿名四轴上位机软件.usart1_report_imu函数用于上报加速度、陀螺仪和电子罗盘的原始数据以及融合后的姿态数据,可用于波形显示以及3D姿态显示. LabVIEW在接收到四轴飞行器下传的姿态数据包之后,通过下图5的数据解析和模型控制实现3D模型飞行器姿态的实时显示. 在四轴飞行器实际飞行的情况下,通过在线测试的方法实现各项数据的显示.测试结果如图6,各项数据显示正常,可以通过串口通信实现四轴飞行器的3D姿态显示、数据显示及回放波形化处理,验证了四轴飞行器可视化无线监测系统的可行性[6]. 图5 四轴飞行器3D模型显示控制 图6 监测系统操作界面 本文主要结合四轴飞行器在开发过程中遇到的主客观因素影响数据操作的问题,通过LabVIEW开发平台实现了四轴飞行器姿态可视化无线监测系统的基本功能,方便四轴飞行器在开发与应用中的数据操作与功能实现. 通过MPU-9150实现四轴飞行器的姿态信息采集与融合后,MCU将整合后的数据通过无线数传电台上传至LabVIEW姿态可视化监测系统.调用LabVIEW里面便捷的VISA函数库,实现LabVIEW姿态可视化监测系统与四轴飞行器之间的串口通信,并制定双方的通信协议,实现数据的稳定可靠传输,通过对遥测数据的解析,将相关信息在监测系统界面进行显示.在LabVIEW中引用SolidWorks中生成的模型结构,设计出四轴飞行器在LabVIEW中可运行的3D模型,通过3D模型对四轴飞行器的姿态进行实时显示.在LabVIEW中进行数据文件的操作,通过数据库和文本文档相结合的方式,实现了对四轴飞行器下传的远程数据包的存储与整理,以便用于相关参数的数据分析.4.2 四轴飞行器姿态监测系统在线测试
5 结论