인터페이스 통신 명령 사양
|
포트 5700
자동화 통신 프로토콜 - Epic Pro가 서버로 작동 (포트 5700).

단일 명령
동작 |
명령 |
응답 |
||
---|---|---|---|---|
촬영 |
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,로봇 상태 코드 |
||
공간 내 물체 전환 |
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,로봇 상태 코드 |
조합 명령
기본 원칙:
-
개별 지침을 서로 결합하고 세미콜론(;)으로 구분합니다
-
손에 눈이 있는 경우, 사진을 찍는 카메라 ID와 사진 점 위치를 보내는 카메라 ID가 일치하는지 확인하고, 사진 점을 보내기 전에 해당 ID의 카메라로 사진을 촬영합니다.
-
지침 순서:
지침 순서
예제 지침
손 밖의 눈: 공간 객체 전환 → 사진 촬영 → 감지
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
반환 상태 코드
모든 명령은 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]"}