2023年自动驾驶AI挑战赛的模拟大赛环境建设(使用图形处理器)

首先

由于我已经在2023年自动驾驶AI挑战赛的模拟大会上注册参加,所以我将整理自己在笔记本电脑上搭建AWSIM和Autoware环境的步骤。

基本上,按照此设置手册中的步骤进行。

 

生態

項目値CPUIntel® Core™ i7-12700HGPUGeForce RTX 3050 Ti MobileUbuntu22.04Kernel6.2.0-36-genericdocker24.0.6docker composev2.21.0

环境建设

AWSIM和Autoware都在Docker上进行环境搭建,并在同一个Docker容器中运行。

安装NVIDIA驱动程序

由于我的电脑无法通过apt正确运行安装,我总是从官方网站下载.run文件并进行安装。
有关从.run文件进行安装的步骤,请参考以下文章。

 

安装docker、rocker和gitlfs。

    Docker的安装
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    sudoをつけなくてもdockerコマンド使えるようにする
getent group | grep docker
sudo usermod -aG docker $USER
getent group | grep docker

确认行动

docker run hello-world
    安装Rocker
sudo apt-get install python3-rocker
    安装Git LFS。
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install

安装nvidia-docker2

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
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 nvidia-docker2
sudo systemctl restart docker.service
    動作確認
docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

#最後のコマンドで以下のような出力が出れば成功です。
#(下記はNVIDIAウェブサイトからのコピペです)


# +-----------------------------------------------------------------------------+
# | NVIDIA-SMI 450.51.06    Driver Version: 450.51.06    CUDA Version: 11.0     |
# |-------------------------------+----------------------+----------------------+
# | 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 T4            On   | 00000000:00:1E.0 Off |                    0 |
# | N/A   34C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
# |                               |                      |                  N/A |
# +-------------------------------+----------------------+----------------------+
# +-----------------------------------------------------------------------------+
# | Processes:                                                                  |
# |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
# |        ID   ID                                                   Usage      |
# |=============================================================================|
# |  No running processes found                                                 |
# +-----------------------------------------------------------------------------+

准备Autware的Docker镜像。

    获取docker镜像

从GHCR中拉取aichallenge2023的Docker镜像。

docker pull ghcr.io/automotiveaichallenge/aichallenge2023-racing/autoware-universe-no-cuda

请确认图像是否已经生成。

$ docker images
REPOSITORY                                                                       TAG                                 IMAGE ID       CREATED          SIZE
ghcr.io/automotiveaichallenge/aichallenge2023-racing/autoware-universe-no-cuda   latest                              9601fc85f1bd   3 weeks ago      7.31GB    
    创建Docker镜像用于会议。

克隆 aichallenge2023-racing 存储库。

git lfs clone https://github.com/AutomotiveAIChallenge/aichallenge2023-racing

大会使用 Docker 图像的构建

cd aichallenge2023-racing/docker/train
bash build_docker.sh

确认图像是否已经生成,之后将使用这个aichallenge-train镜像

$ docker images
REPOSITORY                                                                       TAG                           IMAGE ID       CREATED         SIZE
aichallenge-train                                                                latest                        19c8285b8cd2   2 days ago      7.38GB
    AWSIM的下载

在GoogleDrive中下载最新的AWSIM.zip文件,然后将比赛用的AWSIM执行文件解压到aichallenge2023-racing/docker/aichallenge文件夹内。

 

    运行Docker容器

因為我想在rocker上新增一個選項,所以直接執行了rocker指令。

请为 aichallenge2023-racing 的容器命名,以便更易于理解。

–nocleanup:确保在容器结束时不会删除容器。

mkdir -p output
rocker --nvidia --x11 --user --net host --privileged --nocleanup --name aichallenge2023-racing --volume ../aichallenge:/aichallenge -- aichallenge-train
使用–volume选项,在宿主PC的/aichallenge:/aichallenge目录下进行共享,因此在编辑aichallenge目录下的文件时,可以在宿主PC上进行编辑。

在Docker容器内进行Autoware的构建。

cd /aichallenge
bash build_autoware.sh

安装开发所需的工具。

sudo apt update
sudo apt install ros-humble-rqt*
sudo apt install terminator

停止 Docker 容器

在容器内执行exit命令,或者

docker stop aichallenge2023-racing
    2回目以降の起動
docker start aichallenge2023-racing
docker attach aichallenge2023-racing
or
docker exec -it aichallenge2023-racing bash

补充说明:

当使用这种方法重启后,执行”docker start”命令时会出现以下错误。

Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/tmp/.dockere5u782qg.xauth" to rootfs at "/tmp/.dockere5u782qg.xauth": mount /tmp/.dockere5u782qg.xauth:/tmp/.dockere5u782qg.xauth (via /proc/self/fd/7), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
Error: failed to start containers: aichallenge2023-racing

AWSIM和Autoware的执行

启动AWSIM

docker start aichallenge2023-racing
docker attach aichallenge2023-racing

在容器内执行以下命令以启动AWSIM。

cd /aichallenge
bash run_awsim.sh 

启动Autoware。

打开另一个终端并进入容器。

docker exec -it aichallenge2023-racing bash

在容器中执行以下操作以启动Autoware。

cd /aichallenge
bash run_autoware.sh

 

广告
将在 10 秒后关闭
bannerAds