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 的过程中遇到的一些问题,希望能帮助到需要的人。
另外有些命令手打上去的,不正确的话请检查一下。

片段 - 代码分享

你可能感兴趣的:(Apollo 2.5 安装踩坑指南)