嵌入式多旋翼机载车辆跟随系统研究与设计
2021-07-06王啸天赵亚威刘冠楠
王啸天,于 洋,赵亚威,刘冠楠
(沈阳理工大学 自动化与电气工程学院,沈阳110159)
多旋翼因其控制简单、成本低、易维护等优点广泛应用于各行各业,但由于其负载能力有限,单架多旋翼的应用通常与视觉传感器相关,如交通状况监测、输电线路巡检等[1];在多旋翼编队系统中,需要利用视觉信息实现避障与定位[2]。针对多旋翼的实时目标检测与识别问题,研究提高识别效率的硬件解决方案具有重要应用价值。
我国虽然在多旋翼无人机的研究方面起步较晚,但发展迅速。大疆在2012年发布小精灵,该四旋翼控制简单并具备拍摄功能,使多旋翼在国内普及[3]。2015年鲜斌等在四旋翼上搭载了英特尔ATOM计算机,利用两帧图像特征点的差值实现对物体的运动估计,根据光流法实现四旋翼在无GPS条件下的定位,但受限于ATOM计算机的性能限制,所用的视觉模块分辨率仅为480P,因此定位误差较大[4]。文献[5-6]在四旋翼上搭载网络摄像机采集地面信息,并提出相应的管理系统与目标检测算法,实现地面目标检测。邱鹏瑞等将飞行控制器和摄像机采集的数据传输至地面站,结合目标检测算法定位参考物体,计算多旋翼的位置参数信息[7],虽然精度较高,但完全依赖于无线通信的链路质量。姚俊等使用基于赛扬的单板计算机进行障碍物检测,但该板尺寸较大,且与鲜斌教授所用的计算机性能相近[8]。
为保证目标检测精度,同时提高系统的实时性,本文对多旋翼在目标车辆跟随应用中的处理流程进行分析;针对其问题,利用嵌入式计算机设计多旋翼机载目标检测系统,并结合物理模型给出选用标准,同时讨论该系统对多旋翼续航的影响。
1 目标车辆跟随与问题分析
1.1 车辆跟随系统流程及原理
通常多旋翼对目标车辆跟随需要进行图像数据采集、目标车辆检测、飞行坐标计算等处理,具体流程如图1所示。
图1 目标车辆跟随处理流程图
具体原理如图2所示。
图2 目标车辆跟随示意图
根据GPS与气压计等传感器可估计多旋翼当前位置为(X,Y,Z),其中Z=hair,并且通过实际测量获得可跟随车辆的高度hcar。当满足Dcam=hair-hcar时,多旋翼在车辆正上方,此时不需要跟随;若不满足该条件,则需要计算飞行坐标。在水平跟随时,使用勾股定理能够求得
(1)
最终得到飞行坐标为(X+Dexp,Y,Z)。
1.2 问题分析
据车辆跟随系统流程分析,系统运行时的通信流程如图3所示。首先,多旋翼实时上报采集的图像信息至地面端;然后,地面端发送位置与姿态传感器数据采集指令,并接收相应数据;最后,计算完成后地面端发送控制指令。在上述过程中,多旋翼与地面端使用无线链路进行交互。
图3 传统的车辆跟随系统通信流程图
由于原始图像数据远大于1500字节,所以传输时需要压缩并进行分包处理;为减少空中交互次数,通常采用无握手机制的UDP传输协议,但该协议缺点为接收端无法检测丢包。另外无线图像传输的延时通常高于50ms,而当前目标检测算法的单帧图像检测时间已低于35ms[9]。因此,导致车辆跟随系统实时性较低的主要影响因素是无线传输的高延时。
2 系统设计
2.1 系统硬件设计
多旋翼的机载处理系统由两部分组成:底层控制端、机载处理端。底层控制端对多旋翼飞行进行控制,采集并存储传感器测量的位置与姿态,接收来自数据处理模块的控制和读取指令。机载处理端读取视觉模块与底层控制端的数据,进行目标检测与跟随控制。底层控制端和机载处理端使用通用串行接口(UART)进行数据交互。地面端只监控多旋翼的运行状态,并在机载处理系统工作异常时直接控制降落,提高系统的安全性。本系统的硬件设计如图4所示。
祛湿化瘀方药液由上海中医药大学科技中心制备,冷藏备用[该方所用药材茵陈、虎杖、田基黄、姜黄、生山栀均购自上海华宇药业有限公司,有明确的原产地,经生药学专家鉴定均为真品。上述药材按4∶4∶3∶2∶2的质量比配伍;茵陈、虎杖、姜黄以75%乙醇提取3次,滤过,回收乙醇,留取药液;生山栀、田基黄进行水提醇沉处理;合并上述药液,浓缩,使终质量浓度为0.93 g/mL(按生药计)]。
图4 多旋翼机载目标车辆跟随系统硬件示意图
本文设计的目标车辆跟随系统以4S锂电池组(额定电压为16.8V)作为能源供给,其中电源管理模块负责为动力单元与飞行控制器供电,同时检测锂电池组的剩余电量;直流电压转换模块仅进行降压处理,该模块按照4A电流设计。为避免欠压运行,调整飞行控制器与嵌入式计算机的供电电压为5.3V。
底层控制端包括飞行控制器、动力模块、外置定位模块。飞行控制模块根据IMU测量数据估计当前多旋翼的飞行姿态,按照期望姿态输入计算PWM频率,调整各无刷电机的转速,通过拉力的变化控制飞行姿态;其内置的MS5611定高精度为10cm,可提供准确的高度信息。动力模块包括无刷电机与电子调速器,电子调速器根据飞行控制器给出的油门比例调整无刷电机的转速,为多旋翼提供飞行动力。外置定位模块包含电子罗盘与偏航角,分别测量多旋翼的偏航角和地球坐标系下的位置信息。
机载处理端包括嵌入式计算机、摄像机。嵌入式计算机是本系统的中央处理单元,板载3个USB接口、无线网卡与存储介质;通过CH340将计算机的USB1转换为通用串行接口(UART),用于机载处理端与底层控制端的数据交互。摄像机接入计算机的USB2接口,需支持USB Video Class(即UVC协议)或具备Linux驱动;USB3为预留的扩展接口;存储介质中移植Ubuntu操作系统,并安装ROS系统作为软件框架,在该框架基础上实现检测与多旋翼位置控制。
地面监控端不包含在本文所设计的目标车辆跟随系统中,仅按监控需求查询机载处理端与底层控制端的工作状态,获取任务结果和多旋翼运行参数。图5为多旋翼机载目标车辆跟随系统通信流程图。
图5 多旋翼机载目标车辆跟随系统通信流程图
图5中的机载目标车辆跟随系统内部的数据交互均通过有线链路,能够有效减少通信延时,增加数据传输的可靠性。USB3.0与USB2.0的传输速率分别为5Gbps和480Mbps,均满足传输摄像机所采集的原始图像数据,给目标车辆检测提供有利支撑。地面端不再参与车辆跟随任务流程,仅作为任务下发与运行状态监控的交互设备,因此可使用更为轻便的手持设备作为地面端。
2.2 机载处理端限制条件
为保证多旋翼在适配机载处理端后能够正常飞行,需对机载处理端的尺寸与重量进行限制,本节以四旋翼为例推导限制条件,并将其推广至多旋翼。
2.2.1 尺寸限制
通常多旋翼需要尽可能地保证重心位于其形心,这样能有效减少起飞后向重心偏移方向的倾斜量[10];同时若桨叶受到遮挡,则会影响多旋翼的飞行性能[11]。本文假设机载处理端的密度均匀,安装于规则的方形机箱内,其形心与多旋翼的重心相重合,四旋翼的安装俯视图如图6所示。
图6 机载处理端安装位置示意图
根据勾股定理可计算机载处理端的最大尺寸为
(2)
式中:D与Rrotor分别是多旋翼的轴距与螺旋桨半径,mm;α是机臂和机载处理端侧边的水平夹角,(°)。若机载处理端为一般矩形,则最长边小于Cmax即可,该公式直接用于多旋翼。
2.2.2 重量限制
图7为多旋翼前飞受力分析图。由图7可知,当俯仰角达到最大值θmax时,动力系统提供的总拉力Fall在垂直方向的分力FZ最小。为保持平飞,应满足FZ=mmaxg(g为重力加速度),故可求得多旋翼最大重量mmax为
图7 多旋翼前飞受力分析
(3)
所适配的机载处理端重量应满足
mAE≤mmax-mbef
(4)
式中mbef为安装机载处理系统前的多旋翼空载重量,g。为保留系统控制余量,应限制最大油门比例为σmax,所以实际总拉力Fall≤4σmaxF(F是单个旋翼产生的最大拉力)。机载处理系统的最大重量限制为
(5)
将式(5)推广至多旋翼时,假设多旋翼的电机个数为,所适配的机载处理端的重量应满足
(6)
式中:mAE为机载处理系统的重量;n为旋翼个数。根据多旋翼的运动原理,最大平飞速度由油门比例σ和最大俯仰角θmax决定。在限制条件中,重力加速度g为固定常量,最大拉力F和适配机载处理系统前的重量mbef也为可测量值,因此机载处理端的重量限制条件只与多旋翼的最大平飞速度相关。
2.3 续航影响计算
在本文所针对的目标车辆跟随场景中,多旋翼工作在前飞或悬停模式,由于前飞速度由地面车辆决定,无法估计跟随过程中的续航时间。为确定适配机载处理端所带来的续航影响,建立悬停模式下的续航计算公式,悬停模式的受力分析如图8所示。
图8 多旋翼悬停受力分析图
多旋翼悬停所需拉力为
(7)
式中悬停状态下F1=…=Fi=…=Fn,故单个电机提供的拉力为Fall/n。根据电机厂家提供的力效表可查找该拉力对应的电机工作电流Ie,因此适配机载处理端后,系统的总电流为
Iall=nIe+IAE+Iother
(8)
式中:IAE为所适配的机载处理端工作电流,A;Iother为底层控制端工作电流,A。由于机载处理端经过降压处理,实际IAE可表示为
(9)
式中:Um为锂电池组供电电压,V;IPC为嵌入式计算机与其外部设备的工作电流,A。设锂电池组最大容量为Cmax,根据式(8)与式(9)可推导安装机载处理系统后,理论悬停时间为
(10)
3 实验结果测试
实验选用轴距为410mm的四旋翼进行,动力单元使用AIR GEAR 450电机搭配1045螺旋桨,由4S 4300mah锂电池供电,其力效如表1所示。机载处理系统使用分辨率为720pixel、帧率为30fps的奥比中光Astra PRO深度相机;经过测量,该多旋翼适配机载处理系统前后质量分别为1.4kg和1.75kg。嵌入式机载计算机的系统环境为Ubuntu 18.04 arm64和ROS melodic,内置OpenCV3.2.0,程序基于Python2.7语言编写,使用对称差分算法实现目标检测[12]。
表1 AIR GEAR 450力效表
3.1 可行性测试
选用重量均为46g的Raspberry Pi 3B+与Orange Pi Lite2分别作为机载处理端的中央处理单元进行对比(后续简称为3B+和Lite2)。选用的两款嵌入式计算机主要参数如表2所示。
表2 嵌入式计算机主要参数表
实验数据使用资源占用较低的HTOP工具进行读取,分别测试在无任务、通过ROS节点采集图像数据、进行目标检测三个场景的资源占用情况。在进行算法仿真时需要开启视图窗口观察检测结果,而多旋翼实际运行过程中则无须开启视图窗口,故分别进行测试。实验过程中资源占用与功耗均为动态值,本文为证明其可行性,各工作状态均取测试过程中的最大值。图9为资源占用测试结果,横坐标为工作状态,纵坐标为相应计算资源的占用情况。
图9 资源占用测试结果
由图9可以看出,即使在资源占用最高的工作状态(开启视图),所选用的两款嵌入式计算机均可在CPU占用率低于80%,内存占用小于700MByte时完成相应目标检测任务。结合表2给出的嵌入式计算机硬件参数,此时资源裕量较为充足,系统可流畅运行,证明本文所设计的机载处理系统实际可行。
3.2 续航测试
据表1绘制推力-电流曲线,如图10所示,用于根据多旋翼重量查找电机的理论工作电流Ie。
图10 推力-电流曲线
结合多旋翼的工作原理,电机所产生推力与多旋翼的重量相等时能够保持悬停状态。实验所选用的多旋翼安装前后单个电机应提供350g和440g的推力。由图10曲线可查得单个的工作电流Ie分别为2.8 A和3.5 A。在进行可行性测试时,同时使用KWS-1705A电流计对机载处理端的工作电流IPC和其余负载的工作电流Iother进行测量,测试结果如表3所示。根据表3和公式(10)可计算理论续航值,实验测试结果如表4所示。
表3 理论续航值计算参数 A
表4 悬停续航测试结果 min
受实际情况影响,多旋翼悬停需不断调整油门比例才能保证固定位置,而理论计算中通常悬停油门比例保持不变;油门比例决定了电机的转速,与其产生的推力成正比关系,结合表1的力效和图10曲线的斜率,能够发现当所需推力越大时,力效越低、斜率越大,单位推力所消耗的能量越多;反之,当所需推力越小时,力效越高、斜率越小,单位推力所消耗的能量越少。因此,表4中实际续航时间的测试值低于依据表3与算式(10)所计算的理论值。另外,表4的测试数据中,安装3B+与Lite2实际续航相差仅为10s左右,结合表3数据,两者仅工作电流有所区别,其余条件均相同,因此中央处理单元的功耗并不是影响系统续航下降的主要因素,所以在选择中央处理单元时可优先考虑其性能是否满足任务需求。
3.3 目标检测延时测试
为保证单一变量,实验选用Tello无人机作为非机载处理系统的对照组,该无人机传输至地面端的图像分辨率与Astra PRO相机同为720p,避免处理数据量的不同影响目标检测时间;同时采用ROS功能包Tello_driver采集图像数据并用对称差分算法进行目标检测,避免算法和软件框架对目标检测时间的影响。通过在场景中放置计时设备,再将系统时间进行校准,并将目标检测完成的系统时间输出至视图窗口中,由此测量目标检测所用的时间。表5为目标检测时间的测试结果。
表5 目标检测时间 ms
表5的测试数据表明,本文所设计的多旋翼机载目标车辆跟随系统相比于非机载系统,目标检测的时间平均缩短了135ms。对比同为机载处理系统,但中央处理单元分别为3B+与Lite2,结合表2给出的接口参数,通过延时更低的USB3.0接口对摄像头进行数据采集,能够进一步缩短延时时间。
4 结束语
以移植Ubuntu操作系统的嵌入式计算机作为中央处理单元,使用ROS系统作为软件框架,设计了多旋翼目标车辆跟随系统。在实际飞行过程中,目标检测与位置控制均在嵌入式计算机中运行,可避免图像数据的无线传输延时。实验结果表明,在所设计的车辆跟随系统中,通过减少图像传输延时,使目标车辆检测的时间平均缩短了135ms,有效提高了多旋翼车辆跟随系统的实时性。另外,根据多旋翼的物理模型,本文提出了机载目标检测系统的尺寸与重量限制条件,并给出理论续航计算公式。通过对实验数据进行分析,多旋翼机载车辆跟随系统续航下降的主要因素是机载处理系统的重量。