百度 Apollo 仿真(无硬件,虚拟环境,离线仿真)ubuntu 18

参考Apollo demo、本地运行Perception Module

1.安装Docker,CUDA

2.克隆或直接下载 Apollo 代码

3.启动Docker,进入容器

4.构建Apollo

5.启动ros调用和Monitor模块以及Dreamview

6.下载历史数据

7.打开Chrome并转到localhost:8888以访问Apollo Dreamview

 

1.安装 Docker,官网安装指南,Docker简介

 1.1 卸载旧Docker

## 卸载旧 docker
sudo apt-get remove docker docker-engine docker.io containerd runc

 1.2  设置存储库

## 设置存储库

# 更新apt软件包索引并安装软件包以允许apt通过HTTPS使用存储库:
sudo apt-get update

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

# 添加Docker的官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88

# pub   rsa4096 2017-02-22 [SCEA]
#      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
# uid           [ unknown] Docker Release (CE deb) 
# sub   rsa4096 2017-02-22 [S]

# 使用以下命令来设置稳定的存储库
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

 1.3 安装DOCKER引擎

# 安装DOCKER引擎
  sudo apt-get update
  sudo apt-get install docker-ce docker-ce-cli containerd.io

1.4 验证Docker是否安装成功,打印出消息即正常

sudo docker run hello-world

也可以使用下载好的软件包进行安装

1.5 使用非 root 用户操作docker

## 创建一个组
sudo groupadd docker

## 将当前用户加入docker组
sudo usermod -aG docker $USER

## 激活更改
newgrp docker 

## 验证当前USER是否可以运行docker
docker run hello-world

## 配置docker服务开机启动
# sudo systemctl enable docker

 1.6  下载CUDA工具包

# Add the package repositories
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 update && sudo apt-get install -y nvidia-container-toolkit

sudo systemctl restart docker

NVIDIA Container Toolkit允许用户构建和运行GPU加速的Docker容器。该工具包包括容器运行时库和实用程序,用于自动配置容器以利用NVIDIA GPU。完整文档和常见问题解答可在资源库Wiki上获得。

 

2.克隆或直接下载 Apollo 代码

mkdir apollo
cd apollo
git clone https://github.com/ApolloAuto/apollo.git

 3.启动Docker,进入容器

bash docker/scripts/dev_start.sh

这一步要拉取镜像文件,时间会比较久,我的网速基本上会 1m/s 要一个多小时吧。但是拉取成功之后就可以多次使用了。我在这里遇到一个问题,docker 拉取镜像的默认保存地址是/var/lib/docker,当存储不够时,会导致后续无法写入,最后报错 io timeout。解决方案如下:

vim /etc/docker/daemon.json

 修改data-root,一般是没有的,自己直接加。

{
  "registry-mirrors": ["https://m5bjijzp.mirror.aliyuncs.com"],
  "data-root": "/home/hellxz/docker-home"
}

 查看并加载本地 docker image,拉取过一次之后,之后直接在本地启动(第一次拉取之后就已经启动,可以跳过这一行)

docker ps -a  # --->获取所有image的信息
docker start ID #  --->选中需要的image的ID,启动一个容器

如果因为GPU的问题,出现如下问题: 

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

上述错误意味着Nvidia无法正确注册Docker。它实际上意味着驱动程序未正确安装在主机上。这也可能意味着安装了nvidia容器工具而无需重新启动docker守护程序:您需要重新启动docker守护程序。

我建议你回去验证是否安装了nvidia-container-runtime或者重新启动Docker守护进程。(引用)

我重启了docker 守护进程解决了上述问题

systemctl restart docker.service
bash docker/scripts/dev_start.sh

 现在容器已经就绪,就可以进入容器中:

bash docker/scripts/dev_into.sh

4.构建Apollo

bash apollo.sh build
# 如果没有GPU,则可以使用以下脚本代替
bash apollo.sh build_cpu
#  如果您的计算机运行缓慢,则可以输入以下命令来限制CPU
bash apollo.sh build --local_resources 2048,1.0,1.0

 

5.启动ros调用和Monitor模块以及Dreamview

bash scripts/bootstrap.sh

 6.下载历史数据

cd docs/demo_guide/
python3 rosbag_helper.py demo_3.5.record
cyber_recorder play -f docs/demo_guide/demo_3.5.record --loop

7.打开Chrome并转到localhost:8888以访问Apollo Dreamview

你可能感兴趣的:(无人车)