【Apollo】调试与仿真实践

Apollo EDU-Pre发行版是为开发者能够对Apollo源码学习和实验而准备的一个轻量级发行版,其中包含Apollo Env Container(Apollo环境容器)的部署和使用脚本、Apollo Core(Apollo核心组件包)的安装脚本以及负责核心功能的edu-launch。
该教程基于该学习版工程进行搭建

(一) Ubuntu安装Apollo EDU-Pre 发行版操作指南

前提条件:安装 Ubuntu Linux

Apollo推荐使用版本为18.04,作者使用环境为ubuntu20.04

步骤一:下载Apollo EDU发行版

1.1 下载EDU-Pre安装文件
文件地址:点击下载
1.2 启动ubuntu,在命令行终端中执行脚本安装,执行指令如下所示

bash apollo-edu-install.sh

这里我新建了一个apollo文件夹方便管理相关文件,将下载好的sh文件拷贝到apollo文件夹,之后在该文件夹内执行以上命令。执行完成后,脚本会自动下载并解压Apollo EDU-Pre发行版。
【Apollo】调试与仿真实践_第1张图片

步骤二:安装及配置docker

假如您的电脑已经安装并配置好了docker,可以略过此步,如果没有正确安装及配置,请运行以下两个步骤:
2.1 进入脚本文件夹

cd apollo-edu/scripts

2.2 在该目录中执行以下命令配置docker

bash docker_install.sh

ps:由于安装docker需要sudo权限,会出现以下提示,需要输入密码:
在这里插入图片描述


安装docker过程中可能会出现重启电脑的提示,根据提示操作即可,如果一切顺利,最终会见到类似下图的提示:
在这里插入图片描述
如果需要使用nvidia GPU运算,还需要安装nvidia-docker
在这里插入图片描述
github链接https://github.com/NVIDIA/nvidia-docker
点击installation guide
【Apollo】调试与仿真实践_第2张图片
安装nvidia-docker,前提是已安装nvidia驱动以及docker

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2

步骤三:启动环境容器并进入

3.1 在scripts目录中执行以下命令启动docker环境

bash edu_launcher.sh start

如果一切正常,将会见到类似下图的提示:Enjoy!
【Apollo】调试与仿真实践_第3张图片
如果安装了nvidia-docker,会出现USE_GPU_HOST
【Apollo】调试与仿真实践_第4张图片


3.2 启动环境完毕后,在scripts目录下执行以下命令进入docker环境

bash edu_launcher.sh enter

脚本执行成功后,将显示以下信息,您将进入 Apollo 的运行容器:

user_name@in-dev-docker:/apollo_workspace# 

在这里插入图片描述

步骤四:安装Apollo core

Apollo core是Apollo v8.0-pre的核心组件集,现在包括:

  • cyber模块
  • common模块
  • common_msg模块
  • Apollo build-tool:构建Apollo v8.0-pre的构建工具
    在apollo_workspace目录下,通执行以下安装Apollo core的命令:
bash scripts/apollo_neo.sh install_core

【Apollo】调试与仿真实践_第5张图片

(二) 使用Dreamview查看数据包

前提条件

本文档假设您按照安装 Apollo EDU-Pre 发行版, 并且 Apollo docker环境已经正常运行,若没有启动 Apollo docker环境,请执行以下命令:

bash scripts/edu_launcher.sh start

步骤一:进入 Apollo Docker 环境

  1. 输入以下命令进入 Apollo
bash scripts/edu_launcher.sh enter
  1. 执行setup脚本,Apollo的运行依赖于某些环境变量,需要手动执行一遍setup脚本
source /opt/apollo/neo/setup.sh

该步骤不会有任何输出,只需要加载一下

步骤二:安装 DreamView(若已经安装,请忽略)

在同一个终端,输入以下命令,安装 Apollo 的 DreamView 程序。

sudo apt install apollo-neo-dreamview-dev && sudo apt install apollo-neo-monitor-dev

步骤三:启动 DreamView

在同一个终端,输入以下命令,启动 Apollo 的 DreamView 程序。

bash scripts/apollo_neo.sh bootstrap

【Apollo】调试与仿真实践_第6张图片
运行后会有提示DreamView 运行在http://localhost:8888

步骤四:下载 Apollo 的演示包

Record 是 Apollo 记录数据的一种数据格式。
以 .record 为后缀的文件就是我们说的 record 数据包。
在命令行中,输入下面的命令,下载 record 数据包:

wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_3.5.record

步骤五:播放 Apollo 的演示包

cyber_recorder play -f demo_3.5.record --loop

【Apollo】调试与仿真实践_第7张图片
选项 --loop 用于设置循环回放模式。
跑起来之后会输出以下提示:
【Apollo】调试与仿真实践_第8张图片

步骤六:使用 DreamView 查看数据包

在浏览器中输入 http://localhost:8888,访问 Apollo DreamView:
地图选择Sunnyvale,运行情况如下图所示:

(三) planning模块的安装和仿真调试

步骤一:进入 Apollo Docker 环境

  1. 输入以下命令进入 Apollo Docker环境
bash scripts/edu_launcher.sh enter

步骤二:对planning源码包进行编译

bash scripts/edu_launcher.sh build planning

该命令指定了build tool需要引入planning的源码并进行编译,编译后输出enjoy!
【Apollo】调试与仿真实践_第9张图片

除了planning模块外,目前还引入dreamview,routing,task_manager和monitor等模块,具体可以输入以下命令进行查看:

bash scripts/edu_launcher.sh build -h

*调用脚本编译命令时,当前所在目录即为工作空间目录,请务必在工作空间下使用脚本编译命令。
*注:

  1. 调用脚本编译命令时,当前所在目录即为工作空间目录,请务必在工作空间下使用脚本编译命令。
  2. 如果您使用的是windows wsl2,有可能会在编译过程中遇到缺少/run/shm文件夹导致的编译失败,手动创建该文件,然后重新编译即可。
    Apollo的编译工具会自动分析所有所需要的依赖,自动下载并生成必要的依赖信息文件,首次编译需要从网上拉取部分依赖包,因此受网速与电脑配置影响大概需要40分钟左右,请耐心等待编译完成,编译完成样式如图所示:

编译完成后需要手动刷新环境变量:

source ~/.bashrc

步骤三:对planning进行调试

运行dreamview:

bash scripts/apollo_neo.sh bootstrap

*如果您已经启动过了dreamview,可以restart dreamview进程:

bash scripts/apollo_neo.sh bootstrap restart

此时dreamview和monitor会被自动启动,可以在浏览器输入localhost:8888打开dreamview:
【Apollo】调试与仿真实践_第10张图片

步骤四: 进入sim control仿真模式进行调试

(1)在上方菜单栏选择 MKz Standard Debug > 车辆型号选择 MkzExample > 地图选择Sunnyvale Big Loop > 点击 Tasks > 选择 Sim Control,即可进入仿真模拟控制,如下图所示:

(2)点击左侧 Module Control 栏,启动需要调试的模块进程,我们选择Planing、Routing 模块:

(3)设置车辆仿真行驶路径,点击左侧 Routing Editing,拖动、点击鼠标可以在地图中设置车辆行驶路径,如下图所示

(4)当点位设置完成后,点击 Send Routing Request。等待出现如下图所示,红线是routing模块在地图中搜索出的路径,浅蓝色的轨迹是 planning 模块实时规划的局部路径。
【Apollo】调试与仿真实践_第11张图片

(5)此时如果想对planning模块进行调试,直接修改工作空间中的planning源码即可,源码位于工作空间中的:modules/planning
修改完毕后重新运行编译脚本:

bash scripts/edu_launcher.sh build planning

(6)重新运行dreamview中的planning模块即可。

你可能感兴趣的:(Apollo,自动驾驶,人工智能,ubuntu)