在滴滴云 vGPU 实例上玩转自动驾驶仿真环境

滴滴云技术支持发表于:2020年11月18日 19:59:31

一、简介

滴滴云 vGPU 云服务器提供轻量级 GPU 服务,支持图形工作站、云游戏、虚拟桌面等场景,产品内置 vDWS 授权,无需用户手动配置。

CARLA 是一个基于 Unreal Engine 构建的开源自动驾驶模拟器,支持开发,训练,验证自动驾驶系统,提供完全开放的数字仿真环境(城市布局,建筑,车辆)。

0015fb50acb9d23fe60b1c6a63f3259

CARLA 是典型的客户端-服务器架构,服务端负责传感器数据更新,环境状态转移,计算物体位移等,为了实现逼真的效果,建议单独部署在一台 GPU 服务器上。客户端则通过 Python/C++ 脚本发起远程调用,发出控制指令,例如控制车辆转弯、加速等。

运行 CARLA 模拟器部分需要的 GPU 显存容量 >= 4GB,我们这里使用 1/1 T4 实例演示,该实例显存有 16 GB,可以同时用于环境仿真和机器学习模型训练。

二、vGPU + Ubuntu 18.04 + CARLA 仿真环境搭建

购买 vGPU 实例过程如下:

0015fb50ae55b49445568ecc7e1989b

0015fb50af1128e602d59da99a51baf

0015fb50afdb1656c47eb676da0d215

0015fb50b0b19485d974c93d0a5ec20





其他配置略。创建成功后,通过 ssh dc2-user@公网IP 登录到云服务器。

依次运行如下命令:

sudo su
apt update
apt install ubuntu-desktop
nvidia-xconfig -a --allow-empty-initial-configuration --virtual=1920x1080 --busid PCI:0:6:0
reboot
wget https://zyk.s3-internal.didiyunapi.com/public_software/RDP/nomachine_6.4.6_1_x86_64.tar.gz
tar zxvf nomachine_6.4.6_1_x86_64.tar.gz -C /usr/
/usr/NX/nxserver --install   # 安装 Nomachine 远程工具,需要安全组开启 4000 端口

本地安装 Nomachine 客户端

MAC 客户端下载:https://zyk.s3.didiyunapi.com/public_software/RDP/nomachine_6.4.6_1.dmg

Windows 客户端下载:https://zyk.s3.didiyunapi.com/public_software/RDP/nomachine_6.4.6_5.exe

安装后,点新建连接


0015fb50b4d3645bc77a530c2def288

连接协议,选择默认 NX:

0015fb50b6539ed89b296b67649bbdc


输入滴滴云游戏服务器 IP 地址(vGPU 实例),端口默认 4000 :


0015fb50b7556cbe16f6b35edec705a

认证方式为密码:

0015fb50bae145b82ad299b2a264241


不需要代理:

0015fb50bc30eb9f18a869fe5d8b62b


起个好记的名字:

0015fb50bd084d18a3ab20a3ae405a4


双击刚刚新建的连接图标

0015fb50be8e841ed538112fed4a645


输入用户名和密码(创建云主机时设置)

0015fb50bf46e0ead26e0c3a6cfceda


后续一路点 OK 直到进入系统登录页面。再次输入用户名密码即可进入桌面。

桌面如图:

0015fb50c0912a327d9dc36f3e0a89e


打开一个终端,运行如下命令:

sudo su
apt install mesa-utils
glxinfo

找到如下字段:

0015fb50c3216b30f5dbb8ab24c2958

说明桌面环境安装成功。接下来可以运行 CARLA 模拟器:


wget https://zyk.s3-internal.didiyunapi.com/CARLA_0.9.10.1.tar.gz
mkdir carla
tar zxvf CARLA_0.9.10.1.tar.gz -C carla
./CarlaUE4.sh


此时,会弹出 UE4 窗口:

0015fb50c503a434f2f9c7550da2dd3

按键盘 WSAD 可以控制前后左右移动,鼠标点击可以控制视角变换。

这只是城市环境模拟,还没有任何可移动的物体出现。我们下一节将创建可自动驾驶的车辆。


三、自动驾驶模拟效果


新开一个终端,运行如下命令:

cd carla/PythonAPI/examples/
pip install -r requirements.txt
python automatic_control.py


这时会弹出一个 pygame 窗口,显示车辆的运行状态。注意上一步的 UE4 窗口需要保持运行。

0015fb50c7aaf40de1ff82f627fd781


显存和计算开销如下:

0015fb50c8f3c9889689ff887ff242c

完成上述步骤之后,你可以更进一步探索如下内容:

  • 模拟器(server)与算法(client)分离部署,这样模拟器部署环境可以使用 1/2 T4 或者 1/4 T4 这种更小的规格来减少费用;

  • 算法部分可部署在另一台 CPU/GPU 服务器上,注意要能访问模拟器所在服务器的 2000, 2001 两个端口;

  • 为了达到更好的实时显示效果,模拟器所在的云服务器可以调大 EIP 带宽(> 20Mbps),获得更好的视觉体验;

  • 除了免费的 Nomachine 软件之外,滴滴云有自研串流技术,能进一步改善画质,降低延迟,联系客服获取超前体验机会;

四、总结

利用滴滴云提供的 vGPU 实例可支持图形化的开发和仿真环境。本文介绍的自动驾驶模拟可以帮助算法工程师实时观察环境,了解控制算法在模拟器中的表现,从而为算法改进提供帮助。