그래프의 선은 이동 경로가 아니라 제약이다
Factor Graph는 추정할 변수와 그 변수들을 묶는 관측/사전 정보를 표현한다. 변수 노드는 pose·랜드마크·속도·bias 등을 뜻할 수 있다. Factor는 관련 변수들의 값이 관측과 얼마나 어긋나는지 잔차와 확률 모형으로 나타낸다. 로봇이 그래프의 선을 따라 이동한다는 의미가 아니다. Factor가 많아도 잘못된 관측이거나 같은 정보를 반복하면 정확성이 보장되지 않는다.
그림 M16.04-1. 각 칸은 서로 다른 역할/근거다. 나란히 비교할 항목이며 위아래가 시간 순서를 뜻하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
Pose Graph는 주로 시점별 pose를 변수로 두고 상대 이동·재방문 제약으로 묶는다. Bundle Adjustment(BA)는 카메라 pose와 3D 랜드마크 등을 함께 조정해 재투영 잔차를 줄인다. 관측 변수와 잔차가 다르므로 두 이름을 같은 알고리즘으로 읽지 않는다. 실제 시스템에는 관성·GPS·접촉 등 다른 factor도 들어갈 수 있다. 어떤 변수가 최적화되고 어떤 값이 고정됐는지 표로 적으면 구조를 읽기 쉽다.
그림 M16.04-2. 원은 추정 변수, 사각형은 연결한 변수에 대한 잔차/불확실성 factor다. 첫 변수의 prior는 좌표 기준을 고정하는 한 예다. 실제 pose/랜드마크·bias 그래프는 사용 모형에 따라 다르다. 직접 제작.
잔차를 확신의 단위로 비교한다
확률 모형을 가우스로 두면 잔차 r의 비용은 보통 r 전치 × 정보 행렬 ×r 형태를 사용한다. 정보 행렬은 공분산의 역이며 유효한 방향별 확신을 표현한다. 스칼라에서는 r²/σ²다. 위치 잔차 1m에 표준편차 0.5m면 비용 4, 잔차 0.5m에 표준편차 0.1m면 비용 25다. 더 작은 거리오차라도 모형이 기대한 잡음에 비해 크면 비용이 더 크다. 표준편차와 분산을 바꿔 넣으면 가중치가 달라진다.
회전 rad와 위치 m의 제곱을 단위/잡음 정의 없이 더하면 숫자 크기가 좌표 단위에 따라 달라진다. 공분산은 단순한 성공 점수가 아니며 관측 모형/선형화와 상관관계가 연결된다. 같은 센서로 만든 pose와 원시 관측을 서로 독립이라고 반복해 넣으면 과신할 수 있다. 강건 손실은 일부 큰 잔차를 완화하지만 잘못된 factor의 존재를 지우는 기능은 아니다.
한 변수의 그래프를 정확히 푼다
자체 예제는 x0=0m를 고정하고 x1=xm를 추정하는 1 차원 그래프다. 상대 이동 관측은 2m/분산 1m², 별도 절대 관측은 3m/분산 0.25m²다. 비용 J=(x−2)²+4(x−3)² 로 둔다. 미분하면 2(x−2)+8(x−3)=0, 따라서 10x−28=0에서 x=2.8m다. 두 관측을 정확히 동시에 만족할 수 없으므로 절충한다.
x=2.8에서 잔차는 0.8/−0.2m, 가중 비용은 0.64+0.16=0.8이다. x=2면 비용 4, x=3이면 비용 1이다. 절대 관측에 큰 가중치가 있어도 무조건 3으로 고정하는 것이 아니다. 분산을 둘 다 1로 바꾸면 평균 2.5m가 된다. 이 계산은 선형 스칼라 최소 제곱이며 일반 회전/카메라의 비선형 최적화 한 번을 대체하지 않는다.
기준을 고정하지 않으면 같은 모양의 해가 여러 개다
절대 관측도 고정점도 없이 x1−x0=2만 준다면 (0,2),(10,12),(−3,−1)이 모두 같은 잔차 0이다. 전역 이동 기준이 정해지지 않은 gauge 자유도다. 상대 관계가 맞아도 좌표원점이 유일하지 않다. 어떤 문제에서는 전체 회전이나 단안 스케일까지 남을 수 있다. 첫 pose 고정 또는 적절한 prior 등으로 필요한 기준을 명시한다. 이를 물리적으로 측정한 절대 정확도로 오해하지 않는다.
BA의 재투영은 깊이가 양수인지·카메라/랜드마크 프레임과 대응이 맞는지 확인해야 한다. 작은 초기 오차를 선형 근사해 반복하는 비선형 문제는 초기값/퇴화/이상치에 민감하다. 최적화가 정지했다는 로그는 세계의 정답을 찾았다는 증명이 아니다. M16.05에서는 특히 잘못된 루프 factor가 궤적 전체를 왜곡하는 경우를 살핀다.
국소 계산과 전역 지도를 연결한다
변수를 일부만 남기는 주변화(marginalization)는 과거 정보를 요약해 계산량을 줄이는 방법이다. 단순 삭제와 달리 남은 변수 사이의 정보/상관을 전달하며 선형화 기준의 영향도 고려한다. 세부 구현을 읽을 때는 어떤 상태를 남겼는지·prior가 언제 생겼는지·중복 factor가 없는지 기록한다. 전체 배치/증분 최적화는 갱신 전략이 다르며 이름만으로 최종 정확도/실시간성을 판단하지 않는다. 비용 감소·수렴 이유·factor별 잔차·기준/잡음·제외 관측과 독립 궤적 평가를 함께 보고한다.
검수 표에는 변수의 이름/차원·고정 여부·관측의 단위·잡음과 상관 가정·factor 생성 시각을 적는다. 제거된 관측도 원본에서 삭제하지 말고 제외 이유를 남긴다. 서로 다른 그래프를 비교할 때는 비용 숫자뿐 아니라 같은 관측/분모/가중치인지 먼저 맞춘다. 관측을 버려 비용이 줄어든 것을 더 정확한 추정으로 해석하지 않는다.