四旋翼飞行器
随着四旋翼飞行器技术的逐步发展,目前的四旋翼飞行器已经能够做到平稳地飞行和高自由度地操控,再配上机载相机便能够实现航拍、图像识别等多种功能。为了使四旋翼飞行器实现探测和跟踪的功能,本系统包括:姿态控制模块、姿态解算模块、图像识别模块、定高模块、电源模块、遥控小车模块及声光模块。该系统可以在平稳飞行的同时,按照程序指令搜寻目标,并触发跟踪状态,完成跟踪任务后,能够自主地择地平稳降落。
系统概述
该系统由姿态控制模块、姿态解算模块、图像识别模块、定高模块、电源模块、遥控小车模块及声光模块组成,各个模块间相互作用,系统模块映射框图如图1所示。
根据探测和跟踪任务的需要,本系统需要完成悬停定点、探测跟踪、择地降落等一系列任务,主要工作流程如图2所示。
具体而言,四旋翼飞行器利用US-100超声波传感器,以50ms周期读取传感器的数据,计算出飞行器的实际高度,通过串级PID算法对飞行器的加速度环、高度环进行反馈,使飞行器的期望高度为我们指定高度的同时,飞行器的加速度期望值为零,从而实现定高悬停。
在定高悬停的情况下,处理OV7670摄像头模块获得的图像,计算出黑色圆点的圆心位置,输出圆心距离中心点的偏差量dx和dy。飞行器对偏差量进行前翻和横滚两个方向的PID调节,实现定点悬停。对于运动的遥控小车,为其套上涂有黑色圆点的外壳,对运动的黑点进行定点悬停,即实现了跟踪功能。
硬件设计
1姿态控制模块
采用STM32F4单片机作为主控芯片。
STM32F407是一款以ARM Cortex-M4为内核,最高主频168MHz的32位单片机。其速度快,具有极强的计算处理能力;内置定时器多,引出众多外设接口,能适应飞行器姿态控制的输入输出,可移植性强。
2姿态解算模块
采用MPU9150+MS5611传感器。
MPU9150为9轴陀螺仪,内部集成了MPU6050和AK8975芯片,可精准测量3轴角度,3轴加速度,3轴地磁方向。MS5611为高精度气压计,支持I2C/SPI数字输出,两者配合可以迅速准确地反馈飞行器的姿态。
3图像识别模块
采用OV7670配合RX23T-NUEDC开发板。
OV7670像素可达30W,通过设定阈值,在黑白赛道上即可获得理想的二值化图像,具有较强的抗干扰能力,帧率能够满足图像处理的需求。
4电源模块
采用PMU电源管理模块。
设计一个电源管理模块,实现了对2S至6S电池(电压范围在8~24V)的线性稳压,并且对电压实时监测,具备了低压报警的功能。
5定高模块
采用US-100传感器+气压计。
US-100相较SR-04增加了温度补偿,并使用内置芯片处理,直接串口输出,使用更方便。
6遥控小车模块
我们使用了玩具车的成品遥控芯片RX-2B,提供了配套的4按键遥控器,其内部原理如图3所示。我们给小车搭载一块单片机,对遥控芯片的输出口进行输入捕捉,然后利用单片机计时器输出4路PWM波,实现了遥控小车的四向运动功能。小车上搭载蜂鸣器、LED灯等外设,具体模块关系如图4所示。
软件算法
飞控传感器滤波算法
对气压计、超声波等传感器初始数据进行卡尔曼滤波,可以得到期望值的最优解。卡尔曼滤波通过反馈控制对过程状态进行估计,其中时间更新部分可以推算当前的状态变量和误差协方差的估计值,构造下一个时间状态的先验估计;测量更新部分负责信息反馈,实现后验估计。
飞控串级PLD控制算法
飞行控制使用的主要控制算法是串级PID控制,即多个PID反馈控制环串接。其中,横滚、俯仰方向的姿态角速度控制环、姿态角控制环串接实现飞行器的姿态稳定,组成内控制环;垂直速度控制环、垂直高度控制环组成外环,与内环级联,实现稳定的高度控制;水平位置PID控制环是另一个外环,与内环级联实现水平位置的控制。姿态控制环用于控制飞行器姿态稳定。
三个平行的姿态控制环分别控制飞行器的横滚、俯仰、方向(Roll,Pitch, Yaw)。控制环的输出将作为四个电机控制器(ECS)的输入,从而控制四个桨叶的转速。垂直速度与高度控制环用于控制飞行器的相对高度。由于本作品在室内工作,因此GPS与气压计均不能工作,我们通过超声波传感器来测量对地高度,作为控制反馈。控制环的输出为四个电机整体的油门控制量。水平位置控制环用于飞行器的追踪与定点悬停。
我们通过图像识别得到飞行器与被追踪目标的水平距离,作为控制反馈。输出控制量为横滚、俯仰两个水平方向控制量,给到姿态控制环中,控制飞机缩小与目标之间的距离,自动追踪目标。在参数调节上,这三个控制环也有着不同的目标,因而调参方法也不太相同。
姿态控制环与水平位置控制环应该追求高动态性能,能够快速响应,因此它们的比例分量(P参数)、微分分量(D参数)比较重要,同时也应该尽量优化算法以提高控制环运行的频率。而高度控制环应该追求高静态性能,保证最小误差与抗干扰,因此应该使用合适的微分分量(I参数)。
图像识别算法
多旋翼自主飞行器的定点悬停和跟踪小车是通过识别小车上的圆心位置,与自身位置对比后进行姿态调整和控制。小车上圆心的识别采用霍夫圆变换算法。
霍夫圆变换的具体步骤为:
1.根据RGB彩色图像获得灰度图和二值图。对二值图像进行横向和纵向扫描,检测图像的边缘。
2.对边缘图像上的每一个非零点,利用sobel算子计算x方向导数和y方向的导数,从而得到梯度,从边缘点沿着梯度和梯度的反方向,对黑色区域中的每一个像素,在该像素点位置对应的二维累加器中投票。
3.取二维累加器中累加值最高的点,作为候选圆心。
4.从候选圆心由内向外进行区域扩张,直至遇到白点。对该黑色区域的累加器的累加值求平均作为该候选圆心的累加值,如果这个累加值大于一个设定的阈值,则认为该候选圆心有效。
5.对有效的候选圆心的坐标进行低通滤波。
多旋翼自主飞行器在跟踪小车时实现航向的跟随偏转,是通过检测小车上的两条相互垂直的直线,根据两条直线的交点和斜率来进行姿态调整。检测直线时,通过霍夫线变换获得两条相互垂直的直线,根据两条直线的交点进行定点跟踪,根据其中一条直线的斜率实现航向偏转。
霍夫线变换的具体步骤为:
1.根据RGB彩色图像获得灰度图和二值图。对二值图像进行横向和纵向扫描,检测图像的边缘;
2.将每一行或每一列的黑线中心坐标转换至霍夫空间,转换时以上一帧的检测出的直线作为检测范围的约束条件,既能减少运算量又能实现对直线的跟踪:
3.选择参数空间中的极大值点对应的直线作为候选直线;
4.由行扫描和列扫描获得的两条直线若近似满足垂直关系则认为检测有效:
5.对有效检测后的两条直线的交点和斜率进行低通滤波。
图像处理算法原理如图3所示。
作者信息寇梓黎,郑添,邹少锋;东南大学-电子科学与工程学院。
↓↓↓↓点击阅读原文,查看更多新闻