强化学习系列文章(二十四):利用AirSim搭建Gym强化学习环境(一)

最近研究AirSim仿真平台主要是为了进行强化学习的相关实验,所以利用AirSim提供的Python API搭建一个OpenAI Gym风格的强化学习环境才是我的最终目的。

AirSim提供了一个Gym强化学习模板,我对这个文件进行了适合自己需求的修改,具体修改内容都在注释中标注了。该文件和相关文件都在https://github.com/microsoft/AirSim/tree/master/PythonClient/reinforcement_learning

在接下来的文章,我将会对这个Gym环境加入更多功能。

import setup_path
import airsim
import numpy as np
import math
import time
from PIL import Image
import gym
from gym import spaces
from airgym.envs.airsim_env import AirSimEnv


class AirSimCarEnv(AirSimEnv):
    def __init__(self, ip_address="127.0.0.1", image_shape=(84,84,1),time_scale=1e-1):
        super().__init__(image_shape)

        self.image_shape = image_shape
        self.start_ts = 0
        self.simulation_time_scale = time_scale # 仿真步长,也就是每个动作执行多长时间

        self.state = {
   
            "pose": np.zeros(3),
            "collision": False,
            "prev_pose": np.zeros(3),
        }

        self.car = airsim.CarClient(ip=ip_address)
        self.action_space = spaces.Discrete(6)

        self.image_request = airsim.ImageRequest("0", airsim.ImageType.DepthPerspective, True, False) # 浮点图像,不压缩
        # airsim.ImageRequest("0", airsim.ImageType.DepthPlanner, True, False)
        # airsim.ImageType.DepthVis
        # airsim.ImageType.Scene
        # airsim.ImageType.Segmentation
        # airsim.ImageType.SurfaceNormals
        # airsim.ImageType.Infrared
        # airsim.ImageType.DisparityNormalized

        self.car_controls = airsim.CarControls()
        self.car_state = None

        self.state["pose"] = None
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值