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します。 プラグイン設定
Unity内でプロジェクトのプOpenXR等のラグイン設定を以下のように行います。
表示される警告ウインドウ → 「Yes」
Unity再起動後にMRTK Project Configuratorの設定
Show XR Plug-in Management Settingsを選択
Desktop, WindowsそれぞれでOpenXRを有効にします。
MRTK Project Configuratorに戻り、Apply Settingsを選択後、Nextを押下します。
Audio spatializerの設定にて「Microsoft Spatializer」を選択し、Applyを押下します。
これで、プラグイン設定は終了です。
4. Nugetによるパッケージの追加
Nugetを利用してパッケージの追加を行います。
ダウンロードしてきたnugetのunitypackageをimportします。
import後に追加されたウインドウからManage Nuget Packagesを選択し、「Microsoft.MixedReality.QR
」をimportします。
5. ROS2パッケージの追加
UnityのPackage Managerを利用してROS2関連のパッケージを追加します。
Package Managerを開き、Add package from tarballを選択します。
事前準備でダウンロードしていた2つのTGZ形式ファイルをimportします。
Projectビューにて、Packages > ROS2 and ROS2.net Native Components..内にあるlink.xmlをAssets直下にドラッグ&ドロップします。
6. ビルドとプロジェクトの設定
まず、ビルド設定を行います。
Build Settingsを開いて、Universal Windows Platformを選択後Switch Plaformを押下します。
次に、プロジェクトの設定を行います。
Project Settingsを開いて、Player > Capabilities の項目にて以下を有効にします。
- InternetClient
- InternetClientServer
- PrivateNetworkClientServer
- WebCam
- Microphone
- SpatialPerception
これで設定は終了です。
ここまでくれば、ROS2が利用可能になっていると思います。
次回はこの内容を基に、実際にHoloLens2とのROS2 Topicのやり取りを行ってみようと思います。