Apollo EDU-Pre发行版是为开发者能够对Apollo源码学习和实验而准备的一个轻量级发行版,其中包含Apollo Env Container(Apollo环境容器)的部署和使用脚本、Apollo Core(Apollo核心组件包)的安装脚本以及负责核心功能的edu-launch。
该教程基于该学习版工程进行搭建
Apollo推荐使用版本为18.04,作者使用环境为ubuntu20.04
1.1 下载EDU-Pre安装文件
文件地址:点击下载
1.2 启动ubuntu,在命令行终端中执行脚本安装,执行指令如下所示
bash apollo-edu-install.sh
这里我新建了一个apollo文件夹方便管理相关文件,将下载好的sh文件拷贝到apollo文件夹,之后在该文件夹内执行以上命令。执行完成后,脚本会自动下载并解压Apollo EDU-Pre发行版。
假如您的电脑已经安装并配置好了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
安装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!
如果安装了nvidia-docker,会出现USE_GPU_HOST
3.2 启动环境完毕后,在scripts目录下执行以下命令进入docker环境
bash edu_launcher.sh enter
脚本执行成功后,将显示以下信息,您将进入 Apollo 的运行容器:
user_name@in-dev-docker:/apollo_workspace#
Apollo core是Apollo v8.0-pre的核心组件集,现在包括:
bash scripts/apollo_neo.sh install_core
本文档假设您按照安装 Apollo EDU-Pre 发行版, 并且 Apollo docker环境已经正常运行,若没有启动 Apollo docker环境,请执行以下命令:
bash scripts/edu_launcher.sh start
bash scripts/edu_launcher.sh enter
source /opt/apollo/neo/setup.sh
该步骤不会有任何输出,只需要加载一下
在同一个终端,输入以下命令,安装 Apollo 的 DreamView 程序。
sudo apt install apollo-neo-dreamview-dev && sudo apt install apollo-neo-monitor-dev
在同一个终端,输入以下命令,启动 Apollo 的 DreamView 程序。
bash scripts/apollo_neo.sh bootstrap
运行后会有提示DreamView 运行在http://localhost:8888
Record 是 Apollo 记录数据的一种数据格式。
以 .record 为后缀的文件就是我们说的 record 数据包。
在命令行中,输入下面的命令,下载 record 数据包:
wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_3.5.record
cyber_recorder play -f demo_3.5.record --loop
选项 --loop 用于设置循环回放模式。
跑起来之后会输出以下提示:
在浏览器中输入 http://localhost:8888,访问 Apollo DreamView:
地图选择Sunnyvale,运行情况如下图所示:
bash scripts/edu_launcher.sh enter
bash scripts/edu_launcher.sh build planning
该命令指定了build tool需要引入planning的源码并进行编译,编译后输出enjoy!
除了planning模块外,目前还引入dreamview,routing,task_manager和monitor等模块,具体可以输入以下命令进行查看:
bash scripts/edu_launcher.sh build -h
*调用脚本编译命令时,当前所在目录即为工作空间目录,请务必在工作空间下使用脚本编译命令。
*注:
编译完成后需要手动刷新环境变量:
source ~/.bashrc
运行dreamview:
bash scripts/apollo_neo.sh bootstrap
*如果您已经启动过了dreamview,可以restart dreamview进程:
bash scripts/apollo_neo.sh bootstrap restart
此时dreamview和monitor会被自动启动,可以在浏览器输入localhost:8888打开dreamview:
(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 模块实时规划的局部路径。
(5)此时如果想对planning模块进行调试,直接修改工作空间中的planning源码即可,源码位于工作空间中的:modules/planning
修改完毕后重新运行编译脚本:
bash scripts/edu_launcher.sh build planning
(6)重新运行dreamview中的planning模块即可。