LoginSignup
21
12

UbuntuにAWSIM(自動運転シミュレータ)をインストールする

Last updated at Posted at 2022-12-08

はじめに

LG Electronicsが開発を行っていた(LG)SVL SIMULATORが2022年1月をもって開発終了しました。
SVL SIMULATORのGithubは生きているものの、新たにインストールするために必要なNode.jsのインストールができなくなっているとともに、そもそもUbuntu18.04 LTSのサポートも終わりが近づいてきました(無課金だと2023年1月予定)。

そこでUbuntu22.04で自動運転シミュレータを行う方法としてAutowareなどの開発も行うTIER IVが新たに「AWSIM」という自動運転シミュレータを開発していました。

この記事ではAWSIMをUbuntu22.04にインストールするまでの公式ドキュメント(AWSIM document)を日本語でまとめたものとなります。

推奨環境

公式の推奨環境はつぎのようになっています

OS:Ubuntu22.04
CPU:6コア12スレッド以上
GPU:RTX2080Ti以上
Nvidiaドライバ:460.27.03以上

OS
OSに関してはUbuntu20.04とのことです。このシミュレータはROS2を利用するので、Ubuntu22.04でも使えるかもしれません(未確認)。
v1.1.0以降はUbuntu22.04でしか対応していません(ROS2 humbleのみ対応のため)。
そのため、Ubuntu20.04で利用したい場合は、それ以前のバージョンを使うとよいでしょう。

CPU
記載の通り6コア12スレッド以上です。
しかし、最近発売されたIntel12世代以降のCPUはスレッドがコアの倍になっていないことがある(PコアとEコアの関係)ので注意が必要かも?

GPU
RTX2080Ti以上とかなり要求スペックが高いです。
参考程度にしてもらいたいですが、GPUのベンチマークスコアなどをググってみるとRTX3000番台のGPUの場合3070以上は必要になってくるのではないかと思います。

また、私が行った環境を以下に示します。

OS:Ubuntu22.04
CPU:Intel Core i7-13700(16コア24スレッド[Pコア:8, Eコア:8])
GPU:RTX3070(LHR版)
Nvidiaドライバ:525.89.02

(参考:v1.0.1で確認)
OS:Ubuntu20.04
CPU:Intel Core i7-10700(8コア16スレッド)
GPU:RTX3070
Nvidiaドライバ:515.65.01

ローカルホストの設定(2024/02/23追記)

以下を.profile(homeの隠しファイル)の一番下に記入。

export ROS_LOCALHOST_ONLY=1
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

以下を.bashrc(homeの隠しファイル)の一番下に記入。

if [ ! -e /tmp/cycloneDDS_configured ]; then
    sudo sysctl -w net.core.rmem_max=2147483647
    sudo ip link set lo multicast on
    touch /tmp/cycloneDDS_configured
fi

NVIDIAドライバのインストール

ひとまず公式通りのNVIDIAのグラフィックドライバの入れ方を紹介します。

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
$ sudo ubuntu-drivers autoinstall

そして、

$ nvidia-smi

で確認できたらOK

なのですが...
私はここではまりました。

なので、ここでは手動入れることをおすすめします。
やることは変わらないのでUbuntu18.04でドライバをインストール方法のQiita記事を参考にやるといいと思います。

上記の記事でUbuntu22.04と違うと思ったところだけ記載します。

まず、「1. NVIDIA-driverをインストールする前に」の(1) Nouveauの無効化するところから「2. NVIDIAドライバのインストール」のリポジトリの追加をするところまではすべて同じです。
しかし、「インストール可能なデバイスが表示」からある現象が起きたので共有します。

$ ubuntu-drivers devices

のコマンドを実行すると以下の表記になります。

user@user:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002488sv00001462sd00003909bc03sc00i00
vendor   : NVIDIA Corporation
model    : GA104 [GeForce RTX 3070 Lite Hash Rate]
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-515-server - distro non-free
driver   : nvidia-driver-510 - distro non-free
driver   : nvidia-driver-515-open - distro non-free
driver   : nvidia-driver-525-open - third-party non-free recommended
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-525 - third-party non-free
driver   : nvidia-driver-515 - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

ここで「recommended」のドライバを入れるのが基本ですが、
「nvidia-driver-525-open」のように-openがついたドライバはうまく認識しません。

-openがなく「nvidia-driver-○○」のものが「recommended」されていれば上記の記事どおり進みましょう。

しかし、自分と同じ現象が起きた場合はつぎのようにするといいです。

まず、NVIDIAドライバダウンロードのページにアクセスします。

このページで自分が使っている環境を選択します。
自分の場合は以下のように設定しました。

製品のタイプ:GeForce
製品シリーズ:GeForce RTX 30 Series
製品ファミリー:GeForce RTX 3070
オペレーティングシステム:Linux 64-bit
ダウンロードタイプ:製品ブランチ
言語:Japanese
NVIDIAドライバダウンロード_1
その後、「探す」を押すと以下の画面が表示されます。
NVIDIAドライバダウンロード_1

ここでの「バージョン」欄の「525.60.11」の525を覚えておきましょう。(ここでダウンロードはしません。)

つぎにターミナルで

$ ubuntu-drivers devices

を実行します。
すると、このような表示がでてきます。

user@user:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002488sv00001462sd00003909bc03sc00i00
vendor   : NVIDIA Corporation
model    : GA104 [GeForce RTX 3070 Lite Hash Rate]
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-515-server - distro non-free
driver   : nvidia-driver-510 - distro non-free
driver   : nvidia-driver-515-open - distro non-free
driver   : nvidia-driver-525-open - third-party non-free recommended
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-525 - third-party non-free
driver   : nvidia-driver-515 - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

先程覚えた番号のドライバがあるか確認をして、以下のコマンドでインストールしましょう(ここではnvidia-driver-525)。

$ sudo apt install nvidia-driver-525
$ sudo reboot

再起動後、以下のコマンドで確認。

$ nvidia-smi

以下のような表示になればOK

user@user:~$ nvidia-smi 
Sun Mar  5 08:33:59 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    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%   37C    P8    23W / 220W |    264MiB /  8192MiB |      3%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1827      G   /usr/lib/xorg/Xorg                116MiB |
|    0   N/A  N/A      1963      G   /usr/bin/gnome-shell               84MiB |
|    0   N/A  N/A      4404      G   ...veSuggestionsOnlyOnDemand       61MiB |
+-----------------------------------------------------------------------------+

以上が、ドライバのダウンロードです。

※2024/02/23追記:公式では525のドライバを推奨しているそうです。

gitのインストール&SSHの設定

以下のコマンドでgitをインストールしましょう。

$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt update
$ sudo apt install git

その後、SSHを使ってgit cloneするので、あらかじめgithubのアカウントを作成しましょう。

詳しい設定の方法が書かれたQiita記事があるので、これをそのまま実行するといいと思います。

UnityHubとUnityのダウンロード

(2023年3月にこの項目を修正しました。)

以下のコマンドでUnityHubをインストールします。

$ sudo sh -c 'echo "deb https://hub.unity3d.com/linux/repos/deb stable main" > /etc/apt/sources.list.d/unityhub.list'
$ wget -qO - https://hub.unity3d.com/linux/keys/public | sudo apt-key add -
$ sudo apt update
$ sudo apt-get install unityhub

以下のコマンドでUnityhubを起動します。

$ unityhub

起動できたらまず、Unityにサインインもしくはアカウント作成しましょう(ライセンス認証で必須)。
unityhub_1.png

次にライセンス認証をします。
歯車マーク(Preferences)→License→Addを選択します。
unityhub_2.png
個人利用の場合はACTIVATE LICENSEの「Get a free personal license」→Agree and get personal edition licenseを選択します。
以下では、Unity Personalを選択した前提で話をすすめます。
unityhub_3.png
unityhub_4.png
ライセンス認証できると以下のような画面になります。
unityhub_5.png

次にUnityをダウンロードしていきます。
Unity download archiveのページにアクセスして、Unity 2021.X→Unity 2021.1.7→Unity Hubをクリックします。
unityhub_6.png
UnityHubで開くダイアログが出てくるので、Open Linkで開く。
unityhub_7.png
Unityhubが起動すると、以下のような画面が出てくるので「Install」を押してインストールします(LGSVLのようにビルドする必要がないので、チェックボックスは必要ありません)。
unityhub_8.png
インストールは回線環境にもよりますが長いです。待ちましょう。

~インストール初期~
unityhub_9.png
~インストールほぼ終わり~
unityhub_10.png
~インストール完了~
unityhub_11.png

AWSIMのダウンロードからUnityへのインポートまで

以下のコマンドを使ってAWSIMをダウンロードしていきます。

$ git clone git@github.com:tier4/AWSIM.git

opensslがないとunityを起動した際にsafe modeで起動してしまうので,以下のコマンドでopensslをインストールします.

$ wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.13_amd64.deb
$ sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.13_amd64.deb

git cloneとopensslのインストールが終わったら、UnityHubを起動し、読み込ませます。

$ unityhub

起動できたら、Projects→Openを選択します。
awsim_1.png
git cloneしてきたフォルダをそのまま選択します。
awsim_2.png
Unityのバージョンが2021.1.7f1になっているか確認をして、クリックをしてインポートします。
awsim_3.png
awsim_4.png
インポートができたらこのような画面になります。
AWSIM_5.png

ROS2のインストール(2024/02/23追記)

AWSIMを動かすには、ROS2のインストールが必要です。
※2024/02/23追記:v1.2.0以降での大きな変更点
原則は公式のインストール手順Qiita記事などを参考にインストールするといいと思います。

ただし、絶対に.bashrcファイルや.profileファイルにPATHを通さないこと(AWSIM内にあるROS2 for Uniryが機能しなくなります。)

具体的には、以下のコマンドを実行しなければいいです。

$ echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
$ source .bashrc

ROS2のトピックを記録したいときはその都度 UnityHubを起動しているターミナル以外で 以下のコマンドを実行すればいいです。

$ source /opt/ros/humble/setup.bash

正直、ROS2をAWSIM以外でも使う人はめんどくさいと思うので、AWSIM専用PCとROS2用PCで分けて使ったほうがいいと思います(もちろんSSDを分ければ1台でいいです)。

西新宿の環境での動作確認

インポートが完了したら、実際にTIER IVが用意してくれている西新宿の環境で動作確認を行いましょう。

まず、Japan_Tokyo_Nishishinjuku.unitypackageをダウンロードしましょう。

ダウンロードできたら、Unity内でAssets→Import Package→Custom Package...を選択していき、ダウンロードしてきたunitypackageを選択します。
選択したら、以下の画面が出てくるので、Importを押しましょう。
Nishishinjuku_1.png
Importができたら左下のフォルダにインポートしたフォルダがあるので、Asset→AWSIM→Scenes→Main→AutowareSimulation(.unity)を選択します。
左側にAutowareSimulationが選択されていることを確認したら、再生ボタンを押します。
Nishishinjuku_2.png
すると、シミュレータが起動して車両を動かすことができます。
Nishishinjuku_3.png
デフォルトでは、キーボードで車両を操作することができます。

おわりに

公式ドキュメントにはLiDAR等のさまざまな設定があるそうなので、試してみてください。

参考文献

この記事は以下の情報を参考にして執筆しました。

・「AWSIM公式ドキュメント」, URL:https://tier4.github.io/AWSIM/GettingStarted/SetupUnityProject
・「Ubuntu 18.04.3 LTSでNVIDIA-driver(GeForce RTX 2070 SUPER), cuda 10.1, cudnn 7.6のインストール+python環境構築」, URL:https://qiita.com/tatsuya11bbs/items/7c3ba15f8eff6cf40276
・「NVIDIAドライバダウンロード」, URL:https://www.nvidia.co.jp/Download/index.aspx?lang=jp
・「Git」, URL:https://git-scm.com/download/linux
・「Ubuntu ローカルのgit設定~SSHキー取得~GitHub,Gitlab連携まで」, URL:https://qiita.com/koki2022/items/2a056f1286b9c62bf614
・「ubuntu22.04にROS2 Humbleをインストールする」, URL:https://qiita.com/porizou1/items/5dd915402e2990e4d95f
・「Unable to record LiDAR topics suddenly #187」, URL:https://github.com/tier4/AWSIM/issues/187

21
12
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
21
12