apollo 是百度的無人駕駛平臺。
環(huán)境
- Ubuntu 14.04.4
- Dokcer-CE 17.09.1
先安裝 Docker
官網(wǎng)教程安裝 Docker 在網(wǎng)不好的情況下會有大概率安裝不成功。
國內(nèi)建議使用 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 權限署照,我們創(chuàng)建一個 docker 組臭脓,將當前用戶加入到組里酗钞,使用 Docker 就可以不需要輸入 sodu 了
// 創(chuàng)建 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 環(huán)境
// 這里記得加上 -C来累,網(wǎng)好就可以忽略
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 回車求冷。
如果看到界面了,那恭喜你窍霞,上輩子可能拯救了銀河系~
看到界面的同學匠题,請?zhí)^下面的踩坑之路直接看最后的 play bag
踩坑之路
一次性安裝成功是不可能一次性安裝成功的,這輩子是不可能一次性安裝成功的但金。
很難受韭山。
我的 dreamview 告訴我他已經(jīng)跑起來了,但是瀏覽器打不開 localhost:8888冷溃,翻了會 lssues钱磅,發(fā)現(xiàn)有和我一樣的問題 -> #3615。
沒跑起來的原因是與 apollo 用來處理點云圖的 lib 有關.
我們需要把這個 lib 重新編譯一下然后替換掉容器內(nèi)的似枕。
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/
現(xiàn)在,重新在運行你的 dreamview凿歼,應該就能看到界面了褪迟。
如果還看不到,答憔,味赃,,哈哈哈哈哈哈哈
play bag
dreamview 已經(jīng)看到了虐拓,跑個測試數(shù)據(jù)玩玩心俗。
rosbag play docs/demo_guide/demo.bag --loop
// 如果找不到 rosbag 命令的話,執(zhí)行一下這句再試試
source /apollo/bazel-apollo/external/ros/setup.bash
好了蓉驹,看看你的 dreamview 吧
最后
這是我在安裝 apollo 的過程中遇到的一些問題另凌,希望能幫助到需要的人。
另外有些命令手打上去的戒幔,不正確的話請檢查一下。