【AI达人特训营】基于飞桨和Airsim的自动驾驶强化学习初探

本文介绍基于飞桨和AirSim的自动驾驶强化学习项目。先阐述项目背景,说明自动驾驶研究及虚拟环境的重要性;接着详述环境配置步骤,包括模拟器、AirSim插件安装等;还介绍了运行方式、强化学习基本概念及AirSim_Paddle平台,为相关研究提供参考。

基于飞桨和Airsim的自动驾驶强化学习初探

一、项目背景

近年来,在工业4.0、物联网和虚拟现实等的高速发展下,自动驾驶逐渐成为汽车行业的研究热点,期望汽车可以根据当前道路状态获得动作策略,进而自动行驶到目标点。 当然,真实道路下的实验固然重要,但受限于成本、安全性等因素,当前作为算法验证手段。而算法开发则通常在虚拟环境中进行。微软开源了基于虚幻4引擎的一款用于模拟自动驾驶的工具AirSim。

本项目基于飞桨强化学习模块PARL,构建Airsim虚拟环境下的自动驾驶强化学习开发环境。

二、环境配置

运行本项目的硬件配置为Invidia GTX 1050Ti,在对应的anaconda中提前配置好了python3.7和paddlepaddle,建立了环境paddle_env。

       

2.1模拟器安装

(1)安装Epic Game launcher;

(2)在launch中安装Unreal Engine 4.27.2(此处强烈建议选择此版本!否则后面会有问题);

(3)在Samples中安装地图Landscape Mountains。

       

2.2编译AirSim插件

(1)下载VS Studio2019,组件选择使用C++的桌面开发和Windows 10 SDK(10.0.18362.0);

(2)在“运行”-> cmd中,切换至本机的D盘,下载AirSim源代码;

$ git clone https://github.com/Microsoft/AirSim.git

(3)打开菜单VS Studio 2019下的Developer Command Prompt for VS 2019,在项目根目录(本文中为D:\AirSim,后续采用$ProjectRoot表示)中输入命令:build.cmd;

(4)检查插件目录:$ProjectRoot\Unreal\Plugins\ 看插件是否生成。

       

2.3 确认VS 2019环境配置

(1)启动Developer Command Prompt for VS 2019,在$ProjectRoot\Unreal\Environments\Blocks目录下输入命令:update_from_git.bat;

(2)在弹出窗口选择当前版本,关联当前引擎;

(3)进入文件夹双击Blocks.sln, VS2019自动启动;

(4)将编译选项设置为:DebugGame_Editor + Win64,右键Blocks选择“设为启动项目”,点击菜单“调试”–>“开始调试”,虚幻编辑器启动;

       

(5)点击“运行”,选择“YES”可看到汽车出现在环境中;选择“NO”则出现四旋翼无人机。

 
       

2.4 配置Visual Studio 2019 + LandscapeMountains

(1)进入文件夹(D:\Unreal Engine\LandscapeMountains),打开文件LandscapeMountains.uproject,选择用当前Unreal版本打开;

(2)在“文件->新建C++类”,触发编译VS 2019项目LandscapeMountains.sln;

       

(3)将先前编译好的Unreal/Plusins复制到文件夹中;

(4)关闭所有相关项目,重新打开文件LandscapeMountains.uproject,提示AirSim需要重新构建,点击确定;

(5)用文本编辑器编辑文件LandscapeMountains.uproject,如下修改:

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

       

}

(6)用文本编辑器编辑Config\DefaultGame.ini,如下修改

[/Script/EngineSettings.GeneralProjectSettings]
Description=
Description=A showcase of the Landscape and foliage tools, featuring a heightmap and layers imported from World Machine..
ProjectID=2F9E755244BE3FD42C78DA99BE9702D5
ProjectName=Landscape Mountains Showcase
+MapsToCook=(FilePath="/AirSim/AirSimAssets")

       

(7)保存并关闭所有相关窗口后,右键文件LandscapeMountains.uproject,点击Generate Visual Studio Project Files ; (8)双击LandscapeMountains.sln,打开VS 2019,将其“设为启动项目”,编译选项设置为“DebugGame Editor”和“Win64”,点击开始调试(F5)。程序会自动打开Unreal编辑器;

(9)在右上窗口搜索“PlayerStart”对象,点击,右下角为详细信息,删除其他Player Start[00 - 99],并在主窗口中把它移动到一条路上;

       

(10)点击菜单“窗口” –> 世界场景设置 在右下角“详细”页签旁边打开World Settings。在World Settings里面选中的“游戏模式”–> “游戏模式重载”选中选项:“AirSimGameMode”;

       

(11)点击菜单中“保存所有”,点击“运行”,可启动自动驾驶环境。

       

2.5检查学习环境配置

(1)在Anaconda环境中,确认python、paddle、pip都已正确安装;

(2)安装下面几个库:

# 安装Unreal和python之间的通讯协议
pip install msgpack-rpc-python

# 安装airsim的python库
pip install airsim==1.6.0  (版本推荐)

# 安装gym库
pip install gym==0.18.0(版本推荐)

# 安装parl库
pip install parl

       

接下来,就可以愉快的开车了!

三、运行

首先,依照2.4(11)开启驾驶环境,随后开始开车!

3.1键盘控制

在环境中,可以采用方向键体验山地赛车的乐趣~

3.2 python脚本汽车控制

在Anaconda中启动VS Code,打开文件夹(D:\AirSim\PythonClient\car),运行hello_car.py,可见汽车在脚本的控制下分别进行向前、向前+右转、向后+右转的顺序运动。证明可通过python脚本控制虚拟环境中的汽车,前面的环境配置是无误的。

3.3强化学习训练

在Anaconda中启动VS Code,打开文件夹(D:\AirSim_Paddle\AirSim_Paddle),运行train.py,可看到在虚拟环境中进行的强化学习自动运行循环,并在VS终端中反馈每个循环的loss值。

四、强化学习平台简介

4.1强化学习基本概念

强化学习是机器学习领域之一,受到行为心理学的启发,主要关注智能体如何在环境中采取不同的行动,以最大限度地提高累积奖励。

强化学习主要由智能体(Agent)、环境(Environment)、状态(State)、动作(Action)、奖励(Reward)组成。智能体执行了某个动作后,环境将会转换到一个新的状态,对于该新的状态环境会给出奖励信号(正奖励或者负奖励)。随后,智能体根据新的状态和环境反馈的奖励,按照一定的策略执行新的动作。上述过程为智能体和环境通过状态、动作、奖励进行交互的方式。因此,强化学习算法的开发主要为对以上五部分的定义,以及通过算法(algorithms)对动作进行更新,进而形成完整的策略(Policy)。

       

最初的强化学习方法为Q-Learning,其采用Q表格的形式定义离散的动作空间,但对于高维度、连续的空间会难以进行。DeepMind采用深度学习替代Q表格,开发出深度强化学习算法DQN。随后,研究者开发出ReplayMemory机制,从记录的经验池中随机选取采样进行梯度下降,可以极大地提升数据利用率,减少连续样本的相关性和方差,稳定和改善DQN的收敛性能。

经过研究者们的进一步开发,对DQN出现了多种变体。DeepMind对这些变体的特性进行了集成,形成了RainBow算法,效果惊人!采用的特性包括:

·Double DQN

·Prioritized experience replay

·Dueling network architecture

·Multi-step bootstrap

·Distributional DQN

·Noisy DQN

       

4.2 AirSim_Paddle简介

AirSim_Paddle为gym格式下,调用parl在AirSim虚拟环境中进行强化学习训练的标准格式包。其中,airgym文件夹下包含各类环境,airsim_env.py为类的头文件,预定义了状态空间、动作空间、奖励函数计算方法和环境重置等函数,car_env.py中为自动驾驶汽车详细环境设置,drone_env.py为四旋翼无人机详细环境设置。

       

强化学习中智能体需要包含以下结构:模型(model)、算法(algoritihm)和代理(agent)。

在外部文件夹中,model.py构建了前向网络,输入为当前的环境状态(state);算法,根据定义和损失函数更新模型;agent.py为负责算法与环境的交互,在交互过程中把生成的数据提供给 Algorithm 来更新模型( Model ),也就是数据和算法的交互一般定义在这里。

train.py为主程序,用于模型的训练,飞桨集成了多种经典的RL算法,可以通过以下语句进行引入:

 
       

以上就是【AI达人特训营】基于飞桨和Airsim的自动驾驶强化学习初探的详细内容,更多请关注昆居客【www.kunjuke.com】。

相关推荐:

支撑 Level 4 自动驾驶:曝特斯拉 Cybercab 出租车支持双频 GPS

7 月 10 日消息,科技媒体 notateslaapp 今天(7 月 10 日)发布博文,报道称特斯拉为提升无人驾驶出租车 Cybercab 的定位精度与冗余能力,将为其配备双频 GPS 方案。援引博文介绍,为支撑 SAE Level 4 自动驾驶能力,特斯拉为这款无人驾驶出租车提供双频 GPS 定位。基于目前曝光的信息,特斯拉已经在代号为“Project Halo”的 Model Y 车型后部...

《梦想翻新家》冰箱收纳达人成就做法介绍

《梦想翻新家》中的特殊成就的数量是非常多的,冰箱收纳达人成就就是其中一个,想要获得这个成就只需要完成冰箱收纳小游戏就可以了,需要注意的事情就是一定要记得打开抽屉拿水果。 梦想翻新家冰箱收纳达人成就怎么做 冰箱收纳达人 完成“冰箱收纳”小游戏 获取方法:完成冰箱小关卡 提示:记得打开抽屉拿水果。 相关攻略:《梦想翻新家》回收大师成就做法介绍 本文内容来源于互联网,如有侵权请联系删除。

旧金山多辆 Waymo 自动驾驶出租车碾过烟花,其中一车起火

7 月 6 日消息,Waymo 正在调查旧金山独立日当天发生的几起事故,涉事自动驾驶车辆均碾过烟花,其中一辆车还因此起火。该公司表示,一辆无人驾驶的自动驾驶车辆碾过路面小型烟花后被引燃。事故未造成人员受伤,消防部门与当地工作人员到场扑灭明火,并将涉事车辆拖离道路。社交媒体上一段由 Waymo 乘客拍摄的视频显示,另有一辆该品牌自动驾驶车碾过路面一处公司认定为非法燃放的烟花。Waymo 称这起事件中...

长安启源 Q06 中大型 SUV 官图公布:搭载长安天枢领航辅助驾驶系统、9 月上市

感谢网友 热评钦定员 的线索投递! 7 月 6 日消息,长安启源现已发布旗下中大型 SUV 长安启源 Q06 车型官图,该车基于长安 SDA 天枢架构打造,采用纯电驱动,搭载最大功率 245 千瓦电机,将于 9 月上市。该车承袭家族扶光美学设计理念,前脸采用了启源品牌标志性的封闭式前格栅设计,匹配贯穿式的 LED 日间行车灯,车顶带有激光雷达,预计将搭载长安天枢领航辅助驾驶系统;车身配有上扬腰线,...

伦敦自动驾驶公司 Wayve 成海外资本新宠儿:目标让任何品牌、任何地点都能开

7 月 2 日消息,据路透社 1 日报道,伦敦自动驾驶初创公司 Wayve 正成为资本追逐的新焦点。Wayve 已获得 28 亿美元(注:现汇率约合 190.43 亿元人民币)投资,并拥有英伟达、奔驰和日产等涵盖科技与汽车行业的投资者和战略合作伙伴。Wayve 采用端到端机器学习技术,让 AI 直接把传感器采集的数据转化为驾驶决策,工作方式更接近人类驾驶员。传统自动驾驶方案通常把 AI、软件代码和...

何小鹏:自动驾驶发展速度超过预期,未来 3 到 5 年可以看到 L4 甚至 L5 落地

7 月 2 日晚间消息,在小鹏 MONA L03 中国首秀发布会后,小鹏集团董事长、CEO 何小鹏,小鹏集团车型产品高级总监杨光,小鹏 MONA 车主、代言人欧阳娜娜与媒体对话。今年 6 月,联合国正式发布了一项全球自动驾驶技术法规 ——ADS GTR,而这部法规的核心制定者之一是中国。何小鹏表示,中国的智能辅助驾驶,无论是企业做的效果,还是相关法律法规的制定,都走在全球前面。联合国的这部自动驾驶...

抖音电商上线“肖像保护功能”,防范“AI 仿冒带货达人”侵权行为

感谢网友 软媒用户1238620 的线索投递! 7 月 1 日消息,抖音电商宣布上线“肖像保护功能”,目前部分带货达人已率先试用,该功能可帮助达人主动维护自身肖像权益,防范 AI 仿冒、素材盗用等侵权风险。据平台介绍,带货达人可通过该功能提交姓名、肖像等保护信息,实时维护自身账号及授权店铺名单。系统将综合运用模型识别、授权信息核验及相似内容阻断等技术手段,主动识别并拦截涉及 AI 仿冒、盗用素材等...