跳转至

Aerodrome - 概述

Aerodrome 是一个基于 C++ 和 Python 联合编程的轻量级库,专注于提供高性能动力学仿真、Python 交互接口以及强化学习和传统控制的代码示例。它主要面向两类用户:初学强化学习的研究者,或希望将强化学习应用于特定领域(如飞控)并需要自定义仿真环境的研究者。为了确保良好的可修改性和可读性,Aerodrome 的每个部分都尽量避免使用复杂的泛型编程或高级语言特性,并在代码中作了详尽的注释。

Aerodrome 的主要内容和特点包括:

  • 仿照 Gym 的代码和接口风格

  • 一个示例环境和迁移版的 Gym-CartPole ,用于测试强化学习算法的正确性

  • 高度可自定义的固定翼飞行器仿真示例代码

  • 基于公开资料的 Winged-Cone 非线性气动模型,以及其动力学仿真(C++ 和 Python 两种语言版本,并包含运行性能对比!)

  • Winged-Cone 纵向过载控制的传统三回路驾驶仪实现和 近端策略优化(PPO )实现

Aerodrome 不是 一个模块化库,因此它并不适合被导入使用。Aerodrome 以部分代码重复为代价,尽量使得所有代码简洁、易于理解且方便扩展。Aerodrome 也有其局限性,例如缺少可视化和实验结果保存功能;如果你需要特定的强化学习算法示例,可以参考 CleanRL 库;如果你需要实现其它飞行器模型(或者甚至其它领域的环境),可以在 Aerodrome 代码基础上修改,或者完全重写!

Aerodrome 正在快速迭代,文档中的内容与最新代码未必完全相同;如果发现文档与代码有出入,欢迎提出 issue 。