로봇 비전에서 캘리브레이션은 한 번 하고 끝나는 일이 아니었습니다. 부품의 높이가 바뀔 때마다 다시 해야 했습니다. AimFactoryCore는 이 반복을 계산으로 대신합니다.
왜 높이가 바뀌면 픽업이 틀어지나
카메라는 위에서 내려다보며 픽셀을 mm로 바꿉니다. 이 변환은 캘리브레이션을 한 높이에서만 정확합니다. 부품이 그보다 높거나 낮으면 카메라와 부품 사이의 거리가 달라지고, 같은 픽셀이 다른 mm를 가리키게 됩니다.
편차는 시야 한가운데에서는 작고, 가장자리로 갈수록 커집니다. 그래서 높이가 다른 부품을 같은 캘리브레이션으로 집으면 픽업 영역 외곽의 부품부터 어긋나기 시작합니다.
지금까지는 높이마다 캘리브레이션을 따로 하고 그 데이터를 여러 벌 쌓아 두는 것이 답이었습니다. 부품 종류가 늘수록 그 벌 수도 늘었습니다.
AimFactoryCore는 이렇게 처리합니다

캘리브레이션 창의 하드웨어 단계에서 카메라의 작동거리를 실측값으로 입력합니다. 이 값이 있으면 소프트웨어가 높이에 따른 배율 변화를 투영식으로 계산합니다. 회전이 섞인 경우까지 같은 식으로 처리하므로, 축마다 보정 계수를 따로 실측할 필요가 없습니다.
제품 높이는 레시피 안에 카메라별로 저장됩니다. 부품을 바꾸면 레시피가 바뀌고, 높이도 함께 바뀝니다. Point Tool 화면의 제품 높이 카드는 이 값을 그대로 보여주고, 수정은 캘리브레이션 창에서만 하도록 두었습니다. 생산 중에 값이 실수로 바뀌는 일을 막기 위해서입니다.
결과는 화면이 내는 값으로 확인합니다. 캘리브레이션 결과 단계에서 RMS 값과 좋음·주의·나쁨 판정이 나오고, 평균·최소·최대 오차가 mm로 표시됩니다. 카메라가 기울어 설치돼 가장자리 오차가 커질 상황이면 재설치 권장 경고도 같은 화면에 뜹니다.
렌즈 왜곡은 먼저 걷어냅니다

높이 보정 앞에 렌즈 보정이 있습니다. 도트 보드를 찍으면 소프트웨어가 도트를 자동 검출해 도트마다 상태를 색으로 표시하고, 9점 위치를 십자로 잡습니다.

렌즈 보정 패널에는 보정 전후의 격자와 잔차, 커버리지, 검출된 도트 수가 나옵니다. 잔차가 픽셀에서 mm로 얼마인지도 함께 보여줍니다. 최종 판단은 결과 단계에서 합니다. 같은 9점을 보정 없이 한 번, 적용해서 한 번 각각 피팅해 RMS를 비교합니다. 위 화면의 렌즈는 그 차이가 0.001mm라 소프트웨어가 개선 미미, 미사용 전환해도 무방이라고 판정했습니다. 필요 없는 보정은 필요 없다고 알려줍니다.
잘못 넣은 포인트는 화면이 짚어 줍니다

9점 중 하나를 잘못 넣으면 판정이 나쁨으로 뜨고, 각 포인트 옆에 오차가 mm로 붙습니다. 어느 점이 얼마나 어긋났는지 보이니 그 점만 다시 찍으면 됩니다. 기준이 로봇 좌표에 남아 있어 되짚을 수 있는 확인입니다.
없는 것은 없다고 알려줍니다
캘리브레이션 데이터에 카메라 정보, 렌즈 보정, 작동거리 중 빠진 항목이 있으면 확인 안 됨으로 표시하고 무엇이 빠졌는지 줄 세워 보여줍니다. 작동거리가 없으면 높이 보정과 기울기 계산이 안 된다는 것도 그 자리에서 알려줍니다. 예전 데이터를 옮겨 온 현장에서 원인 모를 편차가 생기는 일을 줄이기 위한 장치입니다.
어떤 현장에 필요한가
- 한 라인에서 높이가 다른 여러 부품을 번갈아 생산하는 다품종 현장
- 시야를 넓게 잡아 픽업 영역 외곽까지 쓰는 피딩 구성
- 부품이 바뀔 때마다 캘리브레이션 담당자를 기다리던 현장
정밀도는 한 곳에서 나오지 않습니다
높이 보정은 AimFactoryCore가 오차를 잡는 여러 단계 중 하나입니다. 로봇 절대좌표를 기준으로 삼는 정합, 렌즈 왜곡 보정, 툴이 기구적으로 틀어진 만큼 각도별로 보정하는 툴 캘리브레이션, 로봇 프로그램을 열지 않고 비전에서 넣는 픽 오프셋이 함께 작동합니다. 이 구조는 기술 페이지에서 따로 정리합니다.
