• 2017 年全国大学生电子设计竞赛试题——四旋翼自主飞行器探测跟踪系统(C 题)【本科组】2


    一、任务

    设计并制作四旋翼自主飞行器探测跟踪系统,包括设计制作一架四旋翼自主飞行器,飞行器上安装一向下的激光笔;制作一辆可遥控小车作为信标。

    飞行器飞行和小车运行区域俯视图和立体图分别如图 1 和图 2 所示。
    在这里插入图片描述
    在这里插入图片描述

    二、要求

    1. 基本要求

    (1)四旋翼自主飞行器(以下简称飞行器)摆放在图 1 所示的 A 区,一键式启动飞行器,起飞并在不低于 1m 高度悬停, 5s 后在 A 区降落并停机。
    悬停期间激光笔应照射到 A 区内。

    (2)手持飞行器靠近小车,当两者距离在 0.5~1.5m 范围内时,飞行器和小车发出明显声光指示。

    (3)小车摆放在位置 8。
    飞行器摆放在 A 区,一键式启动飞行器,飞至小车上方且悬停 5s 后择地降落并停机;
    悬停期间激光笔应照射到位置 8区内且至少照射到小车一次,飞行时间不大于 30s。

    2. 发挥部分

    (1)小车摆放在位置 8。
    飞行器摆放在 A 区,一键式启动飞行器,飞至小车上方后,用遥控器使小车到达位置 2 后停车,期间飞行器跟随小车飞行;
    小车静止 5s 后飞行器择地降落并停机。
    飞行时间不大于 30s。

    (2)小车摆放在位置 8。
    飞行器摆放在 A 区,一键式启动飞行器。
    用遥控器使小车依次途经位置 1~9 中的 4 个指定位置,飞行器在距小0.5~1.5m 范围内全程跟随;
    小车静止 5s 后飞行器择地降落并停机。
    飞行时间不大于 90s。

    (3)其他

    三、评分标准

    在这里插入图片描述

    四、说明

    1.参赛队所用飞行器应遵守中国民用航空局的管理规定(《民用无人驾驶航空器实名制登记管理规定》,编号:AP-45-AA-2017-03)。

    2.飞行器桨叶旋转速度高,有危险!请务必注意自己及他人的人身安全。

    3.除小车、飞行器的飞行控制板、单一摄像功能模块外,其他功能的实现必须使用组委会统一下发的 2017 全国大学生电子设计竞赛 RX23T 开发套件中 RX23T MCU 板(芯片型号 R5F523T5ADFM,板上有“NUEDC”标识)。
    RX23T MCU 板应安装于明显位置,可插拔,“NUEDC”标识易观察,以便检查。

    4.四旋翼飞行器可自制或外购,带防撞圈,外形尺寸(含防撞圈)限定为:长度≤50cm,宽度≤50cm。飞行器机身必须标注赛区代码。

    5.遥控小车可自制或外购,外形尺寸限定为:长度≤20cm,宽度≤15cm。
    小车车身必须标注赛区代码。

    6.飞行区域地面为白色;A 区由直径 20cm 黑色实心圆和直径 75cm 的同心圆组成。
    位置 1~9 由直径 20cm 的圆形及数字 1~9 组成。
    位置 8 区是指位置 8 的直径 75cm 同心圆。
    圆及数字线宽小于 0.1cm。
    飞行区域不得额外设置任何标识、引导线或其他装置。

    7.飞行过程中飞行器不得接触小车。

    8.测试全程只允许更换电池一次。

    9.飞行器不得遥控,飞行过程中不得人为干预。
    小车由一名参赛队员使用一个遥控器控制。
    小车与飞行器不得有任何有线连接。
    小车遥控器可用成品。

    10.飞行器飞行期间,触及地面或保护网后自行恢复飞行的,酌情扣分;
    触地触网后 5s 内不能自行恢复飞行视为失败,失败前完成的部分仍计分。

    11.一键式启动是指飞行器摆放在 A 区后,只允许按一个键启动。
    如有飞行模式设置应在飞行器摆放在 A 区前完成。

    12.基本要求(3)和发挥部分(1)、(2)中择地降落是指飞行器稳定降落于场地任意地点,避免与小车碰撞。

    13.基本要求(3)和发挥部分(1)、(2)飞行时间超时扣分。

    14.发挥部分(1)、(2)中飞行器跟随小车是指飞行器飞行路径应与小车运行路径一致,出现偏离酌情扣分。
    飞行器飞行路径以激光笔照射地面位置为准,照射到小车车身或小车运行路径视为跟随。

    15.发挥部分(2)中指定位置由参赛队员在测试现场抽签决定。

    16.为保证安全,可沿飞行区域四周架设安全网(长 600cm,宽 500cm,高300cm),顶部无需架设。
    若安全网采用排球网、羽毛球网时可由顶向下悬挂不必触地,不得影响视线。安装示意图如图 3 所示。
    在这里插入图片描述

    论文

    摘 要

    此飞行器跟踪系统是针对四旋翼飞行器具有图像采集处理、目标追踪、姿态控制以及定高飞行的要求进行设计的。

    该系统采用 RX23T 和 STM32f407VG 作为系统的主控芯片,MPU6050 三轴陀螺仪作为飞行姿态反馈机构。

    定高飞行是通过超声波模块实时采集的对地高度数据,并由 STM32f407VG 进行处理,然后根据程序设定的高度值实时调节无刷电机的转速。

    摄像头进行图像信息采集,图像通过 RX23T 对目标的颜色进行识别反馈给 STM32f407VG 进行处理,最后调节电机转速以达到目标追踪。

    测试结果表明,该系统定性与准确性达到设计要求。

    关键词:四旋翼飞行器;飞行姿态;图像;目标追踪

    0 引言

    如今无人机已经渗入很多领域,如拍摄电影、科学研究、空中救援、空中巡检和快递投送等,无人机在很多方面影响着人们的生活。

    民用领域要求无人机飞行速度在 100 km/h 以下,飞行高度低于 3 000 m。

    无人机具有经济、安全和易操作的优点,因此在很多领域都有着广泛的需求,小型无人机可在防火、搜救、核辐射探测、交通监管、国土勘探监测、野外巡逻等领域具有极高的应用价值。

    随着无人机技术的普及和现代社会衍生的新型行业需要,无人机应用领域由原来的军事领域扩展到民用领域。

    另外,飞控系统在稳定和实用性方面的不断完善,推进了无人机市场应用需求。

    因此,无人机行业将迎来发展的黄金时代。

    本设计是基于自主飞行的四旋翼飞行器跟踪系统,全程飞行不需要遥控器控制。

    飞行器能够一键启动并根据目标的颜色自动识别目标和追踪目标,这在无人机智能飞行领域具有实际的应用意义。

    1 系统方案设计

    四旋翼自主飞行器跟踪系统主要由主控 RX23T 最小系统部分、STM32F407 姿态采集与处理部分、电源供给部分、外围传感器模块等组成,下面将论证这些主要的模块选择与程序设计。

    1.1 主控芯片选择方案

    方案 1:主控器的芯片采用 STM32F407。

    STM32F407 是基于超低功耗的 ARM Cortex-M4 处理器内核并整合增强的技术和功能,主要瞄准中低成本预算的应用。

    该系列微控制器能够在经济型用户终端产品上实现先进且复杂的功能。

    如果单独采用 STM32F407,完全实现系统各项功能包括飞行控制、图像采集与处理、飞行器定高等非常困难,而且其处理功能相对于瑞萨 RX23T 不是很强。

    方案 2:主控采用瑞萨 RX23T 和 STM32F407。

    STM32F407 和瑞萨 RX23T 都是基于 32 位带有超强的模拟量处理功能,它们使客户能够以较低的成本建立高集成度和高效节能的应用平台。

    两者结合使用具有低功耗、高性能的出色表现,因此它们是四旋翼姿态数据接收和飞行姿态控制的最佳主控芯片组合,结合这两款单片机分配不同的任务,不仅降低开发难度,而且没有大幅度提高成本。

    结合上述两种方案的优缺点,本文设计的飞行器主控器选择方案 2。

    1.2 姿态采集模块选择

    与其他姿态采集模块相比,MPU6050 是三轴陀螺仪模块,它可实时测量飞行器的 X 轴、Y 轴、Z 轴加速度以及 X 轴、Y 轴、Z 轴旋转角度。

    MPU6050 结构简单体积小、可靠性强,而且具有自动姿态解算功能。

    虽然输出数据需要浮点运算来保证精度,但利用 STM32F407 运算速度快的优势可以容易解决这些问题。

    综上所述,姿态采集计选择 MPU6050。

    1.3 电机驱动方式选择

    四旋翼飞行器电机通常使用空心杯电机和无刷电机,使用空心杯电机的飞行器不需要电调驱动,但荷载能力差。

    电调驱动电机具有控制方便、质量轻、效率高等优点。

    电调驱动无刷电机是四旋翼飞行器普遍选择的驱动方式,通过电调的通断,达到放大驱动电流控制电机的转速,电调调节要根据不同的机架进行,针对 F450 机架又考虑到荷载能力,此四旋翼飞行器采用电调驱动无刷电机。

    2 系统理论分析与计算

    2.1 MPU6050 分析与计算

    MPU6050 是一种应用非常广泛的 6 轴加速度计,其测量数据受外界影响很大,如电机振动或外界噪声等,故采用非矩阵卡尔曼滤波算法,这种算法的优点非常明显,特别是在白噪声数据处理方面有明显效果,故本文采取该算法进行计算。

    2.2 姿态解算的分析与计算

    姿态解算是飞行器自稳功能的核心,陀螺仪在飞行器静止时会产生漂移误差。

    因此,首先需要获得陀螺仪的数据,并根据此数据换算得到四元数姿态,这些姿态参数就是卡尔曼滤波中姿态的估计值,然后通过加速度计和罗盘计算出的数据得到另外一组姿态参数,将这组参量作为测量值,就可以得到相对准确的姿态数据。

    2.3 串级 PID 分析与计算

    经四元数转换以后所获得的欧拉角和陀螺仪测量获得的角速度融合,然后进行串级 PID 控制,串级 PID控制中外环为欧拉角,一般为 5 ms 循环执行一次;内环作为陀螺仪实时获得的角速度,一般为 2.5 ms 循环执行一次。

    外环设定值为 STM32F407 的指令值,内环的设定值是外环的输出值。

    通常内环的角速度控制无静差,因此内环常常采用 PID 控制,以防测量误差对自稳系统造成较大影响。

    3 电路与程序设计

    完整的四旋翼自主飞行器跟踪系统包含系统总体设计、电源设计以及程序设计等,其中程序设计是其核心,程序设计的优劣直接关系到系统能否安全稳定运行。

    3.1 系统总体设计框图与主要模块电路图

    系统总体框图如图 1 所示,系统具有超声波定高模块、飞行自稳模块和摄像头跟踪模块以及电源和电调模块。
    在这里插入图片描述
    (1)飞行器主要模块电路图。四旋翼飞行器主要模块电路中,电子罗盘 AK8975 电路图如图 2 所示,陀螺仪 MPU6050 电路图如图 3 所示,气压计 MS5611 电路图如图 4 所示,
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (2)四旋翼飞行器电源部分。

    四旋翼飞行器电源部分由,整流变压,滤波和稳压这几部分构成。

    电源为系统提供 3.3 V、5 V、12 V 电压,确保主控制电路、飞行控制电路和电机控制电路的正常稳定工作。

    源电路采用三端稳压管实现,而且电路设计比较简单,故不作详细介绍。

    3.2 四旋翼飞行器系统的程序设计

    此四旋翼系统采用 C 程序设计,编译环境在 E2STUDIO 下实现软件调试。

    程序设计采用模块化设计,各功能模块都经过主程序进行调用,程序首先是初始化,当启动键按下后通过调用执行相应功能模块的程序。

    根据四旋翼系统程序设计要求,使软件设计实现飞行器的一键起飞、悬停、定位和追踪等功能。

    四旋翼飞行控制系统的程序设计思路为控制器上电、延时启动、电源电压检测等,延时启动减少电源波动对系统的干扰,然后定时器设定飞行器的四个电机接收的 PWM 周期、串行通信口初始化,并在中断服务程序中接收 MPU6050 模块发送的数据。

    序初始化结束后,自稳功能模块可自动设定目标姿态、循环检测MPU6050 数据是否完成接收,如果有效的姿态数据接收到,程序就进入姿态控制函数。

    在姿态控制函数中可利用飞行器的 Roll(翻滚)、Pitch(俯仰)数据,结合模糊控制算法,计算出不同姿态时,每个无刷电机需要的调整量以补偿 PWM 波形偏差,这样不断地接受姿态数据,解算数据,调整量输出,使四轴飞行器稳定的飞行。

    PID 控制程序流程可描述如下:

    首先,将当前欧拉角与设定欧拉角相减;

    第二,检查油门量是否过超;

    第三,计算 Roll 和 Pitch 轴的 P 分量,如果满足计算 I 分量的计算条件,则计算 Roll 和 Pitch 轴的 I 分量,

    然后进入第四步,如果不满足计算 I 分量的计算条件,则直接进入第四步;

    第四,计算 Roll 和 Pitch 轴的 D 分量;

    第五,计算 Yaw 周的 PD 分量;

    第六,合成 Roll、Pitch、Yaw 的 PID 分量;

    最后,按照 V 模式将控制量输出给四个电机。

    4 测试方案与测试结果

    硬件测试利用遥控器检测电机转速以及姿态调整,按电调解调的步骤对四个电调校准。

    软硬件的联调是通过 RX23T 模拟遥控器的不同通道输入波形控制 STM32,使飞行器能按着不同的姿态做飞行动作。

    根据动作的偏差不断调节姿态和加速度的参数值,最终使之达到预想的飞行状态。

    通过瑞萨单片机编程,模拟遥控器对应功能的输出 PWM,利用 PWM 波控制 stm32f407 单片机,使 stm32f407 单片机实现其控制飞控的功能。

    另外,由于飞行器在室内飞行,为保证安全性,可以通过超声波使飞行器定高飞行,通过程序设计使飞行器悬停在 1 200 mm 的空中。

    最后进行前进后退的校准,使其飞行足够准确。

    5 结束语

    本设计系统在实现过程中经过多次方案调整,飞行控制系统由最初的单个 16 位控制器改为两个32 位控制器控制,虽然控制算法和程序编写上更加复杂,但是飞行控制系统的稳定性和冗余性得到了改善。

    经过数次调试和程序优化,最终实现了飞行器一键起动,目标追踪以及飞行姿态控制和飞行器定高飞行等各项要求。

  • 相关阅读:
    json解析与序列化
    js实现千位分隔符
    map.(parseInt)方法详解
    js实现翻转一个字符串
    一个满屏 品 字布局 如何设计?
    new操作符实现过程
    常见的函数式编程模型
    Azure DevOps Server 2019 (TFS)安装教程
    在Azure DevOps Server (TFS) 中修改团队项目名称
    你好,Azure DevOps Server 2019;再见,Team Foundation Server
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338167.html
Copyright © 2020-2023  润新知