Skip to main content
Skip table of contents

set_conveyor_ex(name=””, conv_type=0, encoder_channel=1, triggering_mute_time=0.0, count_per_dist=5000, conv_coord=posx(0,0,0,0,0,0), ref=DR_BASE, conv_speed=100.0, speed_filter_size=500, min_dist=0.0, max_dist=1000.0 ...)

기능

Conveyor Tracking Application을 시작할 수 있도록 Conveyor를 설정하고 ID를 획득합니다. 명령이 수행된 이후에는 프로그램이 종료될 때까지 설정된 Conveyor에서 Triggering되는 물체들을 모니터링합니다. Conveyor 정보 settingUI를 통해서 설정할 수 없어서 파라미터를 직접 설정해야 할 때 사용합니다.

1)M2.4.0 이전 버전 대비 전체 인자의 기본값 추가

2)M2.4.0 이전 버전 대비 ref 인자 추가 (world 좌표계 반영)

3)M2.4.0 이전 버전 대비 obj_offset_coord 인자 삭제, obj_offset_coord 인자는 11.2.3 get_conveyor_obj() 함수에서만 입력하는 것으로 변경

인수

인수명자료형기본값설명

name

string

“”

Conveyor 이름

conv_type

int

0

Conveyor 타입(0: Linear, 1: Circular)

encoder_channel

int

1

외부 encoder 채널(1, 2)

triggering_mute_time

float

0.0

Triggering 직후에 triggering 신호가 들어와도 triggering(encoder reset, 작업물 추적 시작)을 수행하지 않는 시간(s).

count_per_dist

int

5000

길이 당 엔코더 카운트 환산값 (Linear: count/m, Circular: count/rad)

conv_coord

posx

posx(0,0,0,0,0,0)

컨베이어 고정 좌표계 (Base/World 좌표계 기준, mm, ˚)

list (float[6])

ref

int

DR_BASE

컨베이어 고정 좌표계의 기준 좌표계(DR_BASE: Base, DR_WORLD: World)

conv_speed

float

100.0

컨베이어 nominal 속도(Linear: mm/s, Circular: ˚/s)

speed_filter_size

int

500

컨베이어 속도 Filtering Moving Average Filter Size

min_dist

float

0.0

컨베이어 작업 최소 길이(Triggering Switch 기준, Linear: mm, Circular: ˚)

max_dist

float

1000.0

컨베이어 작업 최대 길이(Triggering Switch 기준, Linear: mm, Circular: ˚)

watch_window

float

100.0

컨베이어 작업 대기 모니터링 길이(작업 최소 길이 기준, Linear: mm, Circular: ˚)

out_tracking_dist

float

10.0

컨베이어 Tracking 해제 여유 구간 길이(작업 최대 길이 기준, Linear: mm, Circular: ˚)

알아두기

  1. conv_type 인자에서 Circular Conveyor는 현재 지원하지 않습니다!
  2. set_conveyor() 또는 set_conveyor_ex() 함수 실행 이후 프로그램 종료 전까지, Triggering Switch를 지나는 모든 작업물은 max_dist를 지날 때까지 모니터링 됩니다.
  3. , triggering_mute_time을 설정할 경우, 이전 작업물 감지 이후에 해당 시간 동안은 Triggering Switch가 작동되어도 모니터링 목록에 포함시키지 않습니다. Triggering Switch의 노이즈가 있거나 의도적으로 일정 시간 동안 작업물을 배제하고 싶을 때 사용합니다.
  4. conv_coord는 컨베이어에 고정된 좌표계로서 베이스 또는 월드 좌표계 기준의 컨베이어 좌표계입니다. 여기서, conv_coord의 x축은 컨베이어가 흘러가는 방향을 나타냅니다. 컨베이어 작업물이 Triggering Switch를 작동시키는 순간부터 증가된 엔코더 값은 count_per_dist 인자를 이용하여 작업물이 이동한 길이로 환산할 수 있고, 이 길이를 conv_coordx축 방향으로 연장하면 기준 좌표계 대비 작업물의 위치를 추적할 수 있습니다.

    [Conveyor 좌표계와 작업물 좌표계]
  5. conv_speed는 컨베이어의 이동 속도입니다. 엔코더로 센싱되는 컨베이어 속도가 이 속도의 200%를 넘을 경우 Info를 주는 용도로만 사용되므로 TP UI를 통해서 측정할 수 없는 경우 대략적인 값을 입력합니다.
  6. speed_filter_size는 엔코더로부터 컨베이어 속도를 추정할 때 사용되는 moving-average filter의 사이즈입니다. 크기가 클수록 노이즈를 상쇄시킬 수 있지만, 가감속 시 tracking accuracy가 저하될 수 있습니다.
  7. 컨베이어 위에 구간은 Watch Window, Tracking Zone, Out-Tracking Zone으로 구분됩니다.
  8. Watch Window는 Tracking을 위해서 작업물 좌표계 획득을 하려고 할 때, 해당 구간 안에 있는 작업물만 작업 가능하다고 판단하는 구간입니다. get_conveyor_obj() 함수를 호출했을 때, 이 구간 안에 있지 않으면 함수 리턴을 해주지 않고, 작업물이 있으면 get_conveyor_obj() 함수 옵션(FIFO, LIFO)에 따라서 작업물 좌표계를 리턴해줍니다.
  9. Tracking Zone은 Conveyor Tracking을 수행하는 구간입니다.
  10. Out-Tracking Zone은 Tracking을 계속하면 로봇이 고유의 작업 영역 또는 사용자가 설정한 작업 영역을 벗어난다고 판단하여 로봇의 Tracking을 자동으로 종료하게 되는 구간입니다.
  11. 3개의 구간은 아래 그림과 같이 4개의 길이(min_dist, max_dist, watch_window, out_tracking_dist)로 정의됩니다.

    [Conveyor 구간 및 길이 설명]

리턴

설명

Conveyor ID

Conveyor 설정 성공 시 Conveyor ID를 리턴

None

Conveyor 설정 실패

예외

예외설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

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

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시

예제

PY
CONV1 = set_conveyor_ex(name=‘conveyor_1’,
conv_type=0, # linear
encoder_channel=1, triggering_mute_time=0.0, 
count_per_dist=5000, # 5000 count/mm)
conv_coord=posx(500, 100, 500, 0, -90, 0), ref=DR_BASE,
conv_speed=100.0, # conveyor speed: 100 mm/s, 
speed_filter_size=500, # moving avg. filter size: 500 ms
min_dist=100, max_dist=1000, watch_window=200, out_tracking_dist=10) 

관련 명령어


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.