洪富祥,陈冲,丘仲锋∗
(1南京信息工程大学电子与信息工程学院,江苏 南京 210044;2南京信息工程大学海洋科学学院,江苏 南京 210044)
随着无人机(UAV)在各行各业的广泛运用,无人机的自动化和智能化得到越来越多的关注,无人机如何实现智能化精准降落是其中的关键技术之一,而智能化降落的关键又在于无人机能否对降落目标进行精准定位。关于无人机的自动降落,人们开展了大量研究,研发了各种方法,比如基于全球定位系统(GPS)记录的一键返航、结合运动检测技术定位方法、光流传感器和惯性测量模块定位方法等。当前采用较多的自动降落方法是依托于GPS记录无人机起飞点的一键返航。这种方法通过获取无人机起飞点坐标,规划飞行路径并实时获取中途位置点的坐标,形成飞行路径信息,接收到无人机返回指令后进行返航。然而,GPS定位精度误差大,无人机较难精准定位起飞点,从而无法实施自动精准降落,在某些特殊情况下可能造成降落点严重偏离起飞点的情况,造成事故。因此,当前常用的做法是,无人机降落到一定高度后加入人工干预,实现安全降落。针对GPS定位不够精准的问题,人们在此基础上做了改进。Liu等[1]利用GPS粗定位与运动检测技术定位相结合的方法,将摄像头置于无人机起飞点处,通过摄像头获取无人机位置,然后发送命令来控制无人机运动。通过采用无人机双摄像头和惯性导航系统,Song等[2]采用光流传感器和惯性测量模块定位的方法来提高无人机的定位精度。此外,扩展卡尔曼算法[3]也用作无人机定位,当GPS突然失效的时候,利用机载无线射频的接收信号强度来解决定位问题。这些方法一定程度上提高了无人机降落时的定位精度,但需安置摄像头等,或需要较复杂的光流计算,实施起来较为复杂。
针对这种情况,本文采用GPS粗定位和图像处理模块相结合的方法,通过GPS一键返航后的图像处理模块来控制无人机,实现室外应用场景中无人机的精准降落。该系统实现简单,硬件成本较低,可以改善仅依赖GPS定位降落的精度。
无人机采用大疆公司的A2[4]飞行控制模块,该系统包括电源管理单元(PMU)、惯性测量单元(IMU)、GPS等主要单元。由A2飞行控制系统用户手册可知A2飞行控制系统的定位性能为:水平方向1.5 m,支持外接S-BUS、PPM等接收机,使用者可通过系统接口获取无人机当前的状态、位姿等信息,并通过简单的指令控制飞行。
图像处理单元使用树莓派3B+,它是一款基于ARM的微型电脑主板,具有PC的基本功能,该平台能够搭载Raspbian官方操作系统,该系统上能够安装QT和Opencv的开发环境。QT独有的信号槽机制有利于消息的传递,适合本系统通信任务繁多的特点。Opencv属于轻量级视觉库,树莓派3B+能够满足该视觉库运行时对速度和内存的要求[5]。
搭载开发环境的树莓派通过SBUS总线将主控制器与A2飞控连接,其余传感器还包括摄像头和超声波测距模块。
无人机精准降落的控制流程如下:
步骤1)飞行控制模块接收到自动返航命令后,调取起飞时无人机起落机坪的GPS定位信息,并根据该GPS定位信息控制无人机进行返航,直至无人机悬停在无人机起落机坪正上方高度H1处,H1为飞控中可编程实现的定高高度,然后发送树莓派开机指令,QT应用程序自启;树莓派中的QT应用程序初始化摄像头和超声波测距模块;同时运行步骤2)和步骤3)。
步骤2)QT应用程序线程一,逐帧抓取摄像头拍摄的图像,每帧图像经过图像处理算法得到起落机坪同心圆圆心像素级别坐标,该圆心像素级别坐标是以摄像头几何中心为原点建立的坐标系中的坐标,并将该圆心像素级别坐标发送至线程二;其中,待处理的图像缓存在队列中。
步骤3)QT应用程序线程二,计算机发送查询高度指令,超声波测距模块查询高度并将查询到的无人机当前高度H通过串口发送给树莓派;将线程一的圆心像素级别坐标代入坐标转换算法,得到对应的无人机起落机坪同心圆圆心真实坐标;所述无人机当前高度H为超声波测距模块相对于无人机起落机坪的高度。
如果孩子丢失了,家长应该怎么办?第一,去跟孩子约定好的会合地点,例如服务台、售票口等有工作人员、标志性地点且孩子熟悉好找的地方。第二,寻找工作人员或志愿者守住商场、超市游乐场所等出口,并对出入者仔细盘查。第三,在孩子丢失地点的四个不同方向进行寻找,每个方向最少找20分钟。第四,拨打报警电话,并准确说明孩子丢失情况,保持手机畅通。
步骤4)飞行控制模块控制无人机水平移动,并实时按步骤2)和步骤3)获取圆心真实坐标,直至圆心真实坐标与红外摄像头几何中心坐标在横纵轴的误差值小于等于预设误差值,则水平移动完成;飞行控制模块控制无人机垂直下降1 m,再进入步骤5);所述预设误差值范围在0~30 cm间。
步骤5)超声波测距模块发送查询高度指令,当查询到的H大于H2时,重复步骤2)、步骤3)和步骤4)的方法,直至查询到的H与H2相等,无人机精准降落完成,其中,所述H2为无人机停机状态超声波测距模块距离起落机坪的高度。无人机起落机坪如图1所示(圆环由内向外的颜色依次为黑、红、黑、绿、黑、蓝、黑),其中红色圆环的半径分别为10 cm、15 cm,绿色圆环的半径分别为20 cm、30 cm,蓝色圆环的半径分别为35 cm、45 cm。这种设计能够使无人机在下降过程中总是能检测到圆的存在。流程图如图2所示。
图1 无人机停机坪俯视图Fig.1 Top view of UAV landing apron
无人机精准降落算法包括两部分:基于Opencv的图像处理算法,用于获取起落机坪的位置信息;将获取的像素级别坐标信息转换为真实坐标信息的坐标转换算法。基于Opencv的图像处理算法流程图如图3所示,可描述为:
1)将当前待处理的图像记为Frame。
2)对Frame进行灰度化处理,得到图片记为midImage。
3)对midImage进行阈值比较,得到midImage中所有同心圆中最外部圆轮廓的图片,并记为destImage。
4)对destImage进行图像形态学处理和Canny边缘检测处理,得到destImage对应的清晰轮廓灰度图。
图2 无人机着陆控制流程图Fig.2 Control flow chart of UAV landing
图3 图像处理算法流程图Fig.3 Flow chart of image processing algorithm
6)将1)中的Frame由RGB颜色空间模型转换到HSV颜色空间模型下,得到HSV颜色空间模型下的图片Frame,然后在HSV颜色空间模型下对Frame提取红、绿、蓝三种颜色,由于无人机在下降过程中视野会减小,提取到的色环可能是红、绿、蓝三色环或者是红、绿两个色环或者是红色同心圆。
7)将6)中的提取到的色环由HSV颜色空间模型转换到RGB颜色空间模型,分别得到在RGB颜色空间模型下对应的色环;然后再对RGB颜色空间模型下的色环分别按步骤2)、步骤3)和步骤4)的方法处理,得到提取到的色环对应的灰度图。
8)将步骤5)中无人机起落机坪同心圆圆心像素级别坐标和步骤7)中得到的色环对应的灰度图作为参数代入到霍夫变换函数,分别得到圆环半径对应的像素级别长度;其中,最大同心圆半径对应的像素级别长度记为Bpix/2。
在数字图像处理的过程中,为了提高图像处理的速度,通常会将需要处理的彩色图像进行灰度化处理,再将灰度化处理后的图像进行阈值比较二值化处理。灰度化处理采用平均值法,可表示为
经过上述两种方法的处理,不仅可以加快图像处理的速度,还便于对图像局部进行处理,方便对目标图形调试和观察。阈值比较方法是利用待检测目标和整个图像的区别,把图形分为两个不一样的灰度级别,选择一个合适的阈值,即可得到需要对图像后续处理的部分。由于在灰度化和二值化后得到的图像具有较大的噪声,故需对所得图像进行图像形态学处理。图像形态学可以用来解决抑制噪声、特征提取、边缘检测、图像分割、形状识别、纹理分析、图像恢复、图像压缩等图像处理问题。此处主要是利用图像形态学处理中的膨胀和腐蚀[7]。膨胀腐蚀能够消除去噪,分割单个图像单元,在图像中连接相邻的元素,查找明显的极大值区域和极小值区域,求出图像的梯度等。通过膨胀腐蚀的操作,可以有效去除目标图像的噪声,为后面霍夫圆检测做准备。
边缘检测算法有Sobel、Laplace、Canny等检测算子。Sobel处理后的图像边缘有强有弱,抗噪性好;Laplace较为敏锐,一些噪音会包含进入处理后的图像中;Canny检测后的边缘较细,分布较为均匀。由于前面做完了膨胀腐蚀操作,已过滤一部分边缘噪声,故采用Canny算法进行边缘检测。
RGB颜色空间模型是由红、绿、蓝三原色构成,其他各种颜色出现在红、绿、蓝的原色光谱分析中,该颜色空间模型在Opencv视觉库中能够实现与灰度图的相互转化,但是不能提取某个区域特定的颜色,HSV是一种将RGB颜色空间的点在倒圆锥中表示的颜色空间模型,该模型用色相h、色彩饱和度s和亮度v来描述色彩。在Opencv视觉库中,该颜色空间模型能够提取区域特定颜色,但是不能将区域图片转化成灰度图,因此采用HSV颜色空间提取起落机坪的色环,然后转化到RGB颜色空间进行图像处理,其中RGB颜色空间模型转化到HSV颜色空间模型的公式可表示为
式中:r、g、b是图片在RGB颜色空间模型下的分量,Mmax为r、g、b中的最大值,Mmin为最小值。h在0~360°之间,s在0~100%之间,v在0~max之间。
HSV颜色空间模型转化到RGB颜色空间模型的公式为
对于每个颜色向量,有
式中:h、s、v为HSV颜色空间的色彩分量,hi、x、y、z、f为变量。
由感光器件成像原理可知,感光元器件将光信号转换为电信号,通过模数转换器将高低不同的电信号转换为数字信号。因此在图像处理算法中获取的停机坪圆环信息是在摄像机感光元件上的像素坐标信息,下面将介绍将像素坐标转换为真实坐标的算法。
感光元件成像示意图如图4所示,图中Spix表示摄像机中像素点固定数量,L为摄像机的焦距,a为如图所示感光器件与视野中起落机坪圆环建立的几何图形角度的一半,b为摄像头的最大视角的一半,R为摄像头视野中的同心圆环中最外圆环的半径,由几何关系得
图4 感光元件成像图Fig.4 Imaging diagram of photosensitive element
则有
进一步得到
对于特定成像元件来说,Spix、tanb为常数,令k=tanb/Spix,则有
根据无人机精准降落图像处理算法中的步骤5)所得的像素级别坐标乘以比例系数k,得到红外摄像头几何中心相对于同心圆圆心的真实坐标。截断遥控信号接收模块的信号,树莓派生成飞控SBUS指令,通过三极管接入到飞行控制模块,即通过自己模拟遥控杆量的方式[5]实现控制无人机水平移动。
根据图像处理算法的思想及实现方法,在树莓派中安装QT开发环境,在QT中加载Opencv视觉库来编写程序,无人机在下降过程中,起落机坪图片经图像处理算法处理后的结果如图5所示。图5(a)是无人机降落过程中,起落机坪俯视图经过灰度化、二值化和形态学处理后的图片,图5(b)是图5(a)经过Canny检测后所得到的视图边缘轮廓,图5(c)~(e)是对应照片经过HSV颜色空间下的处理,提取得到的特定颜色图,通过计算转换到RGB色空间后,经过形态学处理得到该视图下的同心圆半径,并通过程序筛选得到最大同心圆半径。
图5 (a)灰度二值化和形态学处理;(b)Canny边缘检测;(c)~(e)在HSV颜色空间中提取不同的色块Fig.5 (a)Gray-scale binarization and morphological treatment;(b)Canny edge detection;(c)~ (e)Different color blocks extracted in HSV color space
经过上述步骤得到的坐标信息,需经过坐标转换算法转换为真实坐标信息,如表1所示为测试的不同高度下像素大小与圆环半径的关系,图6为数据的线性拟合,其中线性拟合的横坐标X=HmBpix,Rm为圆环半径大小,Bpix为像素点的个数,Hm为摄像头距离圆环的距离。
表 1像素大小与圆环半径的关系Table 1 Relationship between the size of pixels and radius of torus
根据无人机的飞行控制流程,选取无人机的返航高度20、15、9、6、3 m,分别对应图5的第1~5行的图片,返航时获取的同心圆靶圆心坐标的横坐标乘以比例系数k作为无人机降落精度的衡量,如表2所示。
表 2无人机着陆点误差比较Table 2 Error comparison of UAV landing point
针对传统的无人机自动返航时降落精度误差大的问题,在解决方案中提出了将摄像头置于无人机上,通过在高性能的微控制器中实现图像处理算法来获取无人机相对于起落机坪的相对位置,通过模拟杆量的方法来控制无人机的运动,通过多次无人机姿态的调整来实现无人机的精准降落。实验表明所设计方案在无人机悬停在15~20 m时,无人机能够识别无人机停机坪的图片,并控制无人机进行降落,由表2可知与只有GPS定位的无人机降落相比精度有了明显提高。
图6 数据线性拟合Fig.6 Linear fitting of data
提出了基于机器视觉的无人机同心园靶精准降落方法,该方法中的图像处理算法依托搭载在无人机上的图像处理模块直接与飞行控制系统进行通信。采用GPS粗定位和图像处理算法二者结合,来获取无人机距目标靶的水平距离差,通过模拟遥控器杆量的方式来控制无人机运动。实验表明所涉及的方法能够稳定识别同心圆并实现无人机精准降落。