Skip to main content
Skip table of contents

CDRFLEx.movejx

기능

로봇제어기에서 로봇을 관절 공간 안에서 목표 위치로 이동시키기 위한 함수 이다. 목표 위치는 작업공간 상의 위치임으로 movel과 동일하게 이동하지만 로봇의 모션은 관절공간에서 이루어지기 때문에 목표 위치까지 직선경로가 보장되지 않는다. 추가적으로 하나의 작업공간좌표에 대응하는 8가지의 관절조합형태(robot configuration)중 하나를 iSolutionSpace(solution space)에 지정해야 한다. iSolutionSpace에 255를 지정할 시, 8가지의 관절조합형태 중, 현재 robot configuration과 관절 공간 상에서 가장 가까운 (2-5축의 관절 공간의 L2 norm이 가장 작음) Solution Space로 이동한다.

인수

인수명

자료형

기본값

설명

fTargetPos

float[6]

-

6개 축에 대한 목적 TCP 위치

iSolutionSpace

unsigned char

-

관절조합형태(아래 설명 참조)

fTargetVel

float/float[6]

-

속도

fTargetAcc

float/float[6]

-

가속도

fTargetTime

float

0.f

도달 시간 [sec]

eMoveMode

enum.MOVE_MODE

MOVE_MODE_

ABSOLUTE

상수 및 열거형 정의 참조

eMoveReference

enum.MOVE_REFERENCE

MOVE_REFERENCE_BASE

상수 및 열거형 정의 참조

fBlendingRadius

Float

0.f

blending시 radius

eBlendingType

enum.BLENDING_SPEED_TYPE

BLENDING_SPEED_TYPE_DUPLICATE

상수 및 열거형 정의 참조

알아두기

  • fTargetTime 을 지정할 경우 fTargetVel, fTargetAcc 를 무시하고 fTargetTime 기준으로 처리된다.

  • 상대모션으로 입력하는 경우(eMoveMode = MOVE_MODE_ABSOLUTE), 선행모션에 블렌딩을 사용하는 경우 에러가 발생하므로 movej() 또는 MoveL()을 이용하여 블렌딩하는 것을 권장한다.

  • 옵션 eBlendingType 및 fTargetVel / fTargetAcc 에 따른 블렌딩을 수행할 경우 movej(), MoveL() 설명을 참조하십시오.

Robot configuration (형태 vs. solution space)

Solution space

Binary

Shoulder

Elbow

Wrist

0

000

Lefty

Below

No Flip

1

001

Lefty

Below

Flip

2

010

Lefty

Above

No Flip

3

011

Lefty

Above

Flip

4

100

Righty

Below

No Flip

5

101

Righty

Below

Flip

6

110

Righty

Above

No Flip

7

111

Righty

Above

Flip

255

Auto Calculation (the smallest L2 norm in the joint space of axes 2-5)

리턴

설명

0

오류

1

성공

예제

CPP
// CASE 1
float x1[6] = { 559, 34.5, 651.5, 0, 180, 0 };
float sol=2;
float jvel=10;
float jacc=20;
drfl.movejx(x1, sol, jvel, jacc);
		// 속도 10(deg/sec), 가속도 20(deg/sec2)으로 x1 및 configuration과 일치하
		// 는 관절각으로 이동 

// CASE 2
float x1[6] = { 559, 34.5, 651.5, 0, 180, 0 };
float sol=2;
float jTime=5;
drfl.movejx(x1, sol, 0, 0, jTime);
		// x1 및 configuration과 일치하는 관절각까지 5초의 도착시간을 가지고 이동

// CASE 3
float x1[6] = { 559, 34.5, 651.5, 0, 180, 0 };
float x2[6] = { 559, 434.5, 651.5, 0, 180, 0 };
float sol=2;
float jvel=10;
float jacc=20;
float blending_radius=50;
drfl.movejx(x1, sol, jvel, jacc, 0, MOVE_MODE_ABSOLUTE, blending_radius);
		// x1 및 configuation과 일치하는 관절각으로 이동하며 x1 위치로부터 50mm
		// 의 거리가 될 때 다음 모션을 수행하도록 설정
drfl.movejx(x2, sol, jvel, jacc, 0, MOVE_MODE_ABSOLUTE, 0,
BLENDING_SPEED_TYPE_DUPLICATE);
		// 직전모션과 Blending되어 x2 및 configuration과 일치하는 관절각으로 이동

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.