首页 > 编程语言 >空战博弈编程实现

空战博弈编程实现

时间:2024-03-24 18:56:29浏览次数:35  
标签:博弈 -- 编程 Visual airsim 点击 空战 设置 AirSim

AirSim 环境搭建

目录

感谢

airsim详细教程(1):win10配置airsim仿真环境(2021.8.12更新) - 知乎 (zhihu.com)

一 AirSim简介

Home - AirSim (microsoft.github.io)

airsim详细教程(1):win10配置airsim仿真环境(2021.8.12更新) - 知乎 (zhihu.com)

AirSim动态 | 安装配置AirSim环境(一) - 知乎 (zhihu.com)

二 vs2019

Visual Studio 2019 版本 16.11 发行说明 | Microsoft Docs

只能使用vs2019 ,

安装时选择C++桌面开发和.Net桌面开发

三 虚幻引擎

https://epicgames-download1.akamaized.net/Builds/UnrealEngineLauncher/Installers/Win32/EpicInstaller-13.3.0.msi?launcherfilename=EpicInstaller-13.3.0-unrealEngine.msi

选择4.26

要把Epic Game语言改为英文

四 下载编译

五 环境的使用

1 要把Epic Game语言改为英文

2 create Project

QQ截图20220422173344

选择存放的目录

QQ截图20220422173534

创建成功后会在MY PROJECTS中显示所建立的项目

QQ截图20220422173638

3 创建C++类。

打开刚才新建立的项目

创建C++类。

点击左上角的【文件--新建C++类】,一直点下一步直到创建类,

创建好后会自动跳转到Visual Studio2019。最后关闭Unreal和 Visual Studio2019。

4 复制Plugin

AirSim安装路径中,找到【Unreal--Plugins】的Plugins文件,将这个文件夹整个复制到刚刚创建的文件夹中

QQ截图20220422174303

QQ截图20220422174422

小Tips:“Plugins” 文件夹非常重要,可以把它复制到任何一个虚幻引擎的工程中,这样就可以使用 AirSim 插件。

关联刚才复制进来的Plugins

右键点击 【LandscapeMountains.uproject】, 选择打开方式为写字板或者其他,将其中代码更换为:

{
	"FileVersion": 3,
	"EngineAssociation": "4.26",
	"Category": "Samples",
	"Description": "",
	"Modules": [
		{
			"Name": "LandscapeMountains",
			"Type": "Runtime",
			"LoadingPhase": "Default",
			"AdditionalDependencies": [
				"AirSim"
			]
		}
	],
	"TargetPlatforms": [
		"MacNoEditor",
		"WindowsNoEditor"
	],
	"Plugins": [
		{
			"Name": "AirSim",
			"Enabled": true
		}
		
	],
	"EpicSampleNameHash": "1226740271"
}

QQ截图20220422175205

生成VSproject

保存关闭后,右击LandscapeMountains.uproject。选择【Generate Visual Studio project files】。

5 打开sln文件,进行调试

双击打开LandscapeMountains.sln文件,会自动运行Visual Studio2019。打开后,

调试三步骤:

  • 编译选项改为【DebugGame_Editor】,【Win64】,

  • 要把LandscapeMountains设为【启动项】,

  • 点击调试,

QQ截图20220422175444

QQ截图20220422175610

6 场景设置

世界场景设置

在最上层菜单栏找到【窗口--世界场景设置】,点击使其打钩。

QQ截图20220422182730

游戏模式设置

在右下角设置,,选择游戏模式为【AirSimGameMode】

QQ截图20220422182744

游戏玩家修改

在世界场景上方(界面右上角),世界大纲视图中搜索--player,共能搜出来11个初始玩家位置,删除10个只留下一个(偏于后续操作不出问题)。在下方【细节】通过调整XYZ轴来调整初始玩家的位置。

QQ截图20220422180400

QQ截图20220422180643

小建议

a.打开菜单栏盘【编辑--编辑器偏好设置】,搜索【CPU】,把“处于背景中时占用较小CPU”选项打开。这样当Unreal 编辑器不在窗口的最前面时,就不会实时渲染了,但是不影响仿真的运行。所以还是建议勾选。

b.点击主屏幕左上角小三角,打开【FPS】,此时右边就会出现当前的FPS和时延。当FPS下降到20以内时,说明数据处理比较缓慢,需要找到问题所在,并优化程序。FPS在20以上算是比较流畅的。

QQ截图20220422180856

保存

全部设置完毕后,保存设置,使用快捷键Ctrl+S保存设置

7 运行

点击右上角运行,此时跳出对话框,和之前一样点击yes会出现小车,点击no会出现无人机。

8 视角调节

接下来我们更换至电脑视角,通过路径【C:\Users\你的用户名\Documents\AirSim】找到setting.json文件。

将里面代码改成电脑视角的代码,注意该代码里的ComputerVision是指电脑视角,改成Car就是小车模型,改成Multirotor就是对应着四旋翼无人机。

9 再次进入,进行游戏

保存后重复【4.1-具体调试-④】步骤,运行虚拟引擎,进入地图后点击【运行】,此时按下F8,通过鼠标,方向键盘和Page Up/Page Down可以在地图中进行第一视角浏览了。

六 后续参考教程

airsim详细教程(1):win10配置airsim仿真环境(2021.8.12更新) - 知乎 (zhihu.com)

标签:博弈,--,编程,Visual,airsim,点击,空战,设置,AirSim
From: https://www.cnblogs.com/zuti666/p/18092809

相关文章

  • 空战编程实现——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开头......
  • C++面向对象编程 - 组合:C++中的组合是一种类与类之间的关系
    C++面向对象编程-组合在C++中,面向对象编程(Object-OrientedProgramming,简称OOP)是一种强大的编程范式,它允许我们通过类(Class)和对象(Object)的概念来组织和管理代码。在面向对象编程中,类不仅可以包含数据成员(Attributes)和成员函数(Methods),还可以与其他类建立各种关系。其中一......