具体步骤如下:
1. 从gitee来git源码,具体指令git clone https://gitee.com/ApolloAuto/apollo -b r6.0.0。(PS:如果git clone出现了类似The remote end hung up unexpectedly的问题,只需要把https的方法改成SSH的方法即可。参考博客https://blog.csdn.net/qq_35396093/article/details/89930459?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160799939719724838556986%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160799939719724838556986&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-4-89930459.first_rank_v2_pc_rank_v29&utm_term=%E5%BD%BB%E5%BA%95%E8%A7%A3%E5%86%B3git%20clone&spm=1018.2118.3001.4449)
2. 接下来应该是安装N卡驱动了,这一步也是最容易出错的一步,但是现在手头的工控机并没有GPU,所以这一步先跳过,以后需要再单独写一篇关于显卡驱动的。这里先记录一下我的一些问题:是否需要CUDA和driver分开安装?两者安装有没有先后顺序?如果安装好之后使用指令nvidia-smi有显示但是nvidia-setting的窗口是空白如何解决?
3. 接下来就是安装其他的依赖项了,包括bazel、docker-ce等等,但是我这台工控机已经都安装好了,这里也不再叙述了,具体的依赖项在Apollo的GitHub页面上找software requirements应该可以看到,安装方法就按照各自官网的指示来。
4. 拉取镜像。从现在开始都要在apollo这个文件夹下进行了,先cd apollo,使用指令sudo bash docker/scripts/dev_start.sh开始拉取。Apollo的镜像是在docker-hub上的,但是如果网络不好或者被墙了,拉取慢不说了,还有可能突然中断,辛辛苦苦白pull半天。这里使用daocloud的加速,解决方案:如果你是(Ubuntu 16.04+、Debian 8+、CentOS 7), 将以下代码复制到配置文件 /etc/docker/daemon.json 中:
{
"registry-mirrors": [ "https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"]
}
2020.12.29添加:需要添加完代码后,再sudo systemctl restart docker,如果不这样是不会生效的。
可以使用sudo gedit/etc/docker/daemon.json的方法新建并打开文件,即使没有这个json也可以创建。不要笑我,我只是不习惯vim(其实是不太会)。
5. 进入容器。使用指令sudo bash docker/scripts/dev_into.sh进入容器。有一件事好像会和某个东西安装后重启有关,如果重启了,这一步的sudo就可以不用写,反正问题不是很大。
6. 开始build。我这台工控机没有GPU,所以可以使用下面的指令来build,bash apollo.sh build_cpu。剩下的可以参考这篇专栏中的第7点,https://zhuanlan.zhihu.com/p/262747924 。build的过程会很长,尤其是在没有GPU加速的时候,最后会出现[OK] Done building apollo. Enjoy! 如果出现了error,先考虑是不是有依赖项没有安装。
7. 测试一下。使用Apollo提供的demo来测试一下,具体的方法参考步骤6中的那篇知乎专栏的8和9。这里提一下,如果使用python rosbag_helper.py demo_3.5.record来下载太慢,可以进入这个网址来下载http://apolloauto.club/mirror/ 。随后把他放到这个文件夹下docs/demo_guide/,然后在apollo的环境下,不要cd docs/demo_guide/,因为我发现cd之后会出现问题,所以播放demo直接使用cyber_recorder play -f docs/demo_guide/demo_3.5.record –loop。
8. 如果使用过程中出现cyber_xx command not found,需要先在apollo文件夹下sourse cyber/setup.bash,这一步我是在容器内进行的,没尝试在容器外sourse。
2020年12月15日
12:06
于宁波天尚元振狮路365号工厂二楼
2020年12月29日
11:03
重新编辑