このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
poseGraph3D
3 次元姿勢グラフの作成
説明
poseGraph3D
オブジェクトは、3 次元姿勢グラフの表現の情報を格納します。姿勢グラフはエッジによって接続されたノードを含みます。それぞれのノードの推定は、ノード間の相対姿勢とその測定の不確かさを定義するエッジの制約によってグラフに接続されます。
姿勢グラフを反復的に作成するには、関数 addRelativePose
を使用して相対姿勢の推定を追加し、指定したエッジの制約を使用して既存のノードにそれらを接続します。姿勢ノードは、いずれかの姿勢ノードを基準に相対的に指定しなければなりません。測定の不確かさは情報行列を使用して指定します。
2 つの連続していないノード間にエッジを追加すると、グラフで "ループ閉じ込み" が作成されます。ノード ペア間に複数のエッジをもつ "マルチエッジ" もサポートされます。これには、ループ閉じ込みも含まれます。エッジの制約やループ閉じ込みをさらに追加するには、関数 addRelativePose
を使用してノード ID を指定します。関数 optimizePoseGraph
で姿勢グラフを最適化する際、それらのエッジの制約をすべて満たす解が求められます。
ランドマーク ポイント ノードを追加するには、関数 addPointLandmark
を使用します。この関数は、ノードを向きの推定がない xyz 点として指定します。ランドマークは、いずれかの姿勢ノードを基準に相対的に指定しなければなりません。
2 次元姿勢グラフについては、poseGraph
を参照してください。
実際のセンサー データから 3 次元姿勢グラフを作成して最適化する例については、Landmark SLAM Using AprilTag Markersを参照してください。
作成
説明
poseGraph = poseGraph3D
は、3 次元姿勢グラフ オブジェクトを作成します。姿勢グラフを反復的に作成するには、addRelativePose
を使用して姿勢を追加します。
poseGraph = poseGraph3D('MaxNumEdges',maxEdges,'MaxNumNodes',maxNodes)
は、コード生成時に姿勢グラフで受け入れ可能なエッジ数とノード数の上限を指定します。この上限はコード生成時にのみ必要です。
プロパティ
オブジェクト関数
addPointLandmark | Add landmark point node to pose graph |
addRelativePose | Add relative pose to pose graph |
copy | Create copy of pose graph |
edgeNodePairs | Edge node pairs in pose graph |
edgeConstraints | Edge constraints in pose graph |
edgeResidualErrors | Compute pose graph edge residual errors |
findEdgeID | Find edge ID of edge |
nodeEstimates | Poses of nodes in pose graph |
removeEdges | Remove loop closure edges from graph |
show | Plot pose graph |
例
参照
[1] Carlone, Luca, Roberto Tron, Kostas Daniilidis, and Frank Dellaert. "Initialization Techniques for 3D SLAM: a Survey on Rotation Estimation and its Use in Pose Graph Optimization." 2015 IEEE International Conference on Robotics and Automation (ICRA). 2015, pp. 4597–4604.
拡張機能
バージョン履歴
R2019b で導入