問題診断と報告
この章では、AR アプリケーションを構築する際に発生する可能性のある問題、主な分析方法、および問題を報告するために収集すべき情報と連絡手段について説明します。
AR シナリオにおける問題分析の課題
AR シナリオでの問題分析には、いくつか固有の課題があります。
入力の不確実性
従来のアプリケーションでは、入力は通常、クリックやキーボードイベントのように決定的です。しかし AR では、入力が変化する物理環境に由来するため、分析が非常に難しくなります。AR アプリケーションは物理環境と組み合わせて使用する必要がありますが、開発やテスト時に物理環境で毎回同じ入力を得ることはできません。同じ経路を移動しても、カメラ画像や加速度計、ジャイロスコープなどのセンサーデータは変化する可能性があり、それが tracking 結果に大きく影響することがあります。
EasyAR には EIF ファイルの記録と再生機能があり、入力の不確実性をある程度緩和できます。しかしアルゴリズムの不確実性により、最終的な tracking 結果は本質的には不確実です。また、EIF 記録データのカバー範囲不足、照明変化、歩行者や車両による動的な遮蔽も、実際の使用時の tracking 品質に影響します。
アルゴリズムの不確実性
AR の中核アルゴリズムは、SLAM (simultaneous localization and mapping) などの視覚アルゴリズムです。これらのアルゴリズムは本質的に確率的であり、決定論的ではありません。
入力カメラ画像に十分な特徴がない場合、アルゴリズムは過去の位置と pose、および加速度計やジャイロスコープなどのセンサーデータを用いて予測することがあります。予測された位置と pose は時間とともに累積し、drift を生じます。各予測結果は、データ入力のタイミング、デバイス温度、CPU 周波数、ネットワーク転送速度などの外部要因に関連します。これらの要因は動的に変化するため、同じ入力でも複数回実行した結果が大きく異なることがあります。
さまざまな問題の分析方法
問題の種類によって、必要な分析方法は異なる場合があります。
ログ
黒画面、localization できない、正常に tracking できないなど、プログラムが正常に動作しない場合、最も基本的な方法はログを確認し、エラーメッセージがあるかどうかを調べることです。EasyAR が生成するログには特定のタグが使用され、識別しやすくなっています。
クラッシュ
プログラムがクラッシュすることがあります。クラッシュ箇所はライブラリコード内の場合も、プログラム自身のコード内の場合もあります。原因はプログラム自体の問題である可能性も、ライブラリ側の問題である可能性もあります。
ジッター、ジャンプなどの視覚異常
センサーデータの精度やアルゴリズム適応の理由により、localization のジッターやジャンプが発生することがあります。この場合は、異なるデバイスで問題の再現を試み、スクリーンショット、画面録画、EIF ファイルを取得してください。
プラットフォーム専用ガイド
問題診断と報告はプラットフォームと密接に関連しています。対象プラットフォームに応じて、次のガイドを参照して開発してください。
- ログ分析 for Android
- ログ分析 for iOS/macOS/visionOS
- ログ分析 for Windows
- クラッシュ分析 for Android
- クラッシュ分析 for iOS/macOS/visionOS
- クラッシュ分析 for Windows
- ジッター、ジャンプなどの視覚異常分析: スクリーンショットと画面録画
- ジッター、ジャンプなどの視覚異常分析: XR ヘッドセットの画面録画
- ジッター、ジャンプなどの視覚異常分析: EIF を使用した異常再現
- Unity 概要
- Unity UI メッセージ
- Unity 開発者モード
- Unity EED dump ファイル記録
- Unity issue report
- Unity Diagnostics Controller コンポーネントリファレンス