1. 程式人生 > >Apollo 2.5 安裝踩坑指南(轉載)

Apollo 2.5 安裝踩坑指南(轉載)

apollo 是百度的無人駕駛平臺。

環境

  • Ubuntu 14.04.4
  • Dokcer-CE 17.09.1

先安裝 Docker

官網教程安裝 Docker 在網不好的情況下會有大概率安裝不成功。 國內建議使用 DaoCloud 安裝 Dokcer

sudo apt-get update
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
curl -fsSL https://download.daocloud.io/docker/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=$(dpkg --print-architecture)] https://download.daocloud.io/docker/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get install -y -q docker-ce=17.09.1*
sudo service docker start
sudo service docker status

至此,一切順利的話,Docker 安裝好了。 使用 Docker 需要 root 許可權,我們建立一個 docker 組,將當前使用者加入到組裡,使用 Docker 就可以不需要輸入 sodu 了

// 建立 docker 組
$ sudo groupadd docker
// 加入到 docker 組
$ sudo usermod -aG docker $USER

操作完了重啟一下電腦生效。

下載 apollo 原始碼

這裡我們指定下載 2.5.0 版本的

git clone --branch v2.5.0 https://github.com/ApolloAuto/apollo.git

下載 docker 映象 & 進入容器

之後就按照 README 步驟構建 dev 環境

// 這裡記得加上 -C,網好就可以忽略
bash docker/script/dev_start.sh -C
bash docker/script/dev_into.sh

dev_start 是 pull 各種需要的 docker 映象。並且把容器跑起來 映象檔案有點大,差不多 3 到 4 G 的樣子,慢慢等。。。 dev_into 就是進入容器

Build apollo 原始碼

build apollo 原始碼是要在容器裡做的

bash apollo.sh build

build 過程沒有報錯的話就可以跑 dreamview 了

bash scripts/bootstrap.sh

dreamview 跑起來後,開啟你最愛的瀏覽器輸入 localhost:8888 回車。 如果看到介面了,那恭喜你,上輩子可能拯救了銀河系~ 看到介面的同學,請跳過下面的踩坑之路直接看最後的 play bag

踩坑之路

一次性安裝成功是不可能一次性安裝成功的,這輩子是不可能一次性安裝成功的。 很難受。 我的 dreamview 告訴我他已經跑起來了,但是瀏覽器打不開 localhost:8888,翻了會 lssues,發現有和我一樣的問題 -> #3615。 沒跑起來的原因是與 apollo 用來處理點雲圖的 lib 有關. 我們需要把這個 lib 重新編譯一下然後替換掉容器內的。 lib 的倉庫地址:PointCloudLibrary 先下載下來再說

git clone --branch pcl-1.7.2 https://github.com/PointCloudLibrary/pcl.git

修改 CMakeLists.txt

// 從第九行開始,也就是這句的下一行
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "possible configurations" FORCE)
 
// 插入如下程式碼
if (CMAKE_VERSION VERSION_LESS "3.1")
# if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
    message("Build with c++11 support")
# endif ()
else ()
  set (CMAKE_CXX_STANDARD 11)
endif ()

編譯

mkdir build
cd build
cmake ..
make -j4

// 將編譯後的 lib 覆蓋到 /usr/local/lib 下
cp -a lib/* /usr/local/lib/

現在,重新在執行你的 dreamview,應該就能看到介面了。 如果還看不到,,,,哈哈哈哈哈哈哈

play bag

dreamview 已經看到了,跑個測試資料玩玩。

rosbag play docs/demo_guide/demo.bag --loop
// 如果找不到 rosbag 命令的話,執行一下這句再試試
source /apollo/bazel-apollo/external/ros/setup.bash

好了,看看你的 dreamview 吧

最後

這是我在安裝 apollo 的過程中遇到的一些問題,希望能幫助到需要的人。 另外有些命令手打上去的,不正確的話請檢查一下。