本发明涉及图像处理及飞行器控制技术领域,尤其涉及一种多旋翼无人飞行器控制系统。
背景技术:
目前,常见的无人飞行器导航是利用GPS(Global Positioning System)和IMU(Inertial Measurement Unit)的组合导航来实现的。但由于GPS在低空和室内定位缺陷和IMU的累积误差,导致无人飞行器在复杂环境下与室内的自主飞行较难实现。多数解决方案是引入双目视觉系统与光流传感器融合的方式,实现无人飞行器的精确控制。但是,双目视觉系统包含两个摄像头,光流传感器(一个摄像头)有高帧率的需求,成本较高,而且需要三个摄像头,增加了飞行器载荷。
技术实现要素:
本发明的目的是提供一种多旋翼无人飞行器控制系统,旨在解决无人飞行器在复杂环境与室内自主飞行的问题,并且利用普通摄像头芯片实现高帧率,将光流与双目测距集成在一起,成本较低,并且减轻了飞行器载荷。
本发明的目的是通过以下技术方案实现的:
一种多旋翼无人飞行器控制系统,包括:
图像采集模块,用于采集图像;其包括两个光轴平行,且相同规格参数的摄像头,两个摄像头均朝下放置于多旋翼无人飞行器下方;
计算模块,用于根据两个摄像头采集到的图像来计算水平与垂直方向的光流,从而获得多旋翼无人飞行器的运动信息,以及利用双目图像匹配算法并结合两个摄像头采集到的图像,计算多旋翼无人飞行器距离地面的高度;
控制模块,用于根据多旋翼无人飞行器的运动信息以及距离地面的高度,进行飞行器姿态与位置的控制。
其中一个摄像头中的摄像头芯片sensor1水平放置,另一个摄像头中的摄像头芯片sensor2垂直放置;
两个摄像头芯片通过设置寄存器,配置为中间行部分输出图像,达到高帧率输出;或者,采用摄像头芯片的下采样模式和binning模式来提高帧率;
帧率的计算公式如下:
其中,Frame_rate表示帧率,PCLK为时钟频率,VSize为图像高度,VBlank为场消隐,HSize为图像宽度,HBlankTime为行消隐时间。
所述根据两个摄像头采集到的图像来计算水平与垂直方向的光流,从而获得多旋翼无人飞行器的运动信息包括:
利用摄像头芯片sensor1采集的连续两帧图像P11和P12的亮度值I11和I12计算水平方向的光流;利用sensor2的连续两帧图像P21和P22的亮度值I21和I22计算垂直方向的光流,计算公式如下:
a、计算图像P11的水平方向的梯度图像的亮度值Ix
b.计算图像P21的垂直方向的梯度图像的亮度值Iy
c.采用最小二乘法求取光流约束方程:
Ix×u+It1=0
Iy×v+It2=0
其中,u,v分别为水平和垂直方向的光流,It1=I12-I11,It2=I22-I21;
再根据水平与垂直方向的光流得到飞行器的飞行速度与方向。
所述利用双目图像匹配算法并结合两个摄像头采集到的图像,计算多旋翼无人飞行器距离地面的高度包括:
利用摄像机标定参数,对摄像头芯片sensor1采集的P11和摄像头芯片sensor2采集的图像P21分别进行畸变校正;
然后,再分别对两幅图像进行滤波,去除噪声;
再利用双目图像匹配算法对两幅图像进行立体匹配,得到视差d;
最后,利用三角测距原理并结合视差d,求取深度图像,得到多旋翼无人飞行器距离地面的高度。
所述利用双目图像匹配算法对两幅图像进行立体匹配的步骤如下:
计算N×N窗口内中心像素的特征,N×N窗口内的N2个像素亮度值分别为P1,P2,…,PN2,求取它们的均值为m,然后将P1,P2,…,PN2分别与m比较,如果大于等于m,则为1,小于m,则为0;从而在N×N窗口内得到一个N2位的数据,作为中心像素的特征;以此类推,分别得到图像I11和图像I21的特征图像C11和C21,即特征图像C11和C21中每个像素都是N2位的数据;
在预先设定的视差范围内,计算图像C11与C21每个像素的最小汉明距离,在距离最小时对应的视差,即为图像P11和P21的视差d。
所述利用三角测距原理并结合视差d,求取深度图像,得到多旋翼无人飞行器距离地面的高度包括:
设,D为多旋翼无人飞行器距离地面的高度,B为两摄像头光心之间的距离,F为摄像头焦距,x1与x2分别为物体在两摄像机图像上的位置,x1-x2即为视差d,则根据相似三角形原理,得到
其中,M是为了相似三角形计算引入的中间参数;
经过整理得到:
由上述本发明提供的技术方案可以看出,将两个普通摄像头芯片集成在一起代替高帧率摄像机,同时兼具了双目测距的功能,成本较低,并且减轻了飞行器载荷。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的多旋翼无人飞行器控制系统的示意图;
图2为本发明实施例提供的图像采集模块的两个摄像头布置位置示意图;
图3为本发明实施例提供的两个摄像头芯片放置角度示意图;
图4为本发明实施例提供的摄像头输出图像示意图;
图5为本发明实施例提供的三角测距原理示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1为本发明实施例提供的多旋翼无人飞行器控制系统的示意图。如图1所示,其主要包括:
图像采集模块S1,用于采集图像;其包括如图2所示的两个光轴平行,且相同规格参数的摄像头(记为S11~S12),两个摄像头均朝下放置于多旋翼无人飞行器下方;
计算模块S2,用于根据两个摄像头采集到的图像来计算水平与垂直方向的光流,从而获得多旋翼无人飞行器的运动信息,以及利用双目图像匹配算法并结合两个摄像头采集到的图像,计算多旋翼无人飞行器距离地面的高度;
控制模块S3,用于根据多旋翼无人飞行器的运动信息以及距离地面的高度,进行飞行器姿态与位置的控制。
本发明实施例中,两个摄像头内部的摄像头芯片放置角度如图3所示,其中一个摄像头中的摄像头芯片sensor1水平放置,另一个摄像头中的摄像头芯片sensor2垂直放置。
两个摄像头芯片通过设置寄存器,配置为如图4所示的中间行部分输出图像,达到高帧率输出,可以满足本发明中光流算法的需求,水平放置的芯片sensor1可配合计算水平方向的光流(flowX),垂直放置的芯片sensor2可配合计算垂直方向的光流(flowY),可以完全替代成本较高的高帧率摄像机,从而降低了成本。同时,通过特有的匹配算法计算深度图像,进而通过三角测距计算飞行器距离地面的高度。
帧率的计算公式如下:
其中,Frame_rate表示帧率,PCLK为时钟频率,VSize为图像高度,VBlank为场消隐,HSize为图像宽度,HBlankTime为行消隐时间。
示例性的,如果摄像头的分辨率为640×480,时钟频率为12MHz,HblankTime为9×10-6s,VBlank为40,带入上述帧率计算公式则有:
如上述帧率计算公式所示,如果减少摄像头芯片出图行数,即减小VSize,则可以增大帧率。例如,如图4所示,采取图像中间行输出的方式,将VSize设置为90,其它参数不变,则得到帧率为123.41fps,实现了高帧率,由于芯片(sensor)出图行数的减少,降低了功耗,并且由于数据量的减少,后续的计算相应减少,从而降低了系统功耗。
另外,也可以摄像头芯片的下采样模式和binning模式来提高帧率。
本发明实施例中,计算模块主要用于计算多旋翼无人飞行器的运动信息(即,飞行速度与方向),以及距离地面的高度。主要计算过程如下:
1、计算多旋翼无人飞行器的运动信息。
利用摄像头芯片sensor1采集的连续两帧图像P11和P12的亮度值I11和I12计算水平方向的光流;利用sensor2的连续两帧图像P21和P22的亮度值I21和I22计算垂直方向的光流,计算公式如下:
a、计算图像P11的水平方向的梯度图像的亮度值Ix
b.计算图像P21的垂直方向的梯度图像的亮度值Iy
c.采用最小二乘法求取光流约束方程:
Ix×u+It1=0
Iy×v+It2=0
其中,u,v分别为水平和垂直方向的光流,It1=I12-I11,It2=I22-I21;
然后,根据水平与垂直方向的光流得到飞行器的飞行速度与方向。
2、计算多旋翼无人飞行器距离地面的高度。
1)计算视差
利用摄像机标定参数(包括摄像机内参、外参),对摄像头芯片sensor1采集的P11和摄像头芯片sensor2采集的图像P21分别进行畸变校正;
然后,再分别对两幅图像进行滤波,去除噪声;
再利用双目图像匹配算法对两幅图像进行立体匹配,得到视差d;
最后,利用三角测距原理并结合视差d,求取深度图像,得到多旋翼无人飞行器距离地面的高度。
所述利用双目图像匹配算法对两幅图像进行立体匹配的步骤如下:
计算N×N窗口内中心像素的特征,N×N窗口内的N2个像素亮度值分别为Q1,Q2,…,QN2,求取它们的均值为m,然后将Q1,Q2,…,QN2分别与m比较,如果大于等于m,则为1,小于m,则为0;从而在N×N窗口内得到一个N2位的数据,作为中心像素的特征;以此类推,分别得到图像P11和图像P21的特征图像C11和C21(其中C11和C21中每个像素都是N2位的数据);示例性的,此处的N可以设为3、7、9等。
在预先设定的视差范围(1~d)内,计算图像C11与C21每个像素的最小汉明距离,在距离最小时对应的视差,即为图像P11和P21的视差d。
2)计算高度。
利用三角测距原理并结合视差d,求取深度图像,得到多旋翼无人飞行器距离地面的高度包括:
如图5所示,假设,D为多旋翼无人飞行器距离地面的高度,B为两摄像头(S11与S12)光心之间的距离(即基线),F为摄像头焦距,x1与x2分别为物体在两摄像机图像上的位置,x1-x2即为视差d,则根据相似三角形原理,得到
其中,M是为了相似三角形计算引入的中间参数,无实际意义;
经过整理得到:
本发明实施例中,控制模块主要根据计算模块计算到的多旋翼无人飞行器的飞行速度、方向,以及距离地面的高度,进行飞行器姿态与位置的控制。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。