speedj()
기능
비동기 방식의 모션 명령어로 모션 시작과 동시에 다음 명령어를 수행합니다. 연속적으로 전달되는 명령 중 가장 최근의 목표 관절 속도를 설정한 최대 속도, 가속도 내에서 추종하는 모션 입니다.
인수
인수명 | 자료형 | 기본값 | 설명 |
---|---|---|---|
vel | list (float[6]) | - | 목표 관절 속도 [deg/s] |
acc (a) | float | None | 최대 관절 가속도(모든 축에 동일) 또는 최대 관절 가속도(축별 가속도) [deg/s2] |
list (float[6]) | |||
time (t) | float | None | 도달 시간 [sec] |
알아두기
- 단축 인수를 지원합니다. (a:acc, t:time)
- acc이 None인 경우, _global_accj가 적용됩니다. (_global_accj 초깃값은0이며, set_accj에 의해 설정 가능)
- time이 입력된 경우, 최대 가속도 조건에 의해 도달 시간을 지킬 수 없는 경우 자동 조정하고 알림 메시지를 띄웁니다.
- 속도가 있는 상태에서 정상적으로 정지하고 싶은 경우에는, vel을 [0,0,0,0,0,0]으로 입력하거나 stop 명령어를 활용합니다.
- 안전을 위하여 이동 중 0.1 [sec] 동안 새로운 speedj 명령이 전달되지 않으면, 에러 메시지를 띄우고 정지합니다.
주의
- 현재는 속도 슬라이드바의 작동 속도 조절 기능과 연동되지 않습니다.
- 현재는 check_motion(), change_operation_speed() 명령어와 연동되지 않습니다.
리턴
값 | 설명 |
---|---|
0 | 성공 |
음수값 | 오류 |
예외
예외 | 설명 |
---|---|
DR_Error (DR_ERROR_TYPE) | 인수들의 데이터형 오류 시 |
DR_Error (DR_ERROR_VALUE) | 인수의 값이 유효하지 않을 시 |
DR_Error (DR_ERROR_RUNTIME) | C Extension 모듈 에러 발생 시 |
DR_Error (DR_ERROR_STOP) | 프로그램 강제 종료 시 |
예제
movej(posj(0,0,90,0,90,0), v=30, a=60)
v1 = 30
go_plus = True
while True:
q = get_desired_posj()
if go_plus:
speedj([v1, 5, 5, 5, 5, 5], a=60)
if q[0] > 90:
go_plus = False
else:
speedj([-v1, -5, -5, -5, -5, -5], a=60)
if q[0] < -90:
go_plus = True