인터페이스 통신 명령 사양

  1. 지정된 ID의 카메라로 촬영 지점을 보내기 전에, 먼저 해당 ID에 맞는 카메라로 촬영을 트리거해야 합니다.

  2. "핸드아이" 구성의 경우, 주의사항 1 외에도 통신 실행 순서는 다음과 같아야 합니다: 먼저 촬영을 트리거하고, 다음으로 촬영 지점을 보내고, 마지막으로 검출을 수행합니다.

  3. 다중 카메라 "핸드아이" 구성의 경우, 주의사항 1 외에도 통신 실행 순서는 다음과 같아야 합니다: 카메라 ID1로 촬영을 트리거하고, 카메라 ID1의 촬영 지점을 보내고, 다음으로 카메라 ID2로 촬영을 트리거하고, 카메라 ID2의 촬영 지점을 보내고, 마지막으로 검출을 수행합니다. (ID1과 ID2는 카메라 0이 반드시 먼저 촬영해야 함을 의미하지 않으며, 현장 요구에 따라 순서를 조정할 수 있습니다.)

포트 5700

자동화 통신 프로토콜 - Epic Pro가 서버로 작동 (포트 5700).

interface instructions

단일 명령

동작

명령

응답

촬영

110,카메라ID

110,카메라ID1,카메라ID2…​

(110만 입력하면 기본적으로 첫 번째 카메라가 사용됨)

성공: 110,카메라ID

실패: 000,에러코드,카메라ID

검출

일반 검출: 120,요청된 포즈 개수,0

파지 경로 계획만: 120,파지 경로 개수,0

후퇴 경로 계획 포함: 120,파지 경로 개수,후퇴 경로 개수

성공: 명령코드=120

경우 1 (일반 검출/충돌 검출): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

경우 2 (경로 계획): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

인터페이스 포인트 클라우드가 업데이트됩니다. 충돌 검출이나 경로 계획의 경우 로봇 상태도 변경됩니다.

경로 계획에서는 요청된 경로 점의 수가 각 세그먼트에 설정된 경로 점의 수를 초과할 수 없습니다. 초과할 경우 소프트웨어는 000,3005(요청된 경로 점 수가 요구 사항을 충족하지 않음)를 반환합니다. 알고리즘 감지/충돌 감지만 요청된 그립 점의 수가 실제로 인식된 그립 점의 수를 초과할 수 있습니다.

실패: 000,로봇 상태 코드

공간 내 물체 전환

130,공간ID,물체ID

성공: 130

실패: 000,로봇 상태 코드

로봇 촬영 포즈 (핸드아이)

140,카메라ID,X,Y,Z,자세

(쿼터니언은 W,X,Y,Z 순서로 파싱)

성공: 140,카메라ID

실패: 000,로봇 상태 코드

비전 소프트웨어 재시작

307

명령 수신: 307

산업용 PC 종료

886

명령 수신: 886

단축 명령

동작

명령

응답

촬영+검출

일반 검출: 220,파지점 개수,0

파지 경로 계획만: 220,파지 경로 개수,0

후퇴 경로 계획 포함: 220,파지 경로 개수,후퇴 경로 개수

성공: 명령코드=220

경우 1 (일반 검출/충돌 검출): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

경우 2 (경로 계획): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

인터페이스 포인트 클라우드가 업데이트됩니다. 충돌 검출이나 경로 계획의 경우 로봇 상태도 변경됩니다.

실패: 000,로봇 상태 코드

촬영+로봇 촬영 포즈

240,카메라ID,X,Y,Z,자세

성공: 240,카메라ID

실패: 000,로봇 상태 코드

촬영+로봇 촬영 포즈+검출

일반 검출: 250,카메라ID,X,Y,Z,자세,파지점 개수,0

파지 경로 계획만: 250,카메라ID,X,Y,Z,자세,파지 경로 개수,0

후퇴 경로 계획 포함: 250,카메라ID,X,Y,Z,자세,파지 경로 개수,후퇴 경로 개수

성공: 명령코드=250

경우 1 (일반 검출/충돌 검출): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

경우 2 (경로 계획): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

인터페이스 포인트 클라우드가 업데이트됩니다. 충돌 검출이나 경로 계획의 경우 로봇 상태도 변경됩니다.

실패: 000,로봇 상태 코드

공간 내 물체 전환+촬영

310,공간ID,물체ID,카메라ID1,카메라ID2…​

(카메라ID가 포함되지 않으면 기본적으로 첫 번째 카메라가 사용됨)

성공: 310,카메라ID

실패: 000,로봇 상태 코드

공간 내 물체 전환+촬영+검출

일반 검출: 320,공간ID,물체ID,카메라ID1,카메라ID2…​,파지점 개수,0

파지 경로 계획만: 320,공간ID,물체ID,카메라ID1,카메라ID2…​,파지 경로 개수,0

후퇴 경로 계획 포함: 320,공간ID,물체ID,카메라ID1,카메라ID2…​,파지 경로 개수,후퇴 경로 개수

(카메라ID가 포함되지 않으면 기본적으로 첫 번째 카메라가 사용됨)

성공: 명령코드=320

경우 1 (일반 검출/충돌 검출): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

경우 2 (경로 계획): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

인터페이스 포인트 클라우드가 업데이트됩니다. 충돌 검출이나 경로 계획의 경우 로봇 상태도 변경됩니다.

실패: 000,로봇 상태 코드

공간 내 물체 전환+촬영+로봇 촬영 포즈

340,공간ID,물체ID,카메라ID,X,Y,Z,자세

성공: 340,카메라ID

실패: 000,로봇 상태 코드

공간 내 물체 전환+촬영+로봇 촬영 포즈+검출

일반 검출: 350,공간ID,물체ID,카메라ID,X,Y,Z,자세,파지점 개수,0

파지 경로 계획만: 350,공간ID,물체ID,카메라ID,X,Y,Z,자세,파지 경로 개수,0

후퇴 경로 계획 포함: 350,공간ID,물체ID,카메라ID,X,Y,Z,자세,파지 경로 개수,후퇴 경로 개수

성공: 명령코드=350

경우 1 (일반 검출/충돌 검출): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

경우 2 (경로 계획): 명령코드,포즈유형(데카르트 0/관절 1),전송된 포즈 개수(n),파지 가능한 물체 수,총 파지점 수,현재 공간 ID,현재 물체 ID,현재 파지점 인덱스(모든 파지점 리스트에서의 인덱스),현재 파지점 번호(파지점 편집 도구에 표시되는 번호),예약된 ProStatus 정보(정보가 없으면 0으로 채움),0,0,포즈*n

인터페이스 포인트 클라우드가 업데이트됩니다. 충돌 검출이나 경로 계획의 경우 로봇 상태도 변경됩니다.

실패: 000,로봇 상태 코드

조합 명령

기본 원칙:

  1. 개별 지침을 서로 결합하고 세미콜론(;)으로 구분합니다

  2. 손에 눈이 있는 경우, 사진을 찍는 카메라 ID와 사진 점 위치를 보내는 카메라 ID가 일치하는지 확인하고, 사진 점을 보내기 전에 해당 ID의 카메라로 사진을 촬영합니다.

  3. 지침 순서:

    지침 순서

    예제 지침

    손 밖의 눈: 공간 객체 전환 → 사진 촬영 → 감지

    130,0,0;110,0;120,1,0

    손에 눈: 공간 객체 전환 → 사진 촬영 → 현재 카메라 사진 점 → 감지

    130,0,0;110,0;140,0,0,0,0,0,0,0;120,1,0

    손에 눈 스티칭: 공간 객체 전환 → 카메라 0 사진 촬영 → 카메라 1 사진 촬영 → 감지

    130,0,0;110,0;110,1;120,1,0

    손 밖의 눈 스티칭: 공간 객체 전환 → 카메라 0 사진 촬영 → 현재 카메라 0 사진 점 → 카메라 1 사진 촬영 → 현재 카메라 1 사진 점 → 감지

    130,0,0;110,0;140,0,0,0,0,0,0,0;110,1;140,1,0,0,0,0,0,0;120,1,0

간단한 예시:

동작

명령

응답

촬영+검출

110,카메라ID1,카메라ID2…​;120,1,0 또는 110;120,1,0

(카메라ID가 포함되지 않으면 기본적으로 첫 번째 카메라가 사용됨)

위 표의 응답 세부사항 참조

촬영+로봇 촬영 포즈

110,카메라ID;140,카메라ID,X,Y,Z,자세

위 표의 응답 세부사항 참조

촬영+로봇 촬영 포즈+검출

110,카메라ID;140,카메라ID,X,Y,Z,자세;120,1,0

위 표의 응답 세부사항 참조

반환 상태 코드

모든 명령은 HOOK을 통해 반환되며, 모두 응답이 있습니다.

성공 상태 코드

상태 코드

설명

비고

2001

설정 전환 성공

2002

카메라 전환 성공

2003

로봇 촬영 포즈 설정 성공

2004

촬영 성공

2005

검출 성공

일반 검출 및 충돌 검출 성공 포함

2006

경로 계획 성공

이상 상태 코드

상태 코드

설명

비고

3001

현재 작업이 진행 중입니다. 잠시 후 다시 시도하세요

계획 종료 중이거나 대기 상태에서는 다른 작업을 수행할 수 없음

3002

명령 파싱 실패. 형식을 확인하세요

3003

요청된 매개변수 개수가 요구사항을 충족하지 않음

3004

촬영 포즈 형식이 올바르지 않음

3005

요청된 경로 점 개수가 요구사항을 충족하지 않음

3006

요청된 파지점 개수가 요구사항을 충족하지 않음

3007

파지 공간 전환 실패

3008

파지 설정 전환 실패

3009

카메라 전환 실패

3010

카메라 매개변수 설정 실패

3011

현재 로봇 촬영 포즈를 수신하지 않음

3012

카메라 촬영 포즈 설정 시 촬영 데이터 없음

3013

현재 로봇 촬영 포즈 설정 실패

3014

마지막 로봇 촬영 포즈가 전송되지 않음. 다시 촬영하고 해당 포즈를 전송하세요

3015

촬영 실패

3016

검출 입력 데이터 부족

ATOM 요청 전에 부족한 데이터: 핸드아이 캘리브레이션 결과 데이터 또는 핸드아이 촬영 지점 데이터

3017

ATOM 매개변수 설정 실패

런타임 매개변수 및 매핑 매개변수 포함

3018

ATOM 검출 이상

ATOM 실행 중 오류 또는 이상 발생 (결과가 null이거나 요청 중 예외 발생)

3019

검출 이상

120 명령 이상 (ATOM 이상 제외)

3020

검출 결과 없음

대상이 검출되지 않음:

1. ATOM 검출 결과가 비어 있음

2. ATOM 결과가 비어 있지 않으나 모두 충돌

3. ATOM 결과가 비어 있지 않으나 파지점이 계획되지 않음

3021

사용 가능한 파지점 없음

파지 가능한 결과가 존재하나 모두 파지 완료 후 재요청 시 "사용 가능한 파지점 없음" 표시

3022

Epic Pro 이상

통신 및 훅 실행 중 처리되지 않은 훅 예외 (훅 실행 이상)

포트 5800

실시간 로봇 데이터 수집 (기본 포트 5800)

// 주의: SN 명명 규칙이 VendorName-ModelName-RobotName으로 변경됨
// VendorName은 motion_plan 모듈과 동일한 명명 규칙을 따름
// RobotName은 001, 002, 003 등이 될 수 있음

// 데카르트 공간 포즈 전송
{"SN":"Abb-001","C":"[269.91,3.84,910.26,0.0353839,0.705059,0.0673907]"}
// 관절 각도 전송
{"SN":"Abb-001","J":"[2.03,-48.87,50.83,-0.06,85.19,0.91]"}