솔루션 배포
이 섹션에서는 고정자 솔루션을 배포하는 방법을 설명합니다. 전체적인 과정은 다음 그림과 같습니다.

비전 시스템 하드웨어 구축
이 스텝에서는 비전 시스템의 정상적인 실행을 위해 카메라와 IPC 등 하드웨어 장치를 실제 작업 환경에 통합해야 합니다.
이 스텝에서는 비전 시스템 하드웨어를 설치하고 연결해야 합니다. 상세한 설명은 비전 시스템 하드웨어 구축 내용을 참조하세요.
로봇 통신 구성
로봇 통신을 구성하기 전에 솔루션을 먼저 얻어야 합니다. 솔루션을 획득하려면 이곳을 클릭하십시오.
-
Mech-Vision 소프트웨어를 시작합니다.
-
Mech-Vision 시작 화면에서 솔루션 라이브러리에서 새로 만들기 버튼을 클릭하여 솔루션 라이브러리를 엽니다.
-
솔루션 라이브러리의 일반적인 사례로 가서 오른쪽 상단의
아이콘을 클릭하여 추가 리소스를 얻은 후 팝업 창에서 확인 버튼을 클릭하세요.
-
사례 리소스를 얻은 후 질서정연한 대상 물체 피킹의 고정자를 선택하고 아래에 솔루션 이름과 경로를 입력하세요. 그 다음 새로 만들기 버튼을 클릭하고 팝업창에서 확인 버튼을 클릭하면 고정자 솔루션을 다운로드할 수 있습니다.
다운로드가 완료되면 솔루션이 Mech-Vision에서 자동으로 열립니다.
비전 프로젝트를 구성하기 전에 Mech-Mind Robotics 비전 시스템과 로봇 측(로봇, PLC나 마스터 컴퓨터)과의 통신 연결을 실현해야 합니다.
고정자 솔루션은 표준 인터페이스 통신을 사용합니다. 구체적인 사용 밥법은 표준 인터페이스 통신 구성를 참조하십시오.
핸드-아이 캘리브레이션
핸드-아이 캘리브레이션은 카메라 좌표계와 로봇 좌표계 간의 해당 관계를 구축하는 과정을 말하며, 비전 시스템에 의해 제공된 물체 포즈를 로봇 좌표계 아래의 포즈로 전환하여 로봇이 피킹 작업을 정확하게 완료하도록 가이드합니다.
로봇 핸드-아이 캘리브레이션 사용 가이드를 참조하여 핸드-아이 캘리브레이션을 완성하십시오.
카메라를 설치할 때마다 또는 캘리브레이션 후 카메라와 로봇의 상대 위치가 변경될 때마다 핸드-아이 캘리브레이션을 수행해야 합니다. |
비전 프로젝트 구성
통신 구성 및 핸드-아이 캘리브레이션이 완료되면 Mech-Vision을 사용하여 비전 프로젝트를 구성할 수 있습니다.
비전 프로젝트를 구성하는 방법의 프로세스는 아래 그림과 같습니다.

카메라 연결 및 이미지 캡처
-
카메라를 연결합니다.
Mech-Eye Viewer를 열어 연결할 카메라를 찾은 후 연결 버튼을 클릭하십시오.
-
카메라 파라미터를 조정합니다.
카메라로 캡처한 2D 이미지가 선명하고 포인트 클라우드가 누락되지 않았는지 확인하려면 카메라 파라미터를 조정해야 합니다. 파라미터 조정 방법은 LSR L-GL 카메라 파라미터에 관한 설명을 참조하십시오.
-
이미지를 캡처합니다.
카메라가 성공적으로 연결되고 파라미터 그룹이 설정되면 대상 물체의 이미지 캡처를 시작할 수 있습니다. 인터페이스 상단의
버튼을 클릭하여 단일 이미지를 획득합니다. 이때 획득한 대상 물체의 2D 이미지와 포인트 클라우드를 확인할 수 있어 2D 이미지가 선명하고 포인트 클라우드가 누락되지 않았으며 에지가 선명한지 확인할 수 있습니다. 검증된 대상 물체의 2D 이미지와 포인트 클라우드는 다음 그림의 왼쪽 및 오른쪽 이미지에 각각 표시됩니다.
-
Mech-Vision에서 카메라를 연결합니다.
카메라에서 이미지를 캡처하기 스텝을 선택하고 인터페이스의 오른쪽 하단 모서리에 있는 스텝 파라미터에서 가상 모드를 닫고 카메라를 선택하기를 클릭합니다.
팝업 창에서 카메라 번호 오른쪽에 있는
아이콘을 클릭하고 아이콘이
로 바뀌면 카메라가 성공적으로 연결되었음을 나타냅니다. 카메라 연결에 성공한 후, 오른쪽의 파라미터 그룹 드롭다운에서 캘리브레이션 파라미터 그룹을 선택하세요. 아래 그림과 같습니다.
위 설정이 완료되면 실제 카메라와 연결된 상태이며 다른 파라미터는 조정할 필요가 없습니다. 카메라에서 이미지를 캡처하기 스텝 오른쪽에 있는
아이콘을 클릭하여 이 스텝을 실행합니다. 오류가 없으면 카메라 연결이 성공했으며, 정상적으로 이미지를 캡처할 수 있음을 의미합니다.
3D 대상 물체 인식
고정자 솔루션은 3D 대상 물체 인식 스텝을 사용하여 대상 물체를 인식합니다. 3D 대상 물체 인식 스텝 화면의 구성 마법사 버튼을 클릭하여 3D 대상 물체 인식 도구를 열고 관련된 구성을 설정합니다. 구성 프로세스는 아래 그림과 같습니다.

포인트 클라우드 사전 처리
포인트 클라우드 사전 처리 단계에서 파라미터를 조정하여 원시 포인트 클라우드를 더 선명하게 만들어 데이터를 사전 처리해야 하며, 이를 통해 인식 정확도와 효율성을 높일 수 있습니다.
-
인식 효율성을 높이기 위해 효과적인 인식 영역을 설정하여 간섭 요인이 해당 영역에 들어오지 않도록 합니다. ROI는 대상 물체와 트레이의 포인트 클라우드를 포함해야 하며, 기타 시나리오 포인트 클라우드는 제거해야 합니다. 들어오는 물체의 편차를 고려하기 위해, ROI의 길이와 너비는 트레이 크기를 기준으로 각각 100mm씩 추가하여 설정할 수 있습니다.
-
일반적으로 이 카테고리의 파라미터는 기본값을 사용하는 것이 적합합니다. 다만, 시나리오에 노이즈가 많을 경우 관련 파라미터를 조정해 노이즈를 제거할 수 있습니다.
포인트 클라우드 사전 처리가 완료된 후 스텝 실행 버튼을 클릭하여 사전 처리 효과를 확인합니다.
대상 물체 인식
포인트 클라우드 사전 처리 후에는 대상 물체 편집기에서 대상 물체의 포인트 클라우드 모델을 생성한 다음, 포인트 클라우드 모델 매칭을 위한 3D 대상 물체 인식 도구에서 매칭 파라미터를 설정해야 합니다.
-
대상 물체 모델을 생성하고 픽 포인트를 구성합니다.
-
포인트 클라우드 모델을 만듭니다. 대상 물체 편집기를 열기 버튼을 클릭하여 대상 물체 편집기 화면을 엽니다. 이후, 카메라로 포인트 클라우드를 캡처하여 포인트 클라우드 모델을 생성합니다.
-
대상 물체의 방향을 구별하는 데 사용되는 관련 파라미터를 조정합니다.
대상 물체 방향을 구별할 필요가 없으면 이 단계를 건너뜁니다. 매칭 결과 필터링 위한 포즈 계산. 이 대상 물체는 링과 같습니다. 대상 물체 방향을 정확하게 식별하려면 매칭 결과 필터링 위한 포즈 계산의 파라미터를 조정해야 합니다. 대상 물체가 대칭이므로 대칭성을 수동으로 설정하기 옵션을 선택하고 Z축을 중심으로 옵션을 체크합니다. 다음은 대칭 횟수 및 각도 범위를 각각 30과 ±180으로 설정합니다.
가중치 모델 설정. 대상 물체의 방향을 식별하기 어렵기 때문에, 가중치 모델 설정하는 것이 좋습니다. 대상 물체 편집기 오른쪽 상단 모서리에 있는 포인트 클라우드 표시 설정에서 표면 포인트 클라우드만 표시 옵션을 선택하고 가중치 모델 설정에서 모델 편집 버튼을 클릭하여 부품의 링 주변에 돌출된 부분을 가중치 모델로 설정합니다. 이는 아래 그림의 빨간색 영역과 같습니다.
-
대상 물체 중심점과 픽 포인트를 구성합니다. 일반적으로 대상 물체의 기하학적 중심점을 대상 물체 중심점으로 설정하고, 현장에서 사용하는 그리퍼에 따라 적절한 픽 포인트를 설정합니다.
-
-
-
설정된 대상 물체 대칭성을 적용하려면 대상 물체 인식 버튼 오른쪽의 고급 모드를 활성화합니다.
-
매칭 모드: 매칭 정확도를 높이려면 매칭 모드 자동 설정 스위치를 끄고, 근사 매칭 및 상세 매칭은 다 표면 매칭으로 설정합니다.
-
근사 매칭 포즈 조정 또는 필터링: 전략 선택을 가능한 잘못된 매칭 필터링으로 설정합니다.
-
출력 - 최대 출력: 이 파라미터의 값을 트레이가 가득 찼을 때의 대상 물체 수로 설정합니다. 이 솔루션에서는 최대 출력 값을 6개로 설정되었습니다.
-
위의 파라미터 설정이 완료된 후 스텝 실행 버튼을 클릭하여 매칭 효과를 확인합니다.
포즈 조정
대상 물체 포즈를 획득한 후 포즈 조정 V2 스텝을 사용하여 포즈를 조정해야 합니다. 포즈 조정 V2 스텝 화면의 구성 마법사 버튼을 클릭하여 포즈 조정 도구를 열고 포즈 조정을 구성합니다. 구성 프로세스는 아래 그림과 같습니다.

-
로봇 좌표계에서 대상 물체의 포즈를 출력하려면, 포즈를 로봇 좌표계로 전환을 선택해야 하며, 이를 통해 대상 물체의 포즈가 카메라 좌표계에서 로봇 좌표계로 변환됩니다.
-
로봇이 지정된 방향으로 대상 물체를 피킹하고 충돌을 피할 수 있도록 방향 조정을 자동 정렬로 설정하고 응용 시나리오를 Z축 정렬(머신 텐딩)으로 설정하세요.
-
정렬 유형은 "Z"자형으로 포즈 정렬로 설정합니다. 들어오는 물체 방향이 고정되어 있으므로 매니퓰레이터로 설정 방식으로 기준 포즈를 설정합니다. 기준 포즈의 X축은 트레이와 평행해야 합니다. 피킹 순서 최적화를 위해 행 방향을 기준 포즈 X축의 정방향, 열 방향을 기준 포즈 Y축의 정방향으로 설정해야 합니다.
-
후속 경로 계획의 시간을 줄이기 위해, 포즈의 Z축과 기준 방향 사이의 각도를 기준으로 명백하게 피킹할 수 없는 대상 물체를 필터링해야 합니다. 이 예시에서는 최대 각도 차이는 20°로 설정해야 합니다.
-
일반 설정.
새 포트 수 설정은 1로 설정하고 스텝에 입력 및 출력 포트가 각각 하나씩 추가되며 3D 대상 물체 인식 스텝이 출력한 픽 포인트 정보를 연결하고 이를 경로 계획 스텝으로 출력하십시오.
경로 계획
대상 물체 인식이 완료되면 Mech-Vision의 경로 계획 스텝을 사용하여 경로를 계획하고 이후 로봇 프로그램을 작성하여 대상 물체를 피킹합니다.
경로 계획 스텝을 선택한 후 구성 마법사 버튼을 클릭하여 경로 계획 도구 페이지로 이동하고 경로 계획 방법을 확인하십시오.
경로 계획 구성 프로세스는 다음 그림과 같습니다.

시나리오 물체 구성
시나리오 모델 구성의 목적은 실제 시나리오 복원을 통해 사용자가 로봇 모션 경로를 계획하는 데 도움이 주는 데에 있습니다. 구체적인 작업 밥법은 시나리오 물체 구성을 참조하십시오.
피킹 가능성을 확보한 후, 실제 작업 환경을 엄격하게 재현하는 전제하에 시나리오 물체를 구성해야 합니다. 이 솔루션의 시나리오 물체 구성은 다음 그림과 같습니다.

말단장치 구성
말단장치를 구성하는 목적은 3D 시뮬레이션 공간에서 말단장치의 모델을 표시하여 충돌 감지에 사용하는 것입니다. 구체적인 작업 밥법은 말단장치 구성을 참조하십시오.
|
작업 흐름 조정
시나리오 물체와 말단장치의 구성이 완료 후 실제 요구에 따라 경로 계획 스텝 중 경로 계획 도구의 작업 흐름을 조정할 수 있습니다. 대상 물체를 피킹할 때의 작업 흐름은 아래 그림과 같습니다.

이 중에서, 대상 물체 위 고정 웨이포인트 1과 2는 두 고정점의 이동을 나타냅니다. 이 두 고정점은 로봇 프로그램 내에서 실제로 티칭된 포인트이며 외부로 웨이포인트를 송신하지 않습니다. 나머지 세 개의 이동 포인트는 외부로 웨이포인트를 송신하며, 총 3개의 웨이포인트가 송신됩니다.
시뮬레이션 및 테스트
툴 바의 시뮬레이션 버튼을 클릭하면 구축이 완료된 경로 계획 도구에서 프로젝트를 시뮬레이션하여 비전 시스템이 성공적으로 구축되었는지 테스트할 수 있습니다.
대상 물체를 가지런히 트레이에 놓은 다음 경로 계획 도구 툴 바의 시뮬레이션 버튼을 클릭하여 대상 물체를 피킹하는 동작을 시뮬레이션합니다. 피킹을 성공 할 때마다 대상 물체를 다시 정렬해야 하며, 피킹 루프를 10번 시뮬레이션합니다. 만약 10번의 시뮬레이션 피킹에서 다 원활하게 진행되었다면 비전 시스템은 정상적이로 작동할 수 있다는 것으로 판단될 수 있습니다.
시뮬레이션 과정에서 오류가 발생하는 경우 솔루션 배포 일반적인 문제를 참조하여 문제를 해결하십시오.
로봇 픽 앤 플레이스
로봇 프로그래밍 작성
시뮬레이션 효과가 기대에 부합하면 ABB 로봇 피킹 및 배치 프로그램을 작성할 수 있습니다.
ABB 로봇 샘플 프로그램 MM_S3_Vis_Path는 기본적으로 이 응용 사례의 요구 사항을 충족시킬 수 있습니다. 샘플 프로그램을 기반으로 수정할 수 있습니다. MM_S3_Vis_Path 프로그램에 대한 구체적인 설명은 샘플 프로그램 설명을 참조하십시오.
수정 설명
샘플 프로그램을 기반으로 다음 단계에 따라 프로그램 파일을 수정하세요.
-
IPC의 IP 주소와 포트 번호를 지정합니다. MM_Init_Socket 명령어 중의 IP 주소와 포트 번호를 IPC 실제 IP 주소와 포트 번호로 수정합니다. 비전 시스템의 설정이 일치하도록 해야 합니다.
수정 전 수정 후(예시) MM_Init_Socket "127.0.0.1",50000,300;
MM_Init_Socket "192.168.1.5",50000,400;
-
DO 포트 피킹을 수행하는 신호를 설정하여 그리퍼를 통해서 대상 물체를 피킹합니다. DO 명령어는 현장에서 실제 사용되는 DO 포트 번호에 따라 설정해야 합니다.
수정 전 수정 후(예시) !add object grasping logic here, such as "setdo DO_1, 1;" Stop;
!add object grasping logic here, such as "setdo DO_2, 0;" setdo DO_2, 0;
-
DO 포트 배치하는 신호를 설정하여 대상 물체를 배치합니다. DO 명령어는 현장에서 실제 사용되는 DO 포트 번호에 따라 설정해야 합니다.
수정 전 수정 후(예시) !add object releasing logic here, such as "setdo DO_1, 0;" Stop;
!add object releasing logic here, such as "setdo DO_2, 1;" setdo DO_2, 1;
참고: 수정된 샘플 프로그램
MODULE MM_S3_Vis_Path
!----------------------------------------------------------
! FUNCTION: trigger Mech-Vision project and get planned path
! Mech-Mind, 2023-12-25
!----------------------------------------------------------
!define local num variables
LOCAL VAR num pose_num:=0;
LOCAL VAR num status:=0;
LOCAL VAR num toolid{5}:=[0,0,0,0,0];
LOCAL VAR num vis_pose_num:=0;
LOCAL VAR num count:=0;
LOCAL VAR num label{5}:=[0,0,0,0,0];
!define local joint&pose variables
LOCAL CONST jointtarget home:=[[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL CONST jointtarget snap_jps:=[[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget camera_capture:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget drop_waypoint:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS robtarget drop:=[[302.00,0.00,558.00],[0,0,-1,0],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL PERS jointtarget jps{5}:=
[
[[-9.7932,85.483,6.0459,-20.5518,-3.0126,-169.245],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]],
[[-9.653,95.4782,-4.3661,-23.6568,-2.6275,-165.996],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]],
[[-9.653,95.4782,-4.3661,-23.6568,-2.6275,-165.996],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]],
[[-9.653,95.4782,-4.3661,-23.6568,-2.6275,-165.996],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]],
[[-9.7932,85.483,6.0459,-20.5518,-3.0126,-169.245],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]]
];
!define local tooldata variables*LOCAL PERS tooldata gripper1:=[TRUE,[[0,0,0],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
PROC Sample_3()
!set the acceleration parameters
AccSet 50, 50;
!set the velocity parameters
VelSet 50, 1000;
!move to robot home position
MoveAbsJ home\NoEOffs,v3000,fine,gripper1;
!initialize communication parameters (initialization is required only once)
MM_Init_Socket "192.168.1.5",50000,400;
!move to image-capturing position
MoveL camera_capture,v1000,fine,gripper1;
!open socket connection
MM_Open_Socket;
!trigger NO.1 Mech-Vision project
MM_Start_Vis 1,0,2,snap_jps;
!get planned path from NO.1 Mech-Vision project; 2nd argument (1) means getting pose in JPs
MM_Get_VisPath 1,1,pose_num,vis_pose_num,status;
!check whether planned path has been got from Mech-Vision successfully
IF status<>1103 THEN
!add error handling logic here according to different error codes
!e.g.: status=1003 means no point cloud in ROI
!e.g.: status=1002 means no vision results
Stop;
ENDIF
!close socket connection
MM_Close_Socket;
!save waypoints of the planned path to local variables one by one
MM_Get_Jps 1,jps{1},label{1},toolid{1};
MM_Get_JPS 2,jps{2},label{2},toolid{2};
MM_Get_JPS 3,jps{3},label{3},toolid{3};
!follow the planned path to pick
!move to approach waypoint of picking
MoveAbsJ jps{1},v1000,fine,gripper1;
!move to picking waypoint
MoveAbsJ jps{2},v1000,fine,gripper1;
!add object grasping logic here, such as "setdo DO_2, 0;"
setdo DO_2, 0;
!move to departure waypoint of picking
MoveAbsJ jps{3},v1000,fine,gripper1;
!move to intermediate waypoint of placing
MoveJ drop_waypoint,v1000,z50,gripper1;
!move to approach waypoint of placing
MoveL RelTool(drop,0,0,-100),v1000,fine,gripper1;
!move to placing waypoint
MoveL drop,v300,fine,gripper1;
!add object releasing logic here, such as "setdo DO_2, 1;"
setdo DO_2, 1;
!move to departure waypoint of placing
MoveL RelTool(drop,0,0,-100),v1000,fine,gripper1;
!move back to robot home position
MoveAbsJ Home\NoEOffs,v3000,fine,gripper1;
ENDPROC
ENDMODULE
피킹 테스트
실제 생산의 안정적인 운영을 보장하기 위해 수정된 샘플 프로그램을 실행하여 로봇이 대상 물체를 피킹하는 테스트를 진행해야 합니다. 구체적인 방법은 표준 인터페이스 통신 테스트를 참조하세요.
피킹 테스트 하기전에 먼저 다음 포인트를 티칭으로 설정하십시오.
명칭 | 변수 | 설명 |
---|---|---|
Home 포인트 |
home |
티칭을 시작하는 초기 위치. 원점은 대상 물체나 주변 설비와 멀리 떨어지고 카메라 시야를 거리지 말아야 합니다. |
Mech-Vision 프로젝트의 포즈를 입력하기 |
snap_jps |
사용자가 자체 정의한 JPs 데이터입니다. |
이미지 캡처 포인트 |
camera_capture |
티칭으로 설정한 이미지 캡처 위치. 이미지 캡처 위치는 카메라가 이미지를 캡처할 때 로봇이 있는 위치를 의미합니다. 이 위치에서는 로봇 팔이 카메라 시야를 가리지 말아야 합니다. |
배치의 중간 웨이포인트 |
drop_waypoint |
중간 웨이포인트를 추가하면 로봇이 부드럽게 이동할 수 있으며, 불필요한 충돌을 방지할 수 있습니다. |
배치 포인트 |
drop |
대상 물체를 배치하는 목표점. |
말단장치 데이터 |
gripper1 |
이동 시 로봇이 사용하는 말단장치. |
티칭이 완료된 후, 아래 표에 나열된 시나리오에 대상 물체를 배치하고 로봇을 사용하여 저속 피킹을 테스트합니다. 이 솔루션에서는 대상 물체가 질서정연하게 쌓여 있고 다른 비정상적인 물체가 없는 경우 실제 시나리오에서 피킹 테스트만 수행하면 됩니다.