刘伟男 郭英利 李媛媛
摘要:针对室内飞行器自主飞行无法采用卫星定位的问题,采用惯导测量单元、视觉摄像头的组合导航方法,实现四旋翼对地面智能小车的检测跟踪与避障。本设计选用STM32F103c8t6芯片作为飞控核心,硬件有航态采集模块、激光测距模块、摄像头模块、超声波测距模块和以STM32F407vgt6芯片为核心的摄像头数据计算模块等。ICM20602芯片为四旋翼提供航姿数据,实现四旋翼的稳定飞行。摄像头模块为四旋翼提供导航数据,使四旋翼检测到智能小车且定高飞行。系统增设STM32F407vgt6芯片处理摄像头数据以确保摄像头数据计算的同步性,通过超声波测距模块对障碍物进行检测并传输距离数据给飞控,使四旋翼实现定高跟随智能小车飞行,任务中对面积型障碍物实现避障。
关键词:四旋翼;摄像头;避障;自主飞行
1 系统硬件设计
飞控核心采用STM32F103c8t6芯片,由航态采集模块、激光测距模块、超声波测距模块、摄像头模块、摄像头数据计算模块组成,如图1所示。
1.1 飞行控制模块选择
针对四旋翼飞行过程中需要极高的数据实时性,因此对芯片的时钟频率有较高的要求。本设计采用STM32F103c8t6处理器,最高工作频率可达72MHz,内置有64KB Flash和20KB RAM。该芯片实时性高、功耗低,拥有丰富的外设,为二次开发用户提供硬件接口。
1.2航态采集模块选择
本设计采用ICM20602模块,该模块通过3.3V-5.0V的电源供电,使用标准SPI通信协议实现与单片机的通信。芯片内置有AD转换器,可输出16位数据,具有优越的数据实时性和测量范围可调等优点。
1.3 测距模块选择
在本设计中四旋翼实现定高飞行采用VL53L0X激光测距模块,用US-100超声波测距模块实现对障碍物距离的检测。VL53L0X具有封装尺寸小、灵敏度高等特点,可测量真实距离范围为0.02mm-2000mm。US-100可采用串口通信读取距离数据,可测量真实距离范围为2cm-200cm。
1.4机器视觉系统选择
机器视觉系统为四旋翼提供导航参数是系统的重要组成部分,它由视觉摄像头OV7670和数据计算芯片STM32F407vgt6组成。OV7670模块具有体积小、工作电压低、灵敏度高等优点。系统还增设由STM32F407vgt6芯片处理图像数据,其拥有高达168MHz的工作频率可以高速处理来自摄像头的图像数据,经过测试可以1s处理8帧的图像。
2 系统软件设计
2.1 飞控算法分析
分析四旋翼的飞行原理可知,飞控获取四旋翼的姿态信息,经过控制器输出不同占空比的PWM信号控制电机的转速来控制四旋翼的姿态。利用ICM20602芯片读取飞行姿态的原始数据,并将原始数据经计算转换为欧拉角,通过采用串级PID控制器算法控制飞行姿态。实测角度与期望角度作差得到角度误差,角度误差输入到角度控制器中控制误差为0;角度误差作为角速度控制器的输入值计算角速度,期望的角速度与当前角速度作差得到角速度误差,乘以角速度误差系数k_p得到KP,将角速度误差限幅后累加到KI中,前后两次的角速度误差的差值存储到KD中,最后将KP、KI、KD三者相加并限幅后得到PID输出。串级PID相比单级PID具有更优的稳定性,经过测试,证明该飞控算法满足设计要求。
2.2 机器视觉摄像头算法分析
本设计采用OV7670摄像头识别小车位置信息,实现目标是让四旋翼时刻处于小车的正上方。将摄像头安装在四旋翼底部中轴线中心的位置,并且装有VL53L0X激光测距模块。飞控通过读取高度信息,经过油门控制器输出油门值控制四旋翼的飞行高度,保证图像数据不会因四旋翼飞行高度变化而受到影响。系统还增设一片STM32F407图像处理芯片来保证图像数据计算的实时性,摄像头采集实时图像得到小车的位置信息,图像处理芯片对当前采集到的图像信息进行判断,把计算后得到的小车实际位置通过串口发送给飞控控制四旋翼飞行线路实现跟随小车飞行。
测试场景由黑色小车和白色背景构成,图像数据简单且对比度明显。在图像数据计算时将一帧图像转换成“0”、“1”(0 为背景,1为小车)信息保存,然后提取小车中心以得到小车的位置。
本文設计的图像识别算法分为3步:
(1)对一帧图像进行中值滤波。将摄像头采集的图像通过中值滤波去除噪声,防止噪声干扰。
(2)提取图像每一行变量为“1”的中心点。依次判断每一行中每一个像素点是否为黑点(数据信息“1”),当遇到黑点时则统计黑点个数(设计数为Y),白点不予记录。记录黑点在该行的位置并与之前黑点的位置相加保存到X,X值是该行所有黑点位置的总和,用X/Y得到该行黑点的中心点,对中心点数据求均值,即将所有点值求和后除以行数。
(3)对比前后两帧计算后的中心点位置差值,判断当前四旋翼的位置并根据偏移量调整四旋翼的位置。图像识别算法的流程图如图2所示。
经过测试,由于测试场景对比度高,可以准确的确定小车的位置。因为飞控处理能力有限,若增加图像处理任务实时性差,容易导致四旋翼飞出摄像头识别小车的范围,添加了一片STM32F407图像处理芯片后实现 1s处理5帧图像,大大提高了实时性。
3 结论
本文提出一种基于机器视觉和双控制芯片的自主飞行四旋翼的设计思路,在简单背景与小车对比度大的情况下,证明图像处理算法的可靠性。经测试证明四旋翼飞行稳定,跟随小车飞行效果优秀,由于采用了双处理器计算数据,极大程度上提高了四旋翼的实时性。
参考文献:
[1]李文超.X70四旋翼飞行器建模与飞行控制研究:[D].南京:南京理工大学,2014
[2]章志诚.基于STM32嵌入式四旋翼飞行器控制系统设计[D].杭州:浙江工业大学,2014
[3]姜强,曾勇,刘强.四旋翼飞行器姿态航向参考系统设计与实现[J].控制工程,2013,20:167-169
基金项目:沈阳航空航天大学大学生创新创业训练计划项目资助