基于Pixhawk的视觉导航农用无人机

2018-01-18 19:53黄益凛黄承斌郑卓铭吉宏涛
科技视界 2017年29期
关键词:二次开发

黄益凛 黄承斌 郑卓铭 吉宏涛

【摘 要】针对当前农用无人机作业范围较广,无法实现人工准确定位作业,本文提出一种基于pixhawk开源无人机,依靠飞行工作区设立的识别标志,运用视觉导航实现自主飞行的视觉导航农用无人机。该无人机以pixhawk为基础,加入OpenMv、农业设备以及控制芯片共同实现自主导航和农用的双重功能。

【关键词】pixhawk;二次开发;视觉导航

中图分类号: TP391.41 文献标识码: A 文章编号: 2095-2457(2017)29-0049-002

【Abstract】Aiming at the current wide range of agricultural UAVs and the inability to locate them manually,this paper presents a visual navigation based on pixhawk open source UAVs,relying on the identification flags set up by the flight work area and using visual navigation to achieve autonomous flight Agricultural UAVs.The UAV,based on pixhawk,joins OpenMv,agricultural equipment and control chips for dual autonomous navigation and agricultural functions.

【Key words】Pixhawk;Secondary development;Visual navigation

0 绪论

在农业方面,我国农业机械化程度低,发展程度有待提高。而将无人机运用在农业上,可在一定程度上减少人力资源,提高作业效率。与农用无人机相对应的,选择一种导航技术也是至关重要的。若只是人为操控无人机进行喷洒作业,会极大依赖于操作人的操作技术,并不能很好节约资源和良好作业。利用视觉导航,通过算法,可让无人机实现自主导航,这时操作者只需要打开开关,然后选定坐标,便可让无人机自行工作。针对于农业作业或者无人机发展来说,视觉导航农用无人机的存在都是合理及必要的。

1 系统总体方案设计

本视觉导航农用无人机系统的方案如图1所示。本系统主要由三部分组成。第一部分是无人机,本系统所有功能的实现都是基于无人机,因此选择一款性能优越的无人机显得格外重要,本系统要求该无人机,飞行功能正常稳定,漂移范围小,因此选用了市面流行的Pixhawk大四轴无人机。第二部分是视觉处理,本系统要实现视觉导航,必须需要处理拍摄到的图片数据的设备,本系统选用了OpenMv3作为图像处理的设备。第三部分则是为控制器,该控制器负责接收OpenMv3回传的数据,通过算法将这些数据解算为无人机的控制命令,再以Mavlink协议通过数传模块发送给无人机,该控制器还要接收手机或PC机的命令,进而开启或关闭农用设备,基于性能和资源的考虑,本系统选择stm32芯片。总体上是OpenMv3处理摄像头拍摄到图像数据,解析出无人机飞行的下一步运动的坐标,接收到坐标的stm32控制芯片将该坐标解算为无人机动作命令,再将命令包装Mavlink数据包通过数传模块发给pixhawk无人机,进而无人机做出反应。

2 Pixhawk无人机

Pixhawk是目前市面上非常流行的一款无人机,其硬件质量可靠、软件开源、资源齐全,飞行可靠稳定,完全适合运用于我们系统。这部分主要介绍Pixhawk硬件组成、软件框架和开发方法。

2.1 pixhawk的硬件组成

Pixhawk无人机主要由四个电机、四个电调、电池、蜂鸣器、安全开关、数传模块、GPS、R9DS通信模塊以及pixhawk主板组成。而pixhawk主板的核心控制芯片采用的是以ARM Cortex M4为内核的stm32F4系列的芯片,主板上还集成了陀螺仪、加速度计、磁力计和气压计等姿态测量单元。

2.2 pixhawk的软件框架

在Pixhawk中,所有的功能被独立以进程模块为单位实现并行工作,各个进程独立工作,互不干扰。因此进程间的数据交互就尤为重要,必须存在一个能够实时、有序地实现进程间通信的模块。uORB正是为这种进程间通信设计的一个重要模块。uORB(Micro Object Request Broker)是PX4/Pixhawk系统中非常重要且关键的一个模块,它肩负了整个系统的数据传输任务,所有的传感器据、GPS、PPM信号等都要从芯片获取后通过uORB进行传输到各个模块进行计算处理。实际上uORB是一套跨进程的IPC通讯模块。

Pixhawk使用的是NuttX实时ARM系统,uORB实际上是多个进程打开同一个设备文件,进程间通过此文件节点进行数据交互和共享。进程通过命名的总线交换的消息称之为主题(topic),在Pixhawk中,一个主题仅包含一种消息类型,通俗点就是数据类型。每个进程可以订阅或者发布主题,可以存在多个发布者,或者一个进程可以订阅多个主题,但是一条总线上始终只有一条消息。在进行pixhawk二次开发时,可以通过订阅传感器数据主题实时获得各个传感器的数据,也可以发布相关主题实现改变各种数据和操作无人机。Pixhawk还允许开发者创建新的主题。总之,对于开发者,几乎所有操作都是通过uORB订阅和发布主题实现。

2.3 Pixhawk开发

Pixhawk可以在window和linux系统上进行开发。但鉴于在window上开发存在编译耗时的缺点,所以本系统选择在linux系统上开发。endprint

在开发之前,需要安装linux系统,可以选择市面较好的ubuntu系统,该系统拥有良好的用户界面和新立得软件管理器,用户只需分出较小的硬盘空间就可以安装使用。开发者还需下载ubuntu_sim.sh,ubuntu_sim_nuttx.sh文件,前一个文件包含px4所有构建目标的依赖关系,第二个则是基于nuttx硬件的依赖关系。下载完成后还需在终端中使用命令安装它们。接下来便可以使用px4的jmavsim虚拟机,如图2所示。

2.3.1 安装QtCreator

Qt Creator是跨平台的Qt IDE,Qt Creator是Qt被 Nokia收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux、Mac OS X以及Windows。根据官方描述,Qt Creator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及轻易的完成开发任务。图3是Qt上px4代码结构。

2.3.2 安装QGrounpControl

QGroundControl为任何MAVLink无人机提供完整的飞行控制和任务计划。它提供ArduPilot或PX4 Pro动力车辆的配置。其首要目标是首次和专业用户的易用性。它的所有的代码都是开源的。Pixhawk的调试和校准需要在该软件上进行。

3 OpenMV3处理图像

Openmv是国外的一种基于micropython驱动的可扩展开源机器视觉模块,这个模块的目标是成为“机器视觉世界的Arduino”。OpenMv到现在为止一共有三代,本系统使用最新一代OpenMv3。本系统通过OpenMv3模块上采集当前图像信息,检测预设的目标,当预设目标出现在当在图像中时,将得到目标在当前图像中的位置信息(x,y),还有当前位置与目标位置的距离s,这三个参数很重要。有了这三个参数,通过相关算法,就可以很容易的解算出无人机的控制命令,不过这些计算都交给下一环节。该模块只需通过串口,将三个参数提交给stm32。

4 数据处理过程

为实现视觉导航,OpenMV3解析返回的目标坐标必须进行解算成为无人机飞行的命令,因此需要一款主控芯片。基于处理能力及资源的考虑,本系统选择了stm32芯片。該芯片采用ARM公司的contex M3内核,具有优越的运算处理能力,完全符合本系统的要求。在本系统中,该芯片主要负责接收OpenMv3发回的坐标信息,通过算法解算出无人机飞行的下一步命令,再有运用移植在该芯片的MAVLink协议将命令包装,最后通过数传模块发送给pixhawk无人机。该芯片还负责接收手机或电脑对农用设备的命令进而控制农用设备的状态。 5 结语

本系统利用OpenCv3和stm32等模块实现了视觉导航,实验中发现效果良好,pixhawk无人机可以根据预设的路径飞行。定位较为准确,课一定程度上节省人力及物力。 本系统虽然存在不完善的地方,但总体 上实现视觉导航,在农业大范围作业中不失为一个好的选择。

【参考文献】

[1]苏东.基于双目视觉的小型无人飞行器的导航与避障[D].成都:电子科技大学,2014.

[2]陈子杰,刘永辉,赵厚宝,等.基于 PX4构建高可靠多旋翼控制器的实现方法[J].软件产业与工程,2014(6):38-42.endprint

猜你喜欢
二次开发
浅谈基于Revit平台的二次开发
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
三维详图设计软件Tekla Structures二次开发实例
基于C#的AutoCAD建筑构件库二次开发
西门子Easy Screen对倒棱机床界面二次开发
CAD二次开发在铁路车站信号设计中的应用
基于全站仪二次开发的覆冰厚度测量与实现
Micaps3.2 版本二次开发入门浅析
基于VB的ANSYS二次开发在变压器抗短路性能分析中的应用