基于APM的高级飞控系统设计

2020-11-03 11:36龚玉锋赵文杰何通能
计算机测量与控制 2020年10期
关键词:飞控控系统模块

龚玉锋,赵文杰,何通能

(1.浙江工业大学 信息工程学院,杭州 310023;2.浙江大学 航空航天学院,杭州 310027)

0 引言

无人机(UAV,unmanned aerial vehicle)是现代科技中集成了多方面高科技技术的一种无人驾驶飞行器的名称,并且由于现代微电子技术的发展,无人机的成本可控制到较低,可以集群部署用于大规模任务。无人机的基本硬件组成包括传感器系统、处理器以及控制机构。无人机系统(UAS,unmanned aerial system)包括无人机以及相关配套设施,由地面站模块、数据通信模块、命令指挥控制以及维护人员等部分组成,采用算法和软件流程达到高度智能化闭环反馈控制[1]。APM(Ardupilot)飞控是现有开源飞控中最为成熟稳定的开源飞控系统,且和PX4飞控使用同一套底层PIXHawk硬件,国际也有使用PIXHawk研究控制算法的研究者[2],APM拥有广大使用者和成熟的开发社区,适用于多种无人驾驶系统,如固定翼、无人车、无人潜航器等[2],其功能比较完善,APM飞控基本具备现代无人机飞控技术的大多数控制功能,飞控如果从头开发周期会非常漫长,因为无人控制系统非常复杂,因此在开源飞控上进行二次开发是一种优秀的选择,但开源飞控软硬件偏于无人机爱好者和研究者[3],且操作复杂、人工参与量大,需要有效发挥无人机的优势,无法满足无人机在日益增长的多方面民用、工业、商业需求,需要进一步提升飞控系统自动化、智能化、平台化、系统化。开源飞控的源代码已经非常完善,对于修改其源代码复杂度很高且具有危险性,APM飞控的代码1.7 M已经接近满负荷存储2 M,且其RAM空间必须预留30%,额外的修改代码会影响源飞控的代码执行效率,将系统分层是一种工程上非常重要的做法,通过使用MAVLink协议完成不同层次模块的通信,且开发出的系统适用于同协议的其他飞控。

1 基于高级飞控系统硬件系统设计

1.1 高级飞控系统硬件系统设计

本文所设计的高级飞控系统是一种独立的硬件模块,通过通信接口与其他模块进行通信。将设计的高级飞控系统搭载在无人机上,通过高级飞控系统上的通信接口完成对无人机的通信和无线数传的通信。本文采用的底层硬件为PIXHawk2.4.8.版本[4],经过运行相应的算法程序测试,证明了硬件设计方案的可行性,且运行带操作系统的程序经历长时间运行不会出现死机等情况,这套硬件系统在飞控领域具备相当的稳定性与可靠性[5]。高级飞控系统与APM飞控、无线数传连接方案如图1所示。

图1 系统连接方案整体架构图

APM飞控的底层硬件PIXHawk是基于Cortex-M4内核,工作频率为168 MHz,本文设计的核心处理器选择了与之匹配的同系列STM32H743芯片,STM32处理器在飞控领域拥有大量的使用者[6],改核心频率高达400 MHz,可以高效处理飞控相关的复杂运算,依赖于STM32H7的硬件FPU浮点运算,以及DSP算法库,主流的算法函数都能以专有的加速模式运行,对于飞控领域的常用函数具有非常好的软硬件优化效果。控制系统在嵌入式平台高速完成各种程序和函数运算,再与APM通信时采用串口直连的方式通信,小型四旋翼的安装位置有限,高级飞控系统内部无惯导传感器可以捆绑固定在电池下方,在六轴及大四轴可以很方便地固定在底层飞控APM的旁边,无人机中间底盘有许多螺丝孔可以扩展安装位置,安装方式如图2所示。

图2 高级飞控系统安装示意图

由于无人机内部空间限制,需要将PCB设计尽量地紧凑,还需考虑航空环境比一般的普通环境要恶劣,电路板最终需要装在带屏蔽的金属盒内,做密封防水处理以保护内部模块,以及提供良好的电磁屏蔽,采用航空航天级别J30J接插接件引出通信接口以及电源线。

1.2 电源供电系统设计

稳定的硬件系统设计依赖于稳定的电源系统,选择URB2405YMD-6WR3型号DC-DC隔离电源模块作为外部宽电源9~36 V输入电压转换器,输出为6 W,将隔离电源的DC-DC模块输出分为两路供电,一路给主处理器供电,一路给外围的芯片和接口供电,提高系统的电源安全性,主电源相关电路电源运行需要设计指示灯,放电源反接MOS管,压敏电阻14D560 K保护,以及防浪涌TVS保护二极管,以及电阻、电容、电感构成滤波与稳压电路,电源供电设计如图3所示。

图3 高级飞控系统电源模块设计图

2 高级飞控系统通信协议与操作系统

APM飞控的程序为上层开发开放了基于MAVLink协议的控制API,可以通过协议消息实现控制无人机,本文的APM软件版本为ArduCopter V3.3,飞控硬件版本为Pixhawk2.4.8,同时控制无人机需要在高级飞控系统上使用合适的嵌入式操作系统。

2.1 无人机MAVLink通信协议

在通信协议方面需要一种简单高效的协议,因为无人机的通信通常距离较远时通信数据量减少,而MAVLink提供了一种非常轻量级的消息传递协议,用于与无人机(以及机载无人机组件之间)进行通信。MAVLink非常高效,由于它不需要任何其他框架,因此非常适合通信带宽非常有限的应用。除了常规的控制命令和消息,可以使用高级飞控系统控制复杂任务,如任务计划、航迹规划、特殊姿态控制等,该协议的完备性和科学性使得它协议在自驾仪领域获得了广泛的采用,APM和PX4等飞控都使用此协议,本文的通信主要使用固有协议和自定义的扩展消息协议[7]。

2.2 飞控UCOSⅢ操作系统

APM飞控由于出现较早,没有使用操作系统,现在已经出现很多开发不便的弊端,高级飞控系统的算法软件比较复杂,使用裸机开发已经不适合,需要选择一种合适的嵌入式实时操作系统,UCOSⅢ非常适合需要安全认证的航空航天系统。它由 Jean Labrosse1998年更新到UCOS-II,并于2000年得到美国航天管理局(FAA)认证,可以用于飞行器中,使用操作系统的开发方式可以方便的完成裸机所不具备的系统调度、优先级分配、多线程编程等方式,无人机控制需要高的实时性且多线程任务同时进行,本文选择UCOSIII为无人机的算法和程序提供基础的操作系统,本文在高级飞控系统的MCU上移植了UCOSIII,并与MAVLink协议一起运行,可以实现协议的高速收发解析,保障通信功能的稳定高效。

3 高级飞控系统基本功能控制方式

采用科学的系统分层,使每一层的功能更加明确。两个模块各自处理自身数据,飞控模块专注于无人机的控制,高实时性和稳定性,高级飞控模块则专注于高级控制算法、通信组网、路径规划算法等功能。这种无人机控制方式充分发挥了开源飞控的强大功能和高级飞控的自定义高级功能特性使之能适够应各种需求场景。

3.1 一键起飞APM无人机算法设计

APM等开源飞控的控制系统比较成熟,其操作步骤也比较严谨和复杂,无人机的一键起飞包含多步骤检查和判断,是无人机自动化起飞基本操作,本文设计控制APM飞控的一键起飞的流程,通过算法编程使无人机系统能够自动完成无人机的起飞的过程,可以有效减少操作者检查无人机、切换模式、解锁飞机、发送起飞命令的一些列操作流程,以一套自动化流程程序替代[8],高级飞控系统一键起飞流程控制如图4所示。

图4 一键起飞控制流程图

3.1.1 解锁无人机

APM无人机在GPS信号良好的情况下才能解锁,例如在室内信号不好的情况时无法解锁,无人机GPS信号良好的情况下,正面的主指示灯会由蓝色变色绿色,绿色灯闪烁代表GPS信号良好,当无人机解锁时,绿灯会变为常亮,解锁指令属于CMD命令指令,将mavlink_command_long_t的command参数填充为400(解锁/上锁),将parama1参数设定为0解锁,1为上锁,配置好解锁指令参数时,通过MAVLink协议参数指令消发出。

3.1.2 请求无人机数据流

通常需要发送请求数据流来接收无人机的全部数据流,否则某些设定的无人机只会广播心跳包,心跳包包含了无人机基本模式、用户模式、无人机系统类型、无人机种类、系统状态、MAVLink软件版本,全部数据流包含无人机的空速、高度、GPS位置、传感器数据等。请求数据流的消息为协议 66号mavlink_request_data_stream_t,通过填充相应的参数即可完成数据流请求,设置参数start_stop为1即可开始请求数据。请求数据流为 66号MSG消息包。

3.1.3 设定无人机飞行模式

APM具有多种飞行模式有很多,常用模式有自稳模式、自动模式、引导模式、定高模式、留待模式、返航模式、定点模式、特技模式等,在不同应用场景下可发送对应指令进行切换,一键起飞功能需要将模式设置为GUIDE引导模式,发送mavlink_set_mode_t消息包将对应的模式参数custom_mode设置为4(GUIDE引导模式)。

3.1.4 一键起飞

一键起飞命令需要无人机完成以上步骤之后,发送MAVLink的CMD命令TAKEOFF完成起飞动作,建议测试时将起飞参数高度设置为10 m,其他默认即可,测试高级飞控系统程序按照软件流程发送一键起飞的算法命令,成功解锁并切换模式,然后无人机螺旋桨开始旋转。采用以上命令算法流程写入高级飞控系统后,在GPS良好的场地上,经测试完成一键起飞功能。

3.2 高级飞控系统的遥控器功能

无人机的遥控器需要手动操控,主要操作量为油门、偏航、俯仰和横滚,这些操作量的控制以人的判断为根据,结合现在技术进展飞快的机器视觉和激光雷达等技术,可以设计相关算法来代替人的判断,而执行这些操作,则需要使用到MAVLink协议的控制无人机姿态的方法。

本文设计的控制流程可以通过算法程序在高级飞控系统以及地面站实现遥控器的手柄摇杆量的操作功能,通过MAVLink的#70号消息可以实现模拟遥控器控制,本文所测试的APM版本遥控器可控制通道为chan1~chan8共8个通道,四旋翼需要用到4个chan通道,每个通道的控制数值范围为1 000~2 000,此流程需要解锁无人机解锁命令、修改模式为自稳、发送遥控指令,实现对无人机模拟遥控器的直接解锁与启动,软件程序对APM本文测试将PWM通道的电机chan值设定为1 600,无人机正确解锁并启动,遥控功能控制流程如图5所示。

图5 遥控功能控制流程图

3.3 高级飞控系统控制APM的任务功能

APM飞控模式中有自动模式,自动模式下可以执行APM飞控所存储的任务,任务可以是航点或者其他命令,CMD命令类型选择如TAKE_OFF起飞、CMD_NAV_WAYPOINT导航至航点、LAND返航、LOITER悬停、RTL返航等操作,都可以使用任务规划的航点命令来执行,将上面的操作写成一系列任务,当APM无人机切换到自动模式时将开始执行APM所存储的任务。

任务计划可以实时控制无人机,也可以提前规划写入控制量,使用#39号消息mission_item和任务协议将一系列的任务写入APM飞控,由无人机自动执行写入的飞行计划,航点的任务参数说明如表1所示。

表1 航点任务的参数说明

由多个航点任务所组成的典型任务结构可为第一个点TAKEOFF起飞,第二航点为目的航点WAYPOINT,第三个航点为RETURN_TO_LANUCH返回出发点,通过高级飞控系统将APM无人机模式切换为AUTO自动模式,将航点任务参数填充至MISSION_ITEM,写入航点的任务协议流程图6所示。

图6 航点上传协议

4 高级飞控系统自定义功能设计

高级飞控系统的一个重要功能便是将控制分层,在高级飞控系统层上构建组网功能[9]。在使用高级飞控系统控制多架无人机时无须一对一进行复杂繁琐的连接通信,而由一架主机执行算法程序以控制其他高级飞控功系统完成对底层APM无人机的控制,提高了控制效率和系统的智能化,以及可以利用这套无人机组网协议构建智能控制集群算法[10]、运行航迹规划等功能。

4.1 高级飞控系统组网架构

开源飞控无人机只具备地面站和无人机,或者遥控器和无人机之间的一对一通信,具备了组网条件下可以使用多无人机路径规划、任务分配等智能算法来集群规划无人机。本文所设计的高级飞控系统硬件接口连接无线电模块(测试采用了LORA无线通信模块),将所有通信模块调节到一个信道,采用主机轮询算法程序控制互相通信,将无人机间的通信链路打通,实现无人机间的互相通信。本文的组网功能是基于MAVLink-V1.0协议地址序号标识进行组网,组网无人机数量不超过256,默认APM的系统(SYSID)地址为01,在所有MAVLink指令都会携带目标地址(TARGETID),这样就构成基于地址身份识别的功能。高级飞控系统上通过算法程序可实现编队,无人机数量统计,任务分配等组网功能,地面站作为监控设备或者命名下达设备,配置01地址的高级飞控系统为主机,组网架构如图7所示。

图7 无人机组网架构

4.2 高级飞控系统通信协议配置与精简

自定义通信组网扩展消息仍然使用MAVLink协议,该协议具有自定义消息的功能,通过自定义扩展消息包,可完成大量参数的通信和设置。以源码库的commmon.xml为模板生成,从预留的自定义配置150开始的id 消息来生成,名称(name)和id不能重复,按照标准格式参数填充,即可配置为自定义MAVLink消息包。

在组网系统中信息量会大增,更加精简的消息流,可以更快速地完成网络信息通信和降低通信负载。本文实际测试了APM无人机输出数据流的有效消息包,经过对数据流的分析验证,将消息包进行裁剪,裁剪过后的MAVLink消息包,消息核心数据保留#0心跳包、#1系统状态、#2系统时间、#24定位GPS数据、#33姿态数据、#36伺服电机控制值输出、#62无人机导航控制消息、#74无人机空速计等速度参数、#141无人机海拔和高度信息,如果无人机添加了如光流等组件可以将对应的消息包再添加至数据结构体即可。

4.3 高级飞控系统的运算能力半实物仿真

无人机通信组网下的自动航迹规划与任务分配是是无人机发展和研究的重点,在控制无人机群的集群控制算法中,常用有蚁群算法、鱼群算法、鸟群算法(粒子群算法)等[11],粒子群算法对于无人机群的目标搜索与路径规划有很好的效果。典型的无人机飞行航线与目标分配都需要人为手动操作,将智能无人机算法在本文所设计的高级飞控系统上测试仿真,使用智能算法的无人机规划将使得无人机任务性能得到提升。本文实验所采用的粒子群算法在嵌入式C语言平台设计,运行在高级飞控系统中,对无人机特性进行数学建模模拟,无人机路径规划与任务分配仿真群算法参数如表2所示。

表2 无人机粒子群算法参数设置

运行占用RAM空间为500 KB字节的粒子群无人机搜索、路径规划、任务分配算法仿真时,程序不断将无人机自身的位置坐标、目标坐标、状态信息等消息发送,程序更新无人机位置与期望参数的迭代计算周期为200 ms,这个迭代更新速度满足无人机的实际更新速率要求1 s以内。高级飞控系统的运算输出作为无人机路线飞行航迹图,将STM32H7处理器的无人机仿真算法位置通过串口传输给PC端,模拟9架无人机的搜索路线,X轴与Y轴代表空间的二维图,航迹显示很好的规避免无人机搜索空间时路径重叠问题和搜索时自动规划无人机路线,PC端可视化显示无人机航迹路线如图8所示。

图8 仿真多架无人机搜索航迹路径图

5 结束语

本文所设计的高级飞控系统为开源飞控和高级自定义功能设计了可行方案,采用本文所设计的控制方法可以对无人机进行高度的智能化和自动化控制,测试了使用MAVLink协议控制飞控的多种基础功能,高级飞控稍作针对性优化就可以应用与其他同协议飞控如PX4,高级飞控系统可以作为编队组网算法、目标搜索算法、路径规划算法、任务分配法等高级控制功能的实现平台,本文对这些二次开发功能进行了实际的测试与半实物仿真,结果显示计算能力优异和运行稳定,基于MAVLink协议可以将算法给出的控制量传递给无人机飞控实现对无人机的飞行任务操控,这种控制方式和控制流程对于无人机二次开发具有相当架构和方法参考价值和实际应用价值。

猜你喜欢
飞控控系统模块
“选修3—3”模块的复习备考
一种基于自主发射控制的运载火箭地面测发控系统设计
基于单相回路及热泵回路的月球居住舱热控系统对比分析
Module 4 Music Born in America
关于DALI灯控系统的问答精选
中小水电站集控系统建设改造对策分析
混合翼无人机的设计
中小型太阳能无人机航电系统设计
必修模块相关知识过关训练