6D 물체 자세는 카메라에서 본 강체의 x·y·z 위치와 roll·pitch·yaw 회전을 함께 추정한 변환입니다. 2D 검출 상자에서 끝나는 것이 아니라 카메라 내부 보정, CAD·키포인트·깊이 대응, 대칭 물체의 모호성, hand-eye 변환과 집기 시각까지 맞아야 실제 로봇 좌표가 됩니다.
아래에서는 용어의 차이를 실제 시스템 경계, 실패 조건과 검증 순서로 나눠 살펴봅니다.
6D 물체 자세는 카메라에서 물체로 가는 3차원 이동과 회전을 함께 구한 변환이다
2D 객체 검출은 영상 안에서 물체가 있는 영역과 종류를 알려 줍니다. 6D 자세 추정은 강체 물체 좌표축이 카메라 좌표에서 어디에 있고 어떤 방향을 향하는지 3차원 translation과 rotation으로 표현합니다.
로봇 파지 계획 글이 어느 접촉 자세를 선택할지 다룬다면, 이 글은 그 계획에 넣을 물체 좌표가 영상·깊이에서 어떻게 만들어지고 로봇 base 좌표로 옮겨지는지에 초점을 둡니다.
camera→object와 object→camera를 혼동하면 같은 숫자로 반대 변환을 명령하게 된다
자세 행렬의 방향은 라이브러리와 데이터셋마다 표기가 다를 수 있습니다. object 점을 camera 좌표로 옮기는 변환인지, camera를 object 좌표에 표현한 것인지 정의하고 역행렬이 필요한 위치를 명시합니다.
로봇 좌표계와 tf2 글처럼 camera_optical_frame의 축 방향, base_link, tool0와 object frame을 트리로 그립니다. 자세 메시지의 parent·child와 쿼터니언 순서를 로그에 남기면 90도·180도 뒤집힘을 빨리 찾을 수 있습니다.
RGB·RGB-D·CAD·참조 영상은 서로 다른 물체 온보딩과 실패 조건을 만든다
모델 기반 방식은 CAD나 텍스처 3D 모델과 관측을 맞추고, 모델 프리 방식은 참조 영상이나 재구성으로 새 물체를 등록할 수 있습니다. RGB는 색과 모양을 쓰고 RGB-D는 깊이와 표면 형상을 추가하지만 반사·투명 물체에서는 깊이가 비거나 왜곡될 수 있습니다.
BOP 6D 자세 벤치마크는 알려진 물체와 새 물체, RGB와 RGB-D, 가려짐·조명·대칭이 다른 데이터셋과 평가 과제를 구분합니다. 어떤 입력을 썼는지 없이 정확도 하나만 비교하지 않습니다.
| 입력 방식 | 필요한 준비 | 강점과 약점 |
|---|---|---|
| RGB+CAD | 텍스처·3D 모델·intrinsic | 깊이 센서 없음·질감/조명 의존 |
| RGB-D+CAD | 정렬 깊이·모델 | 기하 정제 유리·반사/결측 |
| 키포인트+PnP | 3D-2D 대응점 | 빠름·가려짐/오검출 영향 |
| 참조 영상 온보딩 | 다시점 영상·재구성 | CAD 불필요·온보딩 품질 의존 |
카메라 내부 보정과 hand-eye가 틀리면 물체 추정 오차가 로봇 접근 오차로 그대로 이동한다
초점 거리·주점·렌즈 왜곡이 틀리면 같은 픽셀 대응점도 잘못된 광선으로 역투영됩니다. 카메라와 로봇 플랜지 또는 작업 셀 사이 외부 변환이 틀리면 camera pose가 정확해도 base 좌표의 grasp pose는 틀립니다.
로봇 캘리브레이션 종류 글의 카메라 내부 보정과 hand-eye를 자세 모델과 분리해 검증합니다. 보정에 사용한 표적 자세가 아닌 작업 거리·시야 가장자리·로봇 자세에서 별도 오차를 측정합니다.
파이프라인은 물체 영역을 찾고 대응점을 만든 뒤 자세를 풀고 다시 정제한다
먼저 검출 또는 분할로 물체 후보를 찾고 2D 키포인트, 픽셀-모델 대응, point-pair feature나 학습 특징을 만듭니다. 그 대응으로 초기 회전·이동을 구한 뒤 렌더링 재투영이나 깊이 점군 정합으로 자세를 다듬습니다.
최종 단계에서는 보이는 표면과 모델의 일치뿐 아니라 대칭 후보, 테이블 관통, 물체 간 충돌 같은 물리 제약을 확인합니다. 한 단계의 confidence가 높아도 이후 좌표 변환이나 시간 지연이 틀리면 작업 자세로 사용할 수 없습니다.

PnP는 알려진 3D 점과 영상 2D 점, 카메라 내부 파라미터로 자세를 계산한다
OpenCV solvePnP 문서는 object 좌표의 3D 점을 camera 영상의 2D 점으로 투영하는 회전·이동을 구합니다. 대응점 수뿐 아니라 점의 공간 배치, coplanar 여부와 초기값에 따라 사용할 해법이 달라집니다.
키포인트가 물체 한 면에 몰리거나 가려진 점을 잘못 연결하면 재투영 오차가 작아도 깊이 방향과 회전이 불안정할 수 있습니다. RANSAC으로 이상치를 줄이고, 여러 PnP 해가 가능한 배치에서는 물리 범위와 이전 프레임을 이용해 후보를 검증합니다.
깊이 정제와 ICP는 표면을 맞추지만 초기 자세와 보이는 면의 편향을 그대로 받을 수 있다
RGB-D에서는 초기 자세로 CAD 표면을 관측 점군에 놓고 point-to-plane 같은 정합으로 이동·회전을 조정할 수 있습니다. 깊이 결측, 배경 점, 테이블 평면과 물체의 일부 면만 보이는 상황에서는 잘못된 국소 해로 수렴할 수 있습니다.
로봇 깊이 카메라 비교 글처럼 깊이 방식별 노이즈와 최소 거리, 반사 영향을 먼저 확인합니다. 자세 정제 전 물체 마스크·깊이 범위·법선 품질을 검증하고 정제 전후 변환 크기를 제한합니다.
대칭 물체는 서로 다른 회전이 같은 모양을 만들 수 있어 단일 각도 오차가 공정하지 않다
원통, 기어, 같은 모양의 양면처럼 회전해도 관측이 같으면 정답 pose가 하나가 아닙니다. 라벨이 임의로 고른 회전과 추정 회전이 달라도 로봇 작업에는 동등할 수 있고, 반대로 손잡이 방향처럼 작은 비대칭이 작업에 중요할 수 있습니다.
BOP 벤치마크 논문은 pose ambiguity를 다루는 오차 함수를 포함합니다. 평가와 실행 모두에서 물체 대칭군을 정의하고, grasp pose도 대칭 후보마다 접근 가능성과 충돌을 다시 확인합니다.
가려짐·절단·반사와 비슷한 인스턴스는 confidence 하나보다 실패 이유를 나눠 봐야 한다
그리퍼가 물체를 가리거나 상자 속 물체가 일부만 보이면 키포인트와 깊이 대응이 줄어듭니다. 같은 형상의 여러 물체가 붙어 있으면 검출 인스턴스와 점군 조각이 섞일 수 있고, 반사·투명 표면은 RGB와 깊이에 서로 다른 오류를 만듭니다.
빈피킹 AI 글의 겹침·가림 조건을 자세 평가 데이터에 그대로 포함합니다. visible fraction, 마스크 품질, 사용된 대응점 수, 깊이 유효 비율과 대칭 후보 수를 confidence와 함께 기록합니다.
카메라 pose를 base의 grasp pose로 바꿀 때 시간 지연과 물체 운동까지 계산한다
eye-in-hand에서는 로봇이 움직이는 동안 촬영 시각의 base→tool과 tool→camera 변환이 필요합니다. 컨베이어 위 물체는 추론이 끝날 때 이미 이동했으므로 검출 시각 pose에 처리·통신·로봇 접근 지연을 더해 작업 시각을 예측해야 합니다.
로봇 시간 동기화 글처럼 이미지 노출 시각, 깊이 시각, 로봇 관절 상태와 추론 완료 시각을 구분합니다. 최신 TF를 무조건 가져오지 말고 이미지 타임스탬프의 변환을 조회한 뒤 속도 모델로 현재 시각까지 전파합니다.
검증은 위치·회전·재투영·대칭 오차와 실제 집기 성공을 별도 지표로 남긴다
정답 pose가 있는 데이터에서는 translation·rotation, ADD/ADD-S 계열과 재투영 오차를 측정할 수 있습니다. 그러나 낮은 pose 오차가 항상 충돌 없는 접근과 안정 파지를 보장하지 않으므로 작업 지표를 함께 둡니다.
물체별·거리별·가림별·조명별로 검출률과 pose 정확도를 나누고, false pose를 거부하는 비율과 재추정 성공도 봅니다. 평균 하나로 합치면 대칭 물체와 작은 부품, 작업 공간 가장자리의 실패가 숨습니다.
| 검증 층 | 기준 | 판정값 |
|---|---|---|
| 영상 | 마스크·키포인트 정답 | 검출률·재투영 오차 |
| 3D 자세 | 정답 변환·대칭 정의 | 위치·회전·ADD 계열 |
| 좌표 체인 | 측량점·기준 치구 | base의 TCP 오차 |
| 작업 | 접근·파지 반복 | 성공률·거부율·충돌 |
운영 시스템은 pose 숫자보다 좌표 방향·시각·대칭 후보와 거부 이유를 함께 내보낸다
출력에는 parent·child frame, translation 단위, 쿼터니언 규약, 촬영 시각, 모델 버전과 confidence 정의가 들어가야 합니다. 대칭 후보가 여러 개면 하나를 조용히 고르지 말고 작업 가능한 후보 목록과 선택 근거를 남깁니다.
그리퍼 접근 전에는 자세 신선도, 작업 공간, 충돌, IK와 예상 가림을 확인하고 기준을 넘지 못하면 재촬영 또는 다른 시점 관측으로 전환합니다. 6D 자세 추정은 좌표를 제안하는 센서 계층이며 집기 안전을 자동으로 증명하지 않습니다.

로봇 6D 물체 자세 추정에서 자주 묻는 질문
6D 자세의 6은 무엇을 뜻하나요?
3차원 위치 x·y·z와 3차원 회전의 여섯 자유도를 뜻합니다. 출력은 보통 회전행렬·쿼터니언과 translation으로 표현합니다.
2D 객체 검출만으로 로봇이 물체를 잡을 수 없나요?
평면 위 높이와 방향이 고정된 단순 작업에서는 가능하지만 일반 3D 집기에는 깊이와 물체 회전, 카메라-로봇 좌표 변환이 필요합니다.
RGB-D를 쓰면 6D pose가 항상 더 정확한가요?
깊이가 유효한 불투명 표면에서는 정제에 유리하지만 반사·투명·최소 거리 밖에서는 결측과 다중 경로가 생깁니다. RGB와 깊이 품질을 각각 검사합니다.
대칭 원통의 회전 오차는 어떻게 평가하나요?
동등한 대칭 회전 중 가장 가까운 pose를 기준으로 평가하거나 작업에 중요한 축만 따로 봅니다. 데이터셋과 grasp planner가 같은 대칭 정의를 써야 합니다.
추정 pose가 맞는데 집기가 실패하는 이유는 무엇인가요?
hand-eye·TF 시각, TCP, 물체 이동, 충돌·IK, 마찰과 그리퍼 폭이 별도 오차를 만들 수 있습니다. 좌표 체인과 작업 실행을 단계별로 검증합니다.
6D 물체 자세 추정의 confidence는 로봇 작업 성공이나 안전을 자동으로 보장하지 않습니다. 카메라·로봇 보정, 좌표 방향, 대칭·가림, 시간 지연과 실제 접근·파지 시험을 함께 검증해야 합니다.