LoginSignup
10

Mac+Unity+Pythonで箱庭ロボットを強化学習できるようにするための手順書

Last updated at Posted at 2023-04-22

本記事は、Mac のパソコン上で、箱庭ロボットの強化学習をできるようにするための手順書です。

ベースとなる考え方/アーキテクチャやインストールの流れは、こちらの記事に記載されています。

ただ、TOPPERS/箱庭は、クロスプラットフォーム対応しておりますので、ご使用の OS によって若干インストール手順が変わります。ですので、Mac の方向けの手順書をこちらで整理することにしました。

事前準備

事前にUnityおよび Blender のインストールをお願いします!

インストール手順

本環境を利用するための最初の一歩は、hakoniwa-base の AI ブランチをクローンすることです。

git clone -b ai --recursive https://github.com/toppers/hakoniwa-base.git

Python 実行環境のインストール

強化学習用の Python プログラムは、ホスト上で直接実行しますので、以下の手順で必要なツール類をインストールします。

インストールを実行するディレクトリは、hakoniwa-base直下です。

cd hakoniwa-base

Intel系Mac版の場合は、以下のコマンドでインストール実行します。

bash native/template/runtime/ai/mac/install.bash intel

Arm系Mac版の場合は、以下のコマンドでインストール実行します。

bash native/template/runtime/ai/mac/install.bash arm

インストール途中でパスワード聞かれますが、/usr/local/lib/hakoniwa/usr/local/bin/hakoniwaに各種ツール類を配置するためです。

Unity環境のセットアップ

次に、以下のリポジトリを hakoniwa-base と同じディレクトリ階層でクローンします。

現在、hakoniwa-base 直下にいる場合は、以下のコマンドで1個上のディレクトリに移動してこうなっていればOKです。

$ cd ..
$ ls
hakoniwa-base

この状態で、以下のようにクローンします。

git clone -b unity-asset --recursive https://github.com/toppers/hakoniwa-ros2sim.git

クローン後、こうなっていればOKです。

$ ls
hakoniwa-base hakoniwa-ros2sim

hakoniwa-ros2sim ディレクトリ直下で docker コンテナを起動します。

cd hakoniwa-ros2sim
bash docker/run.bash <port>

port には,ネットワークポート名(例:"en0")を引数に指定する必要がありまます。 ポート名は ifconfig コマンド等で確認できます.

次に、以下の手順で必要なUnityモデルなどをインストールします。

bash hako-install.bash cpp

Unity環境の起動

いよいよ、Unityを起動していきます。

まずは、Unity Hub を起動して、「開く」ボタンをクリックしてください。

image.png

hakoniwa-ros2sim をクローンしたディレクトリ内のhakoniwa-ros2sim\ros2\unity\tb3を選択して、「開く」ボタンをクリックしてください(数分かかります...)。

image.png

  • 補足
  • この際、Unityバージョンが異なる旨のメッセージが出る場合があります。異なるバージョンであってもUnityがいい感じで変換してくれますので、問題ありません。

起動すると以下の画面が現れます。

image.png

次に、画面左下にある「プロジェクトビュー」の「Assets/Scenes/Transport」を選択し、画面下にある「Shm_Configurator」というシーンをダブルクリックします。

この状態で、以下のように「Generate」を実行してください。

スクリーンショット 2023-02-05 19.34.00.png

その後、もう一度、以下のコマンドを実行してください。

bash hako-install.bash cpp

強化学習の実行手順

解説長かったですが、強化学習の実行手順をご説明しましょう。

強化学習プログラムを編集する

強化学習プログラムは、先ほどクローンした hakoniwa-base の以下のファイルを直接編集します。

  • workspace/dev/ai/ai_qtable.py
  • workspace/dev/ai/hako_robomodel_ev3.py

なお、プログラム編集環境は、VSCode がお薦めです。

左側のビューでディレクトリ構成を一覧で見れますし、下側にWSL2のターミナルを開くこともできちゃいます!

image.png

箱庭環境を起動する

以下のコマンドで箱庭環境を起動します。

bash native/template/runtime/ai/mac/run.bash

起動成功すると、以下のログが出力されます。

INFO: ACTIVATING HAKONIWA-CONDUCTOR
INFO: ACTIVATING :dev/ai/ai_qtable.py
create_channel: id=0 size=196

Unityのシミュレーションを開始する

Unityエディタの画面左下にある「プロジェクトビュー」の「Assets/Scenes/Transport」を選択すると、画面下に「Simulation」というシーンがありますので、これをダブルクリックしましょう。

image.png

以下のようにコースが表示されていれば成功です。

image.png

この状態で、Unityエディタの再生ボタンをクリックしましょう。

image.png

成功すると、以下のようにロボットが現れます。

image.png

この状態で、「開始」ボタンをクリックです!

image.png

成功するとロボットが動き出します。

なお、強化学習中に、終了状態になった場合は、強制リセットがかかり、最初から学習をやり直しますので、学習状況が見えて楽しいですよ。

トラブルシューティング

現時点(2023/04/22)では、特にありません。

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
10