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 |
좌표계 갱신을 로컬로 할지 전역으로 할지 결정합니다 |
|
iReqId |
int |
덮어쓸 대상 좌표계 ID입니다. |
|
fTargetPos |
float[6] |
갱신할 좌표계의 목표 위치와 자세 값(X, Y, Z, Rx, Ry, Rz)입니다. |
|
eTargetRef |
COORDINATE_SYSTEM_BASE |
새 사용자 좌표계를 정의하는 기준 좌표계(Reference Coordinate System) |
반환값
값 |
설명 |
|---|---|
int |
성공하면 좌표계 ID(101–200)를 반환합니다. |
예제
// 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);
이 예제는 먼저 사용자 정의 좌표계를 만든 다음, 위치와 자세를 새 값으로 덮어쓰고 변경 내용을 티치펜던트와 컨트롤러에 전역으로 동기화합니다.