🎥

iOS LiDAR機能の誤差確認方法。パターン1

2021/05/25に公開

はじめに

簡単な確認方法として、三平方の定理を使いカメラから対象までの長さをa。
カメラから垂線を落とし床に着いた長さをc。
上記の床部分から、対象までの長さをb。とすると比較的簡単に検証の実測ができる。

一般手的にサシゴ、3,4,5と言われる暗記方法があるが、3と4は足し算な為、算数的に入れ替え可能である。(便宜上、5の二乗を例にしたが、確認用なので混乱注意)

これで現実側の実測方法が確立できたので次は、iOS側の実装を確認する。

iOS Sample Project Point Cloudの実装について

ソースコードは自分で読まないと意味がないので基本的にソース嫁(you should read source code)なのだが、自分用にコメントを残す。
私の知っているXcodeにはミニマップがなかったりしたがSwiftによる改善は、良くなってい。

  1. UIViewControllerにARSessionDelegateを継承しプライベートな関数Renderの宣言などを行なう。
  2. Metal実装に必要なデバイスの登録などを行う。
  3. super.viewWillAppearのアプリが表示を呼び出す直前の処理より、描画セッションの実行を行なう。
  4. Metal Tool Kit Viewを継承し、MTLViewを作成表示する。ここへコメントのような処理を記述しステレオビューなどへ活用予定。
  5. Metal描画実装部。
  6. GPUプログラム作法のデバイス登録などを行う。
  7. Metal描画実装部の塗り実装
  8. メタルシェーダーランゲージその1
  9. メタルシェーダーランゲージその2

凄く強力なXcodeのデバッガー

Vertex関数、Fragment関数、本サンプルでは実装していないがコンピュートカーネル関数のデバッグ機能が充実している。欲しい情報が普通に見れてデベロッパーの為のツールを実感する。

  1. 確認環境は、こんな感じ。

2.実機実行を行ない、真ん中下側のCapture GPU Frameのカメラアイコンを押してGPU用のデバッグを始める。

  1. キャプチャーが終わるとウィンドが遷移する。色々見れそう。

  2. Comamnd bufferを選択し詳細を確認する。

  3. 中央したのデバッグアイコンより、VertexシェーダーのDebugを行なうと、LiDARで取得したVertexのposition情報が取得できる。
    緑色の四角がそれぞれVertexのpositionとなっている。
    それぞれの単位などは、ソースコードで確認してほしい。

動画でドヤ


https://youtu.be/k3d5U2aM1ww

iOS LiDAR機能の誤差確認ライブ配信動画

Comming Soon

Discussion