Reinforcement Learning for UAV Attitude Control-强化学习的无人机姿态控制

系列文章目录

Reinforcement Learning for UAV Attitude Control-强化学习的无人机姿态控制
文献链接
代码链接
作者:WILLIAM KOCH, RENATO MANCUSO, RICHARD WEST, and AZER BESTAVROS,
Boston University, USA


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

Reinforcement Learning for UAV Attitude Control

  • 系列文章目录
  • Abstraction
  • 一、Introduction
  • 四、环境设立
    • 4.1 数字化双层
      • 4.1.1 仿真世界
    • 4.2 通讯层
  • 五 评估

)


Abstraction

自动驾驶系统通常由提供稳定性和控制的“内环”组成,而“外环”负责任务级别的目标,如航路点导航。无人机的自动驾驶系统主要采用比例-积分-导数(PID)控制系统实现,该系统在稳定环境中表现优异。然而,在不可预测和恶劣的环境中,需要更复杂的控制。智能飞行控制系统是一个活跃的研究领域,最近通过使用强化学习(RL)来解决PID控制的局限性,它在其他应用中已经取得了成功,如机器人。然而,以前的工作主要集中在在任务级控制器上使用RL。在这项工作中,我们研究了在使用最先进的RL算法(深度确定性策略梯度、信任区域策略优化和近端策略优化)训练的智能飞行控制系统时,提供姿态控制的内控回路的性能和准确性。为了研究这些未知因素,我们首先开发了一个开源的高保真仿真环境,通过RL训练四旋翼飞行器的飞行控制器的姿态控制。然后,我们使用我们的环境将其性能与PID控制器进行比较,以确定在高精度、时间关键的飞行控制中是否使用RL是合适的。
1、be a active area of research addressing limitations of : 解决XXX问题的一个活跃研究领域。 2、high-precision: 高精度 3、time-critical: 高时效要求 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加

提示:这里可以添加本文要记录的大概内容:


提示:以下是本篇文章正文内容,下面案例可供参考

一、Introduction

我们的贡献
本文深入研究了用RL训练的智能飞行控制器所提供的姿态控制的精度和精度。虽然我们专门专注于创建虹膜四旋翼飞行器[4]的控制器,开发的方法适用于广泛的多旋翼无人机,也可以扩展到固定翼飞机。我们利用高保真物理模拟器,开发了一种新的训练环境,称为GymFC,用于智能体学习姿态控制。GymFC是一个OpenAI环境[11],为研究人员开发智能飞行控制系统提供了一个公共接口。模拟环境由虹膜四轴飞行器数字副本或数字孪生[16]组成,目的是最终用于将训练过的控制器转移到物理硬件上。使用最先进的RL算法训练控制器:深度确定性策略梯度(DDPG)、信任区域策略优化(TRPO)和近端策略优化(PPO)。然后我们将合成控制器的性能与PID控制器的性能进行比较。我们的评估发现,使用PPO训练的控制器优于PID控制,并具有出色的性能。综上所述,本文有以下几点贡献:

•一个用于开发智能姿态飞行控制器的开源[22]环境,为研究社区提供了一个提高性能的工具。
•在将训练有素的控制器转移到硬件时,利用数字孪生概念为姿态控制提供学习架构,以减少工作量。
•评估最先进的RL算法,如DDPG, TRPO和PPO,飞机姿态控制学习策略。作为这方面的第一项工作,我们的评估也为今后的工作奠定了基准。
•与传统PID控制相比,RL开发的智能飞行控制性能分析

四、环境设立

在本节中,我们将描述我们的学习环境,GymFC,用于使用RL开发智能飞行控制系统。所提出的环境的目标是允许代理学习飞机的姿态控制,只知道执行器的数量。GymFC包括情景任务和连续任务。在一个情景任务中,代理需要学习一个策略来响应单个角速度命令。这允许代理从rest中学习给定命令的步长响应,从而允许准确地度量其性能。然而,情景任务并不能反映现实的飞行条件。因此,在连续任务中,会连续生成具有随机宽度和振幅的脉冲,并与角速度设定点相对应。代理必须相应地响应,并随着时间的推移跟踪所需的目标。在第5节中,我们通过情景任务来评估我们的合成控制器,但我们有强有力的实验证据表明,通过情景任务的训练产生的控制器在连续任务中也能正确地行为(附录A)。GymFC有一个多层层次结构,由三层组成:(i)数字孪生层,(ii)通信层,(iii)代理-环境接口层。制定这个设计决策是为了清晰地建立角色,并允许在不影响其他层的情况下更改层实现(例如,使用不同的模拟器),只要层与层之间的接口保持不变。图3展示了环境体系结构的高级概述。现在我们将更详细地讨论使用自底向上方法的每一层

4.1 数字化双层

学习环境的核心是一个高保真物理模拟器,它提供了飞机和环境的抽象数学模型难以实现的功能和真实感。GymFC的主要设计目标之一是尽量减少将控制器从学习环境转移到最终平台所需的工作量。因此,模拟环境向执行器和传感器暴露了相同的接口,就像它们在物理世界中存在一样。在理想的情况下,代理应该不能区分与模拟世界(即它的数字双胞胎)的交互和与之对应的硬件。在这项工作中,鉴于Gazebo模拟器[23]的成熟度、灵活性、丰富的文档和活跃的社区,我们使用了它。

简而言之,数字孪生层由(i)模拟世界和(ii)其与上述通信层的接口定义(参见图3)。

4.1.1 仿真世界

该仿真世界是专门为无人机姿态控制设计的。我们开发的技术允许姿态控制独立于制导和/或导航控制完成。这是通过将飞机的质心固定在世界上的一个球关节上,允许它在任何方向自由旋转,这将是不切实际的,如果不是不可能,实现在现实世界中由于万向节锁和这样的设备的摩擦。在这项工作中,在环境中被控制的飞机是模仿虹膜四轴飞行器[4]的重量为1.5Kg和550毫米电机到电机的距离。图4显示了环境中的四轴飞行器。注意,在训练中,Gazebo运行在无头模式。

Reinforcement Learning for UAV Attitude Control-强化学习的无人机姿态控制_第1张图片
无此用户界面可增加仿真速度。然而,这种架构可以用于任何多机,只要可以构建一个数字双胞胎。直升机和多直升机是我们设置的最佳选择,因为它们可以沿所有三个轴实现全方位旋转。固定翼飞机通常不是这样。然而,我们的设计可以扩展到支持固定翼飞机,通过模拟气流通过控制面进行姿态控制。Gazebo已经集成了一套工具来进行气流模拟。
接口。数字孪生层为通信层提供两个命令接口:模拟复位和电机更新。模拟重置命令是由Gazebo的API支持的,不是我们实现的一部分。马达更新由UDP服务器提供。我们在此讨论开发这个接口的方法。
模拟器一步一步来。在我们最初的方法中,我们使用了Gazebo的谷歌Protobuf [5] API,并带有一个特定的消息,即通过单个模拟步骤前进。通过订阅状态消息(其中包括当前模拟步骤),可以确定步骤何时完成并确保同步。然而,当我们试图增加广告步骤消息的速率时,我们发现状态消息的速率被限制在5Hz。这样的限制在模拟/学习管道中引入了一个一致的瓶颈。此外,发现Gazebo会无声地丢弃它无法处理的消息。为了提高实验的吞吐量,做了一系列重要的修改。关键思想是允许电机更新命令直接驱动模拟时钟。默认情况下,Gazebo预装了ArduPilot ArduCopter[1]插件,通过UDP服务器接收电机更新。这些电机更新的形式是脉宽调制(PWM)信号。同时,来自飞机上IMU的传感器读数通过第二个UDP通道发送。ArduCopter是一个开源的多直升机固件,它的插件被开发来支持软件在循环(SITL)。我们从ArduCopter插件中获得了Aircraft插件,并进行了以下修改(以及在4.2节中讨论的那些修改)。在接收到电机命令时,电机力被正常更新,但随后执行一个模拟步骤。传感器数据被读取,然后通过相同的UDP通道作为响应发送回客户端。除了IMU传感器数据,我们还模拟了从ESC获得的传感器数据。ESC提供每个转子的角速度,这是中继到客户端以及。用这种方法成功地实现了我们的Aircraft Plugin,使我们能够绕过谷歌Protobuf API的限制,并将步骤吞吐量提高了200多倍。

4.2 通讯层

五 评估

在本节中,我们提出了我们的准确性评估研究的神经网络基于姿态飞行控制器训练RL。由于篇幅所限,我们仅对偶发性任务提出评估和结果,因为它们与我们的基线(PID)直接相当。尽管如此,我们已经获得了强有力的实验证据,证明使用情景任务训练的代理在连续任务中表现良好(附录A)。据我们所知,这是为四轴飞行器姿态控制进行的第一个RL基线。

你可能感兴趣的:(sim2real,无人机,算法)