飞机游戏六 空战强化学习环境6.1DBML 6.1.1DBML 使用
飞机游戏六 空战强化学习环境1—DBML 使用
一 Github 地址
GitHub - mrwangyou/DBRL: A Gym Dogfighting Simulation Benchmark for Reinforcement Learning Research
二 项目简介
使用gym框架,
仿真环境有两个,分别是jsbsim和dogdight ,
可视化使用flightGear实现jsbsim的可视化,使用dogfight直接进行可视化
由于使用了gym框架,强化学习算法直接调用 stable_baselines3中的算法
三 下载,配置
由于FlightGear启动不了,这里只使用dogfight环境
需要注意的几个点
1 在gym下添加环境(也就是将项目中的dogfightEnv复制过去),然后再envs下进行注册,可以参考 gym——1自定义Gym环境并注册 - 英飞 - 博客园 (cnblogs.com)
2 需要将dogfight_snadbox_hg2项目下载并复制到 gym中自己建立的环境下,完成效果如图所示

如果出现,pycharm总是显示找不到dogfight_snadbox_hg2文件夹,可以尝试新建一个同名文件夹(这时候新建立的文件夹一般会显示),然后将内容直接移动到新建的能够被找得到的文件夹中
四 使用
1 启动 dogfight_sandbox_hg2 ,敲击移动箭头 ,进入网络模式,可以 查看到 本机的ip和端口

2 进入所在环境 ,所在文件夹目录 命令行执行
# 替换自己的地址
python ./src/models/sac_df2.py --host 10.168.62.25 --port 50888 --train --test
3 写了一个更简单的示例,看一下可视化效果
from stable_baselines3 import SAC
from stable_baselines3.common.noise import (NormalActionNoise, OrnsteinUhlenbeckActionNoise)
import gym
#
# # gym.make('DBRLJsbsim-v0')
# gym.make('DBRLDogfight-v0')
env = gym.make(
    "DBRLDogfight-v0",
    host='10.168.62.25',
    port='50888',
    plane_slot=1,
    enemy_slot=1,
    missile_slot=1,
    rendering=True
)
model = SAC.load("../log/sac_df2.zip")
print('加载成功')
obs = env.reset()
env.render()

4 需要注意的是
 df.set_renderless_mode(False)  #是否进行渲染
是进行渲染显示的,但这个函数是设置不渲染,要想进行渲染必须将参数
本文来自博客园,作者:{珇逖},转载请注明原文链接:https://www.cnblogs.com/zuti666/p/16968169.html

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号