UR CB 시리즈 로봇의 통합¶
이 부분은 UR(Universal Robots) CB 시리즈 로봇의 통합에 대한 소개입니다.
플러그인 설치 및 배포¶
이 부분은 UR CB 시리즈 로봇용 Mech-Mind 3D Vision Interface(URCap 플러그인)의 설치 및 배포에 대한 설명입니다.
전제 조건¶
Mech-Mind 시리즈 비전 소프트웨어와 Polyscope가 최저 버전 요구 기준 을 충족해야 합니다.
Polyscope의 버전을 확인하려면 Polyscope 홈스크린의 About 버튼을 클릭하십시오.
URCap 플러그인 설치¶
URCap 플러그인을 설치하려면 다음 단계를 수행하십시오.
Mech-Center 설치 디렉터리의
\Robot_Interface\Robot_Plugin\URCAP\
폴더에서 URCap 플러그인을 찾으십시오.URCap 플러그인을 USB에 복사하고 USB를 UR 티치펜더트에 삽입하십시오.
Polyscope 메인 화면에서 Setup Robot 을 누릅니다.
Setup Robot 화면 왼쪽 패널에서 :guilabel:`URCap`을 선택합니다.
URCap 화면에서 + 버튼을 눌러 USB 화면으로 전환하여 URCap 플러그인(.urcap 파일)을 찾으십시오.
Select URCap to install 화면에서 URCap 플러그인을 선택하고 Open 버튼을 누르십시오. 누른 후 URCap 플러그인이 자동으로 설치될 것입니다.
Restart 버튼을 누르면 변경 사항이 적용될 것입니다.
이로써 URCap 플러그인은 성공적으로 UR 티치펜더트에 설치됩니다.
Mech-Mind 3D Vision Interface 사용¶
참고
사용하기 전에 Mech-Vision 및 Mech-Viz(필요한 경우) 프로젝트가 정상적으로 실행될 수 있는지, 또는 Mech-Mind IPC가 이미 로봇 네트워크에 연결되어 있는지를 확인해야 합니다.
또한 Mech-Mind 3D Vision Interface를 사용하기 전에 다음 작업을 완료해야 합니다.
Mech-Center에서 인터페이스 서비스를 설정하고 시작하기¶
Mech-Center 소프트웨어를 부팅하고 툴바에서 구성 설정 버튼을 클릭하십시오.
구성 설정 화면의 왼쪽 패널에서 Mech-Interface 버튼을 클릭하십시오.
Mech-Interface 실행하기 버튼을 선택하고 인터페이스 서비스 유형 을 표준 인터페이스 로 선택하십시오.
인터페이스 옵션 을 TCP Server 및 ASCII 로 설정하고 목록에 있는 로봇 에서 UR 로봇 및 구체적인 모델을 선택하며 IP 주소 를 설정한 후 저장 버튼을 클릭하십시오.
주의
포트 번호는 50000으로 설정해야 합니다.
툴바에서 인터페이스 실행 버튼을 클릭하십시오.
이로써 TCP 서버 인터페이스는 성공적으로 시작됩니다. 아래 그림과 같습니다.
Mech-Center와 연결하기¶
Mech-Center에서 TCP 서버 인터페이스를 시작한 후 UR 티치펜더트에서 이 인터페이스를 연결할 수 있습니다.
Polyscope 메인 화면에서 Program Robot 을 누릅니다.
Installation 탭을 선택하고 왼쪽 패널에서 :guilabel:`Network Settings`을 선택하십시오. URCap 플러그인의 Network Settings 화면이 나타납니다.
MechMind IPC IP Address 및 Port No. 를 각각 Mech-Mind IPC의 IP 주소와 포트 번호로 설정하고 Apply 버튼을 누르십시오. 여기서 설정한 포트 번호는 Mech-Center에서 설정한 것과 같이 50000으로 설정되어야 합니다.
Connection Test 버튼을 클릭하십시오.
- Mech-Center와 성공적으로 연결되면 아래와 같은 메시지가 반환됩니다.
플러그인을 통해 핸드-아이 캘리브레이션을 진행하기¶
이 부분에서 URCap 플러그인을 통해 카메라 외부 파라미터 캘리브레이션을 수행하는 방법을 소개하겠습니다.
다음과 같이 네 가지 단계로 나눠집니다.
전제 조건¶
캘리브레이션을 시작하기 전에 다음과 같은 사항을 확인하십시오.
URCap 플러그인은 이미 Mech-Center와 연결되었습니다.
Mech-Vision 로봇 핸드-아이 캘리브레이션 사용 가이드 내용을 이미 파악했습니다.
캘리브레이션 프로그램을 만들기¶
UR 티치펜더트에서 Program Robot > Program 을 클릭하고 Empty Program 버튼을 클릭하십시오.
Structure > URCap 버튼을 선택하고 URCap 화면에서 Mech-Mind Calibrate 버튼을 클릭하십시오. 왼쪽 패널의 Robot Program 프로그램 트리에서 Calibrate 예시 프로그램 노드가 자동으로 생성됩니다.
생성된 예시 프로그램 노드는 템플릿일 뿐입니다. 캘리브레이션 프로그램을 구성하고 캘리브레이션 시작점을 티치펜더트를 통해 추가해야 합니다.
티치펜더트를 통해 캘리브레이션 시작점을 추가하기¶
프로그램 트리 아래에서 Calibrate 노드를 선택하여 오른쪽 패널의 command 화면에서 실제 수요에 따라 Receive Point Type from Mech-Vision 파라미터를 "Joint Angle" 또는 "Flange Pose" 로 설정하십시오.
Next 버튼을 클릭하고 MOVEJ 노드 화면으로 들어가 오른쪽 Move 패널에서 이동 유형을 "MoveJ", "MoveL" 또는 "MoveP" 로 설정하고 waypoint가 플랜지 포즈로 기록되도록 Set TCP 를 Use Tool Flange 로 설정하십시오.
수동으로 로봇을 캘리브레이션 시작점 위치로 이동합니다.
UR 티치펜더트 화면으로 돌아가 프로그램 트리에서 start_pose 노드를 선택하고 오른쪽 Waypoint 패널에서 Set Waypoint 버튼을 누르면 Move 화면으로 갑니다.
Move 화면에서 현재 로봇의 플랜지 포즈가 맞는지 확인하고 OK 버튼을 누르십시오.
캘리브레이션 프로그램 실행¶
왼쪽 패널에서 Robot Program 프로그램 트리를 선택하고 프로그램이 한번만 실행되도록 하기 위해 오른쪽 패널에서 Program Loops Forever 옵션을 언체크해야 합니다.
안전을 위해 하단 바에서 로봇의 속도를 적당한 값(예: 10%)으로 낮추십시오.
하단 바에서 |run| 버튼을 눌러 프로그램을 실행하십시오.
캘리브레이션 프로그램이 성공적으로 실행되면 Mech-Center의 로그 패널에서 아래와 같은 로그 메시지가 표시됩니다.
Mech-Vision에서 캘리브레이션을 수행하기¶
URCap 플러그인을 Mech-Center와 연결하고 캘리브레이션 프로그램을 성공적으로 실행한 후 Mech-Vision에서 핸드-아이 캘리브레이션을 시작할 수 있습니다.
캘리브레이션 스텝 내용을 참조하여 자동 캘리브레이션을 수행하십시오.
이후 사용할 수 있도록 하기 위해 이 캘리브레이션 프로그램을 저장하려면 File > Save As 버튼을 클릭하십시오.
핸드-아이 캘리브레이션을 완료한 후 픽 앤 플레이스 프로그램을 만들기 작업을 통해 비전 가이드로 UR 로봇이 픽앤 플레이스 작업을 완료하도록 제어합니다.
픽 앤 플레이스 프로그램을 만들기¶
URCap 플러그인은 최소한의 프로그래밍 노력으로 픽 앤 플레이스 프로그램을 생성할 수 있는 픽 앤 플레이스 예시 프로그램 노드를 제공합니다.
픽 앤 플레이스 예시 프로그램 노드는 두 가지 옵션을 제공합니다.
Mech-Vision과 결합한 픽 앤 플레이스 프로그램을 만들기 : Mech-Vision 프로젝트만 사용하고 로봇이 Mech-Viz를 통해 경로를 계획할 필요가 없는 시나리오에만 적용됩니다.
Mech-Viz와 결합한 픽 앤 플레이스 프로그램을 만들기 : Mech-Viz 프로젝트와 Mech-Vision 프로젝트를 함께 사용하여 로봇을 위해 충돌이 없는 이동 경로를 계획해 주는 데에 적용됩니다.
이 플러그인은 프로그래밍을 용이하게 하기 위해 각 옵션에 대한 프로그램 템플릿을 제공합니다.
참고
다음 예시에서는 현재 사용하는 그리퍼와 TCP가 이미 올바르게 설정되었다고 가정합니다.
Mech-Vision과 결합한 픽 앤 플레이스 프로그램을 만들기¶
Mech-Vision과 결합한 픽 앤 플레이스 프로그램을 만들려면 아래 작업을 수행하십시오.
"with Mech-Vision" 옵션을 활성화하십시오.
UR 티치펜더트에서 Program Robot > Program > Empty Program 을 순서대로 선택하십시오.
Structure > URCap 버튼을 클릭하고 URCap 화면에서 Mech-Mind Pick and Place 버튼을 누르십시오. 다음으로 왼쪽 패널 Robot Program 프로그램 트리에서 Pick and Place 예시 프로그램 노드가 자동으로 생성됩니다.
Command 화면에서 With Mech-Vision 버튼을 누르십시오.
프로그램 트리의 Pick and Place 노드 아래에서 프로그램 템플릿이 자동으로 추가될 때 Next 버튼을 눌러 주십시오.
Mech-Mind Connect 노드를 선택하고 오른쪽 Mech-Mind Connect 패널에서 Host IP 의 값이 Mech-Mind IPC의 IP 주소와 일치한지를 확인하십시오.
이미지 캡처 포즈를 설정하십시오.
Mech-Vision 이미지 캡처를 트리거하는 적절한 위치로 이동하도록 로봇을 수동으로 제어합니다.
참고
Eye-In-Hand인 경우에 로봇은 작업물 위에 있어야 합니다.
Eye-To-Hand인 경우에 로봇은 카메라 시야를 가리면 안 됩니다.
UR 티치펜더트 화면으로 돌아가 프로그램 트리 아래에서 MOVEJ 노드를 선택하여 오른쪽 패널의 Move 화면에서 이동 유형을 "MoveJ", "MoveL" 또는 "MoveP" 로 설정하고 Set TCP 를 Use active TCP 로 설정하십시오. 다음으로 Next 버튼을 클릭하십시오.
오른쪽 Waypoint 패널에서 Set Waypoint 버튼을 누르면 Move 화면으로 갑니다.
Move 화면에서 현재 로봇의 TCP 포즈가 맞는지 확인하고 OK 버튼을 누르십시오.
이미지 캡처 포즈를 설정한 후 Next 버튼을 눌러 주십시오.
Mech-Vision 프로젝트의 실행을 트리거합니다.
오른쪽 Trigger Mech-Vision 패널에서 Send Current Robot Position to Mech-Vision , Mech-Vision Project ID 및 Request Vision Point Number 파라미터를 설정하십시오.
파라미터
설명
Mech-Vision Project ID
트리거할 Mech-Vision 프로젝트의 인덱스입니다. Mech-Center 구성 설정 > Mech-Vision 에서 프로젝트의 ID를 확인할 수 있습니다.
Request Vision Point Number
Mech-Vision에서 출력한 비전 포인트 수량.
0으로 설정하면 검출된 모든 물체의 포인트(수량: ≤20)를 출력합니다.
1-20 사이의 정수로 설정하면 검출된 비전 포인트의 총수가 기대값보다 큰 경우 Mech-Vision이 일정한 수량의 비전 포인트를 반환할 것입니다.
(선택 사항) Set Vision Recipe ID 버튼을 클릭하면 프로그램 트리에 있는 Trigger Mech-Vision 노드 아래에서 Set Recipe ID 노드가 자동으로 추가됩니다.
프로그램 트리에서 Set Recipe ID 노드를 선택하고 오른쪽 Set Recipe ID 패널에서 파라미터 Mech-Vision Recipe ID 를 설정하며 Next 버튼을 클릭하십시오.
Mech-Vision 결과를 수신하는 방식을 설정합니다.
프로그램 트리에서 Pick and Place 노드 아래의 Receive Mech-Vision Result 노드를 선택하고 비전 결과를 저장하기 위해 Pose , Label , Total Received 및 Status Code 의 변수 이름을 설정하십시오. 다음으로 Next 버튼을 클릭하십시오.
파라미터
설명
Pose
검출된 물체의 포즈(형식:XYZ). TCP가 이 포인트로 바로 이동할 수 있습니다. 일반적으로 수신된 비전 포인트는 변수 "pose[]"에 저장되며 데이터 그룹의 시작 인덱스는 1입니다.
Label
검출된 물체의 레이블(값은 정수임). 일반적으로 레이블은 데이터 그룹 변수 "label[]"에 저장되며 시작 인덱스는 1입니다. 레이블과 포즈는 1대1로 대응합니다.
Total Received
수신한 비전 포인트의 총수.
Status Code
Mech-Center에서 반환된 상태 코드입니다. 상태 코드 내용을 참조하십시오. 11xx는 정상 코드이며 10xx는 오류 코드입니다. 일반적으로 상태 코드는 변수 "status_code"에 저장됩니다.
Starting at ID
포즈와 레이블의 데이터 그룹의 시작 인덱스입니다. 일반적으로 1입니다.
포즈, 레이블 등 파라미터의 기본 변수 이름을 수정하면 아래에 있는 pick 및 place 노드가 유효하지 않게 됩니다. 이런 경우에 pick 및 place의 작업을 자체적으로 작성해야 합니다. 기본 변수 "pose[]"를 사용하는 예시는 아래와 같습니다.
pick 작업을 설정합니다.
참고
Receive Mech-Vision Result 노드에서 포즈, 레이블 등 파라미터의 기본 변수 이름을 수정하면 pick 노드가 유효하지 않습니다. 이런 경우에 pick 노드를 삭제하고 "pose[]" 를 통해 pick 작업을 작성해야 합니다.
하나의 Pick 작업은 다음과 같은 세 가지 운동을 포함합니다. Pick_above, 픽 포인트 위치에 직선 운동으로 이동합니다. Pick, 물체를 피킹합니다. Pick_depart, 물체를 피킹한 후 직선 운동으로 이동합니다.
Mech-Vision Pick 패널에서 Pick_above와 Pick_depart 작업을 위해 파라미터 Dist 및 Coordinates 를 설정하십시오. 다음으로 Next 버튼을 클릭하십시오.
오른쪽 Move 패널에서 MoveJ 노드의 기본 설정을 유지하고 Next 버튼을 클릭하십시오.
오른쪽 Waypoint 패널에서 pick_above 노드의 기본 설정을 유지하고 Next 버튼을 클릭하십시오.
오른쪽 Move 패널에서 MoveL 노드의 기본 설정을 유지하고 Next 버튼을 클릭하십시오.
오른쪽 Waypoint 패널에서 pick 노드의 기본 설정을 유지하고 Next 버튼을 클릭하십시오.
실제 수요에 따라 pick 노드 뒤에 클램프 컨트롤 논리를 추가합니다.
오른쪽 Move 패널에서 MoveJ 노드의 기본 설정을 유지하고 Next 버튼을 클릭하십시오.
오른쪽 Waypoint 패널에서 pick_depart 노드의 기본 설정을 유지하고 Next 버튼을 클릭하십시오.
place 작업을 설정합니다.
Next 버튼을 눌러 다음 MoveJ 노드로 이동합니다.
오른쪽 Move 패널에서 MoveJ 노드의 기본 설정을 유지하고 Next 버튼을 클릭하십시오.
대상 물체를 배치하는 정확한 위치로 이동하도록 로봇을 제어하십시오.
UR 티치펜더트 화면으로 돌아가 오른쪽 Waypoint 패널에서 Set Waypoint 버튼을 클릭하면 Move 화면으로 갑니다.
Move 화면에서 현재 로봇의 플랜지 포즈가 맞는지 확인하고 OK 버튼을 누르십시오.
배치 포즈를 설정한 후 Next 버튼을 클릭하십시오.
실제 수요에 따라 place 노드 뒤에 클램프 컨트롤 논리를 추가합니다.
이로써 Mech-Vision과 결합하여 사용한 픽 앤 플레이스 프로그램을 이미 만들었습니다. 하단 바에서 |run| 버튼을 눌러 프로그램을 실행할 수 있습니다.
Mech-Viz와 결합한 픽 앤 플레이스 프로그램을 만들기¶
Mech-Viz와 결합해서 이 플러그인을 사용하기 전에 Mech-Viz의 기타 패널에서 TCP 포즈를 전송하기 옵션을 선택하십시오.
Mech-Viz와 결합한 픽 앤 플레이스 프로그램을 만들려면 아래 작업을 수행하십시오.
"with Mech-Viz " 옵션을 활성화하십시오.
UR 티치펜더트에서 Program Robot > Program > Empty Program 을 순서대로 선택하십시오.
Structure > URCap 버튼을 클릭하고 URCap 화면에서 Mech-Mind Pick and Place 버튼을 누르십시오. 다음으로 왼쪽 패널 Robot Program 프로그램 트리에서 Pick and Place 예시 프로그램 노드가 자동으로 생성됩니다.
오른쪽 패널의 Command 화면에서 With Mech-Viz 버튼을 누르십시오.
프로그램 트리의 Pick and Place 노드 아래에서 프로그램 템플릿이 자동으로 추가될 때 Next 버튼을 눌러 주십시오.
Mech-Mind Connect 노드를 선택하고 오른쪽 Mech-Mind Connect 패널에서 Host IP 의 값이 Mech-Mind IPC의 IP 주소와 일치한지를 확인하십시오.
Mech-Vision과 결합한 픽 앤 플레이스 프로그램을 만들기 부분의 단계3을 참조하여 이미지 캡처 포즈를 설정하십시오.
참고
이 포인트는 Mech-Viz 프로젝트 실행을 트리거하는 위치입니다.
Mech-Viz 프로젝트의 실행을 트리거합니다.
오른쪽 Trigger Mech-Viz 패널에서 Send Current Robot Position to Mech-Vision 파라미터를 "Joint Angle" 또는 "Dedicated Point" 로 설정하십시오.
참고
로봇이 시작 위치로 이동하기 전에 Mech-Viz로 경로를 계획할 필요가 있는 경우 파라미터 Send Current Robot Position to Mech-Viz 를 "Dedicated Point"로 설정하고 특정한 관절 각도 위치를 지정해야 합니다.
Mech-Viz 프로젝트에서 "분기" 태스크를 사용해야 하고 로봇이 분기 아웃 포트를 선택하는 것을 원하는 경우 Set Branch Out Port 버튼을 클릭하여 아래 단계b 설명을 참조하여 분기 아웃 포트를 설정하십시오.
인덱스 파라미터를 갖춘 이동 태스크를 사용한 경우 Set Index Value 버튼을 눌러 아래 단계c 설명을 참조하여 인덱스 값을 설정하십시오.
(선택 사항) 프로그램 트리에서 Set Branch Value 노드를 선택하고 오른쪽 Set Branch Value 패널에서 파라미터 Branch Task ID 및 Branch Out Port 를 설정하십시오. 다음으로 Next 버튼을 클릭하십시오.
(선택 사항) 프로그램 트리에서 Set Index Value 노드를 선택하고 오른쪽 Set Index Value 패널에서 파라미터 Index Task ID 및 Branch Out Port 를 설정하십시오. 다음으로 Next 버튼을 클릭하십시오.
Mech-Viz 결과를 수신하는 방식을 설정합니다.
프로그램 트리에서 Receive Mech-Viz Result 노드를 선택하고 계획한 비전 결과를 저장하기 위해 Pose , Label , Speed(%) , Total Received , Status Code 및 Vision Point Index 의 변수 이름을 설정하십시오. 다음으로 Next 버튼을 클릭하십시오.
파라미터
설명
Pose
계획한 이동 경로(형식:XYZ). TCP가 이 포인트로 바로 이동할 수 있습니다. 일반적으로 수신된 포즈는 변수 "pose[]"에 저장되며 데이터 그룹의 시작 인덱스는 1입니다.
Label
검출된 물체의 레이블(값은 정수임). 비전 포인트가 아닌 경우 레이블은 0입니다. 일반적으로 레이블은 변수 "label[]"에 저장되며 시작 인덱스는 1입니다. 레이블과 포즈는 1대1로 대응합니다.
Speed
로봇이 포즈로 이동하는 속도입니다(단위: %).
Total Received
수신한 비전 포인트의 총수.
Status Code
Mech-Center에서 반환된 상태 코드입니다. 상태 코드 내용을 참조하십시오. 21xx는 정상 코드이며 20xx는 오류 코드입니다. 일반적으로 상태 코드는 변수 "status_code"에 저장됩니다.
Vision Point Index
수신된 비전 포인트 중에 비전 이동 목표점의 인덱스입니다. 예를 들어 Mech-Viz에서 relative_move_1, visual_move_1및 relative_move_2 총 세 개의 포인트를 반환한다면 인덱스는 2입니다. 일반적으로 비전 포인트의 인덱스는 변수 "vision_point"에 저장됩니다.
Starting at ID
포즈와 레이블의 데이터 그룹의 시작 인덱스입니다. 일반적으로 1입니다.
로봇은 Mech-Viz가 계획한 경로(즉 물체에 접근하기, 물체를 피킹하기, 물체 피킹 포즈를 떠나기. 물체를 배치하는 단계가 포함되지 않음)따라 이동하도록 하기 위해 모션 루프를 구성합니다. MoveL 및 MoveJ 노드를 설정하는 방법은 Mech-Vision과 결합한 픽 앤 플레이스 프로그램을 만들기 부분의 단계6 설명을 참조하십시오.
참고
실제 응용에서 모션 루프에 여러 개의 pick_above MoveJ 노드, 하나의 pick MoveL 노드와 여러 개의 pick_depart MoveJ 노드가 포함될 수 있습니다.
Receive Mech-Viz Result 노드에서 포즈, 레이블 등 파라미터의 기본 변수 이름을 수정한다면 해당 스텝의 변수 이름도 함께 수정해야 합니다.
Mech-Vision과 결합한 픽 앤 플레이스 프로그램을 만들기 부분의 단계7 설명을 참조하여 place 작업을 설정하십시오.
이로써 Mech-Viz와 결합하여 사용한 픽 앤 플레이스 프로그램을 이미 만들었습니다. 하단 바에서 버튼을 눌러 프로그램을 실행할 수 있습니다.