Adapter 생성기

Adapter 생성기는 Mech-Center에 통합된 한 모듈입니다. Adapter 생성기를 사용하고 설정을 통해 포즈만 보내는 Adapter가 획득됩니다. 복잡한 실제 요구 사항을 충족시키기 위해 생성된 코드를 간단히 수정할 수 있습니다.

도구 ‣ Adapter 생성기 를 클릭하여 Adapter 생성기를 시작합니다. 아래 그림과 같습니다.

../../../_images/adapter_generator01.png

힌트

대응하는 모듈에 자세한 설명이 있고 마우스의 커서를 해당 위치에 올려놓으면 조회할 수 있습니다.

네트워크 구성 - 서버 혹은 클라이언트

이 스텝에서 Adapter의 명칭(Server 혹은Client) 및 통신 포맷을 설정해야 합니다. 인터페이스는 아래 그림과 같습니다. 완성하면 오른 쪽 아래 다음으로 를 클릭하세요.

../../../_images/adapter_generator02.png
  • Server 또는 Client를 선택하기: 구성 설정 중에 대응하는 어댑터 Server IP와 포트를 설정해야 합니다.

  • 포트 바인딩: Client 모드에만 사용할 수 있습니다. 단 Server 포트가 Client 포트에 대한 제한이 있으면 이 옵션을 선택해야 합니다.

  • 통신 포맷 선택: ASCII 문자열 또는 HEX(16진법)를 선택할 수 있으며 HEX는 빅/리틀 엔디안을 지정해야 합니다.

Mech-Viz/Vision 설정 - 포즈와 관절 각도

이 스텝은 포즈의 개수와 형식을 설정해야 합니다. 인터페이스는 아래 그림과 같습니다. 완성되면 오른쪽 아래 다음으로 를 클릭합니다.

../../../_images/adapter_generator03.png
  • Mech-Vision 프로젝트: 먼저 구성 설정 중 Mech-Vision 프로그램 경로와 Mech-Vision 프로젝트 경로를 설정해야 합니다.

  • 포즈의 수량: 상대방에게 보낼 포즈의 개수를 선택하세요.

  • 포즈의 유형: 사원수나 오일러 각을 선택할 수 있습니다.

  • 포즈의 단위: 일반적으로 밀리미터와 도를 사용하도록 선택합니다.

  • 카메라 설치: 카메라 설치법(ETH와 EIH 두 가지 경우가 있음)을 선택합니다.

  • 포즈의 기준 좌표계: 보낼 포즈의 기준 좌표계가 무엇인지를 확인하세요. 일반적으로 포즈는 베이스 좌표계를 기반으로 합니다. 하지만 EIH 모드에 로봇 말단 포즈를 획득하지 못하는 상황에 포즈는 툴 좌표계를 기반으로 합니다.

  • 보류할 소수점 이하 자릿수: 보낼 포즈의 소수점 자리를 확인하세요. 최대 자릿수는 10입니다.

  • Mech-Viz를 사용하여 충돌을 감지하기: 이 옵션을 선택하고 비전 포인트가 Viz의 감지 및 계산을 통해 계획이 실패된 포인트를 제거해서 과정에서 총돌이 없는 피킹 포즈를 필터링합니다. 이 선택 사항은 Mech-Viz에서 프로젝트를 만들 필요가 있고 이 프로젝트는 최소 hp에서 视觉移动 까지의 모듈을 포함해야 됩니다. Mech-Center 설치 경로 /tool/viz_project 에 있는 예시 프로젝트 check_collision을 참고하십시오.

주의

예시 프로젝트에서 볼 수 있듯이 사진 캡쳐는 VisualLook 에 의해 트리거되며 이동 유형이 아닌 태스크가 반드시 있어야 하며 명칭은 다른 것 (notify_1,notify_2,visual_look_1 포함) 으로 변경할 수 없습니다.

  • Mech-Viz 구성. Mech-Viz를 사용하여 충돌을 검측하기 를 선택하고 생성기 Mech-Viz 구성 을 클릭하면 아래 그림과 같이 인터페이스가 팝업될 것입니다. 완성되면 오른 쪽 아래 저장 을 클릭합니다.

    ../../../_images/adapter_generator04.png
    1. 피킹 포즈(picking pose)와 플레이스 포즈(place pose)를 구별할 필요가 있음: 피킹 포즈는 비전 이동 이전의 모든 포즈(비전 이동 포함)입니다. 플레이스 포즈는 비전 이동 이후의 모든 포즈입니다. 일부 시나리오에서 로봇은 태스크에 따라 피킹 포즈 및 플레이스 포즈를 구별할 필요가 있습니다.

    2. 피킹 포즈(picking pose)와 플레이스 포즈(place pose)의 수량을 보낼 필요가 있음: 포즈 수가 상대적으로 많으면 수량 필드도 함께 보낼 것입니다. 이 옵션을 선택하면 기본적으로 포즈 수가 1보다 많은 경우 수량 필드도 함께 보냅니다.

    3. 모든 포즈의 모션 방식을 보낼 필요가 있음: Mech-Viz중 이동 태스크의 운동 방식은 관절 운동이나 직선 운동으로 나뉩니다.

    4. 코드를 업데이트하기: 기본적으로 관절 운동과 대응하는 코드는 1이고 직선 운동과 대응하는 코드는 2입니다. 코드 자체 정의가 가능하며 변경하고 나서 수치를 업데이트하면 사용할 수 있습니다.

    5. 관절 각도 또는 포즈: 포즈를 보내는 방식은 기본적으로 Jps를 사용합니다. 포즈를 선택하려면 Mech-Viz “기타” 표시줄 중의 TCP 포즈를 보내기 를 선택해야 합니다. 아래 그림과 같습니다.

      ../../../_images/adapter_generator05.png
    6. 관절 각도 또는 포즈의 단위: 선택한 전송 형식에 따라 적절한 단위를 설정하십시오. 일반적으로 도 및 밀리미터입니다.

    7. 로봇의 명칭: Mech-Viz를 사용해서 로봇 운동을 시뮬레이션하려면 실제 로봇 서비스가 필요하고 생성된 Adapter는 이 서비스를 시뮬레이션할 것 입니다. 로봇의 명칭은 이 서비스의 명칭이고 Mech-Viz중에 있는 로봇의 명칭과 일치해야 됩니다. Mech-Viz에서 프로젝트를 로드할 수 있고 현재 프로젝트 자동 로드하기 를 선택하며 설정으로 돌아가서 로봇 명칭을 획득하기 를 클릭한 후 로봇 명칭을 추가할 수 있습니다.

    8. 원점의 관절 각도 (단위:라디안): Mech-Viz중 운동을 시작하는 참고 원점을 가리키고 단위는 라디안이며 쉼표로 분리합니다. Mech-Viz중 이동 하나를 원점으로 하여 이 원점의 관절 위치를 복사할 수 있습니다.

수신할 데이터 형식 구성 - 필드 수신

이 스텝은 수신 필드의 형식을 설정하는 것입니다. 인터페이스는 아래 그림과 같습니다. 설정해야 하는 것은 사진 캡쳐 지시, 멀티 프로젝트(스크립트 코드), 모델을 동적으로 바꾸기가 필요함(모델 스크립트), 총 필드 수, 필드 유형, 필드 구분자 및 인서트 필드 구분자입니다. 완료되면 오른쪽 하단 모서리에 있는 다음으로 를 클릭합니다.

../../../_images/adapter_generator06.png
  • 사진 캡처 지시: 카메라가 사진을 캡처할 수 있도록 외부에서 Mech-Mind 소프트웨어 시스템으로 촬영 지시를 보냅니다. 통신 형식이 ASCII인 경우 p 와 같은 문자를 사용하는 것이 좋으며 필드 위치는 기본적으로 1로 설정됩니다. 통신 형식이 16진법(HEX)인 경우 0xff 또는 ff 와 같이 16진법 형식의 정수가 필요합니다.

  • 멀티 프로젝트(지시 코드): 이 설정은 선택 사항으로 프로젝트에 여러 Mech-Vision 프로젝트가 있는 경우 외부 지시에 따라 서로 다른 Mech-Vision 프로젝트를 호출해야 하며 지시 코드를 구성할 수 있습니다.

주의

각 프로젝트는 고유한 지시 코드에 해당하며 필드 위치는 유일하며 다른 필드와 겹칠 수 없습니다.

  • 모델을 동적으로 바꾸기가 필요함(모델 지시 코드): 이 설정은 선택 사항입니다.동적 템플릿 전환은 인식해야 할 물체가 여러 모델이 있고 현재 모델의 템플릿 파일이 런타임에 동적으로 전환되어야 함을 의미합니다.

주의

필드 위치는 고유하며 다른 필드와 겹칠 수 없습니다.

  • 총 필드 수 : 설정하고자 하는 파라미터의 수와 관련되며, 값 범위는 1-10 입니다. 필드에 사진 캡처 지시가 있어야 합니다.

  • 필드 유형: 통신 포맷이 16진법(HEX)일 때 설정해야 합니다. 사용 가능한 유형은 CHAR, SHORT, INT, FLOAT, DOUBLE입니다.

  • 필드 구분자 및 인서트 필드 구분자: 통신 형식이 ASCII인 경우 필요합니다. 2개 이상의 필드가 있는 경우 필드 구분자를 채워야 하며, 추가 정보에 다른 구분자가 필요한 경우 인서트 필드 구분자도 필요하며 인서트 필드의 시작 및 끝 범위를 지정할 수 있습니다.

모델 구성 - Mech-Vision 모델 바꾸기

이 구성은 이전 단계에서 모델을 동적으로 바꾸기가 필요함 옵션을 선택한 경우 설정해야 합니다. 완료되면 오른쪽 하단 모서리에 있는 다음으로 를 클릭합니다.

  • 모델 폴더: 종류에 따라 모델이 저장되는 폴더로 폴더 구조는 아래 그림과 같습니다.

../../../_images/adapter_generator07.png
  • 유형 및 유형 코드: 모델 폴더를 로드한 후 폴더에 있는 모든 유형이 유형 드롭다운 상자로 구문 분석됩니다. 해당 유형 코드가 필요한 경우 다음 그림과 같이 code_type 규칙에 따라 하위 폴더의 이름을 지정하십시오. 아래 그림과 같습니다.

../../../_images/adapter_generator08.png
  • 인터페이스에서 모델 전환: 선택 후 Adapter를 시작하면 모델을 수동으로 전환할 수 있는 서브 인터페이스가 생성됩니다.

  • 스텝 명칭: 모델을 설정해야 하는 스텝의 명칭, 즉 Mech-Vision에서 해당 스텝의 스텝 명칭입니다.

  • 스텝 유형: 해당 스텝의 유형입니다. 현재 《3D Coarse Matching》,》3D Fine Matching》,》Coarse Registration Multi Template》,》Fine Registration Multi Template》,》Map to Multi Pick Points》,》Read Object Sizes》,》Read Poses》,》Add Labels to Poses》 만 지원하고 구체적인 수요에 근거하여 필요한 스텝 속성을 선택하면 됩니다.

  • 속성을 선택한 후 + 또는 - 을 클릭하여 스텝을 추가하거나 삭제할 수 있습니다.

주의

이름 지정을 일치하도록 하기 위해 모델 파일의 이름을 이러한 속성 이름으로 지정하십시오.예를 들어, 포인트 클라우드 모델 파일의 이름은 modelfile.ply로 지정하고 픽 포인트의 이름은 대소문자를 구분하지 않는 pickpointfilepath.json으로 지정하십시오.

로봇 구성 - Eye in Hand

Eye in Hand의 경우 저희가 사용자에게 베이스 좌표계를 기반으로 포즈를 제공해야 하는 경우 로봇은 사진 캡처 시의 관절 각도 또는 플랜지 포즈를 제공해야 합니다. 이 스텝은 로봇이 사진을 캡처할 때의 포즈 형식을 설정합니다. 인터페이스는 아래 그림과 같습니다. 완료되면 오른쪽 하단 모서리에 있는 다음으로 을 클릭합니다.

../../../_images/adapter_generator09.png
  • 포즈 형식: 관절 각도 또는 플랜지 포즈를 선택할 수 있습니다.

  • 관절 각도 단위: 도 또는 라디안을 선택할 수 있습니다.

  • 플랜지 포즈 단위: 위치에 대해 미터 또는 밀리미터, 자세(회전)에 대해 사원수 또는 오일러 각, 오일러 각 단위에 대해 도 또는 라디안을 선택할 수 있습니다.

  • 관절 각도/플랜지 포즈의 필드 범위: 전체 필드에서 포즈의 시작 필드와 끝 필드의 위치를 ​​나타냅니다.

주의

인덱스 위치는 1부터 세고, 인덱스 위치 1은 사진 캡처 지시입니다!

  • 로봇의 명칭: 로봇 서비스를 인식하는 데 사용되는 이름으로 Mech-Viz의 로봇 이름과 일치해야 합니다.

  • 로봇 DOF: 현재 4축 및 6축 로봇이 지원되며, 해당 로봇의 자유도는 프로젝트의 실제 상황에 따라 선택합니다.

전송할 데이터 형식 구성 - 필드 전송

이 스텝은 포즈의 개수와 형식을 설정해야 합니다. 인터페이스는 아래 그림과 같습니다. 완성되면 오른쪽 아래 다음으로 을 클릭합니다.

../../../_images/adapter_generator10.png
  • 필드 구분자 및 인서트 필드 구분자: 구분자 형식을 설정합니다.

  • 상태 코드: 전송 상태를 설정합니다. 각 상태는 고유한 상태 코드에 해당합니다.

  • 포인트 클라우드를 체크할 필요가 있음: 체크 후 포인트 클라우드를 체크하며, 포인트 클라우드가 존재하지 않을 경우 해당 상태 코드를 출력합니다.

  • 물체의 레이블을 보낼 필요가 있음: 물체 레이블을 보낸다는 것은 Mech-Vision 에서 인식한 레이블을 상대방에게 보내는 것을 의미하며, 각 레이블은 포즈의 뒷면에 연결됩니다. 상대방이 레이블 문자열을 파싱하기 불편한 경우 레이블에 해당하는 코드도 지정할 수 있으며 모든 레이블 문자열을 포함하는 레이블 파일을 로드해야 합니다. 주의해야 할 것은 레이블 파일 형식은 json 배열 형식이어야 합니다.

  • 포즈의 개수를 보낼 필요가 있음: 이번에 보낼 포즈의 수입니다.

  • 고정포체 필요: 비전이 인식되지 않으면 상대방에게 메시지를 보냅니다(오류 코드 뒤의 메시지).

  • 고정꼬리 필요: 체크하면 전송된 데이터에 고정 꼬리 표시가 추가됩니다.

주의

통신 형식이 16진법(HEX)인 경우 상태 코드, 포즈 수, 포즈 값 유형을 설정해야 합니다.

위의 모든 구성이 완료된 후 완성 또는 프로젝트를 다른 이름으로 저장하기 를 클릭하여 Adapter를 저장합니다.