set_singularity_handling(mode)
기능
task motion에서 특이점의 영향으로 path deviation이 발생할 경우 대응 정책을 사용자가 선택할 수 있도록 합니다. mode의 설정은 아래와 같은 설정이 가능 합니다.
- 자동회피 모드(Default) : DR_AVOID
- 경로 우선 : DR_TASK_STOP
- 속도 가변 : DR_VAR_VEL
기본 설정은 자동회피 모드이며, 이 설정의 경우 특이점으로 인한 불안정성을 감소시키지만 path tracking 정확도가 감소합니다. 경로 우선 설정의 경우 singularity의 영향으로 불안정성이 발생할 가능성이 있는 경우, 감속 후 warning 메시지를 출력하고 해당 Task를 종료합니다. 속도 가변 설정의 경우 특이점으로 인한 불안정을 감소시키면서 path tracking 정확도를 높입니다. 하지만 특이점 구간에서 TCP 속도 변경이 발생합니다
인수
인수명 | 자료형 | 기본값 | 설명 |
---|---|---|---|
mode | int | DR_AVOID | DR_AVOID : 자동 회피 모드 DR__TASK_STOP : 감속/ Warning/ Task 종료 DR_VAR_VEL : 속도 가변 |
리턴
값 | 설명 |
---|---|
0 | 성공 |
음수값 | 오류 |
예외
예외 | 설명 |
---|---|
DR_Error (DR_ERROR_TYPE) | 인수들의 데이터형 오류 시 |
DR_Error (DR_ERROR_VALUE) | 인수의 값이 유효하지 않을 시 |
DR_Error (DR_ERROR_RUNTIME) | C Extension 모듈 에러 발생 시 |
DR_Error (DR_ERROR_STOP) | 프로그램 강제 종료 시 |
예제
P1 = posx(400,500,800,0,180,0)
P2 = posx(400,500,500,0,180,0)
P3 = posx(400,500,200,0,180,0)
set_singularity_handling (DR_AVOID) # 특이점 자동회피 모드
movel(P1, vel=10, acc=20)
set_velx(30)
set_accx(60)
set_singularity_handling(DR_TASK_STOP) # Task 모션 경로 우선
movel(P2)
set_singularity_handling(DR_VAR_VEL) # 특이점 속도 가변 모드
movel(P3)