Project Icon

dogfight-sandbox-hg2

基于Python的空中战斗沙盒模拟器 助力战斗机控制研究

该项目是一个基于Python和HARFANG 3D框架的空中战斗沙盒模拟器。它具备VR支持、地形渲染、自动驾驶系统和网络模式等功能。除了用于学习目的,该平台还应用于无人战斗机的强化学习研究。支持多种输入设备,并提供录制回放功能,为空战模拟和AI研究提供了实验环境。

Dogfight 2(空战沙盒)

使用HARFANG 3D 2框架在Python 3中创建的空战沙盒。

目录

游戏特点:

  • VR(支持任何兼容SteamVR的头戴设备)
  • 海洋/地形着色器
  • 天空穹顶着色器
  • 云朵
  • 自动驾驶(起飞、着陆、战斗)
  • 网络模式

源代码和图形资源可用于学习目的。然而,你可以自由地复刻这个仓库,扩展游戏或发布任何基于它的内容。

如何运行Dogfight沙盒

使用官方发布版本

  1. 下载最新发布版本(dogfight-sandbox-hg2-win64.7z)
  2. 解压缩
  3. 运行start.bat
  4. 使用"右"和"左"键选择场景
    • 如果你想使用键盘控制飞机,按"空格键"
    • 按下游戏手柄或摇杆的"开始"按钮,取决于你想使用的设备
    • 如果你按下游戏手柄上的"开始/开火"按钮,沙盒会自动将这个控制器设定为飞机的输入设备(详细的键盘输入请参见下面的飞机键盘控制

使用克隆的仓库

  1. :警告: 如果你想从克隆的仓库运行沙盒,你需要按照source\Agent\文件夹中的requirements.txt文件安装所需的依赖。
    1. 或者运行0-install-requirements.bat
  2. 打开命令行,进入source文件夹(cd source),然后运行python main.py
    1. 或者运行start.bat1-start.bat
    2. 或者,在VSCode中按CTRL-F5

关于VR模式

  • VR仅在Windows机器上使用DirectX后端工作(在config.json文件中设置"OpenGL": false
  • 所有视图都可在VR中使用(外部、内部)。当使用驾驶舱视图时(数字键盘上的3),按F11校准头部位置
  • 需要SteamVR(至少1.22.x版本)
  • 已在以下头戴设备上成功测试:
    • LENOVO VR Explorer
    • HTC Vive Pro
    • Meta Quest 2(Oculus Link模式)

录制器API概览

  1. 选择你想要录制的任务。
  2. 按"F9"键打开录制界面: 录制器
  • 添加用户:你可以添加一个用户。每个用户都有自己的记录列表。
  • 用户:使用这个下拉框选择用户。
  • 项目:可录制项目的列表。
  • 开始录制:录制模拟。
  • 录制帧率:录制频率(每秒帧数)。
  • 记录:选择要回放的记录。
  • 进入回放模式:回放器。

回放

录制器

  • 选择你想要回放的用户和记录。
  • 开始播放 项目被创建。你可以暂停回放,并移动时间轴光标。 录制器
  • 显示选中项目:在选中项目上显示一个瞄准点,以在3D视图中识别该项目。
  • 上一帧下一帧:逐帧向后/向前。你也可以按键盘上的"-"、"+"键。

事件

命中(导弹、机枪、撞击)会被记录,并在回放时显示为圆圈: 录制器 黄色圆圈:事件发生前 红色圆圈:事件发生后 圆圈的最大尺寸取决于碰撞的威力。

网络模式概述

"网络"模式允许你从第三方机器控制飞机。

启动

  1. 在服务器机器上:

    • 启动DogFight SandBox(start.bat文件)
    • 选择网络模式任务 服务器ID
    • 注意屏幕左上角的服务器IP和端口号 服务器ID
  2. 在客户端机器上:

    • 确保安装了Python 3版本
    • 复制network_client_example目录的内容
    • 用文本编辑器打开client_sample.py文件
    • 在"df.connect()"函数中输入服务器ID 服务器ID
    • 运行client_sample.py文件

飞机键盘命令

命令按键
增加推力Home
减小推力End
增加刹车B
减小刹车N
增加襟翼C
减小襟翼V
左滚左方向键
右滚右方向键
俯冲上方向键
拉起下方向键
左偏航Delete
右偏航PageDown
切换加力燃烧空格
下一个目标T
切换起落架G
激活AII
激活自动驾驶A
切换简易操控模式E
开火机枪Enter
发射导弹F1
增加生命值P
减少生命值M
重新装弹F5
开启/关闭HUDH

通用视图命令

命令按键
滚动摄像机轮播(飞机,第一人称射击)1
增加视场角PageUp
减小视场角Insert

飞机视角命令

命令按键
后视图2
前视图8
左视图4
右视图6
卫星视图5
战术视图7
追踪视图9
驾驶舱视图3

第一人称射击摄像机视角命令

命令按键
头部方向鼠标左键 + 鼠标移动
前进上, Z
后退下, S
左移左, Q
右移右, D
快速移动1左Shift + 移动
快速移动2左Ctrl + 移动
快速移动3右Ctrl + 移动

支持的控制设备

  • 键盘
  • Xbox游戏手柄或任何兼容型号
  • 罗技"Attack 3"游戏杆

如何配置输入设备

有两种类型的命令配置文件。

  • sources/scripts/devices_config.json
    • 包含控制设备的信息
  • sources/scripts/XXX_inputs_mapping.json
    • 这些文件包含不同车辆或系统的命令参数。

设备配置

devices_config.json文件包含设备的输入参数。

"轴"类型的输入

"GA_LeftX": {
            "type": "axis",
            "name": "左摇杆水平",
            "reset": "true",
            "invert": "false",
            "id": 0,
            "min": -1,
            "max": 1,
            "zero": -0.0156,
            "zero_epsilon": 0.01
        }

"按钮"类型的输入

"GB_Start": {
            "type": "button",
            "id": 7,
            "name": "开始"
        },
  • GA_LeftXGB_Start:在XXX_inputs_mapping.json文件中使用的输入ID。
  • type:"axis"或"button"
  • name:输入名称,用于显示
  • reset:如果轴在释放时返回到其"零"位置,则为True
  • invert:如果要反转命令(返回值* -1),则为True
  • id:轴的内部ID(整数)
  • min, max:轴的限制值范围
  • zero:轴处于"复位"位置时的返回值。
  • zero_epsilon:如果零值不稳定,定义一个误差范围。

输入映射文件

XXX_inputs_mapping.json文件包含系统命令的输入映射:

  • 飞机用户命令:当用户控制飞机时。
  • 飞机自动驾驶用户命令:当自动驾驶激活时。
  • 飞机人工智能命令:当人工智能控制飞机时,唯一的用户命令是人工智能停用。
  • 导弹发射器用户命令:当用户控制导弹发射器时(目前仅限导弹瞄准和发射!)

对于键盘,输入ID与HARFANG3D Keys枚举相同


贡献者

  • 代码、设计、音乐/音效:
    • Eric Kernin
  • 3D图形:
    • Jean-Marie Lamarche
    • Bruno Lequitte
  • 技术与设计顾问:
    • Muhammet Aksoy
    • Pr. Emre Koyuncu
    • Michel Nault
    • Muhammed Murat Özbek
    • Thomas Simonnet

截图

截图

截图 截图

截图

截图

截图

出版物、引用和研究项目

📎 Harfang3D空战沙盒:用于战斗机自定义控制任务的强化学习研究平台

(Muhammed Murat Özbek, Süleyman Yıldırım, Muhammet Aksoy, Eric Kernin, Emre Koyuncu)

arxiv.org上的Harfang3D空战沙盒:强化学习研究平台

如何引用此出版物:

@misc{2210.07282,
  Author = {Muhammed Murat Özbek,  Süleyman Yıldırım,  Muhammet Aksoy, Eric Kernin and Emre Koyuncu},
  Title = {Harfang3D Dog-Fight Sandbox: A Reinforcement Learning Research Platform for the Customized Control Tasks of Fighter Aircrafts},
  publisher = {arXiv},
  doi = {10.48550/ARXIV.2210.07282},
  Year = {2022},
  Eprint = {arXiv:2210.07282},
}

🧠 无人战斗机的高度模仿强化学习

使用HARFANG 3D 2框架用Python 3创建的空对空战斗沙盒。该项目为空战模拟提供了丰富的环境,并已在先进的研究项目中得到应用,包括中国一所领先大学开发的最新无人战斗飞行器(UCAV)强化学习策略。要了解更多关于这种创新方法的信息,请查看GitHub上的HIRL4UCAV项目

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号