dogfight-sandbox-hg2

dogfight-sandbox-hg2

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

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

Dogfight 2空战沙盒HARFANG 3DVR模式网络模式Github开源项目

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项目

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多