首页 > 编程语言 >空战博弈编程实现——gym+jsbsim

空战博弈编程实现——gym+jsbsim

时间:2024-03-24 18:57:17浏览次数:35  
标签:编程 gym py state env action jsbsim

笔记

1 珠玉在前

论文1

  • Richter D J, Calix R A. QPlane: An Open-Source Reinforcement Learning Toolkit for Autonomous Fixed Wing Aircraft Simulation[C]//Proceedings of the 12th ACM Multimedia Systems Conference. 2021: 261-266.

    QPlane | Proceedings of the 12th ACM Multimedia Systems Conference

    [本地](.\QPlane An Open-Source Reinforcement Learning Toolkit for Autonomous Fixed Wing Aircraft Simulation.pdf)

image-20220411090534454

image-20220411090640240

论文2

2 实践

实践1 论文2 gym-jsbsim

1 新建anaconda环境

  1. 选择Python3.8 命名为 gym-jsbsim

    image-20220411092508994
  2. 激活环境

    conda activate gym-jsbsim
    

    QQ截图20220411092801

3 使用conda 安装 pytorch:查看之前的文章深度学习第一步 Windows+NVIDA配置 CUDA pytorch 环境 - 英飞 - 博客园 (cnblogs.com)

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

测试pytorch

 import torch
>>> a = torch.ones((3,1))
>>> a = a.cuda(0)
>>> b = torch.ones((3,1)).cuda(0)
>>> a+b

安装 pygame gym ,numpy , matplotlib

pip install pygame
pip install gym
pip install matplotlib 
pip install numpy

2 安装jsbsim

1安装python版本 jsbsim

发布 ·JSBSim-Team/jsbsim ·GitHub

Jsbsim :: Anaconda.org

conda install -c conda-forge jsbsim

尝试运行Jsbsim

demo

GitHub - JSBSim-Team/jsbsim: An open source flight dynamics & control software library

test.py 
import jsbsim

fdm = jsbsim.FGFDMExec(None)  # Use JSBSim default aircraft data.
fdm.load_script('scripts/c1723.xml')
fdm.run_ic()

while fdm.run():
  pass

命令行移动到test.py所在文件夹然后运行

python test.py

QQ截图20220411094249

2 安装exe版本的jsbsim

下载,https://codeload.github.com/JSBSim-Team/jsbsim/zip/refs/heads/master

解压然后复制到C盘根目录下,并把其加入系统环境变量

在命令行中输入 jsbsim --version 验证

QQ截图20220412095033

3 FilghtGear 安装

可以先省略

如何:安装飞机 - 飞行装备维基 (flightgear.org)

模拟飞行入门手册_帮助教程 FlightGear飞行模拟器

FlightGear技术分析 – Fishpro的技术博客

  • 下载链接

Download Central – FlightGear Flight Simulator

一直点继续进行安装即可

然后将目录下的bin文件夹添加到环境变量中,然后重启电脑

fgfs --version

  • 下载完成之后还要下载相关数据

Download FlightGear - Flight Simulator from SourceForge.net

下载完成之后解压,然后复制到FilghtGear/data文件夹

4 安装gym-jsbsim

pip install git+https://github.com/Gor-Ren/gym-jsbsim

QQ截图20220411095712

到此为止,我们就完成了对gym-jsbsim的配置,但是 gym-jsbsim只是将jsbsim仿真模型和gym相结合的产物,我们要想使用还得需要强化学习算法的框架。这里我们使用小雅的框架。

5 小雅框架配置

AI4Finance-Foundation/ElegantRL: Scalable and Elastic Deep Reinforcement Learning Using PyTorch. Please star.

标签:编程,gym,py,state,env,action,jsbsim
From: https://www.cnblogs.com/zuti666/p/18092808

相关文章

  • 空战博弈编程实现
    AirSim环境搭建目录AirSim环境搭建感谢一AirSim简介二vs2019三虚幻引擎四下载编译五环境的使用1要把EpicGame语言改为英文2createProject3创建C++类。4复制Plugin5打开sln文件,进行调试6场景设置7运行8视角调节9再次进入,进行游戏六后续参考教程感谢airsi......
  • 空战编程实现——6 强化学习与控制器
    目录1付宇鹏,邓向阳,何明,等.基于强化学习的固定翼飞机姿态控制方法研究_付宇鹏[J].控制与决策,:1-6.输入输出模型结构强化学习方法——ppo奖励函数设置实现平台训练技巧效果2马一鸣.基于强化学习的前馈控制器[D].华北电力大学(北京),2021.强化学习自适应补偿控制系统结......
  • 编程界的万能钥匙:揭秘程序员常用的超实用算法!
    程序员常用的算法引言一、排序算法:为数据秩序井然二、搜索算法:高效定位数据三、图算法:理解复杂网络结构四、动态规划:优化递归求解过程五、贪心算法:简单高效的局部最优解六、数据结构相关算法:必不可少的工具七、算法的选择与实践:如何选择合适的算法结语引言大家好,这......
  • Python编程异步爬虫——aiohttp的使用
    异步爬虫—aiohttp的使用基本介绍asyncio模块其内部实现了对TCP、UDP、SSL协议的异步操作,但是对于HTTP请求来说,就需要用aiohttp实现了。aiohttp是一个基于asyncio的异步HTTP网络模块,它既提供了服务端,又提供了客户端。requests发起的是同步网络请求,aiohttp则是异步。ai......
  • Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向
    Java基础什么是JavaJava是一种由SunMicrosystems于1995年首次发布的编程语言和计算平台。Java是一种通用的、基于类的、面向对象的编程语言,旨在减少实现依赖性。它是一个应用程序开发的计算平台。Java快速、安全、可靠,因此在笔记本电脑、数据中心、游戏机、科学超级计......
  • 11DOM编程处理事件
    1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"content="width=device-width,initial-scale=1.0">6<title>Document......
  • CUDA编程入门历险记
    说来惭愧,做CUDA相关工作已经有两年多,但是对CUDA编程的研究并不深入,最近想夯实一下基础,于是找了一个教程“cudacrashcourse“。这个教程在B站和youtube上都有:B站:https://www.bilibili.com/video/BV127411G76m?p=1&vd_source=5d09aad9eacf6d90c0a17cf81ee41eefyoutube:https://w......
  • PTA基础编程练习题目集 7—4 BCD解密
    题目描述:BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!现在,你的程序要读入这个错误的十进......
  • Python-VBA编程500例-017(入门级)
    数组剔除元素后的乘积(TheProductResultingFromAnArrayWithElementsExcluded)在多个领域具有实际应用价值。常见的应用场景有:1、金融数据分析:在金融领域,数组通常用来存储股票价格、交易量或其他相关金融指标。当分析人员需要剔除某个异常数据点或某个时间段的数据以进......
  • Linux C编程一站式学习 part2: C语言本质
    LinuxC编程一站式学习(akaedu.github.io)22.Makefile基础1.基本规则欲更新目标,必须首先更新它的所有条件;所有条件中只要有一个条件被更新了,目标也必须随之被更新。“更新”:执行一遍规则中的命令列表,命令列表中的每条命令必须以一个Tab开头对于Makefile中的每个以Tab开头......