Skip to main content
Skip table of contents

movec()

기능

작업공간(task space)을 기준으로 로봇이 현재 위치에서 경유점(pos1)를 지나 목표위치(pos2)까지의 원호 또는 지정한 각도까지 원호를 따라 이동합니다.

인수

인수명

자료형

기본값

설명

pos

posj

-

posx 또는

position list

list (float[6])

pos2

posx


posx 또는

position list

list (float[6]

vel (v)

float

None

velocity 또는

velocity1, velocity2

list (float[2])

None

acc (a)

float

None

acceleration 또는

acceleration1, acceleration2

list (float[2])

None

time (t)

float

None

도달 시간 [sec]

radius (r)

float

None

blending시 radius

ref

int

None

reference coordinate

  • DR_BASE: base coordinate
  • DR_WORLD: world coordinate
  • DR_TOOL: tool coordinate
  • user coordinate: 사용자 정의

mod

int

DR_MV_MOD_ABS

이동 기준

  • DR_MV_MOD_ABS: 절대
  • DR_MV_MOD_REL: 상대

angle (an)

float

None

angle 또는

angle1, angle2

list (float[2])

ra

int

DR_MV_RA_DUPLICATE

Reactive motion mode

  • DR_MV_RA_DUPLICATE: duplicate
  • DR_MV_RA_OVERRIDE: override

ori

int

DR_MV_ORI_TEACH

이동자세 선택

  • DR_MV_ORI_TEACH: 교시자세
  • DR_MV_ORI_FIXED: 고정자세
  • DR_MV_ORI_RADIAL: 원주구속자세

app_type

int

DR_MV_APP_NONE

어플리케이션 연동 옵션

  • DR_MV_APP_NONE: 연동없음
  • DR_MV_APP_WELD: 용접연동

알아두기

  • 단축 인수를 지원합니다. (v:vel, a:acc, t:time, r:radius, angle:an)
  • vel이 None인 경우 _global_velx가 적용됩니다. (_global_velx 초깃값은 0.0이며, set_velx에 의해 설정 가능)
  • acc가 None인 경우 _global_accx가 적용됩니다. (_global_accx 초깃값은 0.0이며, set_accx에 의해 설정 가능)
  • vel에 하나의 인자를 입력한 경우(예를들어, vel=30) 입력된 인자는 모션의 선속도에 대응되며, 각속도는 선속도에 비례하여 결정됩니다.
  • acc에 하나의 인자를 입력한 경우(예를들어, acc=60) 입력된 인자는 모션의 선가속도에 대응되며, 각가속도는 선가속도에 비례하여 결정됩니다.
  • time을 지정할 경우 vel, acc를 무시하고 time 기준으로 처리됩니다.
  • time이 None인 경우 0으로 처리됩니다.
  • radius가 None이고 블렌딩 구간인 경우는 blending radius로 처리되며 아닌 경우는 0으로 처리됩니다.
  • ref가 None인 경우 _g_coord가 적용됩니다. (_g_coord 초깃값은 DR_BASE이며, set_ref_coord 명령에 의해 설정 가능)
  • mod가 DR_MV_MOD_REL인 경우 pos1 pos2는 각각 앞선 pos에 대한 상대좌표로 정의됩니다. (pos1은 시작점 대비 상대좌표, pos2 pos1 대비 상대좌표)
  • angle이 None일 경우 0으로 처리됩니다.
  • angle이 한 개만 입력된 경우 angle Circular path 상의 총 회전각이 적용됩니다.
  • angle이 두 개가 입력된 경우, angle1 circular path 상에서 정속으로 이동하는 총 회전각을, angle2는 가속과 감속을 위한 회전 구간의 회전각을 의미합니다. 이때 총 이동각은 angle1 + 2 X angle2만큼 circular path 상을 움직입니다.
  • app_type 이 DR_MV_APP_WELD인 경우에 이동속도는 vel인자의 입력값이 아닌 app_weld_set_weld_cond()에 입력된 속도설정으로 대체됩니다.
  • ori(이동자세 선택)옵션은 아래와 같이 정의됩니다.
    1. DR_MV_ORI_TEACH(교시자세) : 현재 자세로부터 포즈 2의 교시 자세까지 이동거리에 비례하여 자세를 변화하며 이동합니다. 포즈1의 교시자세는 무시됩니다.
    2. DR_MV_ORI_FIXED(고정자세) : 현재 자세를 포즈2 지점까지 유지한 채 경로를 따라 이동합니다.
    3. DR_MV_ORI_RADIAL(원주구속자세) : 현재 자세에서의 반경방향의 자세를 포즈2 지점까지 유지한 채 이동합니다.
  • 진행 중인 모션(선행모션)이 종료되지 않은 상태에서 새로운 모션명령(후행모션)이 실행되면 선행모션과 후행모션이 부드럽게 연결됩니다(모션 블렌딩 기능). 이 때 선행모션의 목표점을 유지하거나 취소할 수 있도록 결정하는 옵션 ra를 후행모션에 설정할 수 있습니다. (유지 : ra= DR_MV_RA_DUPLICATE / 취소 : ra= DR_MV_RA_OVERRIDE) 예를 들어 아래의 그림에서 목표점이 Target#1인 선행모션의 진행 중 ‘2nd motion event’ 지점에서 후행모션이 실행된 경우 후행모션의 옵션 ra= DR_MV_RA_DUPLICATE 이면 선행모션의 목표점을 유지하므로 주황색 궤적과 같이  움직이며 ra= DR_MV_RA_OVERRIDE 이면 선행모션의 목표점을 취소하므로 초록색 궤적과 같이 움직이게 됩니다.

주의

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

  • SW V2.8 미만의 버전에서는 블렌딩 반지름 크기가 총 이동 거리의 1/2을 넘을 경우, 블렌딩 이후 모션에 영향을 주기 때문에 모션이 수행되지 않으며, 블렌딩 에러 발생 시 실행 중인 태스크 프로그램이 종료됩니다.
  • SW V2.8 이상의 버전에서는 블렌딩 반지름 크기가 총 이동 거리의 1/2을 넘을 경우, 블렌딩 반지름 크기는 자동으로 총 이동 거리의 1/2로 변경되며, 변경 내역은 information log 메시지로 확인할 수 있습니다.

리턴

설명

0

성공

음수값

오류

예외

예외설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

인수의 값이 유효하지 않을 시

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시

예제

PY
#1

P0 = posj(0,0,90,0,90,0)

movej(P0)

set_velx(30,20) # 전역 태스크 속도를 30(mm/sec), 20(deg/sec)로 설정

set_accx(60,40) # 전역 태스크 가속도를 60(mm/sec2), 40(deg/sec2)로 설정 

 

P1 = posx(400,500,800,0,180,0)

P2 = posx(400,500,500,0,180,0)

P3 = posx(100, 300, 700, 45, 0, 0)

P4 = posx(500, 400, 800, 45, 45, 0)

 

movec(P1, P2, vel=30) 

# 속도 30(mm/sec), 전역가속도 60(mm/sec2)로 P1을 경유하여 P2에 이르는 

# 원호궤적을 따라 이동

movej(P0)

movec(P3, P4, vel=30, acc=60) 

# 속도 30(mm/sec), 가속도 60(mm/sec2)로 P3를 경유하여 P4에 이르는 

# 원호궤적을 따라 이동

movej(P0)

movec(P2, P1, time=5) 

# 전역(가)속도 30(mm/sec), 60(mm/sec2)로 P2를 경유하여 시점 5초에 

# P1에 이르는 원호궤적을 이동

movec(P3, P4, time=3, radius=100) 

# P3를 경유하여 P4로 이동하는 원호궤적을 3초의 도착시간을 가지고 

# 이동시키며 P4 위치로부터 100mm의 거리가 될 때 다음 모션을 수행하도록

# 설정

movec(P2, P1, ra=DR_MV_RA_OVERRIDE) 

# 직전모션을 즉시 종료시키며 Blending하여 P1위치로 이동

관련 명령어

JavaScript errors detected

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

If this problem persists, please contact our support.