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

alter_motion()

정의

alter_motion(pos)

기능

입력 인자 pos에 해당하는 양만큼 경로 수정을 진행합니다.

주의

  • alter_motion()은 사용자 thread 내에서만 동작합니다.

알아두기

  • alter_motion()은 enable_alter_motion()을 통해 경로보정기능이 활성화된 경우에만 유효합니다.

  • enable_alter_motion의 설정 값 limit_dPOS, limit_dPOS_per에 따라 경로 수정량은 조정될 수 있습니다.

  • pos의 방향값은 Fixed XYZ로 설정하여야 됩니다.

인수

인수명

자료형

기본값

설명

pos

list (float[6])

-

position list

예외

예외

설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

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

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시

예제

Python
def alter_thread():
    global dir_a, wait_time
    alter_motion(dX) #dX : amount of alter motion

    if dX[0] > 9.9:
        dir_a = -10
    elif dX[0] < -9.9:
        dir_a = 10

    dX[0] = dX[0] + dir_a
    dX[3] = dX[3] + dir_a

    wait(wait_time)

dX = [10,0,0,10,0,0]

J00 = posj(30,45,45,0,90,0)
movej(J00,vel=100,acc=100)

X1,sol = get_current_posx(DR_BASE)

J01 = posj(-30,45, 45,0,90,0)
movej(J01,vel=100,acc=100)

X2,sol = get_current_posx(DR_BASE)


# Alter motion is executed during the cycle time
cycle_time = 0.6


n_period = int(cycle_time * 1000 / 50)
wait_time = cycle_time

enable_alter_motion(n=n_period,mode=DR_DPOS, ref=DR_BASE, limit_dPOS=[50,90], limit_dPOS_per=[60,60])
# 경로 수정 기능 활성화
# 생성주기:(5*50)msec, 모드:누적량, 기준좌표계:베이스
# 누적량 제한:50mm,50deg, 증분량 제한:10mm, 10deg
# alter motion 이동량에 비해 cycle time이 너무 짧은 경우 Limit 알람이 발생할 수 있습니다.

th_id = thread_run(alter_thread, loop=True)


movel(pos=X1,vel=10,acc=100)
movel(pos=X2,vel=10,acc=100)

thread_stop(th_id)
disable_alter_motion() # 경로 수정 기능 비활성화

관련 명령어

Keyword

alter / motion / alter_