はじめに
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
その後、「探す」を押すと以下の画面が表示されます。
ここでの「バージョン」欄の「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にサインインもしくはアカウント作成しましょう(ライセンス認証で必須)。
次にライセンス認証をします。
歯車マーク(Preferences)→License→Addを選択します。
個人利用の場合はACTIVATE LICENSEの「Get a free personal license」→Agree and get personal edition licenseを選択します。
以下では、Unity Personalを選択した前提で話をすすめます。
ライセンス認証できると以下のような画面になります。
次にUnityをダウンロードしていきます。
Unity download archiveのページにアクセスして、Unity 2021.X→Unity 2021.1.7→Unity Hubをクリックします。
UnityHubで開くダイアログが出てくるので、Open Linkで開く。
Unityhubが起動すると、以下のような画面が出てくるので「Install」を押してインストールします(LGSVLのようにビルドする必要がないので、チェックボックスは必要ありません)。
インストールは回線環境にもよりますが長いです。待ちましょう。
~インストール初期~
~インストールほぼ終わり~
~インストール完了~
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を選択します。
git cloneしてきたフォルダをそのまま選択します。
Unityのバージョンが2021.1.7f1になっているか確認をして、クリックをしてインポートします。
インポートができたらこのような画面になります。
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を押しましょう。
Importができたら左下のフォルダにインポートしたフォルダがあるので、Asset→AWSIM→Scenes→Main→AutowareSimulation(.unity)を選択します。
左側にAutowareSimulationが選択されていることを確認したら、再生ボタンを押します。
すると、シミュレータが起動して車両を動かすことができます。
デフォルトでは、キーボードで車両を操作することができます。
おわりに
公式ドキュメントには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