4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

challenge_clubAdvent Calendar 2023

Day 22

自動運転AIチャレンジ2023シミュレーション大会の環境構築メモ(GPU環境)

Last updated at Posted at 2023-12-10

自動運転AIチャレンジ2023シミュレーション大会の環境構築メモ(GPU環境)

環境構築時の個人メモを残します。間違ってたり過不足あったり、不備見つけたらコメントいただけるとありがたいです。

基本的には下記の公式手順に沿って準備をしています。

大きく異なるのは、今回は最初から前回大会(2023年インテグレーション大会)の環境が入っていることです。

PC環境

OS: Ubuntu 22.04 LTS
CPU: 13th Gen Intel(R) Core(TM) i7-13700F (16コア)
GPU: GeForce RTX 3060 12GB
Memory: 32GB
Storage: 1.0TB

自動運転AIチャレンジ2023年インテグレーション大会の環境が入ったPCにインストールします。

Environment Setup

Nvidia-Driverインストール

既にインストール済みなのでスキップします。以前インストールしたときのメモはこちら。

$ nvidia-smi
Sun Dec 10 17:38:58 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05   Driver Version: 525.147.05   CUDA Version: 12.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  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   38C    P8    15W / 170W |    186MiB / 12288MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      2134      G   /usr/lib/xorg/Xorg                 64MiB |
|    0   N/A  N/A      2289      G   ...ome-remote-desktop-daemon        2MiB |
|    0   N/A  N/A      2327      G   /usr/bin/gnome-shell              117MiB |
+-----------------------------------------------------------------------------+

コースの準備

aichallenge2023-racing/docker/aichallenge ディレクトリを作成します。

$ mkdir -p ~/aichallenge2023-racing/docker/aichallenge

後述しますが、適当なディレクトリ名でOKでした。aichallenge2023-racingディレクトリがあることで、後でgit lfs clone https://github.com/AutomotiveAIChallenge/aichallenge2023-racingするときに邪魔になります。後程、このクローンしたディレクトリにGoogleDriveからダウンロードしたAWSIMをコピーします。

GoogleDriveから最新のAWSIM_GPU.zipをダウンロードし、aichallenge2023-racing/docker/aichallenge内に大会用AWSIM実行ファイルを展開.

image.png

パーミッションを図のように変更する。

image.png
image.png

ファイル'AWSIM_x86_64'をダブルクリックで起動すると、以下のような画面が表示されました。

image.png

image.png

Dockerの事前準備

docker, rocker, git lfs のインストール

下記のインストールを行う。すでに2023年インテグレーション大会の環境にはインストール済みなのでスキップします。

インストール済みパッケージの確認を行っていきます。

  • docker
$ docker --version
Docker version 24.0.4, build 3713ee1
$ sudo docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
$ docker ps
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

ここでpermission deniedとなりました。どうやら、

dockerコマンドはデフォルトではroot権限なしには叩けないようになっています。

とのことなので、権限を付与します。
参照: Got permission denied while trying to connect to the Docker daemon socket at 解決方法

$ sudo chmod 666 /var/run/docker.sock
$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

毎回権限を与えるのが面倒なので、起動時に実行するようにしたい。
参考:Linux起動時にコマンド実行して欲しいので調査した

  • rocker:Dockerコンテナ内のRviz、rqtなどのGUIを使用するために用います。
$ sudo apt list --installed | grep rocker
python3-rocker/jammy,now 0.2.12-100 all [インストール済み]
  • git lfs
$ sudo apt list --installed | grep git-lfs
git-lfs/jammy,now 3.3.0 amd64 [インストール済み、3.4.0 にアップグレード可]

Dockerイメージの準備・起動 〜 Autowareの準備

1.Dockerイメージを入手

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

user groupに自分のアカウントを追加、以下のコマンドでgroupsにdockerが追加されていることを確認。

$ sudo usermod -aG docker $USER
$ groups $USER
[USER]: [USER] adm cdrom sudo ... docker

再度loginし直します。
docker imagesで以下のような表示が見えていることを確認します。

$ docker images
REPOSITORY                                                                       TAG                           IMAGE ID       CREATED         SIZE
ghcr.io/automotiveaichallenge/aichallenge2023-racing/autoware-universe-no-cuda   latest                        b7fdf9678bc2   2 weeks ago     7.32GB
~~~

2.大会用データのダウンロード

$ git lfs clone https://github.com/AutomotiveAIChallenge/aichallenge2023-racing
WARNING: `git lfs clone` is deprecated and will not be updated
          with new flags from `git clone`

`git clone` has been updated in upstream Git to have comparable
speeds to `git lfs clone`.
fatal: destination path 'aichallenge2023-racing' already exists and is not an empty directory.
Error(s) during clone:
`git clone` failed: exit status 128

先ほどコースの準備で作ったaichallenge2023-racingフォルダが邪魔らしいので、一旦名前変更して、再度実行します。

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

(本来は、コースの準備を後で行うべきだったかもしれません。)

3.大会用dockerイメージのビルド

$ cd aichallenge2023-racing/docker/train

4.大会用dockerコンテナの起動

GPU環境なので、以下のコマンドを実行します。

$ bash run_container.sh

Dockerコンテナ内でのAWSIM起動

Dockerイメージを導入した後、aichallenge2023-racing/docker/aichallenge内に大会用AWSIM実行ファイルをコピーします。先ほど名前を変更したディレクトリです。
aichallenge2023-racing/docker/aichallenge/AWSIM/AWSIM.x86_64に配置されている状態となります。

$ cp -r aichallenge2023-racing-temp/docker/aichallenge/AWSIM aichallenge2023-racing/docker/aichallenge/

docker image lsで以下のimageが存在していることを確認します。

$ docker image ls
REPOSITORY                                                                       TAG                           IMAGE ID       CREATED          SIZE
aichallenge-train                                                                latest                        efdf5dc98b88   10 minutes ago   7.38GB

GPU環境用の立ち上げスクリプトを起動。

$ cd ./aichallenge2023-racing/docker/train
$ bash run_container.sh

コンテナ内で以下を実行して、AWSIMが立ち上がることを確認します。

$ cd /aichallenge
$ bash run_awsim.sh 

image.png

AWSIMからpublish・subscribeされているトピックのメッセージは,一部/aichallenge/aichallenge_ws/src/sim-msgsで定義されています.これらのメッセージを扱うには,以下のコマンドを実行してください.

と、あるので、ビルドが通ることも確認しました。

$ cd /aichallenge
$ bash build_autoware.sh
$ source /aichallenge/aichallenge_ws/install/setup.bash 

地図データosmの配置 WIP

本大会ではlanelet2_mapファイルの改変もOKらしいです。前回のインテグレーション大会で、leneletの変更を検討していたチームもあったのだが、今回はそれも工夫点になるかもしれません。

ファイル構成が以下になるように配置されています。(submit用のディレクトリ中にmapが含まれている)

aichallenge2023-racing
└ docker
 └ aichallenge
  └ AWSIM
  └ aichallenge_ws/src/aichallenge_submit/aichallenge_submit_launch
     └map
      └lanelet2_map.osm

Autowareの動作確認

基本的には、下記の順番で実行していきます。

1. AWSIMを起動

$ cd ./aichallenge2023-racing/docker/train
$ bash run_container.sh

コンテナ内部でAWSIM起動

$ cd /aichallenge
$ bash run_awsim.sh 

2. Autowareを起動

$ docker exec -it [] bash

Rockerコンテナ内で

$ cd /aichallenge
$ bash build_autoware.sh # 必要に応じて
$ bash run_autoware.sh

下記のような画面(Rviz2)が表示され,車両の自動走行が開始されることを確認.

image.png

デフォルトパラメータ(2023/12/10時点)で走行してみた動画は以下のようになります。

さいごに

間違っている点、不足している点あればご指摘ください。自分用の環境構築のメモですが、何かに役に立てば幸いです。

これから、CPU環境の立ち上げも行いたいです。やはり、GPU無しでも動作するのは魅力的です。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?