新闻中心

老司机开车了!用飞桨玩AirSim智能驾驶

2025-07-28
浏览次数:
返回列表
本文介绍如何用飞桨PARL强化学习框架在微软AirSim*环境实现智能驾驶。先说明环境配置,包括安装Win10、VS2019、虚幻引擎、AirSim等及验证方法;再讲用Python控制汽车的步骤;最后详述基于飞桨PARL的DQN算法实现,含代码清单、逻辑,还提及相关训练地图和视频。

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

老司机开车了!用飞桨玩airsim智能驾驶 -

老司机开车了!用飞桨玩AirSim智能驾驶

https://www.bilibili.com/video/BV1UY4y1e7s5?share_source=copy_web

老司机开车了!用飞桨玩AirSim智能驾驶 -        

训练过程视频:PARL_AirSim_DQN.mp4

前言

PARL 是由百度大脑出品的、高性能、易用的国产强化学习(RL)框架。
微软AirSim环境是基于Unreal游戏引擎开发的,面向四轴无人机和无人驾驶汽车的虚拟现实环境。
AirSim目前star数高达12.9k,是微软公司最火的人工智能项目之一。
百度PARL的RL程序目前还无法在AirSim环境中运行。
本文实现了AirSim环境中运行基于PARL的强化学习算法。

一、环境要求与配置

  • win10操作系统
  • Anaconda N*igator
  • Python3.7+
  • PaddlePaddle2.x
  • PARL2.x
  • 宽带网络+加速器
  • 内存16G或更多
  • 显卡NVIDIA RTX3060Ti以上

注册账号

  • 注册微软统一账号:Win10系统菜单中找到windows 商店注册即可。
  • 注册Unreal账号:打开游戏引擎官网https://www.unrealengine.com/zh-CN 注册账号,并打通github.com认证授权(二次开发Unreal代码需要用到)。

下载软件

  1. 下载Visual Studio Community 2019

    1. 使用C++的桌面开发
    2. 安装组件:Window 10 SDK(10.0.18362.0)
  2. 下载Epic Game Launcher并安装4.26以上版本的“虚幻引擎”

  3. 重启Epic Game Launcher并关联项目文件

    Motiff妙多 Motiff妙多

    Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”

    Motiff妙多 334 查看详情 Motiff妙多
  4. 下载AirSim源代码:git clone https://github.com/Microsoft/AirSim.git

本地编译AirSim源代码(Windows环境)

  1. 打开Developer Command Prompt for VS 2019,在项目根目录下输入命令:build.cmd
  2. 检查插件目录:$ProjectRoot\Unreal\Plugins\ 看插件是否生成。

验证安装

  1. 打开Developer Command Prompt for VS 2019,在$ProjectRoot\Unreal\Environments\Blocks目录下输入命令:update_from_git.bat
  2. 弹出窗口点击确定,关联当前引擎
  3. 进入目录双击Blocks.sln, VS2019自动启动。
  4. 编译选项设置为:Development_Editor + Win64
  5. 击菜单“调试”-->“开始调试”,虚幻编辑器启动,看一遍教程
  6. 点击“运行”,点击确定,出现下图表示AirSim环境安装成功!

老司机开车了!用飞桨玩AirSim智能驾驶 -        

二、使用Python控制汽车

1. 配置Anaconda环境

2. pip安装AirSim依赖包

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

3. 下载并安装Unreal 的 Landscape Mountains环境

请参考: 《下载与安装示例》章节,不再赘述。

4. 启动VS Code,打开文件夹PythonClient\car\,运行hello_car.py,效果如下:

老司机开车了!用飞桨玩AirSim智能驾驶 -        

三、使用飞桨PARL强化学习算法驾驶汽车

下载AirSim预编译的windows版本的训练地图: 老司机开车了!用飞桨玩AirSim智能驾驶 -        

AirSim_Paddle
│  setup_path.py│
│  agent.py│  model.py│  replay_memory.py│  train.py│  
└─airgym
    │  __init__.py
    │  
    └─envs
            airsim_env.py
            car_env.py
            drone_env.py
            __init__.py
       

环境代码清单:

  1. setup_path.py AirSim环境设置
  2. airgym目录
    1. __init__.py python包配置
    2. envs目录
      1.      airsim_env.py   基础环境配置
                                   
      2.      car_env.py    汽车训练环境配置
                                   
      3.      `__init__.py`    python包配置
                                   

DQN算法代码清单:

  1. train.py 主程序,训练DQN模型
  2. model.py 飞桨PARL三件套之一
  3. agent.py 飞桨PARL三件套之一
  4. replay_memory DQN系列算法的“记忆回放”

代码逻辑

  1. 初始化AirSim_Gym 游戏环境
  2. 初始化飞桨PARL库的DQN算法
  3. 预热“记忆回放”
  4. 循环开始触发动作,训练自动驾驶
    ...
    while True:
        step += 1
        # 获取记忆回放中的4帧
        context = rpm.recent_obs()        # 把当前动作返回帧加进去
        context.append(obs)        # 数组增加一维
        context = np.stack(context, axis=0)        # 选择一个动作,e-greedy算法
        action = agent.sample(context)        # 触发动作
        next_obs, reward, isOver, _ = env.step(action)        # 回写记忆回放
        rpm.append(Experience(obs, action, reward, isOver))        # train model
        if (len(rpm) > MEMORY_WARMUP_SIZE) and (step % LEARN_FREQ == 0):            # s,a,r,s',done
            (batch_all_obs, batch_action, batch_reward, batch_done) = rpm.sample_batch(BATCH_SIZE)            # 抽帧
            batch_obs = batch_all_obs[:, :CONTEXT_LEN, :, :]            batch_next_obs = batch_all_obs[:, 1:, :, :]            # 把抽出的帧放入learn方法中学习
            train_loss = agent.learn(batch_obs, batch_action, batch_reward,                                     batch_next_obs, batch_done)            loss_lst.append(float(train_loss))
            print("loss" + str(train_loss))

        total_reward += reward
        obs = next_obs
        if isOver:            break    return total_reward, step, np.mean(loss_lst)
       
  1. 保存训练结果。

四、源代码和演示视频

训练视频:PARL_AirSim_DQN.mp4 完整源代码在work目录

五、项目总结

本项目在AirSim*环境中首次集成了飞桨PARL强化学习框架。
使用了飞桨PARL库自带的DQN系列算法,验证了AirSim环境中使用飞桨框架的可行性。

以上就是老司机开车了!用飞桨玩AirSim智能驾驶的详细内容,更多请关注其它相关文章!


# git  # 官网  # 微软  # 源代码  # 一言  # 中文网  # pi  # win10系统  # 智能驾驶  # 百度  # c++  # ai  # win10  # 操作系统  # windows  # python  # 二次开发  # 看电影活动文案网站推广  # 关键词排名怎样优化  # 惠州怎样做网站建设开发  # 安徽网站建设网站推广  # 酉阳什么是seo推广  # 株洲网站排名优化推荐  # 玩具关键词排名案例  # 闵行浦江网站推广  # seo如何诊断数据  # 南湖最大的网站建设  # 是由  # 首次  # 三件  # 微软公司 


相关栏目: 【 行业资讯67740 】 【 技术百科0 】 【 网络运营39195


相关推荐: 花呗征信不好如何恢复 如何修复不良的花呗征信  mac 如何启动命令行模式  2025年哪个局域网聊天软件好用  苹果16粉色还有哪些机型  市盈率百分位roe是什么意思  苹果16有哪些bug  typescript干什么的  哪个牌子的折叠屏手机好  内在市盈率是什么意思  夸克内测有什么好处  如何打开命令提示符  如何右键打开命令窗口  soup是什么意思  春运抢票如何抢连坐的票  如何在固态硬盘上安装win7系统  4800日元等于多少人民币  linux如何跳回命令行界面  为什么夸克下载不到  选哪个折叠屏手机好用  怎么在typescript写原型链  春运预约抢票能抢到吗  买的5g手机但是没有5g网络怎么办  虚拟机服务器如何关机命令  5G类似微信的聊天软件有哪些  如何去除计算器的命令  选哪个折叠屏手机好  16苹果有哪些机型  平仓是什么意思?  360n7锁屏壁纸怎么固定  如何为服务器配置静态路由?服务器配置静态路由详细教程  在遥控器中power是什么意思  什么是base64  如何查看固态硬盘速度  夸克高考为什么不靠谱  driver是什么意思  宝马x5仪表盘上边有power是什么意思  一天多少分钟  折叠屏手机好不好,耐不耐用  服务器系统怎么装  怎么在项目中使用typescript  固态硬盘如何判断大小  折叠屏手机哪个牌子性价比高  苹果16更新了哪些软件  导航power在汽车上是什么意思  ospf中交换机命令如何设置  如何以管理员身份打开命令提示符  网络光刻机是干什么用的  bc是什么意思  怎么把手机里爱奇艺的视频下载到u盘里  望远镜上power是什么意思 

搜索