飞行器杨骞.docx
《飞行器杨骞.docx》由会员分享,可在线阅读,更多相关《飞行器杨骞.docx(14页珍藏版)》请在冰豆网上搜索。
飞行器杨骞
摘要
本设计为以R5F100LEA为控制核心的四旋翼自主飞行器系统。
该系统主要由电机控制、姿态检测与导航、摄像头循迹、高度检测和拾取电磁铁这五个模块构成。
电机采用直流无刷电机并配以电调,通过单片机输出PWM波来控制电机转速。
姿态检测模块由陀螺仪、加速度计和电子罗盘构成,采用欧拉角和四元数算法来检测飞行器姿态。
循迹模块利用摄像头采集图像,通过黑色像素点坐标求均值方法检测指示线位置从而实现循迹。
高度控制模块采用超声波传感器检测飞行高度。
飞行器的姿态和高度调整均通过PID算法实现。
铁片的拾取与投放则通过三极管驱动电磁铁实现。
测试表明,本设计结构简单有效,运行稳定,完全达到了设计要求。
关键词:
四旋翼飞行器瑞萨单片机捷联惯导系统摄像头循迹
1.系统方案论证与比较
1.1方案比较与选择
1)四轴飞行器模式
方案一:
X模式。
该模式下飞控的箭头所指方向是两个电机的中间的方向,如图1(左)所示。
该模式的飞行器比较稳定且动作灵活,适合特技飞行。
但对于初学者来说比较难以控制,PID不好调节。
方案二:
+模式。
该模式下飞行器的前进方向与四轴其中的一个电机一样,如图1(右)所示。
虽然相比X模式,该模式飞行不太灵活,但由于可以明确头尾且PID调节比较容易,适合初学者。
因此,我们采用该方案。
图1飞行器模式示意图
2)姿态检测模块
方案一:
使用分立的加速度计、陀螺仪。
该方案会增大飞行器安装复杂度,且二者的坐标轴无法准确重合,会带来很大误差。
并且需要进行软件校准和温度补偿,比较复杂。
方案二:
采用集成模块。
MPU6050模块整合了3轴陀螺仪和3轴加速度计,安装方便,不存在轴间误差。
虽然精度不如分立元件,但足可以满足我们的设计要求。
因此,我们采用该方案。
3)循迹方案
方案一:
采用Hough变换检测直线。
其原理是利用图像空间和Hough参数空间的点-线对偶性,把图像空间中的检测问题转换到参数空间。
通过在参数空间里进行简单的累加统计,然后在Hough参数空间寻找累加器峰值的方法进行检测。
该算法虽然可以精确检测直线,但所需存储空间大,耗时严重,不适宜用于实时监测系统。
方案二:
飞行器起飞后需要沿着直线飞行,并可以检测到圆形的终点以降落。
因此,算法分为检测直线和检测终点两部分。
检测直线时,求出图像每一列上的黑色像素点个数,个数最多处就是黑色指示线所在位置。
检测终点时,采用对二值化后的图像上所有黑色点加权求平均的方法即可得到黑色区域的重心,此重心接近圆形终点的圆心。
控制飞行器往此重心降落即可。
该算法简单有效,因此,我们采用该方案。
4)高度检测模块
方案一:
气压计测高。
气压测高系统是根据重力场内,大气压力随高度增加而减小,并有确定的函数关系的原理工作的。
因此,可以通过使用压力传感器来测量大气压力,然后根据气压与海拔高度的关系式,算出海拔高度。
但是,气压容易受温度影响,且本题目中飞行器飞行高度低,高度变化小,使用气压计测高精度太低,误差比较大。
方案二:
超声波传感器测高。
超声波传感器是利用超声波的特性研制而成的传感器,具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。
本题目中飞行高度不超过2m,在超声波传感器的测距量程内。
因此,我们采用该方案。
5)铁片拾取装置
方案一:
使用机械抓手。
机械抓手虽然灵活,但其动作难以控制,况且铁片很薄,抓取难度极大。
方案二:
使用三极管驱动电磁铁。
电磁铁是一种在铁芯的外部缠绕与其功率相匹配的导电绕组形成的非永久性磁铁,通电时有磁性,断电后磁性就随之消失,且磁场的大小可以通过电流大小来调整。
题目要求可以拾取和投放铁片,电磁铁完全可以完成此动作。
相比第一个方案,电磁铁更容易控制。
因此,我们采用该方案。
1.2系统组成
系统如图2所示。
陀螺仪、加速度计和电子罗盘测得的数据送入单片机,通过四元数和欧拉角算出飞行器的姿态。
摄像头采集场地图像,送入单片机先进行灰度处理和二值化,再提取黑线。
超声波传感器测出飞行器的飞行高度。
PID控制模块根据飞行器姿态、飞行高度和提取到的黑线调节PWM波的占空比,从而改变电机转速,对飞行器的姿态、位置和高度进行调整以达到预期目的。
图2系统框图
2.理论分析与计算
2.1电机控制
直流电机PWM调速的基本原理为:
通过改变输出方波的占空比改变电机电枢的平均电压。
电枢电压平均值的理论计算式为:
其中,α为占空比,即导通时间与脉冲周期之比。
使用单片机中的定时器即可完成输出一定频率、占空比可调的PWM波。
定时器的最大计数值乘以定时器输入时钟,即为PWM波的周期。
在定时器的一个计数周期内,给定一个值X,当计数值小于X时,输出高电平;计数值大于X时,输出低电平。
例如取定时器最大计数值为1000,设定X=400,则可得到占空比为40﹪的PWM波。
2.2姿态解算
要对飞行器进行导航,就需要知道飞行器的实时姿态。
本设计采用捷联惯导系统进行导航。
该系统中存在两个坐标系,即机体坐标系和参考坐标系,其中机体坐标系取决于固定在飞行器上的陀螺仪和加速度计。
飞行器姿态常用偏航角、俯仰角和横滚角这三个量来描述,而姿态解算采用了四元数算法。
构件在三维空间中的有限转动,可依次用三个相对转角表示,即进动角、章动角和自旋角,这三个转角统称为欧拉角,如图3所示。
在飞行器中,欧拉角的三个量分别对应于偏航角、俯仰角和横滚角。
四元数是最简单的超复数,由实数加上三个元素i、j、k组成,即四元数一般可表示为
。
四元数可以描述刚体的转动,如图4所示,一个有固定点的刚体绕通过该点的轴n旋转角度θ,转轴的方向可以表示成一个单位矢量
则描述该转动的四元数可以表示为:
则四元数既反映了转动的方向又反映了转动的幅值。
图3欧拉角图4四元数与刚体转动
四元数与欧拉角转换公式为:
其中,带下标b的为机体坐标系坐标,带下标n的为参考坐标系坐标,
、
、
为欧拉角,式中矩阵称为方向余弦矩阵。
四元数可由陀螺仪不断积分来进行更新,但陀螺仪存在零点漂移且误差会不断累积,故需要进行修正。
由于重力矢量和地磁矢量是标准的,因此我们采用这两个矢量来对陀螺仪积分后算出的四元数进行修正。
将加速度计和地磁测得的数据与陀螺仪积分值进行融合,即将加速度计和电子罗盘测得的矢量与陀螺积分后的姿态推算出的矢量进行叉积运算,便可达到修正四元数的目的。
利用修正后的四元数就可以算出比较准确的欧拉角,即飞行器的姿态。
2.3姿态控制
四旋翼飞行器的结构如图5所示,其四个旋翼分别安装于对称的十字架的四个顶点,分为前后和左右两组,两组所安装旋翼的旋转方向相反,可以抵消反扭力矩。
飞行过程中只需改变四个旋翼的转速,即可实现各种动作。
图5四旋翼飞行器结构示意图
(1)垂直运动:
如图6-1所示。
四个旋翼的转速同步增加,飞行器便垂直上升;四个旋翼的转速同步减小,飞行器便垂直下降;当旋翼产生的升力等于飞行器自重时,便处于悬停状态。
(2)俯仰运动:
如图6-2所示。
旋翼1的转速上升,旋翼3的转速下降,旋翼2和旋翼4的转速保持不变。
由于旋翼1的升力增加,旋翼3的升力减小,不平衡的力矩将会使飞行器绕着y轴转动。
(3)前后运动:
如图6-3所示。
旋翼1的转速下降,旋翼3的转速上升,旋翼2和旋翼4的转速保持不变。
由于旋翼1的升力减小,旋翼3的升力增加,飞行器首先会发生一定程度的倾斜,从而产生水平方向的力,实现飞行器的前飞运动。
后飞运动与前飞运动刚好相反。
图6-1垂直运动图6-2俯仰运动图6-3前后运动
(4)侧向运动:
如图6-4所示。
原理同前后运动。
(5)偏航运动:
如图6-5所示。
旋翼1和旋翼3的转速上升,旋翼2和旋翼4的转速下降,则旋翼1和旋翼3对机身的反扭力矩大于旋翼2和旋翼4对机身的反扭力矩,机身便发生偏航运动,旋转方向与旋翼1、旋翼3的旋转方向相反。
(6)横滚运动:
如图6-6所示。
原理同俯仰运动。
图6-4侧向运动图6-5偏航运动图6-6横滚运动
2.4循迹算法
摄像头采集到的图像经过二值化处理后,灰度值不是0就是255,即图像上只有黑、白两种颜色。
黑色区域为指示线,白色区域为背景,算法的核心思想就是找出当前镜头所包含指示线的中心位置,调整飞行器使该位置尽可能位于镜头中心。
地面上的指示线有直线和圆两种形状,直线用于飞行过程中指示方向,圆用于确定降落点。
因此,我们设计的循迹算法分为检测直线和检测终点两部分。
检测直线采取将多行压缩为一行的方法。
计算出每一列黑色像素点的个数,则黑色点较多的列就是指示线所在位置。
检测圆形指示标志时,采取黑色像素点坐标求均值的方法,即可得到当前镜头中黑色区域的重心,该重心可视为圆形终点的中心,即飞行器最佳降落点。
区分上述两个检测阶段的标志是图像前几行出现了全白。
当此情况发生时,表明飞行器已接近终点,镜头已经捕捉到了圆形终点标志,此时可由检测直线的算法转换为检测圆形中心的算法。
2.5高度检测
本设计中使用超声波测距模块。
该模块采用IO触发测距,在控制口发一个10US以上的高电平,就可以在接收口等待高电平输出,一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此值就为此次测距的时间,方可算出距离。
计算公式为:
其中,S为测试距离,T为高电平持续时间,v为声速(340m/s)。
2.6PID控制
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,实际中也有PI和PD控制。
由于单片机的控制是一种采样的离散控制,因此必须对模拟PID进行离散化处理,用数字形式的差分方程和求和方程代替微分方程和积分方程,从而实现数字PID。
数字PID的基本公式为:
其中,u(n)为第n次PID输出,e(n)为第n次的偏差信号。
PID算法有两种类型:
位置型控制和增量型控制。
前者输出的直接是控制量,后者输出的是控制量增量。
由于要直接控制电机转速,所以我们采用位置型PID。
对于姿态控制,我们要分别对X、Y和Z轴进行PID调节。
对于高度控制,则通过PID同时调节四个电机的转速。
循迹时,通过PID使飞行器尽量沿着指示线的中心飞行。
3.电路与程序设计
3.1硬件设计
1)飞行控制板供电电路
飞行控制板通过电调供电,供电电压为5V,采用电容电感进行电源滤波。
电路原理图见附录。
2)MCU接口电路
该接口电路与瑞萨单片机连接。
UART接口用于读取超声波的高度数据和对摄像头采集到的图像分析后的方位数据;IIC接口用于读取陀螺仪、加速度计和电子罗盘的数据。
4个IO口PWM1、PWM2、PWM3、PWM4用于输出4路PWM波,分别控制4个电机的转速。
电路原理图见附录。
3)PWM波输出电路
通过单片机定时器的PWM模式输出PWM波,从而控制电机的转速。
电路原理图见附录。
4)电磁铁驱动电路
使用三极管驱动电磁铁。
输入信号RELAY为高电平时,三极管导通,有电流流过电磁铁,产生磁性;RELAY为低电平时,三极管截止,电磁铁逐渐失去磁性。
续流二极管用于保护电路,电路原理图见附录。
5)传感器电路
传感器MPU6050和HMC5883工作在3.3V电压下,而供电电压为5V,因此需要使用AMS1117-3.3转电压芯片将5V电压转为3.3V。
为了使瑞萨单片机的TTL-5V电平与传感器3.3V电平相互兼容,通过NOMS驱动电路使传感器的3.3V电平和5V电平进行转化。
电路原理图见附录。
3.2软件设计
1)主程序
主程序流程图如图7所示。
进入主程序并初始化后,每1ms对陀螺仪、加速度计和电子罗盘的数据进行更新;每2ms进行姿态解算,并根据当前飞行器的姿态、超声波测得的高度和摄像头所得图像进行PID调节,控制PWM波的占空比,从而控制电机转速以完成姿态调整、循迹、高度控制和降落等任务。
图7主程序流程图
2)姿态控制子程序
利用陀螺仪、加速度计和电子罗盘的数据计算出飞行器的姿态,再通过PID进行姿态调整。
流程图如图8所示。
3)循迹子程序
流程图如图9所示。
图8姿态控制流程图图9循迹流程图
4.测试方案与测试结果
4.1测试仪器及测试条件
①数字万用表,F15B
②秒表,精度0.01s
③卷尺,量程5m
④测试条件:
室内,无风,日光灯下
4.2测试方案、结果及分析
(1)基本要求
测试方案:
将飞行器放在A区,设置好拨码开关状态,开机。
用秒表计时,测出飞行器从A区飞到B区并降落的总用时;用卷尺测出降落点距B区中心的距离。
测试8次,记录数据。
从B区飞往A区的测试方法同上。
测试数据如表1,表2所示。
表1A区飞往B区测试数据记录表
测试次数
飞行用时(秒)
落地点离中心距离(厘米)
1
7.65
20.3
2
7.78
14.6
3
8.02
17.2
4
8.15
11.4
5
7.46
23.5
6
8.25
18.4
7
8.13
16.7
8
7.98
27.2
平均值
7.93
18.7
表2B区飞往A区测试数据记录表
测试次数
飞行用时(秒)
落地点离中心距离(厘米)
1
8.14
21.2
2
7.88
23.3
3
8.21
14.2
4
8.06
17.9
5
7.68
24.5
6
8.31
20.6
7
8.07
13.8
8
7.75
18.1
平均值
8.01
19.2
结果分析:
经过测试可知,不论从A区飞向B区还是从B区飞向A区,飞行器飞行速度均较快,且落地点均在标志区域内,但落地点变化较大。
(2)发挥部分
测试方案:
将飞行器放在A区,飞行器下面摆好铁片,设置好拨码开关状态,开机。
用秒表计时,测出飞行器起飞、投放铁片和返航的总用时,并记录任务完成情况。
测试数据如表3所示。
表3发挥部分测试数据记录表
测试次数
拾取铁片
投放铁片
成功返航
总用时(秒)
1
完成
完成
完成
20.82
2
完成
完成
完成
21.13
3
完成
完成
完成
23.39
4
完成
完成
完成
20.75
5
完成
完成
完成
23.56
6
完成
完成
完成
22.03
7
完成
完成
完成
21.62
8
完成
完成
完成
23.08
结果分析:
在8次测试中,飞行器均在规定时间内完成了全部任务。
由此可见,系统性能稳定且速度较快,完全达到了设计要求。
5.总结
本系统以R5F100LEA为控制核心,利用陀螺仪、加速度计、电子罗盘、摄像头和超声波,配合一套简单有效的算法和编程控制实现了四旋翼飞行器的定点起飞、循迹和定点降落,最终完成了题目要求。
在四天三夜的奋斗中,我们组的每一个成员都全力以赴。
从焊接每一个电路、硬件故障检测,到软件调试、场地实测,我们都在非常认真的思考,细心发现问题并努力去解决。
作为四旋翼飞行器初学者,刚开始我们对许多概念都不了解,通过查找大量资料、小组讨论,才有了清晰的设计与制作思路。
在后来的制作与调试过程中,又遇到了很多事先未曾预料到的困难,经过不懈的努力与尝试,问题得到了一一解决。
经过这次比赛,我们深刻认识到坚持不懈和团结合作的重要性,提高了自己分析问题、发现问题和解决问题的能力。
附录
图1飞控板供电电路
图2MCU接口电路
图3PWM波输出电路图4电磁铁驱动电路
图5传感器电路