핸드-아이 캘리브레이션 불량으로 인해 터치 테스트를 수행하기에 안전하지 않습니다 (번역 데이터만 포함).

문제

핸드-아이 캘리브레이션 결과가 좋지 않아 터치 테스트를 진행하기에 안전하지 않습니다.

핸드-아이 캘리브레이션 변환

핸드-아이 캘리브레이션 잔차

프로젝션 검증

터치 테스트

나쁜

나쁜

나쁜

위험한

잘못된 핸드-아이 캘리브레이션 결과의 예

핸드-아이 캘리브레이션 행렬은 여러 값이 물리적 측정값과 지나치게 큰 차이를 보이므로 정확하지 않은 것으로 보입니다. 이러한 차이는 해당 설정에서 합리적이지 않습니다.

핸드-아이 변환 매트릭스

0.999

-0.005

0.003

6041.859

0.005

0.999

0.024

4033.240

-0.003

-0.024

1.000

590.926

0

0

0

1

590.926이라는 값은 대략 130mm이고, 4033.240이라는 값은 대략 90mm입니다. 이 단계에서는 부호(+/-)는 좌표계 정의에 따라 달라지므로 무시하고, 거리 자체에만 집중합니다.

../../_images/eye_in_hand_approximate_hand_eye_matrix.png

이동 잔차 또한 예상보다 상당히 큰데, 대략 한 자릿수 정도 더 높습니다.

잔차

N (포즈)

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

7

0.033

0.108

2.623

5.001

소형 로봇의 경우 잔차가 1mm 미만 범위에 있을 것으로 예상되며, 대형 로봇의 경우 잔차가 1mm 범위에 있을 수 있습니다. 잔차의 회전 성분은 1도 미만 범위에 있을 것으로 예상됩니다.

전체 잔차
잔차

포즈

회전 (°)

이동 (mm)

1

0.031

1.189

2

0.020

4.366

3

0.108

5.001

4

0.022

1.581

5

0.028

0.765

6

0.018

1.977

7

0.007

3.482

프로젝션 검증은 기술적으로는 성공적이지만, 결과적인 오차가 여전히 허용 가능한 수준을 넘어섰습니다. 프로젝션 검증은 매우 신중하게 접근해야 하는데, 핸드-아이 캘리브레이션이 잘못되었더라도 프로젝션 오차가 허용 가능한 것처럼 보일 수 있기 때문입니다.

../../_images/projection_verification_poor_only_translations.png

이러한 결과는 핸드-아이 캘리브레이션이 정확하지 않으며, 터치 테스트를 시도할 경우 실패할 가능성이 높다는 것을 강력하게 시사합니다.

잠재적 원인

데이터 세트에 포함된 로봇 자세 간에는 이동 운동만 이루어졌습니다.

이는 핸드-아이 캘리브레이션에 충분하지 않습니다. 솔버는 로봇에 대한 카메라의 상대적인 방향을 고유하게 결정하기 위해 회전 운동을 필요로 하기 때문입니다. 회전 운동이 없으면 문제는 제약 조건이 부족해져 불안정하거나 잘못된 핸드-아이 캘리브레이션 결과, 큰 잔차, 프로젝션 검증 실패, 안전하지 않은 터치 테스트로 이어집니다.

잠재적 해결책

  1. 데이터 세트에는 로봇 자세 간의 이동 운동과 회전 운동이 모두 포함되어야 합니다.

    참고: 핸드-아이 캘리브레이션을 위한 좋은 데이터셋을 얻는 방법 확인하세요.

  2. (수정된 데이터셋을 사용하여) 핸드-아이 캘리브레이션을 다시 실행하세요.

  3. 핸드-아이 캘리브레이션 결과 (변환, 잔차, 프로젝션)를 확인합니다.

  4. (핸드-아이 캘리브레이션 결과가 양호한 경우) 터치 테스트를 실행합니다.

../../_images/touching-test-result-aruco.jpg
문제 재현 (데이터셋 내 번역 부분만 해당)

좋은 데이터셋

아래 이미지에 표시된 데이터 세트를 사용하여 핸드-아이 캘리브레이션이 성공적으로 수행되었습니다.

../../_images/hand-eye-calibration-translations-and-rotations-dataset.png

보정 결과는 다음과 같습니다.

핸드-아이 변환 매트릭스

0.9991385

-0.00262377

0.04141687

-55.73573

0.001416378

0.9995739

0.02915465

-91.3017

-0.04147572

-0.02907087

0.9987165

129.1951

0

0

0

1

잔차

N (포즈)

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

14

0.028

0.068

0.133

0.278

전체 잔차
잔차

포즈

회전 (°)

이동 (mm)

1

0.030

0.149

2

0.039

0.278

3

0.021

0.065

4

0.037

0.138

5

0.013

0.272

6

0.014

0.079

7

0.018

0.133

8

0.013

0.075

9

0.038

0.088

10

0.015

0.061

11

0.026

0.179

12

0.036

0.065

13

0.068

0.209

14

0.023

0.066

핸드-아이 캘리브레이션은 터치 테스트를 통해 검증되었습니다.

../../_images/touch_test_correct.png

터치 테스트가 성공적으로 완료되어 핸드-아이 캘리브레이션이 정확하고 정밀하게 조정되었음을 확인했습니다.

잘못된 데이터셋 (회전은 없고 이동만 있는 데이터셋)

아래 이미지에 표시된 데이터셋을 사용하여 핸드-아이 캘리브레이션을 수행했습니다. 이 데이터셋에는 회전 데이터는 없고 이동 데이터만 포함되어 있습니다.

../../_images/hand-eye-calibration-only-translations-dataset.png

보정 결과는 다음과 같습니다.

핸드-아이 변환 매트릭스

0.999

-0.005

0.003

6041.859

0.005

0.999

0.024

4033.240

-0.003

-0.024

1.000

590.926

0

0

0

1

잔차

N (포즈)

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

7

0.033

0.108

2.623

5.001

전체 잔차
잔차

포즈

회전 (°)

이동 (mm)

1

0.031

1.189

2

0.020

4.366

3

0.108

5.001

4

0.022

1.581

5

0.028

0.765

6

0.018

1.977

7

0.007

3.482

프로젝션 검증은 기술적으로는 성공했지만, 결과적인 오차가 허용 가능한 수준을 넘어 너무 컸습니다. 프로젝션 검증은 매우 신중하게 접근해야 하는데, 핸드-아이 캘리브레이션이 잘못되었더라도 프로젝션 오차가 허용 가능한 것처럼 보일 수 있기 때문입니다.

../../_images/projection_verification_poor_only_translations.png

이러한 결과는 핸드-아이 캘리브레이션이 정확하지 않으며, 터치 테스트를 시도할 경우 실패할 가능성이 높다는 것을 강력하게 시사합니다.

비교

아래 표에서는 핸드-아이 변환 행렬(변환 값)과 핸드-아이 캘리브레이션 보정 잔차 결과를 비교합니다.

핸드-아이 캘리브레이션 행렬의 변환 값

데이터셋

X (mm)

Y(mm)

Z(mm)

좋은

-55.73573

-91.3017

129.1951

(이동만) 형편없음

6041.859

4033.240

590.926

Δ (좋음 - 나쁨)

-6097.595

-4124.542

-461.731

잔차

데이터셋

N

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

좋은

14

0.028

0.068

0.133

0.278

(이동만) 형편없음

7

0.033

0.108

2.623

5.001