Skip to main content
Skip table of contents

CDRFLEx.movec

기능

로봇 제어기에서 작업공간을 기준으로 로봇이 현재 위치에서 경유 지점를 지나 목표 위치까지 원호 또는 지정한 각도로 원호를 따라 이동시키기 위한 함수이다.

인수

인수명자료형기본값설명

fTargetPos[0]

float[6]

-

경유 지점

fTargetPos[1]

float[6]

 

목표 위치

fTargetVel

float[2]

-

선속도, 각속도

fTargetAcc

float[2]

-

선가속도, 각가속도

fTargetTime

float

0.0

도달 시간 [sec]

eMoveMode

enum.MOVE_MODE

MOVE_MODE_

ABSOLUTE

상수 및 열거형 정의 참조

eMoveReference

enum.MOVE_REFERENCE

MOVE_REFERENCE_BASE

상수 및 열거형 정의 참조

fTargetAngle1

float

0.0

angle1

fTargetAngle2

float

0.0

angle2

fBlendingRadius

float

0.0

blending시 radius

eBlendingType

enum.BLENDING_SPEED_TYPE

BLENDING_SPEED_TYPE_DUPLICATE

상수 및 열거형 정의 참조

알아두기

  • fTargetVel 에 하나의 인자를 입력한 경우(예를들어, fTargetVel ={30, 0}) 입력된 인자는 모션의 선속도에 대응되며, 각속도는 선속도에 비례하여 결정됩니다.
  • fTargetAcc 에 하나의 인자를 입력한 경우(예를들어, fTargetAcc ={60, 0}) 입력된 인자는 모션의 선가속도에 대응되며, 각가속도는 선가속도에 비례하여 결정됩니다.
  • fTargetTime 지정 시, fTargetVel, fTargetAcc 를 무시하고 fTargetTime 기준으로 처리됩니다.
  • eMoveMode MOVE_MODE_RELATIVE 인 경우 fTargetPos[0] 과 fTargetPos[1] 는 각각 앞 선 위치값에 대한 상대좌표로 정의됩니다. (fTargetPos[0]은 시작점 대비 상대좌표, fTargetPos[1]는 fTargetPos[0]대비 상대좌표)
  • fTargetAngle1 0보다 크고, fTargetAngle2 0인 경우 fTargetAngle1Circular path 상의 총 회전각이 적용됩니다.
  • fTargetAngle1fTargetAngle2 0보다 큰 경우, fTargetAngle1 circular path 상에서 정속으로 이동하는 총 회전각을, fTargetAngle2는 가속과 감속을 위한 회전 구간의 회전각을 의미합니다. 이때 총 이동각은 fTargetAngle1+ 2 X fTargetAngle2만큼 circular path 상을 움직입니다.

주의

eBlendingTypeBLENDING_SPEED_TYPE_DUPLICATE이고 fBlendingRadius 0보다 큰 조건으로 후속 모션이 블렌딩 될 경우 선행모션의 잔여거리, 속도, 가속도로 결정되는 잔여모션시간이 후행모션의 모션시간보다 큰 경우 후행모션이 먼저 종료된 후 선행모션이 종료될 수 있습니다. 관련한 사항은 아래 이미지를 잠고하십시오.

리턴

설명

0

오류

1

성공

예제

PY
// CASE 1
float x1[2][6] = {{559,434.5,651.5,0,180,0}, {559,434.5,251.5,0,180,0}};
float tvel = {50,50}; # 태스크 속도를 50(mm/sec), 50(deg/sec)로 설정
float tacc = {100,100}; # 태스크 가속도를 100(mm/sec2), 100(deg/sec2)로 설정 
drfl.movec(x1, tvel, tacc);
// 속도 50(mm/sec), 가속도 100(mm/sec2)로 x1[0]을 경유하여 x1[1]에 이르는 
// 원호궤적을 따라 이동

// CASE 2
float x1[2][6] = {{559,434.5,651.5,0,180,0},{559,434.5,251.5,0,180,0}};
float tTime = 5;
drfl.movec(x1, 0, 0, tTime);
// x1[0]을 경유하여 x1[1]까지 5초의 도착시간을 가지고 원호궤적으로 이동

// CASE 3
float x1[2][6] = {{559,434.5,651.5,0,180,0},{559,434.5,251.5,0,180,0}};
float x2[2][6] = {{559,234.5,251.5,0,180,0 },{559,234.5,451.5,0,180,0}};
float tvel = {50,50}; 
float tacc = {100,100};
float blending_radius = 50; 
drfl.movec(x1, tvel, tacc, 0, MOVE_MODE_ABSOLUTE, MOVE_REFERENCE_BASE, 0, 0, blending_radius);
drfl.movec(x2, tvel, tacc, 0, MOVE_MODE_ABSOLUTE, MOVE_REFERENCE_BASE, 0, 0, 0, BLENDING_SPEED_TYPE_DUPLICATE);

JavaScript errors detected

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

If this problem persists, please contact our support.