APP下载

带机械臂的旋翼无人飞行系统实验平台设计与实现

2022-03-25周祖鹏睢志成莫小章王义华

现代电子技术 2022年6期
关键词:飞控旋翼控制算法

周祖鹏,睢志成,莫小章,卫 欢,鹿 浪,王义华

(桂林电子科技大学 机电工程学院,广西 桂林 541000)

0 引 言

近年来,带机械臂的旋翼无人机在科研与商业领域中得到越来越高的关注度。带机械臂的旋翼无人飞行系统实验平台是在旋翼无人机上装配一个多自由度的机械臂,在此基础上,亦可安装其他需要的传感器,如激光雷达光流传感器、深度摄像头等以丰富其功能。物联网的快速发展也促进了无人机在商业领域的广泛应用,目前无人机更多的用于航拍、植保、电力巡检、环境监测、民用基础设施等。

旋翼无人机作为一种搭载平台,带机械臂后采用分开独立控制和整体控制一直是研究控制的两个方向。独立控制方法简单、易于实现但控制精度低,而整体控制较为复杂但控制精度有所提高。与此同时,一个简单合理的机械结构也可以减少无人机与机械臂之间的耦合性及控制器的复杂性,从而提升系统的控制性能。在多旋翼无人机结构研究方面,北京理工大学研究了一种新型涵道风扇无人机,印度马德拉斯理工学院设计了一种螺旋桨有重叠的新型多旋翼无人机,两者均在提高飞行效率上取得一定效果。苏黎世联邦理工学院和米兰工学院设计了一种易携带、体积小、结构上可以收缩的旋翼无人机,满足了其适应不同任务要求的能力。在机械臂结构研究方面,哈尔滨工业大学胡永丽等设计了仿人体双臂的无人机载双臂机器人,首尔国立大学设计了一种可折叠成紧凑尺寸并具有足够刚度的机械臂。据文献[8-9]可知,目前国内外带机械臂的旋翼无人飞行系统实验平台研究有以下特点:第一,大多在室内使用外设设备如VICON、OPTITRACK 等实现无人机姿态位置解算;第二,算法需要较为复杂的运动学、动力学建模且大多处于仿真阶段;第三,不易于实际应用的开展。当然,随着机载计算机和通信的发展,带机械臂的旋翼无人飞行系统实验平台耦合控制算法因其控制精度高、低延迟等优点,在未来一定会得到更多的关注,但设计一款简单有效的带机械臂的旋翼无人飞行系统实验平台,用以独立控制算法的验证和顶层应用的开发也是十分重要的。四旋翼无人机系统是一个欠驱动系统,其控制的难点在于它有6 个自由度,但只有4 个驱动器。所以,最终只能控制6 个自由度中的4 个,另外2 个自由度无法控制。

本文设计了一种低成本、结构简单且硬件易于实现的带机械臂的旋翼无人飞行系统实验平台。飞行试验表明,该平台结构合理、运行稳定,可为验证带机械臂的旋翼无人飞行系统实验平台的控制算法和其他顶层应用的开发提供参考。

1 总体概述

带机械臂的旋翼无人飞行系统实验平台总体架构如图1 所示,主要包括四旋翼无人机、三自由度机械臂、板载计算机、地面站、WiFi 基站等。该平台可用于航线规划、避障、机械臂抓取、无人机底层控制算法的验证等,同时也可外接其他传感器,如激光雷达、超声波、深度相机等用以SLAM(Simultaneous Localization And Mapping)、路径规划、图像处理等。无人机底层飞行控制建立在运行PX4(一个开源飞控项目)固件的PixHawk上,树莓派通过TELEM2 接口与飞控通信,机械臂与配备控制板的树莓派通过总线连接。飞行控制板(以下简称飞控)PixHawk 主要负责飞行的稳定控制和MAVLink的通信,装有Raspbian 系统的机载计算机树莓派负责三个功能:机械臂控制、超声波测距和ROS 节点的运行。其他适用的机载计算机有Odroid 系列、Intel Edison、Intel NUC、Gigabyte Brix、Nvidia Jetson TK1 等。PC 使用VNC(Virtual Network Console)通过WiFi 访问到树莓派的系统界面,从而实现机械臂的远程控制以及摄像头、超声波的使用。QGC(QGroud Control)通过数传与飞控通信可实现航线规划、初始化设置、飞行日志下载与分析、PID 参数调整等功能。

图1 实验平台总体架构图

PixHawk 的固件烧录是一切的基础,若要做算法的二次开发需先从GitHub 上下载PX4 固件源代码(需匹配所使用硬件版本,PixHawk 有不同硬件版本,所需固件版本也不同),再替换掉对应的算法源码,然后编译、烧录到PixHawk 中。本文配置的开发环境是基于Linux系统的,编译环境的配置可以参考PX4 官网。对于环境配置所需的各种安装包已经集成到脚本中,网络顺利的情况下很快就可以配置成功。也可以通过其他方法,如地面站QGC 或者Matlab 实现代码烧录。固件烧录完成后需在地面站上完成传感器的校准、遥控器校准、电调校准、飞行模式设置、PID 调参等前期工作才能实现基本的飞行控制。

1.1 硬件结构

带机械臂的四旋翼无人飞行系统实验平台实物如图2 所示。四旋翼无人机搭载PixHawk 2.4.8 版本飞控,使用Raspberry 4B 作为机载电脑;电池参数为3S、放电倍率为30,容量为3 900 mA;电调规格为好盈(Hobby wing)XRotor40A;无刷电机规格为朗宇X2216-1100KV;螺旋桨碳纤维材质,外径9 英寸、螺距5 英寸;机械臂使用两个LX-824 串行总线舵机和一个LX-1501串行总线舵机;摄像头为RGB 摄像头;超声波模块为US-016。为保证一定的强度和较轻的质量,机架材料为碳纤维,脚架为PP 塑料,机械臂连接部分为铝合金。

图2 实验平台实物图

PixHawk 是PX4 飞行堆栈的标准微控制器平台。PX4 由两个部分组成:一是飞行控制栈(Flight Stack);二是中间件,可以支持很多类型的机型,包括固定翼、多旋翼以及垂直起降无人机等。PX4 的飞行控制栈包含各种无人机的导航和底层控制算法,包括估计器、控制器、混控器三部分。底层姿态、位置的控制是基于内外环PID 算法实现,PID 参数可根据实际飞行性能来调节以达到较好的控制效果。PixHawk 在NUTTX 操作系统上运行PX4 中间件。

PX4 中间件主要包括内置传感器的驱动和基于发布-订阅的通信机制。PX4 的飞控程序架构非常柔性,可被编译成适用于不同平台的可执行程序。PixHawk系列主控芯片和I/O 芯片均使用的是STM32 单片机。不同PixHawk 版本在编译时输入命令选项不同,本文使用px4fmu-v3 或px4io-v2,在编译时将NUTTX 实时操作系统与底层飞控程序编译为一个整体,最后再烧录到单片机上。

Raspberry Pi4 提供与普通64 位计算机系统性能相当的处理器,其主要功能包括:处理器Broadcom BCM2711、高性能64 位四核处理器、支持4K 分辨率双显示器、双频2.4/5.0 GHz 无线局域网、蓝牙5.0、千兆以太网、USB 3.0 和POE(Power Over Ethernet)功能。考虑所需计算资源及成本,实验平台采用4 GB RAM 树莓派,系统为Raspbian Buster,并安装有ROS Melodic 以供后续二次开发使用。

实验平台其他参数如表1 所示。其中飞行时间与剩余负载参数数值的获得参考北航可靠性飞行研究组设计的飞行评测算法,输入相关零件的型号和预设的参数即可获得无人机相关性能的信息,如悬停时间、飞行时间、抗风等级等。

表1 实验平台参数

1.2 传感器应用扩展

除了基本的惯性测量单元、气压计、GPS 等传感器,在所设计的带机械臂的旋翼无人飞行系统实验平台上亦可配备其他传感器,从而扩展其应用开发的范围。

1.2.1 光流传感器

光流传感器利用摄像头采集图像的变化来检测路面的状态,间接监测无人机的水平飞行状况,可以使用PixHawk 上的IC 接口与其进行连接。光流使用竖直向下的摄像头和距离传感器(超声波、红外等)进行位置的估计。其主要用于保持无人机水平位置的稳定,以及在室内完成固定高度飞行或悬停,但光流传感器必须要指向路面。为了使光流传感器性能稳定的发挥,较好的方法是将其放置在无人机的底部,同时要尽可能地减少机身的震动。

1.2.2 激光雷达

在旋翼无人机研究中,获取周围障碍物和环境的轮廓形状是非常重要的,使用激光雷达可以实现这个目的。利用扫描得到的周围环境信息,无人机就可以实现避障、SLAM 和路径规划等。主流的激光雷达基于两种原理:一种是三角测距法,另一种是飞行时间(TOF)测距法。一般激光雷达通过串口与机载计算机相连接,无人机通过在ROS 中运行雷达的驱动,来实现读取串口的雷达数据和将雷达数据发布到一个主题,这样计算机上的其他ROS 节点就可以通过订阅该主题来获取激光雷达数据。

1.2.3 计算机视觉

本实验平台可以使用计算机视觉来实现下面的应用开发:

1)上述提到的光流;

2)外部的视觉运动捕捉系统的使用可以进行无人机在空间上的姿态、位置估计;

3)通过机载的视觉处理系统和惯性测量单元,用视觉惯性测距法可以估计无人机的三维姿态和速度信息,且当 GPS 无信号或不可靠时可实现导航。XTDrone 是一个基于ROS 和PX4 的无人机仿真平台,XTDrone 中可以实现SLAM、运动规划以及多机协同等仿真。另外,在此功能包上验证过的算法,可以较容易地应用在真实的无人机上。

2 生态系统

基于PX4 的带机械臂的旋翼无人飞行系统实验平台允许通过API(Application Programming Interface)使用机载计算机或外部设备对无人机进行控制。 API 通过MAVLink 或RTPS(Real Time Publish Subscribe Protocol)实现与PX4 的通信。PX4 可以与MAVSDK 和ROS 等API 一起使用,DroneKit 也可以单独使用,但优化不够好。其生态系统如图3 所示。以PX4 为中心向周围拓展开,相邻的模块间大都有一定的联系,问号表示以后可能加入这个生态的新模块。

图3 生态系统图

2.1 MAVLink

MAVLink(Micro Air Vehicle Link)是一种轻量型的消息传输协议,用于无人机之间或者机载组件的通信,其相关源码遵循MIT 协议,可以无限制地在闭源应用中使用。MAVLink 工具链可以通过指定的XML 文件生成支持多种编程语言(C、C++、Python、Java 等)的MAVLink库。常见的地面站(QGC、Mission Planer 等)、飞控(PX4、APM 等)及其他MAVLink 系统(MAVROS、MAVSDK 等)均是使用生成得到的MAVLink 库进行开发的。

2.1.1 MAVSDK

MAVSDK 是一个带有C++、iOS、Python 和Android API 的MAVLink 库。该库提供了一个简单的API 来管理一个或多个无人机,提供对无人机信息和遥测的编程访问,以及对飞行任务的控制,也可以获取无人机状态信息、发送命令控制无人机移动。

2.1.2 MAVROS

MAVROS 是 一 个ROS 功 能 包,实 现 了ROS 与MAVLink 之间的集成。其主要作用是为运行ROS 的机载计算机、支持MAVLink 的地面站和支持MAVLink 协议的飞控板这三者之间提供通信功能。

2.1.3 DroneKit

DroneKit - Python 是 一 个 允 许 开 发 人 员 通 过MAVLink 协议与无人机通信的Python 应用程序。类似MAVSDK,它也可以实现对连接的无人机状态信息的获取和对无人机移动的直接控制,其与PX4 的兼容性较好。另外,DroneKit 可以为无人机开发丰富的应用程序,增强人机的交互。

2.2 ROS

ROS 是一个开源且面向机器人的元操作系统。它不仅提供用户期望从操作系统获得的服务(如底层控制、进程之间的消息传递和包管理),还提供在多台计算机上获取、构建、编写和运行代码的工具和库。ROS 在某些层面与Player、YARP、CARMEN、Orca、MOOS 和微软机器人工作室等机器人框架类似。使用ROS 最重要的一点是ROS 实现了服务上的同步RPC 式通信、主题上的异步数据流和参数服务器上的数据存储。尽管ROS 可以实现与实时代码的集成,但它不是一个实时框架,所以在实际应用时会存在高延迟的缺点。因此,虽然ROS 提供了便利的消息通信机制,在进行单无人机的算法开发时具有较高效率,但是它在大规模集群算法以及产品化应用方面存在较大不足。

3 在环仿真

在环仿真是一种快速、简单、安全的方法,可用来测试更改前后的PX4 代码。当还没有实物可以试验时,使用在环仿真来模拟飞行是一种较好的方法。

PX4 支持SITL(Software In The Loop)仿真,其中飞行堆栈在PC 上运行(同一台PC 或同一网络上的另一台计算机);也支持HITL(Hardware In The Loop)仿真,即使用真实的硬件电路板来运行仿真,从而测试飞行代码。其中三维仿真软件Gazebo(其他仿真软件还有JMAVSim、Flightgear、JSBSim 等)通过USB 或者串口完成与PixHawk 的连接。仿真软件Gazebo 充当在无人机和QGC 之间共享MAVLink 数据的网关。实际应用中Gazebo 通常与ROS 一起使用,ROS 可以理解成离线模式下无人机自动飞行控制的API 工具包。

为了验证PX4 固件源代码(或修改后的)的飞行性能,进行SITL 仿真实验。在模型代码中将无人机质量、惯性系数等修改为实际无人机的参数。为模拟机械臂给无人机带来的的干扰,适当增大模型中陀螺仪和加速度计的噪声,最后在QGC 上规划航线。在航线的规划中,需要合理设置每个航点的高度、位置等,实验中设置飞行高度为3 m,实验结果如图4 所示,4 个标记点的连线围成的矩形为无人机的预设航线,另外一条为仿真实验飞行轨迹。由图4 实验结果可见,除在转弯处偏差较大,位置误差在20 cm 以内,仿真飞行轨迹与预设的航线基本吻合。

图4 仿真航线图

航线仿真飞行过程中无人机实际的俯仰角和翻滚角的变化如图5 所示。可见在SITL 仿真中无人机每次转弯时,俯仰角和翻滚角的变化比较平稳,在悬停状态下俯仰角变化在2°以内,翻滚角变化在3°以内。无人机方向位置随时间的变化如图6 所示,仿真中无人机位置的实际值与理论值误差在10 cm 以内。

图5 无人机实际俯仰角和翻滚角变化图

图6 无人机z 方向位置变化

另外,在某些情况下当计算机的I/O 口或者CPU 性能不足以支撑仿真以设定的速度运行时,该速度会“自动”降低。在SITL 和HITL 仿真中,QGC 可以连接到一个USB 游戏手柄,允许直接控制仿真软件中的模拟无人机,也可以选择使用QGC 屏幕上的虚拟摇杆来控制。

4 飞行测试

为测试所设计实验平台实际飞行性能,进行四旋翼悬停状态下飞行稳定性及通信可靠性的实验。测试当日天气多云,风速1.6~3.3 m/s,体感温度15 ℃,飞行高度5 m。飞行前需完成机体结构的检查、飞行模式设置、遥控器校准和电池电压的检查等。在无人机起飞前,需要通过WiFi 先实现PC 与树莓派的通信,然后启动摄像头、设置机械臂初始位置等。PC 端通过串口连接数传实现地面站与PixHawk 的通信,准备完成后进行飞行实验。飞行中机械臂处于偏心静止的状态,实验起降过程良好,悬停时位置误差在20 cm 以内,无人机姿态较稳定,且具有一定的鲁棒性。飞行测试实物图如图7 所示。

图7 飞行测试实物图

5 结 论

本文所设计的带机械臂的旋翼无人飞行系统实验平台使用PixHawk 飞控硬件平台与机载计算机树莓派,分别实现无人机底层的稳定性飞行控制、机械臂控制、摄像头和超声波的使用,简单有效地解决了带机械臂的旋翼无人机在二次开发设计的一系列问题。通过仿真与实际实验得出,该实验平台整体结构合理,实时通信延迟较低,飞行稳定性较好且有一定的鲁棒性,为带机械臂的旋翼无人飞行控制算法及顶层应用算法开发的实际验证提供了参考。随着未来人工智能的不断发展,无人系统将有望获得自主学习和自主创新的能力。以后人工智能可能会部分取代人脑的工作,无人系统将有可能自主完成其控制算法的编写与更新。

猜你喜欢

飞控旋翼控制算法
改进型自抗扰四旋翼无人机控制系统设计与实现
大载重长航时油动多旋翼无人机
民用飞机飞控通电自检测安全性研究
基于STM32的四旋翼飞行器的设计
无人机飞控软件架构设计初探
基于ARM+FPGA的模块化同步控制算法研究
02 飞控技术与机场安保引关注
飞控系统故障告警实时监控软件的设计与实现
四旋翼无人机动态面控制
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用