3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish
3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish

movej()

정의

movej(pos, vel, acc, time, radius, mod, ra, ref, velx)

기능

로봇이 현재 관절 위치에서 목표 관절 위치(pos)로 이동합니다.

  • pos에 posj가 입력될 경우 기존처럼 movej로 동작

  • pos에 posx가 입력될 경우 기존 movejx처럼 동작 (posx 입력할 경우 ref 변수 추가 입력 가능) → 2.x 버전의 movejx 기능과 동일합니다. 

알아두기

  • V3.2 버전부터, movejx 기능은 새로운 posx 타입과 함께 movej 명령어에서 지원됩니다.

인수

인수명

자료형

기본값

설명

pos

posj

-

posj 또는

joint angle list 또는

posx

list (float[6])

posx

vel (v)

float

None

velocity(모든 축에 동일) 또는

velocity(축별 velocity)

list (float[6])

None

acc (a)

float

None

acceleration(모든 축에 동일) 또는

acceleration(축별 acceleration)

list (float[6])

None

time (t)

float

None

도달 시간 [sec]

radius (r)

float

None

blending시 radius

mod

int

DR_MV_MOD_ABS

이동 기준

  • DR_MV_MOD_ABS : 절대

  • DR_MV_MOD_REL : 상대

ra

int

DR_MV_RA_DUPLICATE

Reactive motion mode

  • DR_MV_RA_DUPLICATE: duplicate

  • DR_MV_RA_OVERRIDE: override

ref

int

None

reference coordinate

  • DR_BASE: base coordinate

  • DR_WORLD: world coordinate

  • DR_TOOL: tool coordinate

  • user coordinate: 사용자 정의

velx

float

None

TCP speed limiting

알아두기

  • 단축 인수를 지원합니다. (v:vel, a:acc, t:time, r:radius)

  • vel이 None인 경우, _global_velj이 적용됩니다. (_global_velj 초깃값은 0.0이며, set_velj에 의해 설정 가능)

  • acc이 None인 경우, _global_accj이 적용됩니다. (_global_accj 초깃값은 0.0이며, set_accj에 의해 설정 가능)

  • set_velj(), set_accj()를 호출하지 않아 _global_velj, _global_accj가 초깃값 0.0인 상태에서 vel, acc, time을 모두 생략하면, 모션이 수행되지 않고 DRL ValueError(DR_ERROR_VALUE)가 발생하여 프로그램이 정지합니다. vel과 acc를 인수로 지정하거나, set_velj()와 set_accj()로 전역값을 먼저 설정하십시오.

  • time 지정 시, vel, acc를 무시하고 time 기준으로 처리됩니다.

  • time이 None인 경우, 0으로 처리됩니다.

  • radius가 None인 경우, 블렌딩 구간인 경우는 blending radius로 처리되며 아닌 경우는 0으로 처리됩니다.

  • 진행 중인 모션(선행 모션)이 종료되지 않은 상태에서 새로운 모션 명령(후행 모션)이 실행되면 선행 모션과 후행 모션이 부드럽게 연결됩니다(모션 블렌딩 기능). 이 때 선행 모션의 목표점을 유지하거나 취소할 수 있도록 결정하는 옵션 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 이면 선행모션의 목표점을 취소하므로 초록색 궤적과 같이 움직이게 됩니다.

image2021-11-4_13-56-46.png
  • velx가 None으로 설정되어 있고, set_velx에서 clamp를 DR_ON으로 활성화된 경우, _global_velx가 적용됩니다. (_global_velx 초깃값은 0.0이며, set_velx에 의해 설정)

주의

ra=DR_MV_RA_DUPLICATE 및 radius>0 조건에서 후속 모션이 블렌딩될 경우, 선행 모션의 잔여 시간이 후행 모션의 모션 시간보다 길면 후행 모션이 먼저 종료된 후 선행 모션이 종료될 수 있습니다.

관련한 사항은 아래 이미지를 참고하십시오.

image2021-11-4_13-59-10.png
  • 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)

프로그램 강제 종료 시

예제

Python
Q1 = posj(0,0,90,0,90,0)
Q2 = posj(0,0,0,0,90,0)

# 속도 10(deg/sec), 가속도 20(deg/sec2)로 Q1관절각으로 이동
movej(Q1, vel=10, acc=20)

# Q2 관절각까지 5초의 도착시간을 가지고 이동
movej(Q2, time=5)

# Q1 관절각으로 이동하며, Q1 위치에서 200mm의 떨어진 지점에서 다음 모션을 수행하도록 설정
movej(Q1, v=30, a=60, r=200) 

# 직전모션을 즉시 종료시키며 Blending하여 Q2 관절각으로 이동
movej(Q2, v=30, a=60, ra= DR_MV_RA_OVERRIDE)

## movejx function
P1 = posx(400,500,800,0,180,0, sol=2)
movej(P1, v=30, a=60) 

# TCP 속도를 최대 100mm/s로 제한하여 Q1 관절각으로 이동
movej(Q1, v=60, a=60, velx=100) 

관련 명령어