草庐IT

【Ubuntu系统下百度Apollo7.0与LGSVL2021.3联合教程(亲测有效)】

不知名学徒 2023-04-10 原文

文章目录

一、百度Apollo7.0简介及其安装

1.1 apollo仿真平台介绍

百度Apollo仿真引擎拥有大量的场景数据,基于大规模云端计算容量,打造日行百万公里的虚拟运行能力,形成一个快速迭代的闭环,让开发者轻松实现“日行百万里”。
仿真平台拥有四大优势:

1.1.1 内置高精地图的仿真场景

基于路型,包括十字路口、调头、直行、弯道等。基于障碍物类型,包括行人、机动车、非机动车等。基于道路规划,包括直行、调头、变道、转弯、并道等。基于红绿灯信号,包括红灯、黄灯、绿灯。

1.1.2 场景运行与算法上传

支持同时多场景的高速运行。支持单算法模块的上传运行,提供基于apollo基本整车环境的单个模块的仿真结果。系统整套算法和运行环境的上传与运行。

1.1.3 智能的场景判别系统

开放5个判别标准:
 -碰撞检测    -闯红灯检测
 -限速检测    -在路检测
 -到达目的地检测

1.1.4 3D展示

提供实时路况,包括当前车道、红绿灯、限速。 算法模块输出的可视化信息,包括路径规划、动态障碍物、无人车规划轨迹等。 无人车状态的全局信息,包括速度、刹车油门状态。

1.2 apollo7.0仿真平台安装

apollo7.0的安装教程可以参考这位博主的文章 https://blog.csdn.net/mao_hui_fei/article/details/126056507

二、LGSVL简介及其安装

2.1 LGSVL介绍

SVL模拟器是由LG电子美国研发实验室(LG Electronics America R&D Lab)构建基于Unity开发的一个端到端的自动驾驶模拟器。在2018年11月在GitHub正是推出第一代SVL模拟器,目标是使开发人员能够通过端到端的高性能3D仿真来构建自动驾驶汽车以及机器人,其使用核心引擎是开源Unity,源代码可以在GitHub免费获取,并且支持ROS、ROS2、和Cyber RT,可以与Autowa
-re与百度Apollo联合仿真。LGSVL模拟器提供的车辆传感器包括摄像头、激光雷达、毫米波雷达、GPS和IMU等,用户也可以自己定制所需要的传感器。

同时LGSVL支持创建、编辑和导出现有3D环境的高清地图


此功能允许用户在三维环境中创建和编辑自定义高清地图注释。

2.2 LGSVL 2021.3安装运行

2.2.1下载

LGSVL软件的安装十分方便,直接从GitHub中下载releases版本:https://github.com/lgsvl/simulator/releases/tag/2021.3
找到下图所示的 svlsimulator-linux64-2021.3.zip 进行下载。

下载解压完成后如下图所示,直接点击 simulator 即可运行。

2.2.2在线运行

运行之后,会出现SVLSimlator界面,首次运行点击红框内link to cloud 与云端进行连接

与云端进行连接跳转到网页进行登陆,如果您已有帐户,则可以使用您的凭据登录;如果您还没有帐户,请单击注册以创建一个帐户。

注册登陆完成后,进入SVL主界面。主界面主要包括几个部分,分别是
store(资源商店)、Library(库)、Clusters(集群)、simulations(仿真)

2.2.3模块介绍及设置

store(资源商店)、Library(库)共有的小模块分别是Maps(地图)、Vehicles(车辆)、Plugins(插件),从store中选择下载您所需要的地图/车辆到Library中,在Library直接使用。

Maps(地图)主要是选择相应格式的即可,格式包括apollo30、apollo50、autoware、lanelet2、opendrive格式。在选择以及设置车辆参数时,主要是选择您需要的传感器配置即可,点击下图所示红框就可进入车载传感器界面。

传感器界面中选择车辆默认搭载的传感器CAN、GPS、IMU等。

Clusters(集群)的功能是将电脑的ip地址与您刚刚注册的lgsvl账户关联起来。操作也十分简单,如果是首次关联点击右上角Add New进行添加。
在Cluster Name中对此进行命名,在Instances中选择您使用的电脑型号,点击Save保存即完成关联。

simulations(仿真)主要是对仿真环境的设置,在进行仿真之前需要新建一个自己的仿真环境,如下图所示,点击右上角Add New新建。

点击新建之后,进行General(通用设置),填写仿真名称、描述、标签,并选择相应的集群(即与对应的计算机连接),最主要是填写名称与选择相应的集群。设置完成之后点击Next。

下一步设置Test case(测试用例),可以选择Random Traffic(随机交通),Map(地图)选择BorregasAve,车辆选择Jaguar2015XE_carsim,车载传感器这里选择的是apollo_6.0。ps:如果在选择车辆之后没有出现传感器的选项,耐心等待一会就会出现。

在此页面的下方选择开启Random Traffic(交通选择随机交通)、Random Pedestrians(随机行人)、Random Bicyclists(随机自行车),设置完成点击Next进入下一步。
此页面选择Autopilot自动驾驶系统,在红框区域内选择Apollo6.0,桥接端口采用默认值即可。完成则进入下一步。

点击Publish进行环境发布完成设置的最后一步。环境发布之后会出现如下图,点击Run Simulation进行仿真运行。
本地的SVL模拟器就会开始加载车辆以及地图信息。

加载完成后,点击左下角红框的播放按钮,SVL模拟器就会发送仿真配置的消息和接收对应接口的控制消息,也可以用键盘的上左右按键控制车辆行驶。

三、百度Apollo7.0与LGSVL2021.3联合仿真

3.1 启动百度apollo7.0

在本文2.1节中百度apollo7.0仿真平台已经编译安装完成,接下来是启动百度apollo7.0
使用命令:ctrl+alt+T 进入终端
进入apollo目录下:

cd apollo

下图则表示成功进入apollo界面

启动 Apollo 开发 Docker 容器

sudo bash docker/scripts/dev_start.sh

等待一会,启动成功的话会出现下图所示。
进入Apollo Docker容器

sudo bash docker/scripts/dev_into.sh

成功进入会显示下图。
因为在安装过程已经编译完成,在Docker内直接启动Apollo

./scripts/bootstrap.sh

在浏览器中打开红线划出的网站http://localhost:8888/

进入网站即进入apollo的Dreamview界面,至此apollo启动完成。

3.2 百度apollo7.0与LGSVL2021.3连接

apollo与lgsvl之间的连接需要通过以下命令实现。

bash ./scripts/bootstrap_lgsvl.sh
bash ./scripts/bridge.sh

连接成功之后如下图所示。

两者启动连接成功后,也可能通过本地LGSVL模拟器查验,点击左下方Bridge按钮,查看Bridge Status,显示为Connected则连接成功。

连接成功后,打开apollo的Dreamview界面,最上面一栏选择LGSVL中对应的模式、车辆、地图。在下方的Dump Message中选择Sim Control选项。

然后在Module Controller界面中打开Localization、Transform、Routing、Prediction、Planning、Control,即可看到对应的lgsvl的地图和车辆。

在百度apollo上的地图和车辆如下图所示。
接下来使用apollo的Route Editing 模块测试一下联合仿真的情况,在可行道路区域点上全局规划点,然后点击Send Routing Request 。


运行成功则实现了联合仿真。

四、小结

至此,百度apollo7.0与LGSVL2021.3的联合仿真已经完成,也是借鉴了网上好多博客资料,自己从头到尾的实践一遍,所以把联合仿真的详细步骤和经验和大家分享,希望能给到大家一些参考,也希望和大家交流学习。

有关【Ubuntu系统下百度Apollo7.0与LGSVL2021.3联合教程(亲测有效)】的更多相关文章

  1. ruby - 如何在 Ubuntu 中清除 Ruby Phusion Passenger 的缓存? - 2

    我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:

  2. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  3. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  4. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  5. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  6. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  7. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  8. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  9. ruby - 在没有基准或时间的情况下用 Ruby 测量用户时间或系统时间 - 2

    因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实

  10. ruby - 以毫秒为单位获取当前系统时间 - 2

    在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题:

随机推荐