基于树莓派和Pixhawk的多旋翼无人机自主着陆系统的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于树莓派和Pixhawk的多旋翼无人机自主着陆系统的研究
作者:鲁青青宋志强陈豪
来源:《电脑知识与技术》2019年第13期
摘要:多旋翼无人机的自主着陆系统研究对于其智能应用具有重要作用。着重研究如何通过树莓派3B 和开源Pixhawk 飞行控制器构建性价比高的多旋翼无人机自主着陆系统,从硬件构成、开发环境搭建、软件仿真等方面做了较为详细的介绍,可给经费紧张的研究人员搭建系统提供有益参考。仿真实验和实物验证证明了方案的可行性。
关键词:树莓派;PX4飞控;多旋翼无人机;自主着陆系统
中图分类号: TP391 ; ; ; 文献标识码: A
文章编号:1009-3044(2019)13-0263-03
Abstract: The study of autonomous landing systems for multi-rotor UAVs plays an important role in their intelligent applications. Focusing on how to build a cost-effective multi-rotor UAV autonomous landing system by using Raspberry Pi 3B and open source Pixhawk flight controller,the hardware composition, development environment construction, software simulation and other aspects have been introduced in detail, which can provide useful reference for researchers with limited funds to build the system. Simulation experiments and physical verification prove the feasibility of the scheme.
Key words: Raspberry Pi; PX4 flight control; multi-rotor drone; autonomous landing system
無人机最初应用于军事领域,近年来在民用领域,特别是搜救、灾害监管、测绘、安防、农业、电力、交通、环保等领域均有无人机的身影。随着现代技术的进步,特别是人工智能技术的快速发展,未来无人机+行业应用的模式具有广阔的应用前景。目前无人机还不能做到完成自主地执行任务,其背后都有操作人员在控制,而无人机的主要优势之一就是在无须大量人力劳动参与的前提下进行工作,因此提高无人机的自动化和智能化水平是目前迫切需要解决的问题。自主着陆操作对于其能否智能地完成作业任务有重要影响,是学术界和工业界均希望迫切解决的关键技术。Ruchanurucks等[1]提出一种自主着陆辅助系统综合方法,该方法利用跑道上的标记作为算法的对象点,采用透视n点(PnP))算法控制固定翼无人机自动着陆。Wang 等[2]采用红外T形标记概念,使得固定翼无人机能够在任何天气条件下着陆。对于多点特征情况,使用单应性算法[3]来针对平面标记进行定位,但由于单应性的线性特性,当场景中出现一定程度的图像噪声时,输出姿势会出错,这会导致着落中坠机。
对于自主着陆的研究,学术界主要集中于算法,对如何搭建无人机自主着陆硬件系统则鲜有研究。本文着重研究如何通过树莓派3B和开源Pixhawk飞行控制器构建性价比高的多旋翼无人机自主着陆系统,可给经费紧张的研究人员搭建系统提供有益参考。
1 Pixhawk飞行控制器简介
Pixhawk是由PX4开源项目小组联合3DR公司于2014年推出的飞行控制器[4],Pixhawk 开源飞控项目已在国内引起广泛关注[5]。Pixhawk的开放性非常好,参数全部开放给开发者调整,其集成多种电子地图,开发者可以根据当地情况进行选择。Pixhawk被定位为下一代无人机飞控,系统具备的所有特征均符合未来无人机飞行控制系统未来发展的需求。Pixhawk飞行控制器的主要组成部分如下:
主控制器:32位STM32F427 ARM Cortex M4 核心外加浮点运算单元,主频168MHz;
故障保护协处理器:32位STM32F103;
存储器:2M RAM和256K运行内存;
三轴加速度计/陀螺仪:InvenSense MPU6000,测量将三轴加速度和角速度,用于后续姿态控制;
16位陀螺仪:ST Micro L3GD20,用于测量旋转速度;
14位加速度计/磁力计:ST Micro LSM303D,用于确认外部影响和罗盘指向;
气压计:MS5611 MEAS,,用来测量高度。
2 基于Pixhawk的无人机组装
采用Pixhawk飞行控制器结合自行采购的其他部件组装无人机,组成无人机的主要部件如表1所示。
组装后的无人机实物图如图1所示,飞行控制器固件采用开源固件PX4,地面站采用QGroundControl,运行于操作系统Ubuntu 16.04 LTS之上。
3基于树莓派3B的无人机系统硬件构成
树莓派3B和Pixhawk飞行控制器的接线如图2所示。Telem 2的5V连接树莓派的5V (Pin 2);Telem 2的GND连接树莓派的GND (Pin 6);Telem 2的RX连接树莓派的TX (Pin 8);Telem 2的TX连接树莓派的RX (Pin 10)。Pixhawk上,Telem 2的5V接口支持大电流输出,可以给树莓派供电,这样树莓派可作为机载电脑充当决策者的角色,决定无人机的飞行路线。
树莓派3B安装raspbian-stretch版操作系统,TF卡中写入2018-11-13-raspbian-stretch.img 系统镜像,其内核为Linux。树莓派3B充当高性能的机载指挥和决策平台,可读取飞行控制器的状态信息,运行机器学习、图像识别等程序,给飞行控制器发送指令,控制无人机的飞行。
4基于DroneKit的Python程序开发
树莓派端采用Python进行程序设计,为达到快速开发的效果,采用DroneKit-Python库,其提供了控制无人机的库函数,代码独立于飞行控制器,可运行于机载电脑(本文将树莓派
3B作为机载电脑)上,可采用串口或无线方式通过MAVLink协议和飞行控制器通信。树莓派操作系统raspbian-stretch或Ubuntu 16.04 LTS安装DroneKit方法比较简单,在终端输入如下命令:
sudo pip install dronekit
4.1树莓派3B下通用串口的设置