trans (수동 모드)
이 절에서는 수동(교시) 작업 중에 trans를 사용하는 방법을 설명합니다. 이 함수는 주어진 포즈나 위치 벡터에 이동 및 회전 오프셋 변환을 적용합니다. 이를 통해 지정한 기준 좌표계에서 주어진 오프셋만큼 이동한 새 포즈를 계산할 수 있습니다. 예를 들어 교시한 점을 TOOL 좌표계의 Z축을 따라 +50 mm 이동할 수 있습니다.
일반적인 사용법
다시 교시하지 않고 교시한 위치에 작은 오프셋을 적용합니다(예: +Z = 50 mm).
캘리브레이션 중에 현재 TCP 포즈를 기준으로 목표점을 계산합니다.
BASE 또는 TOOL 좌표에서 접근 위치나 후퇴 위치를 조정합니다.
실제 모션 명령을 적용하기 전에 위치 이동을 수치로 검증합니다.
참고
이 함수는 순수한 수학적 변환만 하며, 로봇을 움직이지 않습니다.
예제: 현재 TCP 기준 오프셋 위치 계산
// 사전 조건:
// - 연결 완료(open_connection)
// - 수동(교시) 모드 활성
// 1단계. TOOL 좌표계 기준 현재 TCP 포즈 가져오기
float curPos[NUM_TASK] = {0};
LPROBOT_TASK_POSE pCurPose = drfl.get_current_posx(COORDINATE_SYSTEM_TOOL);
curPos[0] = pCurPose->_fTargetPos[0]; curPos[1] = pCurPose->_fTargetPos[1]; curPos[2] = pCurPose->_fTargetPos[2];
curPos[3] = pCurPose->_fTargetPos[3]; curPos[4] = pCurPose->_fTargetPos[4]; curPos[5] = pCurPose->_fTargetPos[5];
// 2단계. 오프셋 정의(TOOL Z 방향으로 50 mm 전진)
float offset[NUM_TASK] = {0, 0, 50, 0, 0, 0};
// 3단계. trans()로 새 포즈 계산
LPROBOT_POSE pNewPose = drfl.trans(curPos, offset,
COORDINATE_SYSTEM_TOOL,
COORDINATE_SYSTEM_TOOL);
// 4단계. 결과 출력
printf("[Offset Pose] X=%.3f Y=%.3f Z=%.3f | Rx=%.3f Ry=%.3f Rz=%.3f\n",
pNewPose->_fPosition[0], pNewPose->_fPosition[1], pNewPose->_fPosition[2],
pNewPose->_fPosition[3], pNewPose->_fPosition[4], pNewPose->_fPosition[5]);
이 예제는 TOOL 좌표계에서 현재 TCP 포즈를 가져와 툴의 Z축을 따라 +50 mm 오프셋을 적용합니다. 결과 포즈는 수동으로 다시 교시하거나 로봇을 움직이지 않고도 정밀한 접근이나 후퇴 모션의 새 목표로 사용할 수 있습니다.
팁
수동 모드에서 접근/후퇴 경로 계산에 적합합니다.
coord_transform과 함께 사용하면 좌표계 사이를 전환할 수 있습니다.
엔드 이펙터 방향에 맞춘 조정(예: 삽입이나 연마)에는 TOOL 좌표계 오프셋을 사용하세요.
좌표계 방향을 혼동하지 않도록 적용한 오프셋의 방향을 확인하세요.