[[Tutorial using ROS for ver.3]] * UNDER CONSTRUCTION [#e505a109] * UNDER CONSTRUCTION [#g20367bd] * UNDER CONSTRUCTION [#i3f16a16] * UNDER CONSTRUCTION [#u7e79004] * UNDER CONSTRUCTION [#v187cbbc] * UNDER CONSTRUCTION [#z41d367f] #contents * クラウドとVRを使用した HSR による Cleanupタスクの実行 [#hsr_cleanup] ** 前提条件 [#r10a7b3e] クラウドには[[Photon Realtime>https://www.photonengine.com/en-US/Realtime]]を使用しますが、インターネット接続時に以下のページのポート番号を使用します。~ ポートが使用可能かどうかを事前に確認してください。~ https://doc.photonengine.com/en-us/realtime/current/connection-and-authentication/tcp-and-udp-port-numbers ポートが使用できない場合クラウドは使用できませんが、ローカルネットワークにPhoton Serverを立てて代わりにすることは可能です。~ Photon ServerはWindowsにのみ対応しています。~ https://doc.photonengine.com/en-us/server/current/operations/requirements クラウドを使用する場合は、[[Photonアカウントの作成>#CreatePhotonAccount]]後、[[クラウド環境を構築>#PhotonCloud]]してください。~ ローカルサーバを使用する場合は、[[Photonアカウントの作成>#CreatePhotonAccount]]後、[[ローカルサーバ環境を構築>#PhotonServer]]してください。 ** Photonアカウントの作成 [#CreatePhotonAccount] まずPhotonのアカウントを作成する必要があります。~ 以下の手順で作成してください。 + [[Photonの公式サイト>https://www.photonengine.com/]]にアクセスします。 + ページ右上のサインインからPhotonのアカウントを作成します。 ** クラウド環境の構築 [#PhotonCloud] Photon Cloudのフリープランでは同時に20人まで接続可能です。詳細は次のページを参照してください。~ https://www.photonengine.com/en-US/Realtime/pricing クラウドに接続するには[[PUN(Photon Unity Networking)>https://www.photonengine.com/en-US/PUN]]を使用します。~ PUN環境構築手順は次の通りです。 + [[Photonの公式サイト>https://www.photonengine.com/]]にサインインします。 + アプリケーションIDを取得します。 ++ サインイン後のダッシュボードで、[新しくアプリを作成する]ボタンを押下します。 ++ [Photonの種別]を"Photon PUN"にし、アプリケーション名を設定します。(アプリケーション名は例えば"CleanupVR"など。) ++ [作成する]ボタンを押下します。 ++ ダッシュボードのアプリ一覧にPUNのアプリが追加されていることを確認し、"アプリケーションID"をメモします。~ (IDは36桁でクリックすると全桁表示されます。) #ref(PhotonAppId.png) + UnityプロジェクトにPUNアセットをインポートします。 ++ UnityでSIGVerse v3プロジェクトを開きます。 ++ Unity Asset Storeの[[PUN2のページ>https://assetstore.unity.com/packages/tools/network/pun-2-free-119922]]にアクセスします。 ++ [Open in Unity(Unityで開く)]ボタンを押下すると、Unityの[Asset Store]タブにPUN2が表示されるので、Importします。 ++ [PUN Wizzard]が開かれるので"AppId"の欄に前述の"アプリケーションID"を入力し、[Setup Project]ボタンを押下します。~ (AppIdは、[Window]-[Photon Unity Networking]-[PUN Wizzard]-[Locate PhotonServerSettings]からも設定できます。"App Id Realtime"にAppIdを設定します。) #ref(PunWizardCloud.png) 次のような[PhotonServerSettings]情報が開かれます。 #ref(PhotonServerSettingsForCloud.png) ** ローカルサーバ環境の構築 [#PhotonServer] ローカルネットワークにPhoton Serverを立てて、クラウドの代わりにすることもできます。 + [[Photonの公式サイト>https://www.photonengine.com/]]にサインインします。 + ライセンスファイルを取得します。 ++ [[Photon Serverのページ>https://www.photonengine.com/en-US/Server]]で[TRY FREE LICENSE]をクリックします。 ++ [DOWNLOAD FREE]をクリックしてライセンスファイルを取得します。~ (ライセンスファイルは"メールアドレス.Photon-vX.free.100-ccu.license"という名前です。) + Photon Serverをインストールします。 ++ [[Photon Serverのページ>https://www.photonengine.com/en-US/sdks#server-sdkserverserver]]にアクセスします。 ++ "Download SDK"の右のバージョン番号をクリックして、実行ファイルをダウンロードします。 ++ 実行ファイルをダウンロードし、インストールしたいディレクトリに展開します。 ++ 展開したフォルダの"Photon-OnPremise-Server-SDK_vxxxxxxx\deploy\bin_Win64"をエクスプローラで開きます。 ++ 前述のライセンスファイルを配置します。例えば次の図のようになります。 #ref(PhotonServerFolder.png) + Photon Serverを起動します。(''Windowsを再起動した後などはPhoton Serverも起動する必要があります。'') ++ インストールしたフォルダの中のPhotonControl.exeをダブルクリックしてアプリを起動します。~ (タスクバーにアプリアイコンが現れます) ++ WindowsタスクバーのPhotonControlアイコンをクリックして、[Game Server IP Config]で適切なサーバのIPアドレスを選択します。 #ref(PhotonServerIP.png) ++ [LoadBalancing (MyCloud)]-[Start as application]をクリックしてPhoton Serverを起動します。 ++ [LoadBalancing (MyCloud)]-[Run TestClient (LoadBalancing]をクリックすると動作確認が出来ます。 + UnityプロジェクトにPUNアセットをインポートします。 ++ UnityでSIGVerse v3プロジェクトを開きます。 ++ Unity Asset Storeの[[PUN2のページ>https://assetstore.unity.com/packages/tools/network/pun-2-free-119922]]にアクセスします。 ++ [Open in Unity(Unityで開く)]ボタンを押下すると、Unityの[Asset Store]タブにPUN2が表示されるので、Importします。 ++ [PUN Wizzard]が開かれるので、[Skip]ボタンを押下します。 #ref(PunWizardLocalServer.png) ++ [PhotonServerSettings]が開かれるので以下の設定を行います。 --- [User Name Server]のチェックを外す --- [Server]にPhoton ServerのIPアドレスを入力する --- [Port]に"5055"を入力する。 #ref(PhotonServerSettingsForLocalServer.png) * ロボット(ROS)側の実行手順 [#u9fec3a1] ** 起動手順 [#vafd19d3] まずUbuntu側を起動します。その後 Windows側を起動してください。 *** Ubuntu側の起動手順 [#qd09b4ab] 新しいターミナルを開き、以下のコマンドを実行します。 $ roslaunch sigverse_hsr_teleop_key teleop_key.launch rvizも起動する場合は、以下のコマンドを実行します。 $ roslaunch sigverse_hsr_teleop_key teleop_key_with_rviz.launch *** Windows側の起動手順 [#t197903c] [[こちら>Tutorial using ROS for ver.3#open_scene]]を参考に[Assets/SIGVerse/SampleScenes/HSR/HsrCleanupVR(.unity)]シーンを開始します。 ** 実行 [#v04386d7] Ubuntu側の teleop_key.launch のターミナル上でHSRをキー操作することが出来ます。 ロボットを操作して机の上にあるオブジェクトの中から1つを選んで把持し、人間が指さした場所に運んでください。 ※操作方法の詳細はターミナルの表示を確認してください。 終了する際は、Unity側を停止させてからROS側を終了してください。 Ubuntu #ref(HSRCleanupUbuntu.png) Windows #ref(HSRCleanupWindows.png) * 人間(VR)側の実行手順 [#g6353dd6] ** 起動手順 [#vafd19d3] *** Windows側の起動手順 [#t197903c] [[こちら>Tutorial using ROS for ver.3#open_scene]]を参考に[Assets/SIGVerse/SampleScenes/HSR/HsrCleanupVR(.unity)]シーンを開始します。 ** 実行 [#v04386d7] Oculus Touchの操作方法 - 中指トリガーを引くと、手が指差し姿勢になります。 - AまたはXボタンを押下すると、"Pick it up!"というメッセージをロボットに送信します。 - BまたはYボタンを押下すると、"Clean up!"というメッセージをロボットに送信します。 - 右スティックを Windows #ref(HSRCleanupWindows.png)