APP下载

六旋翼无人机自动巡航与避障研究

2016-10-18韩雨轩

中国科技信息 2016年18期
关键词:光流飞控测距

六旋翼无人机自动巡航与避障研究

为解决多旋翼飞机在飞行过程中所遇到的自动巡航以及避障问题提出能够切实可行的思路,通过光流传感器的测距原理以及超声波测距模块测距理论,构成一整套综合的测距模块,再通过飞控板控制进行避障;同时再通过机超视距飞行以及飞控板的特有的油门行程锁定以及定高的功能,构成一套完整的自动巡航的系统,针对于飞机所使用的2.4Ghz的发射机越障效果较差的弊端完成研究的自动巡航的任务。

本文重点在于民用无人机以及工业无人机的研究,主要是通过针对于自动巡航和避障进行研究。如在4m以下高度精确度0.1m以内自动巡航以及4m以上通过GPS以及气压计定高精确度0.2m以内进行巡航作业。以及使用已有的优秀感知障碍物的算法,综合HC-SR04和光流传感器同时进行作业完成障碍物的感知,防止在飞行途中遇障碍物发生碰撞。

飞行器飞控

apm飞控板

APM飞控板就是本研究使用的飞控板,apm是由DIY DRONE公司研制的一种开源飞控板,开源顾名思义是开放源代码,使用者可以利用自己所掌握的电子知识对飞控板进行改造。所编写的程序由于其本身的adurino型号芯片可以直接利用C语言编写程序,编译方便。

飞控板硬件

apm飞控板的主核是adurino mega 2560型芯片,这种芯片能够直接与USB相连并烧录程序(烧录器与飞控板合为一体),当然其作为烧录器的功能被淡化了,不再需要使用一定特性的下载烧录板(如usbasp下载器等)。

apm飞控板是通过电子调速器模拟电源或者是usb供电(图1),供电电压统一为5V。apm的气压计受干扰比较大,所以要使用黑色或者是冷色调海绵进行覆盖。把原先的直针接头更换成了弯针接头,更好地适应了F550内部比较狭小的空间。此飞控板上的电路设计比较合理,一个短接JP1接头已经在被默认是焊断的,适合外接大量传感器的飞机硬件要求。

飞控板固件

图1 apm飞控板电路实物图

固件部分选用apm的hexa X型固件,这种固件是适用于六轴飞行器的。X型飞行模式也属于现在比较主流的六旋翼飞行方式。本研究所选用的是3.2.1固件,但穿插进了适用于apm飞控板的HC-SR04超声波测距模块的程序,结合其本身多数用户的体验升级,飞行稳定性也有较大的提高。其次为了控制在室内大空间的飞行无法搜索到GPS的问题,将自检模块中的GPS自检去除,即为有无GPS飞行器均可升空飞行,但是GPS的工作不会被中断。

Failsafe(图2failsafe输出检测端与正常电子调速器信号输出端一致)功能也属于比较重要的功能之一,飞机失控是事故,而failsafe就像一把保险的钥匙一样。同样failsafe解锁之后在usb供电的情况下还可以用于校验输出的是否正常的问题,不仅如此,failsafe还可以严格监控电源电量的问题,很好地避免了听不到报警声的问题出现。

飞控板地面站

开源飞控的精髓也可以说就是在地面站上面,地面站的丰富度大大提高,可以进行开发者选项的操作。Mission planner属于本飞控板可以使用连接以及烧录程序的重要应用程序,在安卓操作系统中也有类似的程序叫Droidplanner,添加了一个check的清单,主要是避免了在飞行之前没有检测清晰而发生的不必要的飞行麻烦。

每一次飞行中飞机的动向至关重要,模式的调整也显得很重要(比如这名模友就没有安装数据传输模型,所以没有察觉到飞机的模式突然发生了改变,险些发生飞行惨剧)。

图2 failsafe自检端口与输出端口共用

图3 传感器工作原理

图4 超声波模块工作程序框图

飞控板配套装备

飞控板配套的螺旋桨、电机、电调选择也是十分重要的,电机的选择和螺旋桨至关重要首先是电机KV值:大KV配小桨,小KV配大桨。KV值是每1V的电压下电机每分钟空转的转速,例如KV800,在1V的电压下空转转速是800转/ min。10V的电压下是8000转/min的空转转速。绕线匝数多的,KV值低,最高输出电流小,但扭力大。绕线匝数少的,KV值高,最高输出电流大,但扭力小。KV值越小,同等电压下转速越低,扭力越大,可带更大的桨。KV值越大,同等电压下转速越高,扭力越小,只能带小桨。相对的说KV值越小,效率就越高。其次要考虑电调和电机,电调出于安全考虑其电流必须大于电机最大电流,保证不会电机停车。

电子调速器是由mos管和单片机统一组合后的一种电路,主要在于能够将所接受的电信号转化成控制电机的输入电压的信号,进而控制电机转速的装置。

电子调速器要油门航程校准,使得六个电机转速转动幅度同步。

避障模块

超声波测距传感器避障模块

超声波测距传感器模块简介

Hc-sr04型超声波模块适用方便只需要四个接头就可以完成全部实验所需,供电在5v以内,最远可以达到4m的精准测量,但不巧的是HC-SR04的测距是使用TTL脉冲波的,但是apm飞控板本身并不识别这一种脉冲波,所以就要使用arduino pro mini型单片机进行更改其信号模式,方可使得apm飞控板能进行识别。

超声波测距传感器模块工作原理:

超声波传感器首先会发出脉冲波(如图3),根据声波所具有的波的特性,触碰到障碍物就会反弹,这是本身在HC-SR04中的单片机就会接收到这一信号,根据返回信号与发出信号的时间差就可以得出障碍物与飞机的距离,同时本身在已经与HC-SR04焊接好的arduino pro mini型单片机就会把所需要的信号转化成apm飞控板可以识别的信号,同时apm飞控板利用这一信号得出自己与障碍物的距离,直接将自己的状态信息切换到定点模式(Poshold)当障碍物消失之后或是规避障碍物之后才会取消这一模式。这期间的稳定主要是通过已有的加速度计的校准数据的提取直接对飞行端口输出行程进行更改,保证其稳定性。(如图4)

超声波测距传感器避障模块改造

arduino pro mini型单片机是arduino旗下又一成功力作,这一种类型的单片机配合上Hc-sr04就可以进行精准测距,价格也相对来说比较便宜。同时可以利用ftdi下载小板直接进行连接。

这里的模块整合包括了组装和调试组装需要将整个Hc-sr04的板子出口除VCC和GND两个接口以外的与arduino pro mini小板上的 trig连同echo连接在一起,再将arduino pro mini小板上的scl与sda两个连接在I2c接口上,考虑到本身罗盘就已经占据了I2C接口的大部分,所以就利用到了apm原本的数据接口A0来连接。

由于整架飞机是多旋翼构造,多个螺旋桨工作时噪音会比较大,这样的噪音可以通过滤波软件出去,即便没有软件的时候测距虽然能照常进行但是整个精度与范围也会大打折扣。调试之前要将程序烧录,把arduino pro mini和ftdi小板焊接在一起。至于先前已经在apm的程序里面加入了超声波测距这一选项,则在调参的过程中可以直接利用apm地面站即可。再打开全面调参菜单中RNGFND_TYPE的修改为2:APM2-MaxbotixI2c,RNGFND_MAX_CM中设置最大距离为500(留出一定的空余),将RNGFND_ MIN_CM设置为4,即为最小值,通过GAIN可以索要调整高度的值。超声波测距模块相比于气压计利用了海拔高度引起气压变化而进行定高成熟了许多,这种气压测高的方式在低速状态下比较通用,但是飞机马达声噪音影响太过明显,同时设计者在最开始就没有很好的考虑到飞机本身所具有的特性,而在较快的空速条件下,又因为上下流体气压差而使得整部机器出现了较大的偏差。但是装备了超声波模块会使得整架飞机的测距避障功能得到了一定的提升局限性还是比较大,比如上方的超声波无法进行有效的安装,测距效果也不是甚好,包括侧面的飞行也没有达到一个很好的测距避障效果,现在良好的效果也就只有侧下方以及正下方的测距避障效果比较好,但是如果距离落差极大或者是突然的断崖式陡增或者是陡降现在都没有很好的方式得以解决我个人认为应该有一套能活动的超声波测距模块效果会更好,如在上10米多高的墙壁或者陡崖的时候超声波传感器从向下看一直移动到向上看,这一点可以利用舵机完成。

图5 成品图

图6 成品图

光流测距传感器

光流测距传感器简介

光圈为3.6的定焦镜头能在30~1000cm进行拍摄作业,旨在与超声波测距模块进行避障使用,当然它也有不能向上进行探测,这里面的光流传感器主要还是依托apm飞控板开发的,主要是以图像捕捉为主的一种测距避障新模式,当然在30cm以内传感器将会进入无法对焦的尴尬境地,所以当30cm以内时我设置了光流传感器自动关闭的选项。同样传感器一旦装备必须固定不得旋转(图6成品图)

光流测距传感器工作原理

光流法检测运动物体的基本原理是:给图像中的每一个像素点赋予一个速度矢量,这就形成了一个图像运动场,在运动的一个特定时刻,图像上的点与三维物体上的点一一对应,这种对应关系可由投影关系得到,根据各个像素点的速度矢量特征,可以对图像进行动态分析。总体来说这种方法的最好应用领域就是鼠标光流测距控制计算机。光流传感器与apm结合情况下的测距功能主要来自于两方面,第一种是平稳状态下的测距模式,就像是鼠标的光流测距是一样的不同的情况下会出现不同的光流值(如图7,水平测量);

第二种模式:是弥补出现的偏差角问题我们弥补飞行器侧倾和俯仰变化在这幅图中我们可以发现飞行器的侧倾和俯仰的变化也将导致传感器返回值的变化。与横向运动的计算不同,这些都不依赖于可见物体的距离。在下面的图片中,可以看到的飞行器已经侧倾了10度,但第一张图中视角中心的两个花都移到了第二张图片的视角边缘。那么就要进行校准,直接读取已知的apm飞控的倾斜角度在减去已有的倾斜角再求tan值完成校准弥补偏差角。(如图8)

自动巡航

自动巡航的工作原理

自动巡航利用的是GPS和已有的油门航程数据进行巡航作业。(图9程序框图)

自动巡航的操作

飞机所处状态必须是auto的状态,而且整个飞行过程中必须按照已经写好的脚本进行飞行,同样自动模式种只会考虑GPS所提供的经纬度不会考虑任何情况下的高度参数,所以一定要注意飞行高度不要过高,否则飞机高度的改变量将由仍在6m以上工作的气压计进行定高,而且气压计的参数不稳定,出现10m以上的高度上下变化不是不可能。有两种方法进入自动模式:在空中或者在地面上。如果飞行员要从地面使用自动模式起飞,有个特殊的安全装置防止任务脚本执行,直到飞行员解锁然后首次抬高油门。这是为了防止在不小心碰到模式开关时飞行器就起飞了。从地面使用自动模式起飞时,那么最近一次的定高油门值作为油门控制的基准。一旦飞行器起飞就会飞向第一个目标高度,然后开始执行之后的任务脚本。当飞行员已经在空中的时候切换到自动模式,会使飞行器前往第一个目标高度,然后开始执行当前的任务脚本。

图7 水平测量

图8 偏差角弥补

图9 自动巡航的程序框图

但任务一旦结束,飞机一旦完成任务时不会再飞回来的,一定要下达RTL的命令并先前设定好家的位置。直到通过模式开关重新获得控制时飞机才会飞回来。如果想要你的飞行器飞回到家,可以添加一个RTL(回家)命令结束当前的任务脚本。如果想要手动降落然后锁定电机(比预编程的自动降落命令更好),必须切换到自稳模式。

在任务脚本最后位置的RTL或是自动降落会强制降落然后停止电机。不能在自动模式手动降落(否则直接锁死),除非已配置以上两个选项之一,因为油门摇杆控制高度(高度也可以先前预设定),并不是直接控制电机。

结语

利用光流传感器以及超声波传感器的测距式避障模块组合与apm开源飞控板组合较为成功也达到了前期目的,使得在正下方以及正前方的障碍物能够成功地被感知,能够在一定条件下为学校大型活动进行航拍作业。即便在研究过程中有一些美中不足,比如说如人机的避障模块无上仰工作,面对落差较大的障碍物就会无能为力,在某些极端天气情况下无法正常飞行,有的时候也不能完全做到100%的避障效果,但是总体来说效果还是客观的,至少解决了飞控上的避障与自主巡航联动操作的一大难关。

通过对于HC-SR04的知识应用以及光流传感器测距功能的学习与编写。包括将所得数据输入到控制端,再从控制端提取加速度计数据以及已有命令再执行,最后完成避障的工作。本方法规避了很多由于机械故障而引起的飞行事故。总体来说整架飞机的实用性,解决问题的方便性,可操作性都是较为优秀的。

10.3969/j.issn.1001- 8972.2016.18.018

猜你喜欢

光流飞控测距
利用掩膜和单应矩阵提高LK光流追踪效果
类星体的精准测距
民用飞机飞控通电自检测安全性研究
02 飞控技术与机场安保引关注
飞控系统故障告警实时监控软件的设计与实现
浅谈超声波测距
基于PSOC超声测距系统设计
一种改进的基于全局最小能量泛函光流算法
相对差分单项测距△DOR
融合光流速度场与背景差分的自适应背景更新方法