핸드-아이 캘리브레이션 불량(잘못된 핸드-아이 설정)으로 인해 터치 테스트를 수행할 수 없습니다.

문제

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

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

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

프로젝션 검증

터치 테스트

나쁜

나쁜

나쁜

안전하지 않은

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

핸드-아이 캘리브레이션 행렬이 실제 측정값과 예상보다 큰 차이를 보이기 때문에 정확하지 않은 것 같습니다. 차이가 아주 크지는 않지만, 이 설정에서 합리적이라고 여겨지는 범위를 벗어납니다.

핸드-아이 캘리브레이션 변환 매트릭스

0.626

0.780

0.008

116.163

-0.672

0.545

-0.502

1183.242

-0.396

0.309

0.865

-286.632

0.000

0.000

0.000

1.000

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

../../_images/eye_in_hand_approximate_hand_eye_matrix.png

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

잔차

N (포즈)

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

14

7.847

22.552

26.112

74.373

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

전체 잔차
잔차

포즈

회전 (°)

이동 (mm)

1

0.690

6.318

2

9.634

18.759

3

12.329

18.773

4

6.403

17.827

5

6.900

44.173

6

0.662

3.098

7

7.149

17.514

8

8.731

28.463

9

22.552

55.483

10

12.946

24.909

11

0.666

9.978

12

9.530

17.392

13

7.362

74.373

14

4.309

28.505

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

../../_images/projection_verification_poor.png

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

잠재적인 원인

핸드-아이 보정은 잘못된 핸드-아이 구성 (Eye-in-Hand 또는 Eye-to-Hand) 으로 수행되었으며, 이는 솔버에 물리적 설정에 대한 잘못된 정보가 제공되었음을 의미합니다.

결과적으로 잔차가 크고, 프로젝션 정확도가 떨어지며, 핸드-아이 캘리브레이션 행렬의 거리가 실제 형상과 다를 수 있습니다. 심각한 경우에는 변환 결과로 인해 충돌 위험이 발생하여 터치 테스트 검증이 안전하지 않게 될 수 있습니다.

잠재적인 해결책

  1. 실제 설치 환경에 맞는 올바른 핸드-아이 설정으로 핸드-아이 보정을 실행하십시오.

    • Eye-to-Hand 방식: 카메라가 환경에 고정되어 있고 로봇이 보정 대상물을 움직입니다(즉, Object-in-Hand 또는 Stationary/Static Camera).

    • Eye-in-Hand 방식: 카메라가 로봇에 장착되고 보정 보드는 주변 환경에 고정됩니다(예: Object-to-Hand 또는 On-Arm/Moving Camera).

  2. 동일한 데이터셋을 사용하여 핸드-아이 캘리브레이션을 반복합니다.

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

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

../../_images/touching-test-result-aruco.jpg
문제 재현 방법 (잘못된 핸드-아이 캘리브레이션 설정)

좋은 데이터셋

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

../../_images/hand-eye-calibration-small-movements-dataset.png

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

핸드-아이 캘리브레이션 변환 매트릭스

0.999

-0.004

0.043

-55.936

0.003

0.999

0.013

-91.919

-0.043

-0.013

0.998

128.086

0

0

0

1

잔차

N (포즈)

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

14

0.022

0.034

0.180

0.338

전체 잔차
잔차

포즈

회전 (°)

이동 (mm)

1

0.017

0.163

2

0.008

0.135

3

0.028

0.172

4

0.009

0.053

5

0.031

0.236

6

0.006

0.060

7

0.009

0.154

8

0.015

0.102

9

0.031

0.147

10

0.009

0.145

11

0.030

0.249

12

0.023

0.152

13

0.034

0.255

14

0.031

0.169

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

../../_images/touch_test_correct.png

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

데이터셋 불량 (보정판이 고의로 이동됨)

문제를 시뮬레이션하기 위해 잘못된 핸드-아이 구성 (Eye-in-Hand 대신 Eye-to-Hand) 으로 핸드-아이 캘리브레이션을 수행했습니다. 캘리브레이션 결과는 다음과 같습니다.

핸드-아이 캘리브레이션 변환 매트릭스

0.626

0.780

0.008

116.163

-0.672

0.545

-0.502

1183.242

-0.396

0.309

0.865

-286.632

0.000

0.000

0.000

1.000

잔차

N (포즈)

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

14

7.847

22.552

26.112

74.373

전체 잔차
잔차

포즈

회전 (°)

이동 (mm)

1

0.690

6.318

2

9.634

18.759

3

12.329

18.773

4

6.403

17.827

5

6.900

44.173

6

0.662

3.098

7

7.149

17.514

8

8.731

28.463

9

22.552

55.483

10

12.946

24.909

11

0.666

9.978

12

9.530

17.392

13

7.362

74.373

14

4.309

28.505

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

이러한 결과는 핸드-아이 캘리브레이션이 정확하지 않으며, 터치 테스트를 시도할 경우 실패할 가능성이 높다는 것을 강력하게 시사하므로 안전상의 이유로 터치 테스트는 생략되었습니다.

비교

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

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

데이터셋

X (mm)

Y(mm)

Z(mm)

좋음

-55.936

-91.919

128.086

잘못됨 (잘못된 핸드-아이 캘리브레이션 설정)

116.163

1183.242

-286.632

Δ (좋음 - 나쁨)

-172.099

-1275.161

414.718

잔차

데이터셋

N

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

좋음

14

0.022

0.034

0.180

0.338

잘못됨 (잘못된 핸드-아이 캘리브레이션 설정)

14

7.847

22.552

26.112

74.373