좌표계 변환
이 문서는 "포즈 변환(고급)" 스텝의 "좌표계 변환" 기능과 그 사용 절차를 소개합니다.
기능 소개
이 기능은 입력된 포즈 또는 포인트 클라우드를 현재 좌표계에서 사용자 정의 기준 좌표계로 변환하는 데 사용됩니다. 사용자 정의 좌표계의 기준 포즈를 제공함으로써, 서로 다른 기준 좌표계 간의 데이터 정렬과 전환을 구현할 수 있습니다.
사용 절차
아래에서는 이 기능을 포즈와 포인트 클라우드 좌표계 변환에 사용하는 구체적인 방법을 각각 소개합니다.
포즈 좌표계 변환
포즈 좌표계를 변환하기 전에 먼저 스텝 포트 구성을 완료해야 합니다.
스텝 포트 구성
-
구성 마법사 버튼을 클릭하여 포즈 변환 도구를 열고 좌표계 변환을 선택합니다.
-
오른쪽 파라미터 영역에서 변환 유형을 포즈로 선택합니다.
-
확인 버튼을 클릭하여 구성을 완료합니다.
구성 후의 입력 및 출력 포트는 다음과 같습니다.
입력
| 입력 포트 | 데이터 유형 | 설명 |
|---|---|---|
원본 포즈 |
Pose [] |
이 포트로 입력된 포즈의 좌표계가 변환됩니다. |
사용자 정의 좌표계 |
Pose [] |
입력된 포즈는 이 포트로 입력된 사용자 정의 좌표계로 변환됩니다. |
출력
| 출력 포트 | 데이터 유형 | 설명 |
|---|---|---|
변환된 포즈 |
Pose [] |
좌표계 변환 후의 포즈. |
|
변환할 포즈와 사용자 정의 기준 포즈는 반드시 동일한 좌표계에 있어야 합니다. |
포즈 좌표계 변환
원본 포즈와 사용자 정의 좌표계를 입력하면 원본 포즈를 사용자 정의 좌표계로 변환할 수 있습니다. 아래에서는 "포즈 변환(고급)" 스텝을 사용하여 포즈 좌표계를 변환하는 방법과 실제 프로젝트의 대표적인 적용 시나리오를 함께 설명합니다.
시나리오 1: 빈이 기울어졌을 때 빈의 Z 방향으로 대상 물체 정렬
실제 생산에서는 빈이 전체적으로 기울어져 있을 수 있으며, 이 경우 카메라 좌표계에서의 대상 물체 Z 값은 빈 내부에서의 실제 높낮이 순서를 정확히 반영하지 못합니다. 이때는 대상 물체의 포즈를 빈 자체 좌표계로 변환하여 빈의 Z축을 기준으로 정렬해야 하며, 이를 통해 빈 내부 정렬 또는 층별 피킹 기능을 구현할 수 있습니다. 구체적인 절차는 다음과 같습니다.
-
카메라 좌표계에서의 대상 물체 포즈를 "원본 포즈"로, 취득한 빈 포즈를 "사용자 정의 좌표계"로 사용하여 "포즈 변환(고급)" 스텝으로 대상 물체 포즈를 빈 좌표계로 변환합니다.
-
빈 좌표계에서 포즈 정렬 등의 스텝을 사용해 Z축 기준으로 대상 물체를 정렬합니다.
|
대상 물체 포즈 정렬을 완료한 후에는 일반적으로 정렬된 포즈를 원래 좌표계로 되돌려야 합니다. 포즈 변환 스텝으로 구현할 수 있습니다. 정렬된 포즈를 "원본 포즈"로, "포즈 변환(고급)" 스텝의 사용자 정의 좌표계를 "기준 포즈"로 입력하면 사용자 정의 좌표계에서 원래 좌표계로의 역변환을 수행할 수 있습니다. |
시나리오 2: 기준 평면이 기울어졌을 때 대상 물체의 상대 높이 계산
일부 시나리오에서는 대상 물체가 수평이 아닌 기준 평면 위에 놓일 수 있습니다(예: 기울어진 컨베이어, 지그 등). 이 경우 카메라 좌표계에서 대상 물체의 Z 값을 직접 읽어서는 기준 평면에 대한 실제 높이를 정확히 반영할 수 없습니다.
대상 물체의 상대 높이를 얻으려면, 대상 물체 포즈를 기준 평면을 XY 평면으로 하는 사용자 정의 좌표계로 변환하여 Z축이 기준 평면에 수직이 되도록 해야 합니다. 이렇게 하면 대상 물체의 상대 높이를 정확히 계산할 수 있습니다. 구체적인 절차는 다음과 같습니다.
-
평면 포인트 클라우드의 포즈와 치수 계산 등의 스텝을 사용해, 카메라 좌표계에서 기준 평면 포인트 클라우드으로부터 하나의 기준 포즈(즉 사용자 정의 좌표계)를 계산합니다.
-
"포즈 변환(고급)" 스텝으로 원본 대상 물체 포즈를 해당 사용자 정의 좌표계로 변환합니다.
-
변환된 포즈를 분해하여 평행이동 벡터의 Z 성분을 추출하고, 이를 대상 물체의 기준 평면 대비 높이로 사용합니다.
|
변환된 Z 값이 바로 대상 물체가 기준 평면에 대해 갖는 실제 높이입니다. 이후 원래 좌표계에서 해당 포즈를 계속 사용해야 한다면 "포즈 변환" 스텝을 통해 되돌릴 수 있습니다. |
포인트 클라우드 좌표계 변환
포인트 클라우드 좌표계를 변환하기 전에 먼저 스텝 포트 구성을 완료해야 합니다.
스텝 포트 구성
-
구성 마법사 버튼을 클릭하여 포즈 변환 도구를 열고 좌표계 변환을 선택합니다.
-
오른쪽 파라미터 영역에서 변환 유형을 포인트 클라우드으로 선택합니다.
-
확인 버튼을 클릭하여 구성을 완료합니다.
구성 후의 입력 및 출력 포트는 다음과 같습니다.
입력
| 입력 포트 | 데이터 유형 | 설명 |
|---|---|---|
원본 포인트 클라우드 |
PointCloud [] |
이 포트로 입력된 포인트 클라우드의 좌표계가 변환됩니다. |
사용자 정의 좌표계 |
Pose [] |
입력된 포인트 클라우드는 이 포트로 입력된 사용자 정의 좌표계로 변환됩니다. |
출력
| 출력 포트 | 데이터 유형 | 설명 |
|---|---|---|
변환된 포인트 클라우드 |
PointCloud [] |
좌표계 변환 후의 포인트 클라우드. |
|
변환할 포인트 클라우드과 사용자 정의 기준 포즈는 반드시 동일한 좌표계에 있어야 합니다. |
포인트 클라우드 좌표계 변환
원본 포인트 클라우드과 사용자 정의 좌표계를 입력하면 원본 포인트 클라우드를 사용자 정의 좌표계로 변환할 수 있습니다. 아래에서는 "포즈 변환(고급)" 스텝을 사용하여 포인트 클라우드 좌표계를 변환하는 방법과 실제 프로젝트의 대표적인 적용 시나리오를 함께 설명합니다.
시나리오 1: 카메라 촬영 방향이 대상 물체 평면과 일치하지 않는 경우
실제 적용에서는 대상 물체의 반사광 등의 요인으로 인해 3D 카메라를 대상 물체 표면에 수직으로 맞추기 어려운 경우가 많고, 일정한 기울기로 설치하게 됩니다. 이로 인해 취득된 포인트 클라우드는 카메라 좌표계에서 기울어진 분포를 보입니다. 이 좌표계에서 직접 점 필터링 등의 포인트 클라우드 처리를 수행하면 유효한 점을 잘못 제거하거나 노이즈 점을 남길 수 있어 후속 평면 피팅, 특징 추출 및 측정 정밀도에 영향을 줍니다.
처리 효과를 높이기 위해 대상 물체 주평면 포인트 클라우드를 기반으로 사용자 정의 좌표계(Z축이 대상 물체 평면에 수직)를 구성하고, "포즈 변환(고급)" 스텝을 통해 원본 포인트 클라우드를 카메라 좌표계에서 대상 물체 로컬 좌표계로 변환한 후 포인트 클라우드 전처리를 수행한 다음, 처리가 끝난 뒤 다시 카메라 좌표계로 복원할 수 있습니다. 구체적인 절차는 다음과 같습니다.
-
평면 포인트 클라우드의 포즈와 치수 계산 등의 스텝을 사용해 카메라 좌표계의 대상 물체 평면 포인트 클라우드으로부터 하나의 기준 포즈(즉 사용자 정의 좌표계)를 계산합니다.
-
"포즈 변환(고급)" 스텝을 통해 원본 대상 물체 포인트 클라우드를 해당 사용자 정의 좌표계로 변환한 후 포인트 클라우드 처리를 수행합니다.
|
포인트 클라우드 전처리가 완료된 후에는 일반적으로 처리된 포인트 클라우드를 원래 좌표계로 되돌려야 합니다. 포인트 클라우드 변환 스텝에서 "UseCorrespondenceInput" 변환 유형을 선택하고, 처리된 포인트 클라우드을 "원본 포인트 클라우드"으로, "포즈 변환(고급)" 스텝의 사용자 정의 좌표계를 "기준 포즈"로 입력하면 대상 물체 좌표계에서 카메라 좌표계로의 역변환을 구현할 수 있습니다. |
시나리오 2: 정밀 원 중심 획득(직교 투영 기반)
일부 고정밀 응용에서는 3D 매칭만으로 원 중심 등 기하 특징의 위치를 정확하게 얻기 어렵습니다. 검출 정밀도를 높이기 위해 포인트 클라우드 좌표계 변환과 직교 투영 방법을 결합해, 포인트 클라우드를 대상 물체 좌표계로 변환한 후 2D 특징 추출을 수행하고, 그 결과를 다시 카메라 좌표계로 되돌려 더 높은 정밀도의 원 중심 포즈를 얻을 수 있습니다. 이 방법은 조립 구멍 위치나 원호 가장자리의 고정밀 위치 지정에 자주 사용됩니다. 구체적인 절차는 다음과 같습니다.
-
평면 포인트 클라우드의 포즈와 치수 계산 등의 스텝을 사용해 카메라 좌표계의 대상 물체 평면 포인트 클라우드으로부터 하나의 기준 포즈(즉 사용자 정의 좌표계)를 계산합니다.
-
"포즈 변환(고급)" 스텝을 통해 원본 대상 물체 포인트 클라우드를 해당 사용자 정의 좌표계로 변환합니다.
-
변환된 포인트 클라우드에 대해 직교 투영 등의 스텝을 사용해 2D 특징을 추출하고 원 중심 포즈를 계산합니다.
|
정밀한 원 중심 포즈를 얻은 후에는 일반적으로 이를 카메라 좌표계로 되돌려야 합니다. 포즈 변환 스텝으로 구현할 수 있습니다. 계산된 원 중심 포즈를 "원본 포즈"로, "포즈 변환(고급)" 스텝의 사용자 정의 좌표계를 "기준 포즈"로 입력하면 대상 물체 좌표계에서 카메라 좌표계로의 역변환을 구현할 수 있습니다. |