技术文档丨用LGSVL仿真器运行Apollo 5.0
LGSVL Simulator是一款开源的无人驾驶仿真系统,支持Linux系统和Windows系统,可以对接Apollo及Autoware自动驾驶软件使用。运行该仿真系统需要一台带NVidia独立显卡的高配置的电脑。我下载的是Windows版本的Simulator,并通过访问指定的ip地址的方式与运行在Linux上的Apollo建立连接。
注意:本文主要介绍如何让LGSVL Simulator对接Apollo 5.0。Simulator本身的具体使用方法将另文介绍。本文提到的Apollo 5.0是LG维护的一个分支,其中包含针对该仿真系统的修改,请不要使用Apollo官方版本。
以下,ENJOY
指南概述了用LG汽车模拟器来安装Apollo所需的步骤。如果您还没有设置模拟器,请先按照《LGSVL Simulator: An Autonomous Vehicle Simulator》(链接见文末)的说明进行设置。
Linux操作系统(最好是Ubuntu 14.04或更高版本)。
Nvidia显卡(感知模块需要)。
○ 必须安装Nvidia专用驱动程序。
○ 当前版本的Apollo不支持Volta和Turing架构(包括Titan V和RTX 2080 GPUs)。
Apollo 的设计充分利用了Docker容器。镜像将作为卷挂载这个存储库,因此不需要在每次修改时重新构建镜像。
请参阅《Docker官方文件》(链接见文末)来安装Docker CE。
注意:如果Docker是用sudo启动的,Apollo将不会有反应。我们建议遵循以下《安装后的步骤》(链接见文末)。
在安装Nvidia -docker之前,请确保安装了合适的Nvidia驱动程序。在终端中输入nvidia-smi来测试Nvidia驱动程序是否正确安装。如果驱动程序安装正确,应该会出现类似下面的输出。
Nvidia-docker的安装步骤可以在《NVIDIA Docker的官方存储库》(链接见文末)中找到。
LGSVL维护一个Docker映像,以便与此存储库一起使用。《LGSVL的Apollo Docker映像》(链接见文末)提供了Docker映像。
使用以下命令提取图像:
docker pull lgsvl/apollo-5.0
<左右滑动以查看完整代码>
这个存储库包含两个用于HD Maps和Igsvl msgs的子模块。要确保这些子模块也被克隆,可以使用以下命令:
git clone --recurse-submodules https://github.com/lgsvl/apollo-5.0.git
<左右滑动以查看完整代码>
现在构建Apollo所需的一切都准备好了。Apollo必须从容器中构建。要启动容器,请导航到克隆存储库所在的目录,并输入:
./docker/scripts/dev_start.sh
<左右滑动以查看完整代码>
这将启动容器并装入几个卷。在第一次运行时,可能需要几分钟才能拉出最新的卷。
进入容器:
./docker/scripts/dev_into.sh
<左右滑动以查看完整代码>
构建Apollo:
./apollo.sh build_gpu
<左右滑动以查看完整代码>
在这里,我们使用Apollo和模拟器描述了一个简单的例子:驾驶车辆从点A到点 B。
启动Apollo。
注意:如果您没有从/apollo目录运行脚本,可能会收到有关dreamview没有生成的错误信息。
bootstrap.sh
<左右滑动以查看完整代码>
运行Bridge(在Docker容器内)。
bridge.sh
<左右滑动以查看完整代码>
在Docker外部运行LGSVL模拟器。参见《模拟器存储库》(链接见文末)中的说明。
注意:这部分涉及到WebUI如何操作,WebUI页面里有好几个Tab,具体每个Tab的说明在下面这些文档中:
https://www.lgsvlsimulator.com/docs/maps-tab/
https://www.lgsvlsimulator.com/docs/vehicles-tab/
https://www.lgsvlsimulator.com/docs/clusters-tab/
https://www.lgsvlsimulator.com/docs/simulations-tab/
其中,Vehicles Tab里面需要对主车上的传感器进行设置,具体文档参照:https://www.lgsvlsimulator.com/docs/sensor-json-options/
○ 创建一个仿真BorregasAve地图和Lincoln2017MKZ (Apollo 5.0)车辆。
○ 输入localhost:9090作为桥接字符串。
○(可选)启用模拟交通和行人。
○(可选)设置一天的时间和天气设置。
○ 提交模拟。
○ 选择创建的模拟,点击“Play”。
通过localhost: 8888在浏览器中打开Apollo dreamview。
○ 选择右上角的Lincoln2817MKz车辆和BorregasAve地图。
○ 打开模块控制器选项卡(在左侧栏)。
○ 启用定位、转换、感知、交通灯、规划、预测、路由和控制功能。
○ 浏览路线编辑选项卡。
○ 通过单击车道线并点击击提交路线。
○ 看着车辆导航至目的地。
○ 要停止docker容器,请在apollo/docker/scripts的新终端(不在docker容器中)中运行dev_start.sh stop脚本。
如果您正在使用ufw,最简单的方法是完全禁用防火墙,以允许连接sudo ufw disable。
○ 如果不可能,请添加以下规则:
◆ 即使在同一机器上运行模拟器和Apollo,这些也是必要的。
◆ sudo ufw allow 8888。
◆ sudo ufw allow 9090。
默认车辆的校准文件包含在《LGSVL Branch of Apollo 5.0》(链接见文末)中。
默认地图的高精地图文件包含在《LGSVL Branch of Apollo 5.0》(链接见文末)中。
Copyright (c) 2019 LG Electronics, Inc.
本软件包含许可中描述的代码。
*《LGSVL Simulator: An Autonomous Vehicle Simulator/模拟器存储库》
https://github.com/lgsvl/simulator
*《Docker官方文件》
https://docs.docker.com/engine/install/ubuntu/
*《安装后的步骤》
https://docs.docker.com/engine/install/linux-postinstall/
*《NVIDIA Docker的官方存储库》
https://github.com/NVIDIA/nvidia-docker
*《LGSVL的Apollo Docker映像》
https://hub.docker.com/r/lgsvl/apollo-5.0/
*《LGSVL Branch of Apollo 5.0》
https://github.com/lgsvl/apollo-5.0/
以上是"用LGSVL仿真器运行Apollo 5.0"的全部内容,更多话题讨论、技术交流可以扫描下方二维码添加『Apollo小哥哥』为好友,进开发者交流群。