2.12.4 2.12.3 2.12.2 2.12.1 2.12 2.11.2 2.11.0.1 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish
2.12.4 2.12.3 2.12.2 2.12.1 2.12 2.11.2 2.11.0.1 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish

movesj()

기능

현재 위치에서 pos_list로 입력된 관절공간(joint space)의 경유점들을 거쳐 목표위치(pos_list의 마지막 경유점)까지 연결되는 스플라인 곡선경로를 따라 이동합니다.

입력된 속도/가속도는 경로 중 최대 속도/가속도를 의미하며 입력되는 경유점의 위치에 따라 모션 중의 감속, 가속이 결정됩니다.

인수

인수명

자료형

기본값

설명

pos_list

list (posj)

-

posj list

vel (v)

float

None

velocity(모든 축에 동일) 또는

velocity(축별 velocity)

list (float[6])

acc (a)

float

None

acceleration(모든 축에 동일) 또는

acceleration(축별 acceleration)

list (float[6])

time (t)

float

None

도달 시간 [sec]

mod

int

DR_MV_MOD_ABS

이동 기준

  • DR_MV_MOD_ABS : 절대

  • DR_MV_MOD_REL : 상대

알아두기
  • 단축 인수를 지원합니다. (v:vel, a:acc, t:time)

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

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

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

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

  • mod가 DR_MV_MOD_REL인 경우 pos_list의 각 pos는 앞 선 pos에 대한 상대좌표로 정의됩니다. (pos_list=[q1, q2, ...,q(n-1), q(n)]로 이루어질 때 q1은 시작점 대비 상대각도, q(n)은 q(n-1) 대비 상대좌표)

  • 선행모션과 후행모션에 대한 온라인 블렌딩은 지원하지 않습니다.

리턴

값

설명

0

성공

음수값

오류

예외

예외

설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

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

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시

예제

Python
#CASE 1) 절대각도 입력 (mod= DR_MV_MOD_ABS)

q0 = posj(0,0,0,0,0,0)

movej(q0, vel=30, acc=60) # 초기위치(q0)로 joint모션 이동

q1 = posj(10, -10, 20, -30, 10, 20) # posj 변수(관절각) q1 정의

q2 = posj(25, 0, 10, -50, 20, 40) 

q3 = posj(50, 50, 50, 50, 50, 50) 

q4 = posj(30, 10, 30, -20, 10, 60)

q5 = posj(20, 20, 40, 20, 0, 90)

 

qlist = [q1, q2, q3, q4, q5] # q1~q5를 경유점 집합으로 하는 리스트(qlist) 정의

 

movesj(qlist, vel=30, acc=100) 

# qlist에 정의된 경유점 집합을 연결하는 스플라인 곡선을 최대속도

# 30(mm/sec), 최대가속도 100(mm/sec2)로 움직임

 

#CASE 2) 상대각도 입력 (mod= DR_MV_MOD_REL)

q0 = posj(0,0,0,0,0,0)

movej(q0, vel=30, acc=60)       # 초기위치(q0)로 joint모션 이동

dq1 = posj(10, -10, 20, -30, 10, 20)   # q0에 대한 상대관절각 dq1 정의(q1=q0+dq1)

dq2 = posj(15, 10, -10, -20, 10, 20)   # q1에 대한 상대관절각 dq2 정의(q2=q1+dq2)

dq3 = posj(25, 50, 40, 100, 30, 10)   # q2에 대한 상대관절각 dq3 정의(q3=q2+dq3)

dq4 = posj(-20, -40, -20, -70, -40, 10) # q3에 대한 상대관절각 dq4 정의(q4=q3+dq4)

dq5 = posj(-10, 10, 10, 40, -10, 30)   # q4에 대한 상대관절각 dq5 정의(q5=q4+dq5)

 

dqlist = [dq1, dq2, dq3, dq4, dq5] 

 # dq1~dq5를 상대경유점 집합으로 하는 리스트(dqlist ) 정의

 

movesj(dqlist, vel=30, acc=100, mod= DR_MV_MOD_REL ) 

# dqlist에 정의된 상대경유점 집합을 연결하는 스플라인 곡선을 최대속도 

# 30(mm/sec), 최대가속도 100(mm/sec2)로 움직임 (CASE-1과 동일한 모션)

관련 명령어