大学の最終学年のプロジェクトとして、Rviz for Android というアプリケーションを拡張しています。これは、ROS (ロボット オペレーティング システム) を使用して、ロボットからの情報を表示する Android タブレット用アプリケーションです。このプロジェクトの主な目的は、本質的に従来の拡張現実とは反対のものです。何かデジタルを現実世界のビューに投影するのではなく、タブレットのカメラからの現実世界のビューをデジタル ビューに投影しています。世界 (抽象的な地図)。アプリケーションの意図した目的は、タブレットが動き回ると、現実世界のビューがマップ上で移動することです。
画面上のカメラ フィードのビューを移動するために、タブレットの加速度計を使用して移動距離を計算しています。これは本質的に欠陥があり、そのため、動きは正確とは言えません (これ自体はそれほど重要ではありません。私のレポートの素晴らしい資料です)。カメラフィードの動きを改善するために、マーカーが検出された場合にビューがマーカーの位置にジャンプするように、現実世界の事前定義された位置に配置されたマーカーを使用したいと考えています。残念ながら、マーカー検出 (Qualcomm SDK など) を処理する SDK は数多くありますが、それらはすべて適切な拡張現実 (つまり、マーカーの上に何かを重ねる) を対象としています。
これまでのところ、いくらか役立つ可能性があると特定したフレームワークは、OpenCV (非常に有望に見えますが、C++ の経験はあまりありません) と AndAR の 2 つだけです。変更することができます。ここでは、これらのフレームワークのいずれかが適切でしょうか? ソリューションを実装できる他の方法はありますか?
少しでも役に立てば、これは私が拡張しているアプリケーションのソース コードであり、これは Android 上の ROS のソース コードです(カメラを使用するコードは「android_gingerbread_mr1」フォルダーにあります。リンクを提供することもできます)。私の Rviz への拡張機能も役に立ちますか? どうもありがとうございました!
編集: 現時点で私が抱えている主な問題は、カメラにアクセスする 2 つの別個のクラス (OpenCV の JavaCameraView と ROS の CameraPreviewView) を統合しようとすることです。両方とも同時にアクティブにする必要がありますが、実行することは異なります。私はそれらを組み合わせることができると確信しています。前述のように、必要に応じて問題のクラスにリンク/アップロードします。