上一周借助校园里面的教育网终于git clone成功了Apollo5.5的官方master repository,并build其gpu版本的模拟器,根据最新的Apollo5.5 master文件描述,桥接LGSVL模拟器已被官方支持,而不必再使用LG提供的魔改版Apollo源码,这极大地简化了版本控制带来的困扰,具体可以参考:https://blog.csdn.net/clksjx/article/details/106944467
基于之前搭建好的Apollo gpu版本的环境,桥接发行版的LGSVL模拟器,可以实现Apollo内核接管车辆进行联合方针;然而官方发行版的LGSVL中的车辆与地图无法修改:WebUI界面直接会从其官网下载Assetbundle(unity的一种资源封装方式),不能使用相应的工具对地图、车辆进行编辑,这显然对自动驾驶测试工作是不利的。LGSVL是基于unity(一种游戏场景集成开发环境)构建的自动驾驶可视化方针平台,而使用unity从LGSVL源码编译模拟器即可在编译之前修改所需要的场景地图,从而让开发者能够自行搭建特定的场景边角案例,Verification&Validation(i.e.软件工程V&V)自动驾驶内核接管车辆后的决策正确性。
国内的一些网站中大部分博主都是基于Windows环境下的unity编译LGSVL模拟器,很少有人部署过基于Linux版本的unity来编译LGSVL simulator,本文尝试的是Ubuntu18.04下使用unity(linux edition)编译LGSVL simulator,也欢迎各位致力于自动驾驶科研、产业有关的朋友批评指导。
一、下载和安装Unity Hub和Unity 2019.3.3f1
1、下载UnityHub.AppImage:https://unity3d.com/get-unity/download
2、在可视化界面中,右键下载好的AppImage,选择属性,导航至权限,勾选“允许作为程序执行文件”,关闭属性窗口以保存,修改后的属性如下图所示:
![](https://img-blog.csdnimg.cn/2020092811460582.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
或者,你可以打开终端使用命令cd导航至AppImage所在的文件夹(我的文件夹为/unity)后,键入命令:
~/unity$ sudo chmod +x UnityHub.AppImage
3、安装Unity 2019.3.3f1,注意一定要是这个版本,Unity的版本控制是很严格的,其他版本都不兼容的!在刚才的路径下,键入命令:
./UnityHub.AppImage unityhub://2019.3.3f1/7ceaae5f7503
此时,Unity Hub会打开窗口,并导航你安装该版本的Unity。【注意】安装务必勾选Windows Build Support和Linux Build Support两个组件,否则编译LGSVL时会导致失败,如下图所示
![](https://img-blog.csdnimg.cn/20200928115713653.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20200928131108935.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
二、下载和安装Node.js
1、使用命令行键入如下命令,以安装Node.js v12.x版本:
~$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
~$ sudo apt-get install -y nodejs
2、验证你的Node.js安装,键入命令:
~$ node --version
此时终端会返显你的Node.js版本号,证明该版本的Node已成功安装在你的机器上,如下图所示:
![](https://img-blog.csdnimg.cn/20200928120421275.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
三、安装git-lfs
git-lfs用于clone体积庞大的仓库,安装指南不在本文赘述,可以参照官方教程进行:https://help.github.com/en/articles/installing-git-large-file-storage
四、下载LGSVL源码
~$ git clone --single-branch https://github.com/lgsvl/simulator.git
验证你的LGSVL源码是否git clone成功:
1、使用可视化界面文件管理器,导航至/simulator/Assets/Materials/EnvironmentMaterials/
2、在EnvironmentMaterials文件夹下,应当有一张EnvironmentDamageAlbedo.png图片
3、打开这张图片,它应当是一张正方形的水泥地照片,如果图片不能被正常打开浏览,说明在git clone之前没有正确安装git-lfs,在终端导航至/simulator文件夹下,键入以下命令:
~/simulator$ git lfs pull
使用git lfs重新拉取后,再次检查EnvironmentDamageAlbedo.png图片是否可以被正确打开
五、启动Unity Hub
1、在Projects选项卡下,点击“Open”,在弹出的对话框中选择在第四步中创建的simulator文件夹(即下载好的LGSVL源码),务必要确认所使用的Unity版本为2019.3.3f1,如下图所示:
![](https://img-blog.csdnimg.cn/20200928131021546.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
2、双击挂载好的项目“simulator”,以启动Unity Editor
3、安装依赖,首先使用终端导航至/simulator/WebUI文件夹下后安装npm:
~/simulator$ cd WebUI
~/simulator/WebUI$ npm install
【注意】本步骤3只执行一次,或当依赖在packages.json文件中发生变化时也需要执行一次
安装依赖npm后的终端界面如下图所示:
![](https://img-blog.csdnimg.cn/20200928132322886.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
六、build WebUI
在Unity Editor中,选择Simulator -> Build WebUI,以build LGSVLsimulator的Web控制台
七、向模拟器添加AssetBundles
1、simulator代码仓库不包含任何的环境、车辆或传感器,这些资源都在GitHub上需要分别下载
2、请参考https://www.lgsvlsimulator.com/docs/assets/以从GitHub下载有关资源的源码,使用git clone下载的效果如下图所示:
![](https://img-blog.csdnimg.cn/20200928133607649.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
【注意】挂载AssetBundles时,git clone文件的路径和名称必须按照官方指南的要求进行配置,不能随意更改文件的名称
八、正式开始build
1、勾选所要build的Environments和Vehicles
2、选择正确的执行平台Executable Platform:Linux
3、勾选Build Simulator,点击“...”以选择build好的LGSVL simulator的存放路径
4、点击Build Maps & Vehicles窗口最下方的build按钮,编译过程如下图所示:
![](https://img-blog.csdnimg.cn/20200928134325296.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
九、启动LGSVL
0、Ubuntu下需要安装依赖Vulkan user space library,如果之前有做过发行版的LGSVL+Apollo5.5联合仿真的朋友,此步骤可忽略
~$ sudo apt-get install libvulkan1
1、 使用可视化界面文件管理器,打开我们之前build的目标目录,双击simulator,在弹出的窗口中选择Open Browser,即可开始进行环境的配置了
![](https://img-blog.csdnimg.cn/20200928134902413.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
2、添加之前在本地编译好的AssetBunldes,依次打开左侧的Maps和Vehicles导航栏,在对应页面点击右上角的“Add new”进行编辑:
![](https://img-blog.csdnimg.cn/20200928135259641.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20200928135417615.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
3、添加新的Simulation,打开左侧的Simulations导航栏,在对应页面点击右上角的“Add new”进行编辑:
![](https://img-blog.csdnimg.cn/20200928135759709.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbGVqaW4zMjI=,size_16,color_FFFFFF,t_70)
4、点击左下角的红色播放按钮(▶),正式启动我们的模拟器,至此,本地编译的地图和车辆就可以在LGSVL simulator中运行了:
![](https://img-blog.csdnimg.cn/20200928144232935.gif)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)