overwrite_user_cart_coord

이 함수는 기존 사용자 좌표계(User Coordinate System)(iReqId)를 새 포즈(fTargetPos)와 기준 좌표계(eTargetRef)로 갱신합니다. bTargetUpdate를 true로 설정하면 티치펜던트(TP)에도 갱신 내용이 동기화되어, 컨트롤러와 TP 환경 모두에 전역으로 반영됩니다.

bTargetUpdate가 false이면 컨트롤러의 좌표계만 갱신되며, 클라이언트 프로그램이 끝난 후에도 갱신 내용이 유지됩니다.

이 함수는 M2.5 이상 버전에서 지원합니다.

수동 모드에서만 사용할 수 있습니다. 다른 모드에서는 0을 반환하고 “this command can only be used in manual mode. please change to manual mode as robot mode”를 출력합니다. 모드는 get_robot_mode가 반환하는 값으로 확인합니다.

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

int overwrite_user_cart_coord(
    bool bTargetUpdate,
    int iReqId,
    float fTargetPos[NUM_TASK],
    COORDINATE_SYSTEM eTargetRef = COORDINATE_SYSTEM_BASE
) {
    return _overwrite_user_cart_coord(_rbtCtrl, bTargetUpdate, iReqId, fTargetPos, eTargetRef);
};

매개변수

매개변수 이름

자료형

기본값

설명

bTargetUpdate

bool

좌표계 갱신을 로컬로 할지 전역으로 할지 결정합니다
0: 로컬 갱신(임시, 프로그램 안에서만 적용)
1: 전역 갱신(티치펜던트와 동기화)

iReqId

int

덮어쓸 대상 좌표계 ID입니다.
기존 사용자 좌표계를 가리켜야 합니다.

fTargetPos

float[6]

갱신할 좌표계의 목표 위치와 자세 값(X, Y, Z, Rx, Ry, Rz)입니다.

eTargetRef

COORDINATE_SYSTEM

COORDINATE_SYSTEM_BASE

새 사용자 좌표계를 정의하는 기준 좌표계(Reference Coordinate System)

반환값

값

설명

int

성공하면 좌표계 ID(101–200)를 반환합니다.
로봇이 수동 모드가 아니거나 요청을 보내지 못하면 0을 반환합니다.

예제

// 1단계. 사용자 좌표계 생성
float pose1[6] = {50.0f, 40.0f, 50.0f, 0.0f, 0.0f, 0.0f};
int user_id = drfl.set_user_cart_coord(0, pose1, COORDINATE_SYSTEM_BASE);

// 2단계. 덮어쓸 새 포즈 준비
float pose2[6] = {100.0f, 150.0f, 200.0f, 45.0f, 180.0f, 0.0f};

// 3단계. 좌표계를 전역으로 덮어쓰기
int result = drfl.overwrite_user_cart_coord(true, user_id, pose2);

printf("Overwrite Result: %d\n", result);

이 예제는 먼저 사용자 정의 좌표계를 만든 다음, 위치와 자세를 새 값으로 덮어쓰고 변경 내용을 티치펜던트와 컨트롤러에 전역으로 동기화합니다.