問題タブ [slam-algorithm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
point-clouds - 3D 点群を閉じるループ
単純なループ クロージング アルゴリズムを実装する方法を理解しようとしています。
ここに私の状況があります: x 個のポイント クラウドがあり、これらすべてのポイント クラウドのポーズを与える 3D のレジストレーション アルゴリズムを使用しました。
最終的に、私は多かれ少なかれマップの同じポイントにたどり着きますが、ドリフトがあります. 登録アルゴリズムを使用して、最初の点群に対して実際の最終的な点群がどこにあるかを確認できます。
それを知って、計算した「ドリフト」に基づいて、残りの点群を最初の点群までグローバルに最適化したいと思います。
私は翻訳に関して何かをすばやくコーディングすることができました。これは正しいようですが、フィーチャ (壁など) の精度/重ね合わせが低下するため、回転に問題があります。
私が見ているもの:g2o、GTSAM、ISAMライブラリ、すべて最適化しようとしていますが、それらを実装するには大きなオーバーヘッドがあるように感じます。それらはすべて複数の制約を必要とし、膨大な数のパラメータを設定するなど.
ループを自動的に検出するつもりはありません (後で行います)。これらの 2 つの点群はループを表し、それらの間の平行移動と回転 (私が計算する) のドリフトを (正しく) 伝播します。 2 つの間のすべての点群に。
前もって感謝します、
c++ - 点群と深度データから 3D マップを作成して保存する方法はありますか?
現在、SLAM アルゴリズムに取り組んでおり、深度と RGB データを点群の形で収集することに成功しました。ただし、Kinect 2.0 が受信したフレームのみを画面に表示するだけです。
これらのフレームを収集したいと思います。Kinect を動かしながら、より精巧なマップ (2D または 3D) を作成し、ローカリゼーションやマッピングに役立てたいと考えています。
マップの構築に関する私の考えは、多くの単一のスナップショットからパノラマ画像を作成するときと同じです。
誰でもそれを行うための手がかり、アイデア、またはアルゴリズムを持っていますか?
ios - Kudan - オブジェクトのオクルージョンに仮想ポイントを使用
Kudanでワールド系のゲームを開発したいです。だから私は2つのことをする必要があります:
- SLAM フレームワークから仮想ポイント マーカーを取得します。
- 仮想ポイントに基づいて、オブジェクト オクルージョン用のポリゴンを構築します。
2 の方法は知っていますが、フレームワークから仮想ポイントを取得する方法がわかりません。
フレームワークから仮想ポイントを取得する方法はありますか? または、これに対処する別の方法はありますか?
computer-vision - ビジュアルオドメトリフォーミュラに関するヘルプが必要
こんにちは、単眼カメラ用のリアルタイム ビジュアル オドメトリ システムを作成しようとしています。今私は 2d ベクトルで 3d ポイントの動きを記述する方程式を探しています。調査中に、非常に興味深い見た目の方程式に出くわしました。22ページを参照しています。基本的には、比較的小さな時間ステップを想定して単純化しています。しかし今、私は画像座標 x と y について苦労しています。x は x=(px-px0) や y=(py-py0) のように sth になると言われています。私が理解すると、p0は回転の中心です。しかし、これが事実である場合、フォーミュラー全体が私の場合には意味がありません。なぜなら、回転の中心についての事前の知識が必要になるからです. これは再び翻訳に基づいています。
だから、それを理解するのに役立つかもしれないし、それを行うためのより良い方法を教えてくれるかもしれません.
c++ - VS 2010 で PCL を使用する際の YOU_MIXED_DIFFERENT_NUMERIC_TY エラー
PCL と OPENCV を使用するオープンソースの C++ プログラムをコンパイルしています。問題は、異なる Eigen オブジェクト間の型変換のようです。
c:\program files (x86)\pcl 1.6.0\3rdparty\eigen\include\eigen\src\core\matrix.h(294): error C2338:
YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY
プログラム内の Eigen に関するコード:
エラーメッセージ:
1>c:\program files (x86)\pcl
1.6.0\3rdparty\eigen\include\eigen\src\core\matrix.h(294): エラー C2338:
YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_ TO_CAST_NUMERICTYPE_S_EXPLICITLY 1> f:\cpps\project1\win3 \jointpointcloud.cpp(88) :
関数テンプレートのインスタンス化への参照を参照してください
'Eigen::Matrix<_Scalar,_Rows,_Cols>::Matrix(const Eigen
::MatrixBase &)' が 1> [ 1> _Scalar= で 1> コンパイルされていますfloat, 1> _Rows=4, 1> _Cols=4, 1> Derived=Eigen::Matrix 1> ] 1> f:\cpps\win32project1\win32project1\jointpointcloud.cpp(88) を参照:
関数テンプレートのインスタンス化への参照
'Eigen::Matrix<_Scalar,_Rows,_Cols>::Matrix(const Eigen
::MatrixBase &)' は 1> [ 1> _Scalar=float, 1> _Rows=4, 1 でコンパイルされています> _Cols=4, 1> Derived=Eigen::Matrix 1> ] ========== ビルド: 0 成功、1 失敗、0 最新、0 スキップ ======= ===
opencv - 追加の GPS データを使用してステレオペアの適切なポイントを三角測量すると、大きな再投影エラーが発生する
OpenCV ライブラリに基づく 2d-3d アルゴを使用して VSLAM タスクを解決しています。現在、GPS データを使用してジオリファレンスを作成しようとしています。各カメラの R, t を変換し、自明な関数を使用して一致した点を三角測量します
ここで、kp1 と kp2 - 左右の画像のキーポイント、P1、P2 - 射影行列
私は奇妙な問題に直面しました:カメラの中心を大きな定数で単純にシフトすると、古い適切な三角点で大きな再投影エラーが発生します。ポイントの三角形分割の SVD 分解は、カメラの中心のスケールに敏感ですか?