ProjectNorthStar を 6DoF 化してみる
もう他の記事でも紹介されているかもしれませんが自分のメモも兼ねてまとめておきます。
前回の記事で ProjectNorthStar を組み立てました。
ただし ProjectNorthStar で使われる LeapMotion は手の認識のみを行うため AR グラスを作ったからといって 6DoF 機能はありません。
つまり ProjectNorthStar だけでは AR のオブジェクトを現実空間に定位させることができないということですね。
でもそれだとできることに制限がありますし HoloLens みたいに空中に AR オブジェクトを固定したいなと。そこで SLAM が可能な RealSense T265 を組み合わせることで今回 ProjectNorthStar を 6DoF 化させてみました!
見た目はこんな感じ。上に乗っかっているのは RealSense。
作ったデモ
ProjectNorthStar と Realsense T265 を組み合わせて 6DoF + 手認識のデモ作ってみた〜
— これち (@Korechi_) 2019年3月8日
それなりにいけそうだけど、ブレが多少気になるなぁ#realsense #projectnorthstar pic.twitter.com/qW53eeNrsT
費用
- ProjectNorthStar
- 23,176円
- 内訳:9396(LeapMortion)+1480(ヘッドギア)+1080(ネジ)+2980*2(ディスプレイ)+5046(リフレクター)+547(HDMIケーブル)
- 23,176円
- realsense
- 25,035円
これを安いと見るか高いと見るかは人それぞれですが、自分はこれで SLAM 可能な AR グラスが自作できるのなら安いかなと思います。
それでは実際に Unity での実装手順を紹介します。
ただしその前に Intel RealSense SDK を PC にインストールしておきましょう。現状 Mac 等の OS には対応していないため Windows マシンにインストールします。(LeapMotion の Orion SDK が Windows のみサポートなのでどのみち Windows を使います)
SDK をインストールすると RealSense 用 Viewer が使えるようになるため、まずはそれで RealSense の自己位置がとれているか確認してみましょう。
REALSENSE つよつよだ pic.twitter.com/XiTf7Ps1Zc
— これち (@Korechi_) 2019年3月8日
ちょっと触ってみましたが、これだけでもすごい!
実装手順
とりあえず詳しい説明は省き、とりあえず 6DoF 化させたい!という人のために、必要最小限の工数で 6DoF 化するための手順を紹介します。
- realsense.unitypackage を Unity へインポート github.com
- LeapAR.unitypackage を Unity へインポート github.com
- LeapAR のシーンをベースに作業を進めるため
LeapMotion/Norrth Star/Scenes/NorthStar.scene
シーンを開き、別名として保存(test.scene とでもしておきます) - 次に realsense の自己位置を取得するため
RealSenseSDK2.0/Scenes/Samples/SLAM.scene
シーンを開き hierarchy にあるRsDevice
とPose
を Prefab 化 - 先ほど保存した test.scene を開き Prefab 化した
RsDevice
とPose
を hierarchy に配置 - ここの
Pose
オブジェクトの position と rotation は現実での LeapMotion と RealSense 間の相対位置に合うように調整 - 相対位置が良い感じになったら ARCameraRig を Pose オブジェクトの子オブジェクトに
- Pose オブジェクトの Inspector 内の RsPoseStreamTransform の Source に RsDevice オブジェクトをアタッチ
- 最後に適当なオブジェクト(今回は Cube)を目の前に表示されるように配置して実行
視界の目の間に Cube が表示され、移動すると Cube の見え方が変わるのが確認できるはずです!
Tips
RealSense は裏にねじ穴があるので、比較的折れ曲がりにくい紙を挟んで固定し、下をちょっとはみ出させればうまいこと LeapMotion の裏にさしこむことができます。(ネジは3M*5Bを使用)