具體步驟如下:
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
重新編輯