핸드-아이 캘리브레이션 불량으로 인해 터치 테스트를 수행하는 것이 안전하지 않습니다 (미터 단위 사용, 밀리미터 단위 사용 안 함).
문제
The hand-eye calibration results are bad, and it is unsafe to perform the touch test.
핸드-아이 캘리브레이션 변환 |
핸드-아이 캘리브레이션 잔차 |
프로젝션 검증 |
터치 테스트 |
|---|---|---|---|
나쁜 |
나쁜 |
나쁜 |
위험한 |
If robot poses were entered in meters instead of millimeters, convert them to millimeters and repeat the hand-eye calibration (see Potential Solution below).
잘못된 핸드-아이 캘리브레이션 결과의 예
핸드-아이 캘리브레이션 행렬은 여러 값이 물리적 측정값과 지나치게 큰 차이를 보이므로 정확하지 않은 것으로 보입니다. 이러한 차이는 해당 설정에서 합리적이지 않습니다.
0.971 |
-0.214 |
-0.108 |
-1.683 |
-0.019 |
0.380 |
-0.925 |
375.305 |
0.239 |
0.900 |
0.365 |
457.970 |
0 |
0 |
0 |
1 |
For this setup, the value 457.970 is expected to be approximately 130 mm, and the value 375.305 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.
보정 잔차 또한 예상보다 상당히 크며, 두 자릿수 정도 더 높습니다.
N (포즈) |
회전 평균 (°) |
최대 회전각(°) |
전송 평균(mm) |
최대 이동 거리(mm) |
|---|---|---|---|---|
14 |
5.247 |
12.851 |
135.333 |
760.322 |
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 |
0.948 |
760.322 |
2 |
0.746 |
92.317 |
3 |
2.557 |
177.495 |
4 |
9.364 |
167.930 |
5 |
10.202 |
174.986 |
6 |
0.951 |
55.776 |
7 |
10.514 |
65.690 |
8 |
12.851 |
69.575 |
9 |
2.470 |
70.544 |
10 |
2.625 |
81.236 |
11 |
0.927 |
43.069 |
12 |
2.134 |
32.829 |
13 |
10.851 |
44.558 |
14 |
6.316 |
58.329 |
프로젝션을 통한 검증이 실패했는데, 이는 핸드-아이 캘리브레이션이 정확하지 않으며 터치 테스트가 심각하게 실패할 것임을 시사합니다.
잠재적 원인
핸드-아이 캘리브레이션을 위한 로봇 자세(이동 구성 요소)는 미터 단위로 제공됩니다.
대부분의 산업용 로봇은 로봇 자세의 기본 단위로 미터(m)를 사용합니다. 그러나 Zivid 포인트 클라우드는 밀리미터(mm) 단위로 제공됩니다. 정확한 핸드-아이 캘리브레이션을 위해서는 로봇 자세 입력값과 포인트 클라우드의 단위가 동일해야 합니다. 로봇 자세는 미터 단위이고 포인트 클라우드는 밀리미터 단위인 경우, 핸드-아이 변환 행렬이 완전히 잘못된 핸드-아이 캘리브레이션 결과가 도출될 수밖에 없습니다.
경고
ROS는 SI 단위를 표준으로 사용하므로 ROS 토픽에서 로봇 자세를 가져올 때 미터 단위를 사용합니다. ROS를 통해 로봇 자세를 수집하는 경우, 핸드-아이 캘리브레이션을 실행하기 전에 변환 성분을 밀리미터로 변환해야 합니다.
잠재적 해결책
로봇의 자세 입력값은 밀리미터 단위여야 합니다.
Note: You can divide the translation component of the robot poses by 1000 if they are in meters, to convert them to millimeters.
동일한 데이터셋(로봇 자세는 밀리미터 단위)을 사용하여 핸드-아이 캘리브레이션을 반복합니다.
핸드-아이 캘리브레이션 결과 (변환, 잔차, 프로젝션) 를 확인합니다.
(핸드-아이 캘리브레이션 결과가 양호한 경우) 터치 테스트를 실행합니다.
문제 재현 방법 (로봇 자세가 밀리미터 대신 미터로 표시됨)
좋은 데이터셋
아래 이미지에 표시된 데이터 세트를 사용하여 핸드-아이 캘리브레이션이 성공적으로 수행되었습니다.
보정 결과는 다음과 같습니다.
0.999 |
-0.004 |
0.043 |
-55.476 |
0.004 |
1.000 |
0.013 |
-91.613 |
-0.043 |
-0.013 |
0.999 |
128.667 |
0 |
0 |
0 |
1 |
N (포즈) |
회전 평균 (°) |
최대 회전각(°) |
전송 평균(mm) |
최대 이동 거리(mm) |
|---|---|---|---|---|
14 |
0.019 |
0.029 |
0.144 |
0.222 |
전체 잔차
포즈 |
회전 (°) |
이동 (mm) |
|---|---|---|
1 |
0.026 |
0.071 |
2 |
0.013 |
0.218 |
3 |
0.020 |
0.146 |
4 |
0.026 |
0.222 |
5 |
0.026 |
0.181 |
6 |
0.007 |
0.114 |
7 |
0.007 |
0.128 |
8 |
0.015 |
0.066 |
9 |
0.023 |
0.110 |
10 |
0.010 |
0.113 |
11 |
0.024 |
0.149 |
12 |
0.023 |
0.175 |
13 |
0.029 |
0.184 |
14 |
0.022 |
0.132 |
핸드-아이 캘리브레이션은 터치 테스트를 통해 검증되었습니다.
터치 테스트가 성공적으로 완료되어 핸드-아이 캘리브레이션이 정확하고 정밀하게 조정되었음을 확인했습니다.
잘못된 데이터셋 (로봇 자세가 밀리미터가 아닌 미터 단위로 표시됨)
이 문제를 시뮬레이션하기 위해, 핸드-아이 캘리브레이션 데이터셋에 있는 입력 로봇 포즈의 변환 벡터를 밀리미터에서 미터로 변환했습니다. 그런 다음, 수정된 로봇 포즈를 사용하여 동일한 데이터셋에서 핸드-아이 캘리브레이션을 다시 수행했습니다.
보정 결과는 다음과 같습니다.
0.971 |
-0.214 |
-0.108 |
-1.683 |
-0.019 |
0.380 |
-0.925 |
375.305 |
0.239 |
0.900 |
0.365 |
457.970 |
0 |
0 |
0 |
1 |
N (포즈) |
회전 평균 (°) |
최대 회전각(°) |
전송 평균(mm) |
최대 이동 거리(mm) |
|---|---|---|---|---|
14 |
5.247 |
12.851 |
135.333 |
760.322 |
전체 잔차
포즈 |
회전 (°) |
이동 (mm) |
|---|---|---|
1 |
0.948 |
760.322 |
2 |
0.746 |
92.317 |
3 |
2.557 |
177.495 |
4 |
9.364 |
167.930 |
5 |
10.202 |
174.986 |
6 |
0.951 |
55.776 |
7 |
10.514 |
65.690 |
8 |
12.851 |
69.575 |
9 |
2.470 |
70.544 |
10 |
2.625 |
81.236 |
11 |
0.927 |
43.069 |
12 |
2.134 |
32.829 |
13 |
10.851 |
44.558 |
14 |
6.316 |
58.329 |
Verification by Projection failed, which suggests that the hand-eye calibration is not correct, and that the touch test will fail badly.
Therefore, the touch test was skipped for safety reasons.
비교
아래 표에서는 핸드-아이 캘리브레이션 행렬(변환 값)과 핸드-아이 캘리브레이션 잔차 결과를 비교합니다.
데이터셋 |
X (mm) |
Y(mm) |
Z(mm) |
|---|---|---|---|
좋음 (포즈는 mm 단위) |
-55.476 |
-91.613 |
128.667 |
나쁜 (m 단위 포즈) |
-1.683 |
375.305 |
457.970 |
Δ (좋음 - 나쁨) |
-53.793 |
-466.918 |
-329.303 |
데이터셋 |
N |
회전 평균 (°) |
최대 회전각(°) |
전송 평균(mm) |
최대 이동 거리(mm) |
|---|---|---|---|---|---|
좋음 (포즈는 mm 단위) |
14 |
0.019 |
0.029 |
0.144 |
0.222 |
나쁜 (m 단위 포즈) |
14 |
5.247 |
12.851 |
135.333 |
760.322 |