posb(seg_type, posx1, posx2=None, radius=0)
기능
- 정속 블렌딩 모션(moveb, amoveb)의 입력 인자로, 각 경유점의 좌표와 단위 경로 형태(라인 또는 원호)의 정보를 갖는 posb는 블랜딩되는 trajectory의 단위 세그먼트 객체를 정의합니다.
- seg_type이 line인 경우(DR_LINE)는 posx1만 입력, circle인 경우(DR_CIRCLE)는 posx2까지 입력합니다. radius는 이어지는 segment와의 blending 반경을 설정합니다.
인수
인수명 | 자료형 | 기본값 | 설명 |
---|---|---|---|
seg_type | Int | - | DR_LINE DR_CIRCLE |
posx1 | posx | - | 1st task posx |
posx2 | posx | - | 2nd task posx |
radius | float | 0 | Blending radius [mm] |
리턴
Posb
예외
예외 | 설명 |
---|---|
DR_Error (DR_ERROR_TYPE) | 인수들의 데이터형 오류 시 |
예제
q0 = posj(0, 0, 90, 0, 90, 0)
movej(q0,vel=30,acc=60)
x0 = posx(564, 34, 690, 0, 180, 0)
movel(x0, vel=200, acc=400) # 시작위치로 이동
x1 = posx(564, 200, 690, 0, 180, 0)
seg1 = posb(DR_LINE, x1, radius=40)
x2 = posx(564, 100, 590, 0, 180, 0)
x2c = posx(564, 200, 490, 0, 180, 0)
seg2 = posb(DR_CIRCLE, x2, x2c, radius=40)
x3 = posx(564, 300, 490, 0, 180, 0)
seg3 = posb(DR_LINE, x3, radius=40)
x4 = posx(564, 400, 590, 0, 180, 0)
x4c = posx(564, 300, 690, 0, 180, 0)
seg4 = posb(DR_CIRCLE, x4, x4c, radius=40)
x5 = posx(664, 300, 690, 0, 180, 0)
seg5 = posb(DR_LINE, x5, radius=40)
x6 = posx(564, 400, 690, 0, 180, 0)
x6c = posx(664, 500, 690, 0, 180, 0)
seg6 = posb(DR_CIRCLE, x6, x6c, radius=40)
x7 = posx(664, 400, 690, 0, 180, 0)
seg7 = posb(DR_LINE, x7, radius=40)
x8 = posx(664, 400, 590, 0, 180, 0)
x8c = posx(564, 400, 490, 0, 180, 0)
seg8 = posb(DR_CIRCLE, x8, x8c, radius=0) # 마지막 radius는 0이어야 함
# 먄약 0이 아닌 경우 0으로 처리됨
b_list = [seg1, seg2, seg3, seg4, seg5, seg6, seg7, seg8]
moveb(b_list, vel=200, acc=400)