强化学习系列文章(二十二):AirSim自动驾驶仿真平台及其Python API分析

@[TOC](强化学习系列文章(二十二):AirSim自动驾驶仿真平台及其Python API分析)

AirSim自动驾驶仿真平台及其Python API分析

最近在做强化学习与自动驾驶的结合,于是接触到AirSim——微软开发的自动驾驶仿真平台,个人觉得做得非常不错,是我目前见过的最棒的自动驾驶仿真环境。原因如下:

  • AirSim是一个持续更新的开源项目,现在还在开发迭代中,所以功能在不断完善,出了Bug也有人去维护,相比之下TORCS虽然也很不错,但是最近3年没有看到TORCS的更新了,一方面对现在的操作系统的适配可能不是很好,我配置了许久都没有成功,另一方面学术界工业界用的逐渐少了。
  • AirSim的社区做的还不错,中文互联网上也有最近几年新出的经验贴。这也需要我们每位技术人无私而不懈的努力,感谢前辈。
  • AirSim的接口写的不错,能以很低的成本封装成Gym接口,代码也很好看懂,而且提供预编译的可执行程序,对于我这种目前只需要在现成环境上测试强化学习算法的人来说,成本是最低的了。面向自动驾驶全场景的仿真平台还有很多,Apollo做的就不错,但是太大太复杂,学起来成本高,所以对我而言暂时不太合适。

我会用几篇文章的篇幅介绍如何使用预编译好的可执行AirSim仿真环境编写Gym风格交互接口,以及如何训练强化学习智能体。

本次首先介绍AirSim环境。

准备预编译环境

配置Unreal Engine4和AirSim需要费一些功夫,而验证强化学习算法的有效性其实不需要这些,因此我会优先选择预编译好的仿真环境。

首先在
https://github.com/microsoft/AirSim/releases
上下载对应平台的预编译文件。如下所示,显示v1.3.1版本的Windows平台的环境文件,共提供了Blocks、Landscape Mountains、Coastline、City、Soccer_Field、Zhangjiajie六个场景的环境,将其下载解压到指定位置,运行相应可执行文件即可。

Windows系统的可执行文件就是一级路径下的exe文件,Linux系统则在./Neighborhood/AirSimNH/Binaries/Linux/AirSimNH
在这里插入图片描述

每次运行会被告知选择载具,yes是一辆SUV,no是四旋翼无人机。进入程序,按F1呼出快捷键指南,按0打开所有传感器画面,包括景深图像、目标分割图像、传统镜头图像,按退格键重启环境。
在这里插入图片描述

准备AirSim

下载AirSim源文件

git clone https://github.com/Microsoft/AirSim.git
cd AirSim
./setup.sh  // 配置依赖
./build.sh  //编译airsim库

安装Python-AirSim

pip install msgpack-rpc-python
pip install airsim

安装airsim时,需要安装opencv-contrib-python,可能需要很长时间的编译,也可能遇到如下的错误:

  • fatal error: boostdesc_bgm.i: No such file or directory
  • No module named skbuild
  • Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly

Solution:
pip install scikit-build
pip install opencv-contrib-python==3.4.2.16

测试Python API

cd /home/xxx/AirSim/PythonClient
# 运行AirSimNH,也就是Neighborhood环境里的可执行文件
python hello_car.py
# 切回NH环境,可以看到汽车在Python文件的控制下运动

hello_car.py分析

import setup_path
import airsim
import cv2
import numpy as np
import os
import time
import tempfile

# 连接到AirSim模拟器,需要事先打开模拟程序
client = airsim.CarClient()
client.confirmConnection()
client.enableApiControl(True)
print("API Control enabled: %s" % client.isApiControlEnabled())
car_controls = airsim.CarControls()

# 在/tmp/airsim_car/路径下保存运行截图
tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_car")
print ("Saving images to %s" % tmp_dir)
try
AirSim是一个开源的可视化仿真环境,旨在支持对自动驾驶汽车的深度学习、计算机视觉和强化学习算法进行实验。它提供了一个Gym风格的交互接口,使得开发者可以使用预编译好的AirSim仿真环境来编写和训练强化学习智能体。 使用AirSim进行强化学习的步骤通常包括以下几个方面: 1. 安装和配置AirSim:首先,您需要安装和配置AirSim环境。这可能需要一些时间和功夫,但是如果您只是验证强化学习算法的有效性,可以选择使用预编译好的仿真环境来简化这个过程。 2. 创建强化学习环境:在AirSim中,您可以创建一个强化学习环境,该环境可以模拟自动驾驶汽车的场景。您可以设置车辆的初始状态、目标和其他环境参数,以及定义车辆的动作空间和观察空间。 3. 设计强化学习智能体:在AirSim中,您可以设计和实现强化学习智能体,该智能体通过与环境进行交互来学习并改进自己的决策策略。您可以使用各种强化学习算法,如Q-learning、深度Q网络等,来训练智能体。 4. 训练和评估智能体:使用AirSim提供的交互接口,您可以进行智能体的训练和评估。通过与环境进行交互,并根据奖励信号来调整智能体的策略,以使其在自动驾驶场景中更好地执行任务。 总而言之,AirSim提供了一个方便的平台,可以帮助您使用预编译好的仿真环境来编写和训练强化学习智能体,以验证和改进您的强化学习算法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [强化学习系列文章(二十二)AirSim自动驾驶仿真平台及其Python API分析](https://blog.csdn.net/hhy_csdn/article/details/111871665)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [AirSim:来自Microsoft AI&Research的基于Unreal Engine Unity的自动驾驶汽车开源模拟器](https://download.csdn.net/download/weixin_42177768/15096671)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值