非力なPCでAWSIM上の車をマニュアルで走らせる試み
前提
この記事ではAWSIMを動かして手動で車を運転するところまでのセットアップはしますが、自動運転(Autoware)やROSについての話は出ません。
また、非力なPCとはdGPU/eGPUを使わずiGPUのみのPCを指しています。
今回使ったPCのスペック
- OS: Windows11 Enterprise(24H2)
- CPU:Intel Core Ultla7 155U@1.70GHz
- RAM:32GB@LPDDR5-6400
- GPU:Intel Graphics
- Intel Iris Xe 4 Core Graphics 64 EUs
- ユニット数:64
- シェーダー数:512
- VRM:RAMと共有(32GB搭載時VRMとして利用可能なサイズは18GB)
一般的なモバイルノートPCになります。
導入手順
Unityのセットアップは省略しますが、バージョン2021.1.7f1を使用することを推奨します。
AWSIMのプロジェクトとマップの準備
AWSIMプロジェクト
TierⅣのGitHubリポジトリよりAWSIMのプロジェクト一式をcloneします。
> git clone https://github.com/tier4/AWSIM.git
西新宿マップ
GitHubリポジトリのリリースページにリンクがります。
見つけにくいところにあるので、下記の直リンクからもダウンロードできます。プロジェクトのインポート
cloneが完了したら、UnityHubから、Add -> Add project from diskを選択します。
プロジェクトを選択するダイアログが開かれるので、cloneしたAWSIMのフォルダを選択してopenを押すとインポート完了となりますので、プロジェクトを開きます。
西新宿のマップのインポート
Japan_Tokyo_Nishishinjuku_v2.unitypackageをUnityにインポートします。
UnityのEditor画面より、Assets -> Import Package -> CustomPackageを選択すると、ファイル選択ダイアログが表示されるので、先ほどダウンロードしたファイルを指定します。
Import Unity Packageというダイアログが表示されますが、そのまま右下のImportボタンを押して進めます。
ドライビングシミュレータのシーンを開く
UnityのProjectタブのAssets -> AWSIM -> Scenes -> Mainフォルダにある、AutowareSimulation.unityを開くと下記のような画面になるかと思います。
早速実行してみる・・・・
Unityの画面上部にある実行ボタンを押すと実行できます・・・が、画面左下にあるように10fpsすら遠い感じです。
とりあえず運転してみる
実行直後は、ControlModeが自動運転(AUTONOMOUS)になっているので、手動(MANUAL)に切り替えます。
一度、方向キーの↑を叩きます。そうするとControlModeの表記がMANUALになるので、これでキーボードから車を操作できます。
基本的なキー操作は画面側に記載されているので説明は省きます。
実際に運転してみましたが、方向キーちょっと押すだけでも結構曲がってしまうので、車線を合わせようとちょっと曲がろうとしただけなのに街路樹にぶつかってしまいます。
恐らくですが、瞬間的に押したキーが何フレームにも渡って押した判定になっているんじゃないかと思います。
不要な機能をオミットする
自動運転に必要な機能がたくさんありますが今回は手動で動かすことが目的なので、色々と機能をオミットしようと思います。
車体前方カメラ
実行時に車体の斜め後方からのカメラと、車体前方のカメラで撮影してGameタブに表示していますが、前方のカメラは不要なのでOFFにします。
LiDAR
hierarchyタブからVelodyneVLP16を探してプロパティを開きます。
割り当てられているスクリプトをOFFにします。
他にも止められそうなものはありそうですが、今回は一旦効果のありそうな機能だけにしておきます。
10~15fpsと少し改善したので走ってみます
最初よりは操作性が上がりましたが、やはり車線の微調整時に大きく曲がってしまうことがあるので改善が必要そうです。
実行ファイルにビルドしてみる
そもそも、Unityのデバッグ実行をしているのが悪いので実行ファイル形式にビルドしてみました。
通常通り、Files -> Build and settingsからビルドを実施しました。
ビルドできたので実行してみます。
フレームレートは20fps前後まで出るようになりました。
まとめ
やっぱりiGPU環境では開発には向かない。
強力なGPUは無いけれども、ちょっとAWSIMをマニュアルでもいいから操作して、どんな感じの物か触れてみたいというレベルであれば使えると思います。
感想
何をしても使えるレベルにならないと思っていましたが、意外にも工夫すればiGPUでも健闘することが知見として得られたのは良かったです。
Discussion