
基于ArduinoMiniPro的无人机驾驶系统的研究与实现.doc
6页基于Arduino Mini Pro的无人机驾驶系统的研究与实现作者:周志浩汪鑫俞佳星 来源:《商情》2014年第44期【摘要】无人机(以下简称UAV)是当前比较热门的研究方向,对于无人机的控制方式 更是五花八门,但是鉴于当前无线电环境的条件,对于短距离飞行(IKM以内)来说是没有 太大影响的,但在中长距离情况下,远程操作一般需要中继站或卫星的帮助,这对于无人机的 安全性是很大的考验对于未授权的控制和监控是无法避免的,那么研究一套全自动的飞行系 统就显得尤为必要关键词】无人机,自动驾驶【Abstract ] Un ma nned aerial vehicles (herei nafter refeired to as UAV) is currently more popular research direction, for a controlled manner UAV is varied, but under the current radio environment, for the short flight (Below IKM) is not much impact, but in the long distance, the remote operation generally requires the help of a relay station or satellites, which for the safety of the UAV is a great test, we can not avoid unauthorized control and monitoring , then the study in automatic flight system is particularly necessary.[Key words] UAV, Auto-Route0引言无人机驾驶系统(以下简称UAVS),既是利用先进的无人驾驶飞行器技术、遥感传感技 术、遥测遥控技术、通讯技术、GPS定位技术和遥感技术,具有自动化、智能化、专用化,快 速获取国土、资源、环境等空间遥感信息。
还可用于抢险救灾,视屏拍摄,特技飞行表演等 无人驾驶系统由于具有机动、高效、经济等优势,已经成为世界各国争相研究的热点课题但 是UAV的远程控制安全性不佳极易受外界T•扰或拦截,如果使用自动控制系统可以很好的控 制飞行,并且达到无人操控的目的,其安全性极为突出1基本飞行原理四旋翼是多旋翼家族中的一员,因其易受控制、高性价比等的特点,故本文选取它作为实 验对象,它的的控制方式目前有+型和X型两种型控制起来相对更容易,但是不利于做特 技动作,而X型则正好相反故本文的研究对象采用X型如图1)1.1上下运动当需要上下运动时,首先要保证相邻两个的电机的旋转方向是相反的以便于抵消相互的 扭力避免飞行器在空中发生不受控制的旋转当逐渐增大电机的转速时,拉力慢慢上升,直 到拉力大于重力时,飞行器开始上升当拉力等于重力时,飞行器慢慢趋于稳定,悬停在空 中当减小电机转速时,拉力慢慢减小,直到小于重力,飞行器开始下降,直至落地1.2俯仰运动当前方的两部电机加速,后方的两部电机减速这时飞行器开始抬头而 相反时飞行器开始俯冲在做俯仰动作时,每组电机的转速要平衡,以便于抵消相互的扭力, 避免飞行器在做俯仰动作时发生偏航°1.3滚转运动。
在左侧的两部电机加速,右侧的两部减速,这时飞行器开始做向右的滚转 动作相反时飞行器开始做向左的滚转动作在做滚转动作时,每组电机的转速同样要平衡, 以便于抵消相互的扭力,避免飞行器在做俯仰动作时发生偏航1.4偏航运动在斜对角线的两部电机加速,另外的两部电机减速时,飞行器开始做偏航 运动如图1所示,如果X轴电机加速,Y轴电机减速,这时飞行器开始做逆时针偏航运动 如果相反,X轴电机减速,Y轴电机加速,这时飞行器开始做顺时针偏航运动1.5前后运动前后运动与俯仰运动类似,当飞行做俯仰运动的同时,也会在水平方向产 生作用力,推动飞行器做前后运动1.6左右运动左右运动与滚转运动类似,当飞行做滚转运动的同时,也会在水平方向产 生作用力,推动飞行器做左右运动2口动控制算法2.1平衡算法a) 陀螺仪数据获取本文使用的是MPU6050电子陀螺仪,作为水平、垂直、俯仰、航向 和角速度传感器通过通讯协议直接读取到的数据是一串一串的数据,需要经过才能进行后续 运算,故使用VS20I2编写了数据转换软件来转换数据如图2)下文中所提到的eEtF就是 来源于本算法处理后的结果b) 比例(P)控制比例控制就是在传感器获得输入值e (t)发生变化时,输出值u (t)也相应的跟着发生变化。
uEtF=KeEtF;注:其中K为比例放大系数在实际情况下,比如控制螺旋桨的升力时,当提高电机转速的时候,传感器得到数据并不 是立即就呈现一个上升的态势它有一定的延迟正相关于传输距离,处理速度)同样,当我们减速时,传感器得到的数据也并不是立即出现下降的态势因此,简单的使 用比例(P)控制,容易产生震荡、过控,甚至就可能直接使飞行器失去控制C)比例积分(PI)控制比例积分控制就是在比例控制的基础上在增加一个对误差eEiF的积分误差eEiF可能很 小,但是随着时间的增加,u (t)会慢慢变得很大,这样就可以推动整个系统减小这个误差d)比例积分微分(PID)控制比例积分微分控制就是在上面的基础上再增加一个对输入值e (t)的微分在实际情况 中,很多时候我们的变化总是比误差的变化慢,原因是系统存在一些大惯性的、有一定滞后性 的东西它可能会使得整个系统产生震荡、甚至失控通过加入微分项可以减少过控,抑制震 荡2.2导航算法a) GPS原始数据获取本文采用的是带有串口 U・blox GPS模块,能够直接输出ASCII码格式的GPS数据而 GPS输出的数据有好几条比如$GPGGA、$GPRMC、$GPVTG、$GPGGA、$GPGSV 等信息o我们主要使用的是以$GPRMC开头的这条数据。
下面是这条信息的具体格式:$GPRMC, <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>, <9>, <10>, < 11>
如果之前的读到数 据如果还没有来得及处理,新的数据就会覆盖掉原来就得数据°这会产生不可预测的严重错 误为了避免这样的错误,我们需耍定义一个队列来缓冲读入的数据一个个放入队列中,然 后提取GPS信息的程序挨个的读出,并提取GPS坐标信息本文研究之前采用的是51单片机 但是因为需要中断大大的影响了运算速度,后使用双51方案(一块51负责主运算,一块负责 GPS,碰撞等从运算)但是效果不佳,故采用了 Arduino系列单片机来解决b) 电子罗盘数据获収本文使用的电子罗盘是基于IIC通讯协议的芯片读出的数据是 一个浮点型数据代表当前方向与正北方向的夹角顺时针为正,取值范围为0°-360°) oc) 导航控制算法我们假设目标点坐标为(a, b),当前点坐标(a, b),电子罗盘获 取的值为C首先需耍计算岀冃标点在当前点的方向角度deg Ao另,角度为正时代表顺时 针在飞行过程中我们可以事先在上位机或客户端上设定飞行路径,软件会根据飞行轨迹 给出尽可能多的位置坐标点(可以按照实际情况手动输入采点数量或距离)之后通过蓝牙模块 或连线将数据写入Arduino单片机小,运行时系统不断做上述循环,但是速度正相关于GPS数 据读取的速度。
同时飞行稳定性也正相关于循环的快慢°2.3避障及自动降落算法本文采用的是SR04超声波测距模块其工作距离在4毫米到4米之间,误差在毫米级 因其稳定性好,性价比高故本文采用其作为实验对象a) 模块丁.作原理经发射器发射岀长约6mm,频率为40KHz的超声波信号此信号被物体反射回来由接收 头接收,接收头实质上是一种压电效应的换能器它接收到信号后产生mV级的微弱电压信 号在实际测试SR04超声波模块时,只耍在控制口发一个10US以上的高电平,就可以在接 收口等待高电平输出如图5) —有输出就可以开定时器计时,当此口变为低电平时就可以 读定时器的值,此时就为此次测距的时间,方可算出距离(S=c*t/2) o如此不断的周期测,就 可以达到测量值了如图6通过上位机读取数据)b) 避障算法在飞行器的四周有四个一样的超声波测距仪,测量不同方向的距离,在四周障碍物距离超 过4米的情况下,系统不会做任何操作,但当小于4米时将控制其向相反方向运动,起到了负 反馈的作用如果检测到同一水平线上的两方向都有障碍物系统将取两血距离之和的平均值, 使飞行器工作在两个障碍物Z间在整个控制系统中避障算法的优先等级是高于导航控制算 法。
一般此类飞行器的飞行高度都在lKm左右,所以不必担心过于复杂的环境对于一般会 遇到的障碍物常常是大楼和树木,所以我们在前面的基本避障算法上在对特定的物体进行了简 单的模型建立,当条件符合时将会自动调取模型算法c) 自动降落算法口动降落算法可以很好的解决炸机问题,据调查发现主耍的炸机事故都发生在起降过程 中,所以我们对此建立了一个简单但行之有效的模型其下落过程就像弹性小球落地 时的情况,但最低点时还是离地而有一定髙度的3总结本文以Arduino Mini Pro单片机为基础利用多种算法实现UAV的自主飞行这其中包括 了自主的姿态控制、飞行路线控制为了达到上述目的,本文利用多种传感器,包括电子陀螺 仪、电子罗盘、GPS模块、超声波测距模块等同时在UAV上对此进行了实现,并取得了不 错的效果在导航和平衡算法上还是有很多深入空间的,这也是本文下一步的研究方向参考文献:[1]王泉,张学宏,周敏刚,黄辉.无人机飞控软件测试方法研究[J].航空计算技术,2008,[2] 常庆利,小型无人机飞控系统软件架构与实现,中国电子科技集团公司第三十八研究 所[3] 杜萍,杨春,飞行器航迹规划算法综述[J]飞行力学,2005, 23 (2) : 10-14[4] 陈海汉,刘因,杜运磊,无人飞行器航迹规划研究[J],计算机应用,2011, 31 (9): 2574-2576⑸乔桥,史长久,飞行器航迹规划的多目标优化方法[J],微计算机信息,2010, 26(11) : 172-174[6] 孔庆杰,史文换,刘允才,基于GPS轨迹的矢量路网地图自动生成方法[J]。
中国科学 技术大学学报,2012, 42 (8) : 625-62。












