HoloLens2にてROS2を使う際の手順について記述します。
はじめに
これまでにHoloLens, HoloLens2にてROS1を利用するためには、ros-sharpを用いることが一般的だったと思います。
ROS2では、ros_msft_mrtkを利用することでHoloLens2との通信ができるようなので試してみようと思います。
(2021年12月18日現在、pre-release版0.0.1のみリリースされているのでその部分は注意が必要です。)
環境
実行環境
- HoloLens2
開発環境・使用ツール
- Unity2020.3.3f1
- Mixed Reality Feature Tool
- Visual Studio 2019
事前準備
以下をダウンロード
-
Mixed Reality Feature Tool
(https://www.microsoft.com/en-us/download/details.aspx?id=102778) -
com.microsoft.ros_mrtk-0.0.1.tgz
(https://github.com/ms-iot/ros_msft_mrtk/releases/tag/0.0.1) -
com.microsoft.ros_mrtk_native-0.0.1.tgz
(https://github.com/ms-iot/ros_msft_mrtk_native/releases/tag/0.0.1) -
NuGetForUnity.3.0.2.unitypackage
(https://github.com/GlitchEnzo/NuGetForUnity/releases)
手順
-
Unityプロジェクトの作成
Unityで3Dにて新規プロジェクトを作成します。
この時ファイルパスが長すぎるとWLTのimport時にエラーが発生するため、短くすることをお勧めします。 -
Mixed Reality Feature Toolの利用
作成したプロジェクトにMixed Reality Feature Toolを使用して以下をimportします。
- Azure Spatial Anchors SDK Core
- Azure Spatial Anchors SDK for iOS
- Azure Spatial Anchors SDK for Windows
- Mixed Reality Toolkit Extensions
- Mixed Reality Toolkit Foundation
- Mixed Reality Toolkit Standard Assets
- Mixed Reality Toolkit Tools
- Mixed Reality OpenXR Plugin
- Microsoft Spatializer
- WLT Core

-
プラグイン設定
Unity内でプロジェクトのプOpenXR等のラグイン設定を以下のように行います。



Desktop, WindowsそれぞれでOpenXRを有効にします。


これで、プラグイン設定は終了です。
4. Nugetによるパッケージの追加
Nugetを利用してパッケージの追加を行います。

![Nuget_settings.png]](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F265916%2F2f5640c5-c01f-aa14-7352-71f3dd64b48e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=a15a7b8d7b1be045ce22595add65ccff)

5. **ROS2パッケージの追加** UnityのPackage Managerを利用してROS2関連のパッケージを追加します。
Package Managerを開き、Add package from tarballを選択します。


6. **ビルドとプロジェクトの設定** まず、ビルド設定を行います。

次に、プロジェクトの設定を行います。


- InternetClient
- InternetClientServer
- PrivateNetworkClientServer
- WebCam
- Microphone
- SpatialPerception
これで設定は終了です。
ここまでくれば、ROS2が利用可能になっていると思います。
次回はこの内容を基に、実際にHoloLens2とのROS2 Topicのやり取りを行ってみようと思います。
参考・お借りしたもの