터치 테스트는 핸드-아이 캘리브레이션 불량 (캘리브레이션판 이동 또는 위치 변경) 으로 인해 안전하지 않으므로 수행할 수 없습니다.

문제

The hand-eye calibration results are bad, and it is unsafe to perform the touch test.

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

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

프로젝션 검증

터치 테스트

나쁜

나쁜

나쁜

위험한

If the calibration board moved or shifted during acquisition, secure it and repeat the hand-eye calibration (see Potential Solution below).

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

The Hand-Eye Transformation Matrix does not look correct because several of its values differ more than expected from the physical measurements. The differences are not extremely large, but they are beyond what is reasonable for this setup.

핸드-아이 변환 매트릭스

0.994

0.040

0.099

-84.190

-0.042

0.999

0.021

-84.129

-0.098

-0.025

0.995

147.697

0

0

0

1

For this setup, the value 147.697 is expected to be approximately 130 mm, and the value -84.129 is expected to be roughly 90 mm (the expected values depend on your camera-to-calibration-object geometry). At this stage we ignore the sign (+/-), because it depends on the coordinate-system definitions; we focus only on the distances.

../../_images/eye_in_hand_approximate_hand_eye_matrix.png

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

잔차

N (포즈)

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

13

2.449

5.590

4.626

10.946

For smaller robots, we expect the residuals to be in the sub-millimeter range, while for larger robots, the residuals can be in the millimeter range. As for the rotational component of the residuals, we expect them to be in the sub-degree range.

전체 잔차
잔차

포즈

회전 (°)

이동량 (mm)

1

5.590

10.946

2

4.864

6.151

3

5.294

5.707

4

1.682

7.975

5

1.537

4.446

6

1.570

6.958

7

1.738

2.492

8

0.950

2.917

9

1.973

5.113

10

1.546

0.831

11

1.851

0.773

12

1.701

3.509

13

1.544

2.329

Verification by Projection technically succeeds, but the resulting error is still too large to be acceptable. Treat projection verification critically, because the projection error can seem acceptable even if the hand-eye calibration is incorrect.

../../_images/projection_verification_poor.png

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

가능한 원인

Eye-in-Hand:

데이터셋 수집 중에 보정판이 움직였습니다.

Eye-to-Hand:

데이터셋 수집 중에 카메라 또는 캘리브레이션 보드가 움직였습니다.

데이터셋 획득 중 캘리브레이션 보드 (Eye-in-Hand) 또는 카메라/보드-플랜지 (Eye-to-Hand)의 움직임은 핸드-아이 캘리브레이션이 의존하는 강체 기하학적 가정을 깨뜨립니다. 이로 인해 프레임마다 로봇과 카메라 간의 관계가 일관되지 않게 되어, 솔버가 물리적 설정과 일치하지 않는 핸드-아이 변환으로 수렴하게 됩니다.

As a result, you can see high residuals, poor projection accuracy, and a hand-eye transformation matrix whose distances differ from real geometry. In severe cases, the resulting transform can make touch test validation unsafe due to risk of collision.

가능한 해결책

  1. 카메라와 캘리브레이션 보드가 단단히 고정되어 데이터 수집 중 움직이지 않도록 하십시오.

  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

The Hand-Eye calibration was verified with a touch test.

../../_images/touch_test_correct.png

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

Bad Dataset (calibration board moved on purpose)

이 문제를 시뮬레이션하기 위해 데이터셋 획득 과정에서 보정판을 의도적으로 두 번의 캡처 사이에 이동시켰습니다(아래 이미지 참조).

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

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

핸드-아이 변환 매트릭스

0.994

0.040

0.099

-84.190

-0.042

0.999

0.021

-84.129

-0.098

-0.025

0.995

147.697

0

0

0

1

잔차

N (포즈)

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

13

2.449

5.590

4.626

10.946

전체 잔차
잔차

포즈

회전 (°)

이동량 (mm)

1

5.590

10.946

2

4.864

6.151

3

5.294

5.707

4

1.682

7.975

5

1.537

4.446

6

1.570

6.958

7

1.738

2.492

8

0.950

2.917

9

1.973

5.113

10

1.546

0.831

11

1.851

0.773

12

1.701

3.509

13

1.544

2.329

Verification by Projection technically succeeded, but the resulting error was still too large to be acceptable. Treat projection verification critically, because the projection error can seem acceptable even if the hand-eye calibration is incorrect.

../../_images/projection_verification_poor.png

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

비교

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

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

데이터셋

X (mm)

Y(mm)

Z(mm)

양호 (보드 안정적)

-55.936

-91.919

128.086

나쁨 (보드 이동됨)

-84.190

-84.129

147.697

Δ (좋음 - 나쁨)

28.254

-7.790

-19.611

잔차

데이터셋

N

회전 평균 (°)

최대 회전각(°)

이동 평균(mm)

최대 이동 거리(mm)

양호 (보드 안정적)

14

0.022

0.034

0.180

0.338

나쁨 (보드 이동됨)

13

2.449

5.590

4.626

10.946