A plugin for Unity to easily integrate assets into hakoniwa simulation environment.
- 箱庭ロボット開発キットで、ロボットを組み立てできます
- 本環境だけで、作成したロボットの動作確認ができます
- 動作確認済みのロボットを Python で強化学習できます
- OS
- Windows/WSL2
- net-tools がインストールされていること
- unzip がインストールされていること
- Windows/WSL2
- Unity Hub
- Unity Hub 3.4.1以降
- Unity
- Unity 2021.3.7f1以降
- hakoniwa-baseのインストール
- 詳細はこちらを参照
hakoniwa-base
をクローンします。
git clone -b ai --recursive https://github.com/toppers/hakoniwa-base.git
次に、以下のファイルを編集します。
hakoniwa-base/workspace/runtime/asset_def.txt
ファイルの内容を以下のように変更してください。
dev/ai/sample_robo.py:mqtt
変更差分:
-dev/ai/ai_qtable.py
+dev/ai/sample_robo.py:mqtt
本リポジトリを hakoniwa-base
と同じディレクトリ階層でクローンします。
git clone https://github.com/toppers/hakoniwa-unity-simasset-plugin.git
成功するとこうなります。
$ ls
hakoniwa-base
hakoniwa-unity-simasset-plugin
次に、必要な dll をインストールします。
cd hakoniwa-unity-simasset-plugin
bash install.bash
Unity Hub から、hakoniwa-unity-simasset-plugin/plugin-srcs
を開き、Unityを起動してください。
なお、Unity起動時にNewtonsoft.Json
がないというエラーが出る場合があります。
この場合は、以下の記事を参考にして、UnityのパッケージマネージャからNewtonsoft.Json
をインストールしてください。
https://qiita.com/sakano/items/6fa16af5ceab2617fc0f
Unity起動したら、Hakoniwa
シーンをダブルクリックしてください。
成功すると、こうなります。
まずは、ロボットの場所を確認しましょう。
ヒエラルキービューのRobot/SampleRobo
をダブルクリックすると、ロボットがこのように見えます。
この状態で、Window/Hakoniwa/Generate
をクリックすると、箱庭のコンフィグ情報が自動生成されます。
SampleRobo
をお好きな場所に移動させてください。
次に、hakoniwa-base
で以下のコマンドを実行します。
bash docker/run.bash runtime
ログ:
ASSET_DEF=asset_def.txt
INFO: ACTIVATING MOSQUITTO
[38052.770022]~DLT~ 9~INFO ~FIFO /tmp/dlt cannot be opened. Retrying later...
INFO: ACTIVATING HAKO-MASTER
OPEN RECIEVER UDP PORT=172.25.195.216:54001
OPEN SENDER UDP PORT=172.25.195.216:54002
mqtt_url=mqtt://172.25.195.216:1883
PUBLISHER Connecting to the MQTT server...
PUBLISHER CONNECTED to the MQTT server...
delta_msec = 20
max_delay_msec = 100
INFO: shmget() key=255 size=80768
Server Start: 172.25.195.216:50051
INFO: ACTIVATING :dev/ai/sample_robo.py
START TB3 TEST
LOADED: SampleRobo
INFO: SampleRobo create_lchannel: logical_id=3 real_id=0 size=48
subscribe:channel_id=0
subscribe:typename=Bool
subscribe:pdu_size=4
subscribe:channel_id=1
subscribe:typename=CompressedImage
subscribe:pdu_size=1229064
subscribe:channel_id=2
subscribe:typename=LaserScan
subscribe:pdu_size=3044
WAIT START:
その後、Unityのシミュレーションを開始します。
この状態で、START
ボタンを押下して、Sene
タブをみると、下図のようにロボットが動き出しているのが見えます。
シミュレーションを終わる時は、Unityのシミュレーションを停止し、hakoniwa-baseの実行コマンドを CTRL+C
で停止してください。
- Unityアセットパッケージ対応
- SHM対応
- Ubuntu対応
- Mac対応
- TB3モデル対応
- EV3モデル対応