이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.

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 좌표계 오프셋을 사용하세요.

  • 좌표계 방향을 혼동하지 않도록 적용한 오프셋의 방향을 확인하세요.