目次
ROSと通信するためのUnityアプリをMeta Quest上で動作させるためのパッケージ.
(上に戻る)
ここで,本レポジトリのセットアップ方法について説明します.
(上に戻る)
まず,以下の環境を整えてから,次のインストール段階に進んでください.
ROS PC(ROSを実行するマシン)
| System | Version |
|---|---|
| Ubuntu | 22.04 (Noble Numbat) |
| ROS | Humble Hawksbill |
| Python | 3.10~ |
Unityアプリビルド用(Meta Quest用Unityアプリをビルドする環境)
| System | Version |
|---|---|
| Windows 11 / macOS / Linux | 任意(Unity が動作する環境であれば可) |
(上に戻る)
Unity HubはどのOSでも使用できますが,ここではLinux(Ubuntu)にUnity Hubをインストールする方法を紹介します. Unity HubをLinuxにインストールするを参考にUbuntuにUnity Hubをインストールします.
-
公開鍵を追加します.
$ wget -qO - https://hub.unity3d.com/linux/keys/public | gpg --dearmor | sudo tee /usr/share/keyrings/Unity_Technologies_ApS.gpg > /dev/null
-
Unity Hub のリポジトリ情報を
/etc/apt/sources.list.dに追加します.$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/Unity_Technologies_ApS.gpg] https://hub.unity3d.com/linux/repos/deb stable main" > /etc/apt/sources.list.d/unityhub.list' -
Unity Hubをインストールします.
$ sudo apt update $ sudo apt-get install unityhub
(上に戻る)
-
任意のディレクトリに本レポジトリをcloneします.
$ git clone https://github.com/TeamSOBITS/meta_quest_teleoperation.git
-
Unity Hubの
Projects -> ADD -> Add project from diskで本レポジトリ(UnityProject)を選択します.この時点で本レポジトリに合わせたバージョンのUnity Editorがインストールされます.Android Build Supportにチェックを入れ,インストールします. -
Unityが起動できたら,
Edit -> Project SettingsでXR Plugin Managementへ移動し,すべての項目でOpenXRのチェックを外し,Oculusにチェックを入れます. -
XR Plugin Management -> OculusのTarget Devicesで使用するMeta Questのバージョンを指定します.
(上に戻る)
-
ROSの
srcフォルダに移動します.$ cd ~/colcon_ws/src/
-
ROS TCP Endpointをcloneします.
$ git clone https://github.com/TeamSOBITS/ros_tcp_endpoint.git
-
パッケージをコンパイルします.
$ cd ~/colcon_ws/ $ colcon build --symlink-install $ source ~/colcon_ws/install/setup.sh
(上に戻る)
meta_quest_teleoperationのセットアップが完了したら,ROSとUnityの通信を確認し,Meta Questデバイスへアプリをビルドします.
(上に戻る)
ROS側でTCP Endpointを起動します.ros_ipにPCのIPを指定してください.
$ ros2 launch ros_tcp_endpoint endpoint.launch.py ros_ip:=192.168.XXX.XXX次に,Unity側でProjectウィンドウからAssets -> Scenesへ移動し,TeleopSceneを選択します.HierarchyウィンドウでROSTCPConnectorを選択し,InspectorウィンドウのROS ConnectionスクリプトにあるROS IP AddressをROSのIPと同じ値を設定します.
Unityのシーン内に表示されている通信の矢印が青くなったら成功です.
(上に戻る)
通信が確認できたらUnityアプリをMeta Questへビルドします.
USBケーブルでPCとMeta Questを接続し,Meta Quest内に表示される共有を許可します.
UnityのFile -> Build Profiles -> Android -> Run DeviceにMeta Questが表示されるので選択します.
Build and Runをクリックし,アプリをビルドします.
(上に戻る)
Meta Questのアプリ一覧で「提供元不明のアプリ」にUnityアプリが表示されるのでアプリをクリックし,同時にROS TCP Endpointを起動します. これで,Meta Questのボタン状態(sensor_msgs/Joy型),位置姿勢情報(tf2_msgs/TFMessage型)をROS側に送信することが可能です. アプリ実行後のIP変更はMeta Questコントローラのメニューボタンを押し,IPを入力します.
(上に戻る)
- 疑似逆運動学の追加
- Meta Questでの逆運動学の追加
現時点のバッグや新規機能の依頼を確認するためにIssueページ をご覧ください.
(上に戻る)
(上に戻る)