新建一个文件夹code,将Apollo源码放在code文件夹当中。
apollo官方Github网址:https://github.com/ApolloAuto/apollo
1、拉取Apollo镜像,指令:sudo bash docker/scripts/dev_start.sh
或者sudo bash docker/scripts/dev_start.sh -C
加-C选项表示从国内服务器下载镜像,但有时会出现下载镜像失败的情形,如遇到该问题,可将-C选项去掉,直接从美国服务器下载镜像。
拉取Aplolo镜像成功显示如下:
2、 进入Apollo的docker环境容器(在已拉取Apollo镜像成功之后才可打开Apollo的docker环境容器),需要加sudo,会进入root环境下,如果不加sudo,也可以进入apollo的docker环境和运行后面的demo,但是在运行demo的时候会报权限相关的错误。
sudo bash docker/scripts/dev_into.sh
加 sudo的:
不加 sudo 的:
3、进入Apollo的docker容器编译Apollo源代码。在apollo根目录下运行apollo.sh脚本。
选择带有GPU的最优化编译。
sudo bash docker/scripts/dev_into.sh
# 如已进入Apollo的docker容器环境,则不需要执行此句。
./apollo.sh clean
# 如果是第二次编译则需要执行一次clean。
./apollo.sh build_opt_gpu
# 带有GPU的编译用build_opt_gpu,无独显的用build_opt编译。
编译成功的标志:
4、打开Dreamview页面窗口:使用start或者restart打开。
关掉Dreamview页面窗口,使用stop。
在浏览器输入 http://localhost:8888 打开Dreamview,可以看到如下界面:
5、运行demo:
1) 首先下载record包(相当于ros中的bag包),如demo_3.5.record,将其放在自己指定的位置下,如/home/hanno/code/apollo/docs/demo_guide/demo_3.5.record
2) 运行指令:
sudo bash docker/scripts/dev_into.sh # 进入apollo的docker环境
source cyber/setup.bash # 配置Cyber的环境变量,相当于ros的source devel/setup.bash
cyber_recorder play -f docs/demo_guide/demo_3.5.record -l # 运行demo的record包
爱心提示:在进入apollo容器时要加sudo,不加sudo的话demo也可以运行,但是有报一些权限相关的错误。如[cyber_recorder]get shm failed. Error: permission denied.
[cyber_recorder]create shm failed, can’t write now.
进入apollo的docker环境时不加sudo之后运行demo出现的报错,如下:
解决方法是在进入apollo的docker容器时加sudo。
sudo bash docker/scripts/dev_into.sh
source cyber/setup.bash
cyber_recorder play -f docs/demo_guide/demo_3.5.record -l
运行成功:
在Dreamview页面可以看到如下运行情况,则可认为demo运行成功:
在浏览器输入 http://localhost:8888 打开Dreamview,
6、 最后,停止container。运行以下命令,可以停止所有docker。
exit
sudo docker stop $(docker ps -aq)