近年来大规模的灾难、事故频发,对人类的生命和财产造成极大危害,及时、有效地投入防灾救灾可大大降低灾害损失,研究高效的救援搜索设备具有特别重要的意义。随着科技的进步,新型技术成为救援的制胜法宝,尤其是飞行机器人技术。因具有灵活、重量轻、以及可深入危险区域工作等优势,搜索飞行器在灾后救援工作中起着越来越重要的作用,此类飞行器需要具备稳定的运动控制、采集多种环境信息、以及无线控制等功能。可见,搜索飞行器需考虑完成的功能多、涉及技术广、环境状态不确定等因素,因此存在设计难、可扩展性差、缺少丰富的通讯能力、研究成本高等问题。
针对以上问题,文中根据飞行机器人系统的可扩展、可裁剪、以及互操作等特性,采用模块化方法设计并实现一个飞行机器人原型系统.通过无线通信实现飞行器控制及数据传输,以完成目标探测、搜索以及安全监控等功能。
1 目标搜索飞行器系统设计
1.1 硬件体系结构
目标搜索飞行器须具备一定的飞行速度、低能耗、飞行稳定性、适应多样的环境探测,以及有悬停、垂直升降升能力。其中,飞行移动载体的结构简单,可省去复杂的机械设计,且运动速度快,可减少目标搜索时间。为此,采用四轮旋翼飞行方式,增强飞行器的移动能力。
目标搜索飞行器包括手持控制终端和飞行机器人两部分,两者之间通过wifi无线通信方式传输图像和控制信息;飞行器利用携带的摄像头采集图像并进行压缩,通过wifi传输给手持终端,手持终端对接收到的图像进行解压后在本地的TFT液晶屏显示。用户可根据显示的图像信息,利用可视化触控界面向飞行器发送飞行控制命令,飞行器接收到控制
命令后进行解析,然后据此命令调节电机驱动电路,控制直流电机的转动、启停,实现飞行器的前进、转向、升降、悬停等运动,同时飞行器的主处理器可控制摄像头180°的转动,以调整拍摄角度。语音模块可以在飞行器搜索到目标信息后进行报警提示。此外,飞行器上还带有超声测距、电子罗盘等传感器,在飞行的过程中通过这些传感器提供的信息自我调整飞行运动。手持终端和飞行器主控制板采用ARM11架构的S3C6410微处理器作为控制核心,软件上运行Linux 操作系统,主要完成无线数据收发、图像数据处理、电机控制信号输出等功能。飞行器硬件体系结构如图1所示。
1.2 目标搜索功能模型
在目标探测、搜索过程中,涉及的控制操作较多,各功能模块间的调用关系较复杂。为此,采用的UML进行模型分析,完成应用程序功能模型设计,建立系统操作用例图(Use—Case)。系统被抽象为操作员、飞行器和手持终端3部分,操作员通过操纵手持控制终端与飞行器进行对话。软件的应用程序功能模型如图2所示。
飞行器系统主要完成以下功能:
1)命令接收:接收控制终端的指令。指令分为基本指令和电机控制命令。前者控制电机驱动板输出;后者控制机器人基本行为,例如开始采集、停止采集等。
2)数据发送:将采集到的数据通过无线网卡发送给手持式控制终端。
3)信息采集:传感器探测包括图像、障碍物距离以及运行方向等信息。
4)语音播报:飞行器搜索到目标时进行语音报警动作。
5)运动控制:实现前进,转向,升降,启停等基本功能。
2 系统实现
2.1 电源
为了使移动机器人运动方便,必须自带电源。其中,飞行器控制电路采用5 V直流供电,电机驱动部分则需要12V直流供电,为了减少控制电路受到电机运动的干扰,采用独立供电方式。主控制板功率消耗较小,通过LDO芯片AMS1117、LM4040B、XC6206P122等来实现3.3 V、3.0 V及1.2 V电压转换;而电机板功率消耗较大,为了提高使用效率,通过开关电源LM2576实现5 V电压输出。电源转换电路如图3所示。
2.2 电机驱动
电机驱动电路由H桥和光电隔离电路两部分组成,采用4片LMD18200H桥芯片实现飞行器的四路直流电机控制。为提高抗干扰性,主控芯片与电机驱动放大电路之间通过光电耦合器实现隔离。S3C6410从GPIO输出控制信号,经低速光耦TLP521光电隔离后输出给LMD18200,控制电机的启停;由于S3C6410的PWM输出信号频率较高,采用高速光耦6N137实现信号隔离,控制电机的运转速度。电机驱动电路如图4所示。
2.3 无线传输
无线通信模块采用的是基于RT2571/RT73芯片的54MUSB无线网卡,符合IEEE 802.11b和IEEE 802.11g标准。手持控制终端和飞行器之间采用对等式(Ad—Hoc)的方式进行
通信,配置双方的无线网卡的工作模式为对等式模式,在Linux操作系统下采用socket套接字建立TCP连接,实现图像和命令信息的交互。
主处理器通过USB端口控制无线模块的数据收发。无线传输模块主要完成两个任务:1)手持式终端向飞行器发送控制命令;2)飞行器回传图像数据至手持终端。飞行器系统的软件设计采用了多任务并发方式执行,飞行器系统无线数据传输、处理的过程如下:
1)发送流程:手持控制终端的QT界面获取操作人员的按键信息,并通过共享内存将按键值传给控制命令发送进程,该进程通过socket套接字,将命令信息发送给现场机器人的控制命令接收子进程,该进程对命令进行解析,通过调整四路PWM输出占空比,从而控制飞行器的运行。
2)接收流程:现场机器人的图像采集子进程将采集到的图像进行压缩后通过socket套接字发送至手持控制终端,由图像接收子进程接收并对图像信息进行解压等处理,然后在本地液晶屏上进行显示。无线传输的软件工作框架如图5所示。
手持控制终端作为客户端向现场飞行器服务器发送控制命令,所以要延时等待现场飞行器服务器的建立,当传输控制命令的C/S模式建立完成后,飞行器要作为客户端向手持控制终端发送图像信息,就必须延时等待手持式控制终端服务器的建立,等待传输图像信息的C/S模式建立,手持控制终端的套接字流程如图6(a) 所示,现场机器人的套接字流程如图6(b)所示。
2.4 图像采集
远距离搜索和探测目标时,通过监测图像判别是否搜索到目标,采用CMOS图像传感器OV6620实现图像采集。主处理器通过I2C接口初始化OV6620设置,外部中断接口连接芯片的场中断信号及行中断信号,8位数据端采集图像数据。图像数据的采集主要由场中断VSYNC信号标记一幅图像开始,行中断信号HREF标记一幅图像的每行的开始,信号PCLK则代表了每个像素点的时序。配置OV6620的为RGB565图像输出格式,根据液晶显示640*480采集图像数据,需要60万Byte RAM空间。
基于ARM平台的图像采集模块的软件部分采用的是基于S3C6410硬件平台的V4L2视频驱动开发,V4L2子系统包括用户态,内核和硬件3个部分。用户空间负责为应用程序提供访问设备的接口,Video_core负责屏蔽底层硬件的差异,为应用程序提供统一的设备接口,Video驱动负责具体设备的初始化,配置不同型号的摄像头的采集过程。
V4L2为Linux下的视频设备程序提供了一套接口规范,采用流水线的工作方式,遵循打开视频设备,设置格式,申请内存,处理数据,关闭设备的 Linux字符驱动设计方式。L inux下OV6620摄像头驱动属于字符类设备,它能够像字节流一样被访问,且只能够顺序读写,OV6620摄像头的驱动流程如图7所示,系统首先加载驱动模块,匹配OV6620硬件设备,向系统中注册字符设备,通过I2C初始化摄像头寄存器,并分配相应的内存空间,开始采集发送图像,完成后释放相应的资源。
3 结束语
实验表明,以模块化目标搜索飞行器实验平台在实验环境中可以较好地完成目标搜索任务。整个系统采用半自主控制方式,飞行器自主导航,采集环境、目标图像信息,传输至控制终端。控制终端依此进行决策,决定飞行器的运动控制,最终完成探测、搜索目标等功能,保证了搜索区域的覆盖,实现了有效、快速的探测、搜索功能。