apollo自动驾驶平台配置笔记

apollo自动驾驶平台配置

    • 前言
    • 配置要求
    • 本机环境
    • apollo安装配置
    • 运行demo
    • 其他
      • cyber_visualizer 工具
      • 程序启动说明

前言

最近在开始研究百度apollo自动驾驶开源框架,研究的第一步当然是要先把代码编译成功并把demo跑起来。我在网上找了一些配置教程,个人感觉这个参考教程:https://blog.csdn.net/SingingFisher/article/details/81536096 算是比较友好的,编译配置步骤简单,清晰明了。我下面针对这个教程里的步骤,根据我自己的配置经验,再做一些说明记录。

配置要求

根据apollo官网 https://github.com/ApolloAuto/apollo 上的说明,配置apollo的基本要求如下:

  • apollo配置要求,最小4核处理器和8GB内存的设备;apollo3.5 及以上的版本需要16GB内存。
  • 将主机系统升级到16.04及以上,更推荐18.04。(这里是最新版本的apollo代码才需要16.04及以上,对于老的apollo版本,14.04也没有问题,参考:https://github.com/ApolloAuto/apollo/tree/ubuntu_14.04)
  • 升级主机NVIDIA驱动 >= 410.48. (若想装Apollo-Kernel 和 NVIDIA驱动, Apollo-Kernel不是必选项)
  • 安装最新版docker(>= 19.03),安装教程:https://docs.docker.com/engine/install/ubuntu/
  • 安装最新的nvidia-container-toolkit,它允许用户构建和运行GPU加速Docker容器。

本机环境

  • 系统:Ubuntu 16.04.6 LTS 64 位
  • 系统内存:16GB
  • 关于显卡,我这里通过各种查看命令显示,我的主机应该是没有装NVIDIA驱动。(所以,配置apollo貌似也不是一定需要NVIDIA驱动?这样的话,就没法用GPU加速了)

apollo安装配置

  • 下载apollo源码:https://github.com/ApolloAuto/apollo,下载完成后,将其放在home目录下(这里是apollo最新的版本,如果想要选择特定版本,可在Branch中选择apollo的特定版本)。
    apollo自动驾驶平台配置笔记_第1张图片

  • 安装docker环境:https://docs.docker.com/engine/install/ubuntu/ ,在按照官网的安装命令安装完成后,在终端输入命令: sudo docker ps 。若打印出如下信息:“CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES” ,那说明docker安装应该没有问题。

  • 编译前,一定记得给电脑留出足够大的内存空间(根据经验,最好空出>=40GB的空间出来),这个编译过程会pull一大堆文件到电脑上,非常占用磁盘空间。

  • 编译apollo,在apollo代码的编译阶段,如果电脑内存太小,编译的时候非常容易因内存占满而卡死,为了避免这种情况,强烈建议ctrl+alt+f1 ,进入没有界面的模式来编译(我的电脑16GB的内存,编译的时候还经常出现内存占满卡死的情况)。

#输入密码进入root用户:
sudo -i  

 # cd 到下载的apollo目录下面,然后
bash docker/setup_host/setup_host.sh
 
 # 运行如下命令启动docker的release环境:(这一步,系统会下载 20GB 左右的文件到 /var/lib/docker/ 目录(下载完成以后再执行该命令不会重新下的))
bash docker/scripts/dev_start.sh
 
# 运行如下命令 进入docker的release环境(进入该环境后会发现:命令行中 “root@<主机名>” 会变成一个和docker有关的名称,此时说明进入了docker环境):
bash docker/scripts/dev_into.sh

# 编译,默认是有GPU的模式编译(编译过程会在 ~/.cache 目录生成几十GB的文件);如电脑没有GPU,可以: bash apollo.sh build_cpu 来编译。
bash apollo.sh build  

# 启动DreamView,这个时候去浏览器 localhost:8888 可以看到界面了。
bash scripts/bootstrap.sh  

启动apollo环境,这样才能使用相关程序以及 cyber_monitor, cyber_channel 等工具。
source /apollo/scripts/apollo_base.sh

运行demo

在上面的步骤全部完成后,输入cyber_channel list 看命令是否正常,若没有报错,说明apollo编译成功。接下来开始把它的demo跑起来,首先是下载demo数据,在apollo工程目录中的 docs/demo_guide/ 路径下,有个rosbag_helper.py文件,可通过: python rosbag_helper.py 来下载demo数据包;或者,打开rosbag_helper.py文件,其中有关于demo包的网址,复制其中的网址,在浏览器中下载:

https://github.com/ApolloAuto/apollo/releases/download/v1.5.0/demo_1.5.bag
https://github.com/ApolloAuto/apollo/releases/download/v2.0.0/demo_2.0.bag
https://github.com/ApolloAuto/apollo/releases/download/v2.0.0/apollo_2.0_camera_sample.bag
https://github.com/ApolloAuto/apollo/releases/download/v2.5.0/demo_2.5.bag
https://github.com/ApolloAuto/apollo/releases/download/v1.0.0/demo_1.0.bag
https://github.com/ApolloAuto/apollo/releases/download/v3.5.0/demo_3.5.record

对于 apollo3.0及以前的版本,利用 rosbag 播放数据包,发布数据,如(其中 − l -l l 命令含义是循环重复播放该bag):
rosbag play -l demo_2.0.bag

对于 apollo3.5及以后版本,它们彻底脱离了ROS,改用自研的 Cyber 作为底层通讯与调度平台。为了帮助快速从ROS过渡到Cyber,在apollo3.5版本中,开发了一个名为 rosbag_to_record 的工具,用来讲demo中的rosbag转化为.record形式的文件。注意,官方称这个工具并不能对任意的bag转成record文件。record文件的播放形式为:
cyber_recorder play -f docs/demo_guide/demo_3.5.record --loop

其他

cyber_visualizer 工具

有些apollo版本默认情况下没有编译 cyber_visualizer 工具,如果想要编译出该工具,需要在编译文件 apollo.sh 中,找到如下所示的代码,

BUILD_TARGETS=bazel query //modules/... union //cyber/... except //modules/tools/visualizer/... except //modules/v2x/... except //modules/map/tools/map_datachecker/... $DISABLE_CYBER_MODULES

将 “except //modules/tools/visualizer/… ” 删除掉,然后重新编译即可。在编译cyber_visualizer时,若报错找不到 “\usr/lib/qt5/usi” 等库,则需要按照如下命令安装qt5的依赖库。

sudo apt update
sudo apt -y install qt5-default

然后重新编译,在编译完成后,输入cyber_visualizer 应该就能打开可视化界面工具了。(如果运行后报缺少*.so.*的库文件,试试先 source /apollo/scripts/apollo_base.sh 再运行cyber_visualizer看看。)

程序启动说明

在以上步骤全部正常完成后,若重启电脑后想要在次进入apollo环境,在打开第一个终端后,需要执行:

sudo -i 
bash docker/scripts/dev_start.sh
bash docker/scripts/dev_into.sh
bash scripts/bootstrap.sh  
source /apollo/scripts/apollo_base.sh

上述步骤执行完成后,若想再开一个apollo环境的终端,只需要在新的终端执行如下两条命令即可:

进入docker环境:
bash docker/scripts/dev_into.sh
启动apollo环境:
source /apollo/scripts/apollo_base.sh

你可能感兴趣的:(SLAM,自动驾驶)