0

0

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

P粉084495128

P粉084495128

发布时间:2025-07-29 10:29:34

|

1024人浏览过

|

来源于php中文网

原创

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

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

【ai达人特训营】基于飞桨和airsim的自动驾驶强化学习初探 - php中文网

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

一、项目背景

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

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

二、环境配置

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

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

2.1模拟器安装

(1)安装Epic Game launcher;

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

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

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

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\ 看插件是否生成。

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

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选择“设为启动项目”,点击菜单“调试”–>“开始调试”,虚幻编辑器启动;

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

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

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

2.4 配置Visual Studio 2019 + LandscapeMountains

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

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

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

(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],并在主窗口中把它移动到一条路上;

AI Web Designer
AI Web Designer

AI网页设计师,快速生成个性化的网站设计

下载

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

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

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

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

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

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)。

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

最初的强化学习方法为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

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

4.2 AirSim_Paddle简介

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

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

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

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

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

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

46

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

178

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

51

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

92

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

227

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

532

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

171

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号