Breadcrumbs

CDRFLEx.calc_coord

기능

지정한 좌표계(ref) 기준의 최대 4개의 입력점(x1~x4) 및 입력 모드(mod)를 기반으로 새로운 직교 좌표계를 계산한다. 여기서 입력 모드는 입력점의 개수가 2개인 경우에만 유효하다.

입력점의 개수가 1개인 경우, x1의 위치와 회전으로 좌표계가 계산된다.

입력점의 개수가 2개인 경우 입력모드가 0일 때, x1에서 x2로 향하는 벡터가 x방향, x축에 직교하는 평면에 투영된 현재의 Tool-z방향이 사용자 좌표계의 z방향으로 정의되며 x1의 위치가 원점이 되도록 좌표계가 계산된다.

입력점의 개수가 2개인 경우 입력모드가 1일 때, x1에서 x2로 향하는 벡터가 x방향, x축에 직교하는 평면에 투영된 x1의 z축방향이 사용자 좌표계의 z방향으로 정의되며 x1의 위치가 원점이 되도록 좌표계가 계산된다.

입력점의 개수가 3개인 경우, x1에서 x2로 향하는 벡터가 x방향으로 정의되며, x1에서 x3으로 향하는 벡터를 v라고 하였을 경우 z방향은 오른손법칙에 따라 x방향 벡터 곱하기 v로 정의되며, x1의 위치가 원점이 되도록 좌표계가 계산된다.

입력점의 개수가 4개인 경우, 입력점의 개수가 3개인 경우와 축의 방향은 동일하며 원점의 위치가 x4의 위치가 되도록 좌표계가 계산된다.

해당 함수는 M2.5 버전 이상에서만 사용 가능하다.

인수

인수명

자료형

기본값

설명

nCnt

unsigned short

-

입력점 개수

nInputMode

unsigned short

-

입력 모드

(입력점개수가 2개인 경우에만 유효함)

  • 0: 현재 Tool-z방향 기준으로 사용자 좌표계의 z방향 정의

  • 1: x1의 z방향 기준으로 사용자 좌표계의 z방향 정의

eTargetRef

enum.COORDINATE_SYSTEM

COORDINATE_SYSTEM_BASE

상수 및 열거형 정의 참조

fTargetPos1

float[6]


6개의 Task Space 정보

fTargetPos2

float[6]


6개의 Task Space 정보

fTargetPos3

float[6]


6개의 Task Space 정보

fTargetPos4

float[6]


6개의 Task Space 정보

리턴

설명

enum.ROBOT_POSE

상수 및 열거형 정의 참조

예제

C++
float pos1[6] = {500, 30, 500, 0, 0, 0};
float pos2[6] = {400, 30, 500, 0, 0, 0};
float pos3[6] = {500, 30, 600, 45, 180, 45};
float pos4[6] = {500, -30, 600, 0, 180, 0};
ROBOT_POSE* pose_user1 = Drfl.calc_coord(4, 0, COORDINATE_SYSTEM_BASE, pos1, pos2, pos3, pos4);
for (int i=0; i<NUM_TASK; i++)
{
    cout << pose_user1->_fPosition[i] << endl;
}