Unityエディタで作成したシーンは、Unityアプリケーションにすることができます。 箱庭のUnityアプリケーション作成手順を以下の通りです。
- Unity の Editor/Project Settings/Quality でアプリケーションの設定をする
- Unity の Editor/Project Settings/Player でアプリケーションの設定をする
- Unity アプリケーションをビルドする
- 箱庭の各種設定ファイルをコピーする
- 箱庭のコンフィグファイルを設定する
事前に、Unityエディタの箱庭シーンから、箱庭のコンフィグファイルを Generate
してください。
Generateすると、plugin-srcs
直下に、以下のファイルが出力されます。
HakoniwaSimTime.json
LoginRobot.json
RosTopics.json
core_config.json
custom.json
hakoniwa_path.json
inside_assets.json
pdu_channel_connector.json
pdu_configs.json
pdu_readers.json
pdu_writers.json
reader_connector.json
rpc_methods.json
shm_methods.json
writer_connector.json
Quality の設定は、デフォルトですと、Ultra
になっています。
パソコンの性能が気になる方は、Very Low
だけ残して、その他は削除することをお勧めします。
Player の設定は、デフォルトですと、下図のようになっています。
以下の項目を変更しましょう。
- Fullscreen Mode
- Windowed に変更して、Width と Height をお好みの値にしてください。
- ここでは、1024x640 にします。
- Windowed に変更して、Width と Height をお好みの値にしてください。
- Resizable Window
- この項目をチェックすることで、Windowサイズを調整できるようになります。
File/Build Settings を開き、Add Open Scenes でアプリケーション化したいシーンを選択します。
その後、Build ボタンをクリックします。
下図のようにダイアログがポップアップされますので、ビルドした結果を格納するディレクトリ(今回は、HakoniwaAPL)を選択しましょう。
成功すると、下図のようにアプリケーションの実行ファイルが生成されます。
前提とする操作で Generate
した各種設定ファイル(jsonファイル)一式を、ビルドした結果を格納しているディレクトリにコピー配置しましょう。
次に、plugin-srcs
配下にある ros_types
ディレクトリを同様にコピー配置しましょう。
core_config.json
には、Generate
した時の IP アドレスが設定されています。
- core_ipaddr
- asset_ipaddr
これらのIPアドレスが変更されている場合は、手動で編集して再設定してください。
以下に、各項目のIPアドレス参照方法を示します。
core_ipaddr
は、箱庭コンダクタのサーバーのIPアドレスです。
Windows/WSL2環境の場合は、WSL2上のifconfig で確認できます(eth0)。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.25.195.216 netmask 255.255.240.0 broadcast 172.25.207.255
inet6 fe80::215:5dff:fea8:5cb6 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:a8:5c:b6 txqueuelen 1000 (イーサネット)
RX packets 7463 bytes 2070586 (2.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10227 bytes 7722090 (7.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
asset_ipaddr
は、Unity側のIPアドレスです。
Windows/WSL2環境の場合は、WSL2上で、以下のコマンドを実行することで確認できます。
cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.25.192.1
Unityアプリケーションの実行手順は、Unityエディタの場合とほぼ同じです。
最初に、箱庭コンダクタ側を起動します。
例:
$ bash docker/run.bash runtime
INFO: ACTIVATING HAKO-MASTER
INFO: ACTIVATING ASSET-PROXY
OPEN RECIEVER UDP PORT=172.25.195.216:54001
OPEN SENDER UDP PORT=172.25.195.216:54002
delta_msec = 20
max_delay_msec = 100
INFO: shmget() key=255 size=80768
Server Start: 172.25.195.216:50051
INFO: START block_signal-1
INFO: START train_slow_stop-1
INFO: SIMULATION READY!
次に、Unityアプリケーション(今回の場合はmodel.exe)をダブルクリックします。
起動すると、下図のようにポップアップが出ますが、許可してください。
成功するとこうなります。
この状態で、いつも通り、START
ボタンをクリックすることで、シミュレーションを実行することができます。
シミュレーションを終わる場合は、UnityアプリケーションのWindowを×ボタン押下し、箱庭コンダクタ側をCTRL+C
で停止させます。
※CTRL+C
完了後に、UnityのWindowが閉じます。