최신 버전 정보는 1.33.5에서 확인하세요.
set_user_cart_coord2 (3점 방식)
이 함수는 입력 포즈 3개(fTargetPos[0], fTargetPos[1], fTargetPos[2])와 기준 좌표계(fTargetRef) 기준 원점 위치(fTargetOrg)로 새 사용자 직교 좌표계를 정의합니다.
입력 포즈 3개로 새 좌표축의 방향과 정렬을 지정합니다.
- X축은 pose₁ → pose₂ 벡터로 정해집니다.
- Z축은 벡터의 외적 (pose₂ − pose₁) × (pose₃ − pose₁)으로 계산합니다.
- Y축은 외적 Z × X로 계산합니다.
사용자 좌표계(User Coordinate System)는 최대 20개까지 만들 수 있습니다. 사용자 좌표계 ID는 101~200입니다. 이 함수로 설정한 좌표계는 클라이언트 프로그램의 연결이 끊긴 후에도 컨트롤러에 남아 있습니다. 오래 사용하려면 작업 셀 설정에 등록하세요.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
int set_user_cart_coord(
float fTargetPos[3][NUM_TASK],
float fTargetOrg[3],
COORDINATE_SYSTEM fTargetRef = COORDINATE_SYSTEM_BASE
) {
return _set_user_cart_coord2(_rbtCtrl, fTargetPos, fTargetOrg, fTargetRef);
};
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
fTargetPos |
float[3][6] |
새 사용자 좌표계의 평면을 정의하는 목표 작업 위치 3개 |
|
fTargetOrg |
float[3] |
새 사용자 좌표계의 원점 위치(X, Y, Z)입니다. |
|
fTargetRef |
COORDINATE_SYSTEM_BASE |
새 좌표계를 정의하는 기준 좌표계입니다. |
반환값
값 |
설명 |
|---|---|
int |
생성한 좌표계의 ID(101–200)입니다. |
예제
// 좌표 평면을 정할 포즈 세 개 정의
float xs[3][6] = {
{0.0f, 200.0f, 700.0f, 0.0f, 0.0f, 0.0f},
{0.0f, 700.0f, 0.0f, 0.0f, 0.0f, 0.0f},
{0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.0f}
};
// 원점 위치 설정
float org[3] = {10.0f, 30.0f, 15.0f};
// 세 포즈를 바탕으로 새 사용자 좌표계 등록
int coord_id = drfl.set_user_cart_coord(xs, org, COORDINATE_SYSTEM_BASE);
printf("User coordinate created with ID: %d\n", coord_id);
이 예제는 작업 공간(Task Space) 포즈 3개와 원점 오프셋으로 사용자 직교 좌표계를 정의하고, 베이스 좌표계(Base Coordinate System) 기준으로 등록합니다.