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