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

move_periodic()

기능

현재 위치에서 시작하는 상대 모션으로 입력된 기준 좌표계(ref)의 각 축(병진 및 회전)에 대한 Sine 함수 기반으로 주기 모션을 수행합니다. 각 axis 별 모션의 특성은 amp(amplitude)와 period에 의해 결정되고, 가감속 시간과 총 모션 시간은 주기, 반복, 횟수에 의해 설정됩니다.

인수

인수명

자료형

기본값

범위

설명

amp

list (float[6])

-

0≤amp

Amplitude(-amp에서 +amp사이 모션) [mm] or [deg]

period

float or

list (float[6])


0≤period

period(1주기 소요 시간)[sec]

atime

float

0.0

0≤atime

Acc-, dec- time [sec]

repeat

int

1

> 0

반복 횟수

ref

int

DR_TOOL

-

reference coordinate

  • DR_BASE : base coordinate

  • DR_WORLD : world coordinate

  • DR_TOOL : tool coordinate

  • user coordinate : 사용자 정의

알아두기

  • amp는 진폭(amplitude)을 의미하며, 각 축(x, y, z, rx, ry, rz) 별로 amp를 값으로 하는 6개 원소의 list 형태로 입력해야 합니다. 단, 주기 모션을 진행하지 않는 축 방향은 amp를 0으로 입력해야 합니다.

  • period는 해당 방향 모션의 1회 반복 시간을 의미하며, 각 축(x, y, z, rx, ry, rz) 별 period를 값으로 하는 총 6개 원소의 list 형태로 입력하거나 대표값을 입력해야합니다.

  • atime은 주기모션의 시작과 끝의 가속 및 감속 시간을 의미합니다. 입력된 가감속시간과 최대주기*1/4 중 큰 값이 적용됩니다. 입력된 가감속 시간이 전체모션시간의 1/2을 초과하는 경우 에러가 발생합니다.

  • repeat은 가장 큰 period 값을 가지는 축(기준 축)의 반복 횟수를 정의하며, 이에 따라 총 모션 시간이 결정됩니다. 나머지 축의 반복 횟수는 모션 시간에 따라 자동 결정됩니다.

  • 모션이 정상 종료되는 경우 종료 위치가 시작 위치와 일치하게 하도록 나머지 축 모션은 기준 축 모션이 종료되기 전에 먼저 종료될 수 있습니다. 모든 축의 모션이 동시 종료되지 않는 경우 감속구간에서의 경로는 이전 경로에서 벗어나게 됩니다. 관련한 사항은 아래 이미지를 참조하십시오

    image2021-11-4_14-47-49.png


    image2021-11-4_14-48-26.png
  • ref는 반복 모션의 기준 좌표계를 의미합니다.

  • 모션명령 수행 시 최대속도 에러가 발생하는 경우 다음의 식을 참조하여 진폭 및 주기를 조정할 것을 제안합니다.
    최대속도=진폭(amp)*2*pi(3.14)/주기(period)
    (예, 진폭=10mm, 주기=1초인 경우 최대속도=62.83mm/sec)

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

리턴

설명

0

성공

음수값

오류

예외

예외

설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

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

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시

예제

Python
P0 = posj(0,0,90,0,90,0)
movej(P0, vel=30, acc=30)
 
#1
move_periodic(amp =[10,0,0,0,30,0], period=1.0, atime=0.2, repeat=5, ref=DR_TOOL)
# Tool 좌표계 x축(10mm 진폭, 1초 주기) 모션과 y회전축(진폭 30deg, 1초 주기)
# 모션이 총 5회 반복 수행
 
#2
move_periodic(amp =[10,0,20,0,0.5,0], period=[1,0,1.5,0,0,0], atime=0.5, repeat=3, ref=DR_BASE)
# BASE 좌표계 x축(10mm 진폭, 1초 주기), z축(20mm 진폭, 1.5초 주기) 모션이 
# 총 3회 반복 수행됨, y회전축 모션은 period가 ‘zero(0)’이므로 미수행
# z축 모션의 주기가 크므로 총 모션 시간은 약 5.5초(1.5초*3회 + 가감속 1초)
# 이며, x축은 4.5회 반복 수행

관련 명령어