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

片段 - 代码分享

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,643评论 15 147
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,574评论 0 120
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 1,822评论 0 7
  • 今天太阳不错,领导没来,美!上班没事儿的时候就玩儿几把王者荣耀,段位也不高,纯属瞎玩儿。一般跟同事一起开黑,打个三...
    赵着急_阅读 186评论 0 0
  • 在使用spring开发中,安装SpringSource Tool Suite会使我们开发变得跟家便捷。 第一步、检...
    XM_Dong阅读 1,028评论 0 1