trans

이 함수는 기준 좌표계(Reference Coordinate System)로 나타낸 입력 매개변수(fSourcePos)를 같은 좌표계에서 fOffset만큼 이동/회전하고, 그 결과를 eTargetRef 좌표계로 변환해 반환합니다.

정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션

LPROBOT_POSE trans(
    float fSourcePos[NUM_TASK],
    float fOffset[NUM_TASK],
    COORDINATE_SYSTEM eSourceRef = COORDINATE_SYSTEM_BASE,
    COORDINATE_SYSTEM eTargetRef = COORDINATE_SYSTEM_BASE
) {
    return _trans(_rbtCtrl, fSourcePos, fOffset, eSourceRef, eTargetRef);
};

매개변수

매개변수 이름

자료형

기본값

설명

fSourcePos

float[6]

6개 축의 목표 조인트 위치 또는 작업 위치(x, y, z, Rx, Ry, Rz)

fOffset

float[6]

6개 축의 오프셋 정보(병진/회전 변화량)

eSourceRef

COORDINATE_SYSTEM

COORDINATE_SYSTEM_BASE

원본 기준 좌표계입니다.

eTargetRef

COORDINATE_SYSTEM

COORDINATE_SYSTEM_BASE

대상 기준 좌표계입니다.

반환값

값

설명

ROBOT_POSE

fSourcePos에 fOffset을 적용하고
그 결과를 eTargetRef 좌표계로 변환해 계산한
위치와 자세 결과(포즈)를 반환합니다.

참고

이 함수는 컨트롤러가 응답할 때까지 기다립니다.

반환된 포인터는 CDRFLEx 객체 안의 저장 공간을 가리키며, 이 공간은 다른 DRFL 호출과 재연결 때마다 다시 사용됩니다. 다른 DRFL 함수를 호출하기 전에 구조체를 복사해 두세요. 인수가 3개인 ikin은 프로세스 안의 모든 CDRFLEx 객체가 공유하는 저장 공간에 결과를 반환합니다. ikin을 참고하세요. get_user_home을 제외하면 포인터는 NULL이 아닙니다. 실패 여부를 NULL 검사로 판단하지 마세요.

예제

float point[6]  = { 30, 30, 30, 30, 30, 30 };
float offset[6] = { 100, 100, 100, 100, 100, 100 };
LPROBOT_POSE res = drfl.trans(point, offset);
for (int i = 0; i < 6; i++)
    printf("%.1f\n", res->_fPosition[i]);

이 예제에서는 원래 포즈에 100 mm 병진 오프셋과 100° 회전 오프셋을 적용해 툴의 이동된 포즈를 계산합니다. 이 함수는 증분 경로 계획, 툴 오프셋 보정, 동적 좌표 변환처럼 상대 모션 목표를 계산할 때 유용합니다.