算是记录以下自己的安装过程吧,apollo的文档还是写的蛮清楚的,这边只是做个梳理,还是需要仔细阅读apollo官方的文档:
https://gitee.com/ApolloAuto/apollo
安装前提条件
参照文档:
cpphttps://gitee.com/ApolloAuto/apollo/blob/master/docs/specs/prerequisite_software_installation_guide.md
需要在ubuntu18.04上安装docker和nvidia GPU驱动,具体参照文档,讲得还是蛮清楚的,电脑最好留下60g以上的空余空间,我的只有40g,不太够
源码下载
github下载较慢,我是从gitee下载的,地址:
https://gitee.com/ApolloAuto/apollo?_from=gitee_search
我在下载时还是遇到了问题,使用http下载老是会断调,最终是用ssh下载的
,可以下载在任意的位置
安装
之后主要是参考以下页面进行安装:
https://gitee.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_software_installation_guide.md
在下载下来的apollo源码目录下运行以下命令
// 进入下载下来的apollo源码目录下运行: 将当前目录写到环境变量
echo "export APOLLO_ROOT_DIR=$(pwd)" >> ~/.bashrc && source ~/.bashrc
// 拉取apollo docker镜像,这一部蛮费时间的,可能要将近一个小时
bash docker/scripts/dev_start.sh
// 运行apollo镜像,并进入容器,可以在多个terminal运行同样命令,进入同一容器
bash docker/scripts/dev_into.sh
进入容器之后,默认进入/apollo目录,我理解这是docker容器默认的根目录,和主机下载下来的源码目录是同一个东西,可以理解乘一个映射
编译
参照以下文档:
https://gitee.com/ApolloAuto/apollo/blob/master/docs/specs/apollo_build_and_test_explained.md
命令解释:
// 调用bazel编译工具编译所有模块代码,这个需要一点时间,我是用了将近一个小时
./apollo.sh build
编译单独模块:
bash apollo.sh build cyber
bash apollo.sh build planning
另外编译还有一些其它选项,cpu-gpu, debug-opt 具体含义参照文档
运行
// 使用以下命令打开和停止Dreamview,Dreamview是apollo的数据回放工具
./scripts/bootstrap.sh [start | stop | restart]
打开端口: http://localhost:8888
通过以下命令下载一个数据包,并进行数据回放,本地的代码并没有运行,只是做了回放可视化
# You need to download the demo record using the following commands
cd docs/demo_guide/
python3 record_helper.py demo_3.5.record
# You can now replay this demo "record" in a loop with the '-l' flag
cyber_recorder play -f docs/demo_guide/demo_3.5.record -l
如果要运行本地的一个模块,比如说planning模块,首先用以下的命令,以下的命令在回放的时候将规划的输出屏蔽掉了
cyber_recorder play -f docs/demo_guide/demo_3.5.record -k /apollo/planning
在回放的时候,遇到过[cyber_recorder]get shm failed. Error: permission denied. [cyber_recorder]create shm failed, can’t write now
的权限问题,最后是靠关闭docker,重启电脑解决的,很玄学。
之后在dreamiew中通过按钮打开planning模块:
打开Sim Control开关之后,本车在合适的位置,在module control中打开routing planning两个节点,在routing editing页面编辑合适的导航点,点击send routing request之后,一切正常的化本车会开始仿真,在/apollo/data/log 文件夹下 会生成 – planning.log.INFO.20220514-214507.125020 这样的log文件,在module controller页面关闭planning模块之后,log文件停止生成