Ubuntu从源码编译LGSVL搭建环境

2023-05-16

    上一周借助校园里面的教育网终于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,选择属性,导航至权限,勾选“允许作为程序执行文件”,关闭属性窗口以保存,修改后的属性如下图所示:

    或者,你可以打开终端使用命令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时会导致失败,如下图所示

 

二、下载和安装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已成功安装在你的机器上,如下图所示:

 

三、安装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,如下图所示:

    2、双击挂载好的项目“simulator”,以启动Unity Editor

    3、安装依赖,首先使用终端导航至/simulator/WebUI文件夹下后安装npm:

~/simulator$ cd WebUI
~/simulator/WebUI$ npm install

    【注意】本步骤3只执行一次,或当依赖在packages.json文件中发生变化时也需要执行一次

    安装依赖npm后的终端界面如下图所示:

 

六、build WebUI

    在Unity Editor中,选择Simulator -> Build WebUI,以build LGSVLsimulator的Web控制台

 

七、向模拟器添加AssetBundles

    1、simulator代码仓库不包含任何的环境、车辆或传感器,这些资源都在GitHub上需要分别下载

    2、请参考https://www.lgsvlsimulator.com/docs/assets/以从GitHub下载有关资源的源码,使用git clone下载的效果如下图所示:

    【注意】挂载AssetBundles时,git clone文件的路径和名称必须按照官方指南的要求进行配置,不能随意更改文件的名称

 

八、正式开始build

    1、勾选所要build的Environments和Vehicles

    2、选择正确的执行平台Executable Platform:Linux

    3、勾选Build Simulator,点击“...”以选择build好的LGSVL simulator的存放路径

    4、点击Build Maps & Vehicles窗口最下方的build按钮,编译过程如下图所示:

 

九、启动LGSVL

    0、Ubuntu下需要安装依赖Vulkan user space library,如果之前有做过发行版的LGSVL+Apollo5.5联合仿真的朋友,此步骤可忽略

~$ sudo apt-get install libvulkan1

   1、 使用可视化界面文件管理器,打开我们之前build的目标目录,双击simulator,在弹出的窗口中选择Open Browser,即可开始进行环境的配置了

    2、添加之前在本地编译好的AssetBunldes,依次打开左侧的Maps和Vehicles导航栏,在对应页面点击右上角的“Add new”进行编辑:

    3、添加新的Simulation,打开左侧的Simulations导航栏,在对应页面点击右上角的“Add new”进行编辑:

    4、点击左下角的红色播放按钮(),正式启动我们的模拟器,至此,本地编译的地图和车辆就可以在LGSVL simulator中运行了:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu从源码编译LGSVL搭建环境 的相关文章

随机推荐

  • [解题报告] CSDN竞赛第17期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 31 1 判断胜负 题目 已知两个字符串A B 连续进行读入n次 每次读入的字符串都为A B 输出读入次数最多的字符串 解题报告 模拟
  • [解题报告] CSDN竞赛第18期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 32 1 单链表排序 题目 单链表的节点定义如下 xff08 C 43 43 xff09 xff1a class Node publi
  • [解题报告] CSDN竞赛第22期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 36 1 c 43 43 难题 大数加法 题目 大数一直是一个c语言的一个难题 现在我们需要你手动模拟出大数加法过程 请你给出两个大整
  • [解题报告] CSDN竞赛第23期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 37 1 排查网络故障 题目 A地跟B地的网络中间有n个节点 xff08 不包括A地和B地 xff09 xff0c 相邻的两个节点是通
  • Python3中的configparser模块

    configparser模块简介 该模块适用于配置文件的格式与windows ini文件类似 xff0c 可以包含一个或多个节 xff08 section xff09 xff0c 每个节可以有多个参数 xff08 键 61 值 xff09
  • CSDN竞赛第24期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 38 这次写完第一道题时遇到一个奇怪的情况 xff1a 一直在 运行中 xff0c 然后发现每道题输入做任意代码都出现一直运行中 跟小
  • [Python开发] 使用python读取图片的EXIF

    使用python读取图片的EXIF 方法 使用PIL Image读取图片的EXIF 使用https pypi python org pypi ExifRead 读取图片的EXIF xff0c 得到EXIF标签 xff08 dict类型 xf
  • Partial Least Squares Regression 偏最小二乘法回归

    介绍 定义 偏最小二乘回归 多元线性回归分析 43 典型相关分析 43 主成分分析 输入 xff1a n m 的预测矩阵 X n p 的响应矩阵 Y 输出 X 和 Y 的投影 分数 矩阵 T U R n l 目标 xff1a 最大化 cor
  • 唐诗生成器

    使用唐诗语料库 xff0c 经过去噪预处理 分词 生成搭配 生成主题等过程 xff0c 生成唐诗 csdn下载地址 xff1a http download csdn net detail lijiancheng0614 9840952 gi
  • 使用TensorFlow-Slim进行图像分类

    参考 https github com tensorflow models tree master slim 使用TensorFlow Slim进行图像分类 准备 安装TensorFlow 参考 https www tensorflow o
  • 使用TensorFlow Object Detection API进行图像物体检测

    参考 https github com tensorflow models tree master object detection 使用TensorFlow Object Detection API进行图像物体检测 准备 安装Tensor
  • 双网卡下使用udp带来的问题

    今天在工程人员现场布置程序时 xff0c 出了一个疑难问题 xff0c 客户端发送的UDP包服务程序能收到 xff0c 但是服务程序收到的包的ip地址很随机 xff0c 造成在生成唯一ID的时候出现问题 xff0c 经过仔细排查 xff0c
  • 帧融合的功能(慢镜头的制作)

    转自 xff1a http mc2109 blog 163 com blog static 253694620087217213706 帧融合的功能 xff08 慢镜头的制作 xff09 2008 08 21 19 02 13 分类 xff
  • 无人驾驶二 卡尔曼滤波与PID控制

    链接 xff1a https pan baidu com s 108cN2yyKOiouiABXTYtGOw pwd 61 1234 提取码 xff1a 1234 卡尔曼滤波形象的描述见 xff1a 卡尔曼滤波原理及实现 曦爷的博客 CSD
  • JetsonTX2和TX2I的镜像备份与恢复及内核、DTB更新

    为了HDMI转CSI的图像采集模块能被识别 xff0c 可以成功采集HDMI视频图像 xff0c 最近在研究JetsonTX2和TX2I的刷机 镜像备份与恢复 xff0c 以及内核和DTB的刷入 按照https elinux org Jet
  • Dockerfile详解超全

    Dockerfile详解 环境介绍指令介绍FROMMAINTAINERLABELADDCOPYEXPOSEENV在Dockerfile中使用变量的方式 RUNCMDRUN amp amp CMDENTRYPOINTVOLUMEUSERWOR
  • c/c++调用libcurl库发送http请求的两种基本用法

    libcurl主要提供了两种发送http请求的方式 xff0c 分别是Easy interface方式和multi interface方式 xff0c 前者是采用阻塞的方式发送单条数据 xff0c 后者采用组合的方式可以一次性发送多条数据
  • ROS(二):读取摄像头图像节点并发布topic以及订阅

    读取树莓派摄像头信息发布到ROS话题中 摄像头为树莓派第二代摄像头 ros为kinetic版本 ubuntu系统 参考文档链接 http www ncnynl com archives 201611 1067 html http blog
  • 如何查看/确认linux是否能上网

    很多linux系统没有可视化界面 xff0c 无法通过界面访问一个外网的地址 xff08 比如 www baidu com 来确认是否能上网 在这种情况下 xff0c 确认linux服务器是不是能联网的方法很简单 xff0c 只需要ping
  • Ubuntu从源码编译LGSVL搭建环境

    上一周借助校园里面的教育网终于git clone成功了Apollo5 5的官方master repository xff0c 并build其gpu版本的模拟器 xff0c 根据最新的Apollo5 5 master文件描述 xff0c 桥接