2

大学の最終学年のプロジェクトとして、Rviz for Android というアプリケーションを拡張しています。これは、ROS (ロボット オペレーティング システム) を使用して、ロボットからの情報を表示する Android タブレット用アプリケーションです。このプロジェクトの主な目的は、本質的に従来の拡張現実とは反対のものです。何かデジタルを現実世界のビューに投影するのではなく、タブレットのカメラからの現実世界のビューをデジタル ビューに投影しています。世界 (抽象的な地図)。アプリケーションの意図した目的は、タブレットが動き回ると、現実世界のビューがマップ上で移動することです。

画面上のカメラ フィードのビューを移動するために、タブレットの加速度計を使用して移動距離を計算しています。これは本質的に欠陥があり、そのため、動きは正確とは言えません (これ自体はそれほど重要ではありません。私のレポートの素晴らしい資料です)。カメラフィードの動きを改善するために、マーカーが検出された場合にビューがマーカーの位置にジャンプするように、現実世界の事前定義された位置に配置されたマーカーを使用したいと考えています。残念ながら、マーカー検出 (Qualcomm SDK など) を処理する SDK は数多くありますが、それらはすべて適切な拡張現実 (つまり、マーカーの上に何かを重ねる) を対象としています。

これまでのところ、いくらか役立つ可能性があると特定したフレームワークは、OpenCV (非常に有望に見えますが、C++ の経験はあまりありません) と AndAR の 2 つだけです。変更することができます。ここでは、これらのフレームワークのいずれかが適切でしょうか? ソリューションを実装できる他の方法はありますか?

少しでも役に立てば、これは私が拡張しているアプリケーションのソース コードでありこれは Android 上の ROS のソース コードです(カメラを使用するコードは「android_gingerbread_mr1」フォルダーにあります。リンクを提供することもできます)。私の Rviz への拡張機能も役に立ちますか? どうもありがとうございました!

編集: 現時点で私が抱えている主な問題は、カメラにアクセスする 2 つの別個のクラス (OpenCV の JavaCameraView と ROS の CameraPreviewView) を統合しようとすることです。両方とも同時にアクティブにする必要がありますが、実行することは異なります。私はそれらを組み合わせることができると確信しています。前述のように、必要に応じて問題のクラスにリンク/アップロードします。

4

2 に答える 2

2

OpenCV ドキュメントのテンプレート マッチングに関するセクションをご覧ください。このスレッドも役立つかもしれません。

于 2013-03-04T19:45:20.923 に答える
1

だから私は自分の問題の解決策を見つけることができました.それは私が思っていたものとはまったく異なります. すべての画像処理はコンピューターにオフロードされ、ROS ノードによって実行されます。このノードは、 ArUcoというライブラリを使用してマーカーを検出します。マーカーは、ライブラリで提供される別のプログラムによって生成され、それぞれに固有の ID があります。

マーカーが検出されると、マーカーの ID を含む ROS メッセージが発行されます。タブレット上のアプリはメッセージを受信し、受信したマーカーに従って現実世界のビューを移動します。画像のレンダリングと転送を高速化するために低画質を使用する必要があるため、少し信頼性に欠けますが、かなりうまく機能します。そして、それが私の解決策です!プロジェクトが完全に終了したら、ソース コードをここに投稿するかもしれません。

于 2013-03-08T17:00:02.563 に答える