11.5K Views
January 18, 23
スライド概要
XRミーティング 2023/01 登壇資料。
年末年始にlenovo Think Reality A3を借りることができたのでSnapdragon SpacesとMRTK3の組み合わせてどこまで動くかの検証を行った。
ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。
冬休みの宿題 Lenovo Think Reality A3で検証(MRTK3含) 2023/01 XRミーティング takabrz1 Takahiro Miyaura
Microsoft MVP for Mixed Reality 2018-2023 某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず)= XRは趣味です(貢献領域:Mixed Reality) 宮浦 恭弘 (Miyaura Takahiro) ◼ 大阪駆動開発(とHolomagicians)コミュニティに生息 ◼ HoloLens日本販売してからxR系技術に取組む ◼最近はMixed Reality Toolkit 3と戯れている。 ◼ 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura @takabrz1 ※よかったらこれを機にお知り合いになってください
本日の内容 冬休みに宿題もらったのでやった 年末年始はみんなお仕事は休み Lenovo Think Reality A3を貸してくれた 2023/01/18 Copyright © 2023 Takahiro Miyaura 3
Lenovo Think Reality A3とは 2023/01/18 Copyright © 2023 Takahiro Miyaura 4
Lenovoの手がけるARグラス いわゆる投影部分が眼鏡型 Key Features: •Snapdragon XR-1 SmartView •Lightweight AR Glasses – <130g •Binocular 1080p resolution displays •8MP RGB Camera •Dual fish-eye cameras for 6DOF tracking •Integrated speakers and microphones •USB Type C, USB 3.1 •DisplayPort v1.4 compliant •Lenovo integrated solution support 同じような投影部分が眼鏡Nreal Light/Air ○ スマホや演算ユニットが別 スマホはMotorola製(開発キットに付属) Snapdragon SpacesというAR開発プラットフォーム対応機器という位置づけ 2023/01/18 Copyright © 2023 Takahiro Miyaura 5
Snapdragon Spaces 名前から想像される通りのクアルコムが手掛けるサービス マートフォン接続のARグラスのデバイス設計、ARグラス向け3Dアプリケーション 開発・商用化を支援するプラットフォーム 基本機能 ○ Positional Tracking 操作系 ○ Gaze Controller 環境(空間)認識 ○ Plane Detection ○ Local Spatial Anchors ○ Companion Controller ○ Image Tracking ○ Hit Testing ○ Hand Tracking ○ 6DOFによる自己位置推定 ○ 現実空間との位置合わせ ○ 現実空間とのオクルージョン等 ○ 頭の向きでフォーカスや決定 ○ スマホを3DOFコントローラ化 ○ 平面検知 ○ 画像マーカー ○ ハンドトラッキング OpenXR準拠のランタイムと様々なOpenXR拡張機能として提供されている 2023/01/18 Copyright © 2023 Takahiro Miyaura 6
某デバイスとの比較 ちょっと違うんですよね。。。 2023/01/18 Copyright © 2023 Takahiro Miyaura 7
装着感(個人的) 同じ形状のNreal Light/Airと比べるとThink Reality A3の方が。。。いいです。 通常の眼鏡と同程度 後頭部まで しっかりホールド 通常の眼鏡と同程度 しなりがあり しっかりとしたホールド感 Think Reality A3の方がしっかりと頭にホールドされるのでながら作業に最適 一方、Nrealの方は力が弱くずれやすい 2023/01/18 Copyright © 2023 Takahiro Miyaura 8
操作系 2023/01/18 Copyright © 2023 Takahiro Miyaura 9
Think Reality A3の操作系 Companion Controller or ハンドトラッキング 【 Companion Controller】 ○ スマホのアプリとして起動する ○ スマホの傾き(3DOF)でカーソルを制御 ○ スマホの画面をタップすることで決定 ○ アプリ内でのメニュー表示用のボタンもある ○ なお、オレオレコントローラも開発可能 【Hand Tracking】 ○ センサーで手の動きをトラッキング ○ いくつかのジェスチャーでオブジェクトを操作 ○ Ray(手から光線)による遠隔操作も可能 Pinch Point Grab Open-Hand こういう系に慣れていないならスマホコントローラはいいかも 2023/01/18 Copyright © 2023 Takahiro Miyaura 10
実際の映像 2023/01/18 Copyright © 2023 Takahiro Miyaura 11
Hand Trackingのサンプル 【カクツキはMiraCast用アプリが悪い!】 ○ 物体をつかむ動作が「OK」ジェスチャーなのが独特 ○ 人差し指だけ伸ばして親指と人差し指でつまむジェスチャーが多い。 学習モデルなどがまだ未熟かな。。。 ○ ハンドトラッキングの精度は良いが遅延が激しくある ○ 他の指を立てた状態でないとつまむ動作を推定できない? 2023/01/18 Copyright © 2023 Takahiro Miyaura 12
大事な検証作業 Mixed Reality Toolkit 3でどの程度使えるのか実験 2023/01/18 Copyright © 2023 Takahiro Miyaura 13
ご参考 - Mixed Reality Toolkit とは Unity向けのMicrosoft公式のOSSライブラリ Holotoolkit HoloLens向け ○Unity向け ○クロスプラットフォーム ○最新バージョンはV2.8.2 ✓基本コンポーネント ✓共通のインタラクション ✓UIコントロール ※Unreal向けのMRTKもあります ※実はBabylon.js版もあります ※Magic Leap 2拡張版もあります 2023/01/18 Mixed Reality Toolkit Windows Mixed Reality Devices対応 Mixed Reality Toolkit V2 HoloLens 1/2,VR Devices,Mobile AR… Mixed Reality Toolkit 3 New!!! Copyright © 2023 Takahiro Miyaura 14
きっかけ Qualcomm Snapdragon サミットで ○MRTK3のプロジェクトチームが登壇 ○Think Reality A3でデモ オンライン配信はMRTK3のみでしたが 今は全セッションアーカイブ公開されてます。 https://www.youtube.com/watch?v=V1d_FRnU70g 2023/01/18 Copyright © 2023 Takahiro Miyaura 15
きっかけ MRコンテンツのクロスプラットフォーム開発をアピール ○MRTK3のUX部品や仕組み ○手乗り文鳥アプリ? 2023/01/18 Copyright © 2023 Takahiro Miyaura 16
やってみる 2023/01/18 Copyright © 2023 Takahiro Miyaura 17
Hand TrackingとGaze Pointer Trackingは可能ですが、現時点ではこのドキュメントの範囲外です。 仮想キーボードやウェブブラウザを使用するコンポーネントは、現時点ではサポートされておらず、不安定な動作になる可能性があるため、避けてください。 公式に手順があります Companion Controllerでの手順 ○このチュートリアルは、現在、Snapdragon Spaces コントローラ 入力にのみ対応 ○Hand TrackingとGaze Pointer Trackingは可能 (現時点ではこのドキュメントの範囲外) ○ 仮想キーボードやウェブブラウザを使用するコンポーネントは、現 時点ではサポートされておらず、不安定な動作になる可能性がある ため、避けてください。 ※Unreal向けのMRTKもあります ※実はBabylon.js版もあります ※Magic Leap 2拡張版もあります 2023/01/18 [MRTK3 Unity Setup – snapdragon spaces docs] https://docs.spaces.qualcomm.com/unity/samples/ preview/MRTK3SampleWinOnly.html Copyright © 2023 Takahiro Miyaura 18
ポイント MRTK Camera Rigを含めたいくつかの設定変更が必要 1. 2. 3. 4. 5. 2023/01/18 Snapdragon Spaces & Sampleインポート MRTK XR Rigの変更 Companion ControllerのInput Action追加 Device Pointerの作成(※サンプルから追加) MRTK3の設定変更 Copyright © 2023 Takahiro Miyaura 19
ポイント 1. Snapdragon Spaces & Sampleインポート モジュールはダウンロードサイトから(v 0.9.0) https://spaces.qualcomm.com/sdk/ D:. │ NOTICE.txt │ README.txt │ SnapdragonSpacesServices_0_9_0.apk │ ├─Custom Controller Package │ Controller_Android_Project_0_9_0.zip │ これをインポート └─Unity Package │ SnapdragonSpaces_Package_0_9_0.tgz │ SnapdragonSpaces_Unity_Samples_0_9_0.apk │ 後半で使う └─Hand Tracking QCHT_Core_Package_3_2_5.tgz QCHT_Interactions_Package_3_4_2.tgz QCHT_Interaction_Samples_0_9_0.apk 2023/01/18 tgz指定で追加 サンプルのインポート Copyright © 2023 Takahiro Miyaura 20
ポイント 2. MRTK XR Rigの変更 MRTK XR RigをSnapdragon Spaces用に変更 1.Controllerの無効化 Companion Controllerを利用するために必要 ①Controllerの無効化 ○MRTK RightHand Controller ○MRTK LeftHand Controller ○MRTK Gaze Controller 2.Camera Tracking修正 ②Camera Tracking修正 2023/01/18 ○Tracked Pose Driverの無効化 ○AR Pose Driverの追加 ○AR Camera Backgroundの追加 ○AR Camera Managerの追加 Copyright © 2023 Takahiro Miyaura 21
ポイント 3. Companion ControllerのInput Action追加 XRI(XR Interaction Toolkit)のAction追加 1.MRTK XR Rig内の以下のコンポーネントに追加 ○Input Action Managerコンポーネント ○Action Assets Input Action 追加 2023/01/18 ○Assets/Samples/Snapdragon Spaces/0.9.0/Core Samples /Shared Assets/Input Actions/Input Actions.inputactions Copyright © 2023 Takahiro Miyaura 22
ポイント 4. Device Pointerの作成(※サンプルから追加) Device Pointerの追加 1.Hierarchy内に以下のPrefabを追加 ○Device Pointer ○Assets/Samples/Snapdragon Spaces/0.9.0/Core Samples /Shared Assets/Prefabs/Interaction/Device Pointer Device Pointer追加 2023/01/18 Copyright © 2023 Takahiro Miyaura 23
ポイント 5. MRTK3の設定変更 Device Pointerを利用するための設定 1.MRTK3の設定を変更(以下のチェックを外す) ○MRTK Hands Aggregator Subsystem ○Subsystem for Hand Synthesis ○メニューから[Edit]-[Project Settings]を開く 2023/01/18 Copyright © 2023 Takahiro Miyaura 24
Hand TrackingとGaze Pointer Trackingは可能ですが、現時点ではこのドキュメントの範囲外です。 仮想キーボードやウェブブラウザを使用するコンポーネントは、現時点ではサポートされておらず、不安定な動作になる可能性があるため、避けてください。 手順整理しています。 公式のチュートリアルを日本語化したような感じ ○公式の手順を使って空シーンの作成 ○MRTK3のボタンを配置して動かす [Snapdragon Spaces(Think Reality A3)向けMRTK3 の開発環境と空シーンを構築する] https://zenn.dev/miyaura/articles/60eb4d43879df4 2023/01/18 Copyright © 2023 Takahiro Miyaura 25
公式手順でMRTK3のサンプルを動かす 【カクツキはMiraCast用アプリが悪い!】 ○ 映像ではわかりにくいんですが時々映り込んでいるスマホで操作 ○ 一応アプリとして動作はする 利用者によってはジェスチャーよりもこっちの操作がいいかも 2023/01/18 Copyright © 2023 Takahiro Miyaura 26
手を無理やりコントローラにして鑑賞 【カクツキはMiraCast用アプリが悪い!】 ○ Snapdragon Spacesの試験機能に1つ ○ ハンドトラッキングの動きをモーションコントローラ扱いにする魔改造設定 ○ お、おれの手がモーションコントローラ! モーションコントローラとして認識させるとライブラリの操作を受け付けてくれる。 2023/01/18 Copyright © 2023 Takahiro Miyaura 27
Snapdragon Spaceのハンドトラッキングだと 【カクツキはMiraCast用アプリが悪い!】 ○ ジェスチャーは認識するけど操作はできない ○ Hand TrackingのアクションがMRTK側のライブラリに伝達されない 2023/01/18 Copyright © 2023 Takahiro Miyaura 28
返却してからもしかしたらに気づいた。 ここからは実機がないから想像です。。。 正しいと思われるハンドトラッキングの手段 2023/01/18 Copyright © 2023 Takahiro Miyaura 29
MRTK3で Snapdragon SpacesのHand Tracking使う 実機未検証! SnapdragonのHand Tracking拡張QCHTライブラリを使う 1. 2. 3. 4. 5. 2023/01/18 QCHT パッケージ(2種)のインポート QCHT用のInput Action作成と追加 QCHT Manager追加 MRTK XR Rigの変更 MRTK3の設定変更 Copyright © 2023 Takahiro Miyaura 30
MRTK3で Snapdragon SpacesのHand Tracking使う 実機未検証! 1. QCHT パッケージ(2種)のインポート モジュールはダウンロードサイトから(v 0.9.0) https://spaces.qualcomm.com/sdk/ D:. │ NOTICE.txt │ README.txt │ SnapdragonSpacesServices_0_9_0.apk │ ├─Custom Controller Package │ Controller_Android_Project_0_9_0.zip │ これをインポート └─Unity Package │ SnapdragonSpaces_Package_0_9_0.tgz │ SnapdragonSpaces_Unity_Samples_0_9_0.apk │ これをインポート └─Hand Tracking QCHT_Core_Package_3_2_5.tgz QCHT_Interactions_Package_3_4_2.tgz QCHT_Interaction_Samples_0_9_0.apk 2023/01/18 tgz指定で追加 Copyright © 2023 Takahiro Miyaura 31
MRTK3で Snapdragon SpacesのHand Tracking使う 実機未検証! 2. QCHT用のInput Action作成と追加 MRTK3のInput Actionをベースに作る 1.Actionに割り当てるBindingをQCHT用で作成 ○QCHT用のものは「~QCHT~」で命名 2.Input Action Managerに追加 ○HMD, GazeにはOpenXR系を設定 2023/01/18 Copyright © 2023 Takahiro Miyaura 32
MRTK3で Snapdragon SpacesのHand Tracking使う 実機未検証! 3. QCHT Manager追加 ハントトラッキングの管理機能 1.Hierarchyで右クリックメニューから追加可能 ○追加時に[Use XR Controller]にチェック Hierarchyで 右クリックメニュー表示 2023/01/18 チェック Copyright © 2023 Takahiro Miyaura 33
MRTK3で Snapdragon SpacesのHand Tracking使う 実機未検証! 4. MRTK XR Rigの変更 MRTK XR RigをSnapdragon Spaces用に変更 ①Managerの追加 1.Managerの追加 Camera Offsetに追加 ○Spaces Hand Manager ②Camera Tracking修正 2023/01/18 2.Camera Tracking修正 ○Tracked Pose Driverの無効化 ○AR Pose Driverの追加 ○AR Camera Backgroundの追加 ○AR Camera Managerの追加 Copyright © 2023 Takahiro Miyaura 34
MRTK3で Snapdragon SpacesのHand Tracking使う 実機未検証! 5. MRTK3の設定変更 先ほど作成したInput Actionを設定 各情報にActionを割り当てる チェックを入れる チェックを入れる Snapdragon Spacesのデバック時のチートシートでMRTK3の手が動く (なのでデプロイすると正常に動くかも) 2023/01/18 Copyright © 2023 Takahiro Miyaura 35
気づき(まとめ) 2023/01/18 Copyright © 2023 Takahiro Miyaura 36
気づき Snapdragon Spaceに関してはこれから印象を受けた ✓ SDKが0.9.0でまだ物足りない感が強い ✓ ハンドトラッキングが遅延してるとかは致命的 ✓ 成熟には時間がかかりそう ✓ デバイスそのものが現時点ではエンタープライズ用 ✓ 法人格しか買えない → もうすぐ個人購入が可能に(40万弱) ✓ エンジニアが触ると発生するフィードバックなどが少ない ✓ ノウハウもなかなかたまらない? 眼鏡形状で装着感などを考えると業務用途ではよさそう 2023/01/18 Copyright © 2023 Takahiro Miyaura 37
最後に! Osaka MR Hackathon 2023 チームビルド前夜祭! 2/17の夜、某所にて Lenovo Think Reality A3が試せる 体験イベントを開催予定です! 詳細は後日! 大阪駆動開発コミュニティ(https://connpass.com/user/osaka-driven-dev/)をチェックしてね。 2023/01/18 Copyright © 2023 Takahiro Miyaura 38
大阪駆動開発 関西を中心に、IT系のおもしろそうなことを 楽しんでやるコミュニティ 2023/01/18Copyright © 2023 Takahiro Miyaura 39