get_pattern_point(pos1, pos2, pos3, pos4, index, pattern, row, column, stack, stack_offset, point_offset)
기능
주어진 4점을 이용하여 정해진 Pattern에 맞는 Index에 대한 Pallet Point를 계산하는 기능이며, 정사각형 및 직사각형 평면 Pallet만 가능합니다. Pallet의 4점을 교시 할 때 Orientation을 고정한 후 교시 하기 바랍니다.
인수
인수명 | 자료형 | 기본값 | 설명 |
---|---|---|---|
pos1 | posx | - | posx 또는 position list |
list (float[6]) | |||
pos2 | posx | - | posx 또는 position list |
list (float[6]) | |||
pos3 | posx | - | posx 또는 position list |
list (float[6]) | |||
pos4 | posx | - | posx 또는 position list |
list (float[6]) | |||
index | int | 1 | 0 ~ [(row X column) – 1] |
pattern | Int | 0 | Normal Pallet -> 0: Snake, 1: Zigzag Rhombus Pallet -> 2: Snake, 3: Zigzag |
row | Int | 1 | 줄 개수 (가로 줄 수) |
column | Int | 1 | 열 개수 (세로 줄 수) |
stack | int | 1 | Pallet 층 개수 |
stack_offset | float | 0.0 | Pallet 층 높이 (물체의 높이 고려) |
point_offset | float[3] | None | 교시 점 미세조정 (Translation 방향) |
리턴
값 | 설명 |
---|---|
posx or list(float[6]) | task space point |
예외
예외 | 설명 |
---|---|
DR_Error (DR_ERROR_TYPE) | 인수들의 데이터형 오류 시 |
DR_Error (DR_ERROR_VALUE) | 인수의 값이 유효하지 않을 시 |
DR_Error (DR_ERROR_RUNTIME) | C Extension 모듈 에러 발생 시 |
DR_Error (DR_ERROR_STOP) | 프로그램 강제 종료 시 |
예제
# Example Data
pos1 = posx(300,0,0,0,180,0) # Teaching pose1
pos2 = posx(800,0,0,0,180,0) # Teaching pose2
pos3 = posx(0,500,0,0,180,0) # Teaching pose3
pos4 = posx(800,500,0,0,180,0) # Teaching pose4
direction = 0 # Normal Pallet -> 0: Snake, 1: Zigzag / Rhombus Pallet -> 2: Snake, 3: Zigzag
row = 3
column = 4
stack = 1
thickness = 0
point_offset = [0, 0, 0] # Offset for calculated pose
# Total count
if direction < 2: # Normal Pallet
total_count = row * column * stack
else: # Rhombus Pallet
total_count = (row * column - int(row/2)) * stack
# Calculate Pallet Pose (Resulted in base coordinate)
for pallet_index in range(0, total_count):
Pallet_Pose = get_pattern_point(pos1, pos2, pos3, pos4, pallet_index, direction, row, column, stack, thickness, point_offset)