루프 클로저로 인한 누적 오류를 수정하고,spin 함수)state_->backend_queue에서 입력 데이터를 가져옴mesh(1), deformation graph, agent(2) 가 포함되어 있는 것으로 파악updateFactorGraph를 호출하여 로봇의 경로(2), 루프 클로저 등의 정보를 디포메이션 그래프에 반영updateFromLcdQueue를 통해 새로운 루프 클로저를 확인하고 처리copyMeshDelta를 호출하여 메쉬의 변경 사항을 반영optimize를 호출하여 디포메이션 그래프를 최적화하고, DSG의 각 레이어를 업데이트updateFactorGraph 함수)mesh, 로봇의 경로, 루프 클로저 정보 를 factor graph에 추가
로봇의 연속된 포즈 간의 관계를 나타내는 오도메트리 팩터(odometry factors)로봇 포즈와 랜드마크 위치 간의 관계를 나타내는 카메라 관측 팩터(visual factors)팩터(제약 조건)와 노드를 디포메이션 그래프에 추가하여 최적화에 필요한 정보를 갱신합니다.processIncrementalMeshGraph와 processIncrementalPoseGraph를 호출하여 mesh/pose에 대한 새로운 노드와 엣지를 디포메이션 그래프에 추가새로운 루프 클로저가 있는지 확인하고, 있다면 addLoopClosure를 통해 디포메이션 그래프에 추가디포메이션 그래프와 DSG에 이를 반영하여 누적된 오류를 수정state_->backend_lcd_queue에서 루프 클로저 결과를 가져옴addLoopClosure를 호출하여 루프 클로저를 디포메이션 그래프에 엣지로 추가copyMeshDelta를 통해 프론트엔드에서 전달된 메쉬 업데이트를 백엔드의 DSG 메쉬에 반영updateDsgMesh를 호출하여 디포메이션 그래프의 최적화 결과를 메쉬에 적용optimize 함수)addPlacesToDeformationGraph를 통해 장소 노드들을 디포메이션 그래프에 추가optimize 함수를 호출하여 최적화를 수행updateDsgMesh를 호출하여 메쉬를 변형callUpdateFunctions를 통해 DSG의 각 레이어를 업데이트하는 함수들을 호출합니다.callUpdateFunctions 함수)UpdateInfo 객체를 생성layer_functors_에 등록된 각 레이어의 업데이트 함수를 호출합니다.장소 노드들의 위치를 업데이트하고, 인접한 노드들을 병합하여 그래프의 간소화를 수행한 줄 요약
쉽게 설명하자면:
어떻게 연결하나?
엣지 가중치란?
왜 필요할까?