poseGraph3D
설명
poseGraph3D
객체는 3차원 자세 그래프 표현에 대한 정보를 저장합니다. 자세 그래프는 간선으로 연결된 노드를 포함합니다. 각 노드 추정값은 노드 간 상대 자세와 해당 측정값의 불확실성을 정의하는 간선 제약 조건에 의해 그래프에 연결됩니다.
자세 그래프를 반복적으로 구성하려면, addRelativePose
함수를 사용하여 상대 자세 추정값을 추가하고 이를 지정된 간선 제약 조건이 있는 기존 노드에 연결합니다. 자세 노드는 하나의 자세 노드를 기준으로 지정해야 합니다. 측정값의 불확실성은 정보 행렬을 사용하여 지정합니다.
두 개의 비순차적 노드 사이에 간선을 추가하면 그래프에 루프 폐쇄가 생성됩니다. 노드 쌍 사이의 다중 간선도 지원되며, 여기에는 루프 폐쇄가 포함됩니다. 간선 제약 조건 또는 루프 폐쇄를 추가하려면 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에 개발됨