このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
poseGraph
2 次元姿勢グラフの作成
説明
poseGraph
オブジェクトは、2 次元姿勢グラフの表現の情報を格納します。姿勢グラフはエッジによって接続されたノードを含みます。それぞれのノードの推定は、ノード間の相対姿勢とその測定の不確かさを定義するエッジの制約によってグラフに接続されます。
姿勢グラフを反復的に作成するには、関数 addRelativePose
を使用して相対姿勢の推定を追加し、指定したエッジの制約を使用して既存のノードにそれらを接続します。姿勢ノードは、いずれかの姿勢ノードを基準に相対的に指定しなければなりません。測定の不確かさは情報行列を使用して指定します。
2 つの連続していないノード間にエッジを追加すると、グラフで "ループ閉じ込み" が作成されます。ノード ペア間に複数のエッジをもつ "マルチエッジ" もサポートされます。これには、ループ閉じ込みも含まれます。エッジの制約やループ閉じ込みをさらに追加するには、関数 addRelativePose
を使用してノード ID を指定します。関数 optimizePoseGraph
で姿勢グラフを最適化する際、それらのエッジの制約をすべて満たす解が求められます。
ランドマーク ポイント ノードを追加するには、関数 addPointLandmark
を使用します。この関数は、ノードを向きの推定がない xy 点として指定します。ランドマークは、いずれかの姿勢ノードを基準に相対的に指定しなければなりません。
lidarSLAM
オブジェクトで実行される LiDAR ベースの自己位置推定と環境地図作成の同時実行は、2 次元姿勢グラフの最適化に基づきます。
3 次元姿勢グラフについては、poseGraph3D
オブジェクトまたはLandmark SLAM Using AprilTag Markersの例を参照してください。
作成
説明
poseGraph = poseGraph
は、2 次元姿勢グラフ オブジェクトを作成します。姿勢グラフを反復的に作成するには、addRelativePose
を使用して姿勢を追加します。
poseGraph = poseGraph('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] Grisetti, G., R. Kummerle, C. Stachniss, and W. Burgard. "A Tutorial on Graph-Based SLAM." IEEE Intelligent Transportation Systems Magazine. Vol. 2, No. 4, 2010, pp. 31–43. doi:10.1109/mits.2010.939925.
拡張機能
バージョン履歴
R2019b で導入