이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.
최신 버전 정보는 1.33.5에서 확인하세요.
measure_welding_tcp
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
LPMEASURE_TCP_RESPONSE measure_welding_tcp(unsigned char iMode, float fStickout, float fTargetPos[9][NUMBER_OF_JOINT])
{
return _measure_welding_tcp(_rbtCtrl, iMode, fStickout, fTargetPos);
};
기능
이 함수는 지정한 측정 모드와 스틱아웃 길이로 용접 툴의 TCP(툴 중심점)를 측정합니다.
측정하는 동안 로봇은 매개변수 fTargetPos로 정의한 목표 위치(최대 9개)로 이동합니다. 결과에는 TCP 좌표와 측정 상태 정보가 모두 들어 있습니다.
이 함수는 정밀한 경로 실행을 위해 용접 툴 위치를 캘리브레이션할 때 주로 사용하며, 토치 정렬, 오프셋 보정, 툴 검증에도 활용할 수 있습니다.
인수
인수 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
iMode |
unsigned char |
측정 모드 |
|
fStickout |
float |
용접 토치의 스틱아웃 거리(mm)입니다. |
|
fTargetPos |
float[9][NUMBER_OF_JOINT] |
최대 9개 지점의 목표 조인트 위치 또는 직교 좌표 위치입니다. |
반환값
반환값 |
설명 |
|---|---|
LPMEASURE_TCP_RESPONSE |
측정한 TCP 위치(X, Y, Z, RX, RY, RZ)를 담은 구조체입니다. |
예제
// 예제: 용접 TCP 측정 절차
unsigned char iMode = 0; // 0: 4점 방식, 1: 6점 방식
float fStickout = 30.0f; // 스틱아웃 값(mm)
// 목표점 9개 정의(조인트 또는 직교 좌표 위치)
float fTargetPos[9][NUMBER_OF_JOINT] = {
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
{5.0, 0.0, 0.0, 0.0, 0.0, 0.0},
{0.0, 5.0, 0.0, 0.0, 0.0, 0.0},
{0.0, 0.0, 5.0, 0.0, 0.0, 0.0},
{0.0, 0.0, 0.0, 5.0, 0.0, 0.0},
{0.0, 0.0, 0.0, 0.0, 5.0, 0.0},
{5.0, 5.0, 0.0, 0.0, 0.0, 0.0},
{5.0, 0.0, 5.0, 0.0, 0.0, 0.0},
{0.0, 5.0, 5.0, 0.0, 0.0, 0.0}
};
// TCP 측정 결과를 저장할 구조체 정의
LPMEASURE_TCP_RESPONSE result;
// TCP 측정
result = Drfl.measure_welding_tcp(iMode, fStickout, fTargetPos);
// nullptr이면 요청을 보내지 못한 것입니다
if (result)
{
printf("Measured TCP: X=%.3f, Y=%.3f, Z=%.3f, RX=%.3f, RY=%.3f, RZ=%.3f\n",
result->_tTCP._fTargetPos[0], result->_tTCP._fTargetPos[1], result->_tTCP._fTargetPos[2],
result->_tTCP._fTargetPos[3], result->_tTCP._fTargetPos[4], result->_tTCP._fTargetPos[5]);
// 측정 오차로 측정 품질 판정
printf("Measurement error: %.3f\n", result->_fError);
}
else
{
printf("The welding TCP measurement request could not be sent.\n");
}
이 예제에서 로봇은 4점 방식으로 용접 툴의 TCP를 측정합니다. 반환된 구조체에는 계산된 TCP 좌표와 측정 오차가 들어 있습니다.