Skip to content

Apollo安装

apollo的安装手册

源码安装(目前源码安装不支持场景同步)

更新时间:2022-11-30

本手册旨在帮助用户重新安装 Apollo 8.0 系统环境及 Apollo 8.0 源码 运行软件。

步骤一:安装 Linux 系统

Apollo 软件系统依赖于 Linux 操作系统运行,而 Linux 操作系统种类繁多,且又分为服务器版本和桌面版本,这里我们选择当下比较流行的 Ubuntu 桌面操作系统的 64 位版本。安装 Ubuntu 18.04+ 的步骤,参见 官方安装指南

(可选)步骤二:安装 NVIDIA GPU 驱动

Apollo 8.0 的一些模块的编译和运行需要依赖 NVIDIA GPU 环境(例如感知模块),如果您有编译和运行这类模块的需求,则需要安装 NVIDIA GPU 驱动。

您可以通过以下两种方式在 Ubuntu 上进行安装:

对于 Ubuntu 18.04+,只需执行以下命令即可:

1
2
3
4
sudo apt-get update
sudo apt-add-repository multiverse
sudo apt-get update
sudo apt-get install nvidia-driver-455

安装完毕后,可以输入 nvidia-smi来校验 NVIDIA GPU 驱动是否在正常运行(可能需要在安装后重启系统以使驱动生效)。如果成功,则会出现以下信息:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Prompt> nvidia-smi
Mon Jan 25 15:51:08 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.27.04    Driver Version: 460.27.04    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|=++|
|   0  GeForce RTX 3090    On   | 00000000:65:00.0  On |                  N/A |
| 32%   29C    P8    18W / 350W |    682MiB / 24234MiB |      7%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=|
|    0   N/A  N/A      1286      G   /usr/lib/xorg/Xorg                 40MiB |
|    0   N/A  N/A      1517      G   /usr/bin/gnome-shell              120MiB |
|    0   N/A  N/A      1899      G   /usr/lib/xorg/Xorg                342MiB |
|    0   N/A  N/A      2037      G   /usr/bin/gnome-shell               69MiB |
|    0   N/A  N/A      4148      G   ...gAAAAAAAAA --shared-files      105MiB |
+-----------------------------------------------------------------------------+

步骤三:安装 docker

Apollo 8.0 依赖于 Docker 19.03+。要安装 Docker,参见 Install Docker Engine on Ubuntu

Ubuntu 上的 Docker-CE 也可以通过 Docker 提供的官方脚本安装:

1
2
curl https://get.docker.com | sh
sudo systemctl start docker && sudo systemctl enable docker

您可以自由选择安装方式,安装之后,不要忘记执行 Linux 上的后续操作说明。更多内容,参见 使用非 root 权限运行 docker 和 配置开机启动 docker

(可选)步骤四:安装 NVIDIA Container Toolkit

为了在容器内获得 GPU 支持,在安装完 docker 后需要安装 NVIDIA Container Toolkit。 运行以下命令安装 NVIDIA Container Toolkit:

1
2
3
4
5
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get -y update
sudo apt-get install -y nvidia-docker2

安装完成后,重启 Docker 以使改动生效。

1
sudo systemctl restart docker

安装完毕后,可以在APOLLO容器内输入nvidia-smi来校验 NVIDIA GPU 在容器内是否能正常运行(详见步骤五)。

步骤五:下载并编译 Apollo 源码

  1. 安装 git 并将源码 clone 下来:

    1
    2
    3
    4
    5
    cd ~/
    sudo apt update
    sudo apt install git -y
    git init
    git clone https://github.com/ApolloAuto/apollo.git
    

    代码下载的时间视网速的快慢而有所区别,请耐心等待。

  2. 启动并进入 docker 容器,在终端输入以下命令:

    1
    2
     cd ~/apollo
     bash docker/scripts/dev_start.sh
    

    第一次进入 docker 时或者 image 镜像有更新时会自动下载 apollo 所需的 image 镜像文件,下载镜像文件的过程会很长,请耐心等待。

    如果一切正常,则会见到以下信息:

    1
    2
    3
    4
    [ OK ] Congratulations! You have successfully finished setting up Apollo Dev Environment.
    [ OK ] To login into the newly created apollo_neo_dev_root container, please run the following command:
    [ OK ]   bash scripts/edu_launcher.sh enter
    [ OK ] Enjoy!
    

    这个过程完成后,请输入以下命令以进入 docker 环境中:

    1
    bash docker/scripts/dev_into.sh
    

    如果您在步骤二和步骤四分别安装了 NVIDIA GPU 驱动和 NVIDIA Container Toolkit,您可以输入nvidia-smi来校验 NVIDIA GPU 在容器内是否能正常运行,如果成功,则会出现以下信息:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    root@in-dev-docker:/apollo_workspace## nvidia-smi 
    Wed Sep 14 11:43:13 2022       
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |=++|
    |   0  Tesla V100-SXM2...  Off  | 00000000:03:00.0 Off |                    0 |
    | N/A   31C    P0    38W / 300W |    153MiB / 32510MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=|
    |    0   N/A  N/A      9962      C   nvidia-cuda-mps-server             29MiB |
    +-----------------------------------------------------------------------------+
    
  3. 编译 Apollo 源码。

    编译 Apollo,在终端输入以下命令,等待编译完成,编译过程耗时视机器配置的不同而有所区别,请耐心等待:

    1
    bash apollo.sh build
    

步骤六:运行 Dreamview 检验编译是否成功

  1. 进入 Apollo 容器环境。

    1
    2
    3
     cd ~/apollo
     bash docker/scripts/dev_start.sh
     bash docker/scripts/dev_into.sh
    

    注:如果您已在容器环境内,请忽略此步骤。

  2. 启动 dreamview。

    在终端输入以下命令:

    1
    bash scripts/bootstrap.sh
    

    如果启动成功,在终端会输出以下信息:

    1
    2
    3
    4
    5
     nohup: appending output to 'nohup.out'
     Launched module monitor.
     nohup: appending output to 'nohup.out'
     Launched module dreamview.
     Dreamview is running at http://localhost:8888
    

    在浏览器中输入以下地址访问 Dreamview:

    1
    http://localhost:8888
    
  3. 回放数据包。

    在终端输入以下命令下载数据包:

    1
    wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_3.5.record
    

    输入以下命令可以回放数据包,在浏览器 DreamView 中应该可以看到回放画面:

    1
    cyber_recorder play -f demo_3.5.record --loop