비전 프로젝트 구성
이 튜토리얼 내용을 읽기 전에 사용자가 이미 로봇 통신 구성 부분에서 샘플 프로젝트 ‘무질서하게 배열된 공작물 로딩’을 사용하여 솔루션을 생성했습니다.
이 튜토리얼에서는 먼저 프로젝트 작업 흐름을 소개한 다음, 작업물의 포즈를 인식하고 비전 결과를 출력하도록 스텝 파라미터를 조정하여 프로젝트를 배포하는 방법에 대해 설명하겠습니다.
이 튜토리얼에서는 사용자가 대상 물체의 CAD 모델 파일을 포인트 클라우드 매칭 모델로 변환해야 합니다. CAD 모델 파일을 준비하는 데 시간이 오래 걸릴 수 있으므로 이 튜토리얼을 사용하기 전에 대상 물체의 CAD 모델 파일을 미리 준비해 두는 것이 좋습니다. 여기를 클릭하여 다운받을 수 있습니다. |
프로젝트 작업 흐름 소개
이 튜토리얼에서 사용자가 Mech-Vision소프트웨어와 Mech-Viz소프트웨어를 사용하여 비전 프로젝트을 구성할 것입니다. 비전 프로젝트를 구성하는 방법의 프로세스는 아래 그림과 같습니다.
비전 프로젝트 구성의 각각 단계 설명은 다음과 같습니다.
단계 | 사용되는 소프트웨어 | 설명 |
---|---|---|
카메라 연결 및 이미지 캡처 |
Mech-Vision |
이미지를 캡처하기 위해 Mech-Vision의 ‘카메라에서 이미지를 캡처하기’ 스텝을 수행합니다. |
대상 물체 인식 |
Mech-Vision |
대상 물체의 신속한 인식을 위해 Mech-Vision의 ‘3D 대상 물체 인식’ 스텝을 통해 이미지 데이터에 대해 일련의 비전 처리(포인트 클라우드 처리, 3D 매칭, 딥 러닝 등)을 진행합니다. |
포즈 조정 |
Mech-Vision |
Mech-Vision의 ‘포즈 V2 조정’ 스텝을 통해 ‘3D 대상 물체 인식’ 스텝에서 출력된 포즈에 대해 좌표계 전환, 포즈 조정, 포즈 정렬, 포즈 필터링 등 작업을 수행할 수 있습니다. |
빈 위치 지정 |
Mech-Vision |
Mech-Vision의 ‘표준 빈 위치 파악’ 자체 정의의 프로시저를 통해 빈을 인식합니다. 인식된 빈 포즈는 Mech-Viz에 보내지게 됩니다. 빈 모델 위치를 업데이트하는 데 사용됩니다. |
로봇 경로 계획 |
Mech-Vision & Mech-Viz |
Mech-Vision의 ‘출력’ 스텝을 통해 비전 결과(물체 중심점, 사전에 처리된 포인트 클라우드, 빈 시나리오 모델 이름, 빈 중심 포즈 등 정보)를 Mech-Viz에 전송됩니다.
|
계획 경로 출력 |
Mech-Viz |
로봇(이 튜토리얼에서 사용됨) 혹은 PLC가 보내는 표준 인터페이스 명령어를 받았을 때 Mech-Viz가 계획된 충돌이 없는 로봇 이동 경로에 돌아갑니다.
|
스텝 파라미터 조정
이 부분에서는 사용자가 각 스텝의 파라미터를 조정하여 프로젝트를 구성하게 됩니다.
이 부분의 프로젝트는 ‘무질서하게 배열된 공작물 로딩’ 솔루션에서의 ‘Vis_Target_Objects_Recognition’ 프로젝트입니다. |
카메라에서 이미지를 캡처하기
스텝 이름 |
카메라에서 이미지를 캡처하기 |
---|---|
단계 |
카메라 연결 및 이미지 캡처하기 |
예시 그림 |
|
설명 |
실제 카메라에 연결하고 관련 파라미터를 구성하여 카메라가 정상적으로 이미지를 캡처할 수 있도록 합니다. |
-
Mech-Vision 프로젝트 편집 영역에서 카메라에서 이미지를 캡처하기 스텝을 선택하고 오른쪽 하단의 스텝 파라미터 탭에서카메라 선택 버튼을 클릭합니다.
-
사용할 카메라 및 캘리브레이션 파라미터 그룹 선택 창이 나타나면 카메라 일련번호 오른쪽에 있는 아이콘을 클릭합니다. 카메라가 성공적으로 연결되면 이 아이콘이 로 변경됩니다.
카메라가 연결된 후, 파라미터 그룹 선택 버튼을 클릭하여 캘리브레이션된 파라미터 그룹(ETH/EIH와 날짜 정보가 표시됨)을 선택합니다.
여기서 선택된 캘리브레이션 파라미터 그룹은 핸드-아이 캘리브레이션이 완료된 후 생성된 것입니다. -
카메라를 연결하고 캘리브레이션 파라미터 그룹을 설정하면 카메라 캘리브레이션 파라미터 그룹, IP 주소 및 포트와 같은 파라미터가 자동으로 획득됩니다. 파라미터 그룹 구성 파라미터가 이미 '스레드 로드’로 설정되어 있는지 확인하세요.
-
카메라에서 이미지를 캡처하기 스텝의 단번 실행 버튼을 클릭하여 이미지 캡처를 트리거하고, 스텝의 '카메라 뎁스 맵' 및 '카메라 컬러 이미지' 데이터 스트림을 두번 클릭하고 디버그 출력 창에서 카메라에서 이미지가 성공적으로 캡처되었는지 확인합니다.
-
디버그 출력 창에서 일반적인 뎁스 맵과 컬러 이미지가 보이면 Mech-Vision 소프트웨어가 실제 카메라에 성공적으로 연결되어 정상적으로 이미지를 캡처할 수 있습니다.
3D 대상 물체 인식
스텝 이름 |
3D 대상 물체 인식 |
---|---|
단계 |
대상 물체 인식 |
예시 그림 |
|
설명 |
포인트 클라우드의 사전 처리 파라미터 설정, 대상 물체 편집기에서 대상 물체 모델 제작 및 대상 물체 선택, 딥 러닝 파라미터 설정, 파리미터 인식, 출력 포트 구성이 필요합니다. |
'3D 대상 물체 인식' 스텝에서는 내부 시각화된 3D 대상 물체 인식 도구를 제공합니다. 구성 마법사를 통해 3가지 스텝만으로 대상 물체 포즈를 간편하게 인식할 수 있습니다.
다음 어떤 방식으로든 3D 대상 물체 인식 구도 페이지로 들어가 파라미터를 조절할 수 있습니다.
-
프로젝트의 편집 구역에서 스텝의 구성 마법사 버튼을 클릭하여 파라미터를 조정하기 시작합니다.
-
스텝 파라미터 옵션에 있는 구성 마법사 버튼을 클릭합니다.
포인트 클라우드의 사전 처리
포인트 클라우드 사전 처리는 획득한 이미지 데이터를 포인트 클라우드로 전환시켜 유효한 포인트 클라우드 인식 영역을 설정하며 가장자리 포인트 클라우드를 감지하여 요구 사항을 충족하지 않는 포인트 클라우드를 필터링합니다. 이 프로세스는 후속 프로세스의 인식 효율를 향상시키는 데 도움이 될 수 있습니다.
이 스텝에서 사용자가 유효한 인식 구역을 설정할 것입니다. 이로써 간섭 요소를 영역 밖에 제거시켜 인식 효율을 높일 수 있습니다. 빈 위치 소폭 변동에 따른 영향을 받지 않도록 인식 구역 설정 시 빈 그리고 빈 안에 있는 대상 물체를 커버하고 밖으로 20-30 밀리미터 확대해야 합니다.
일반적으로 다른 사전 처리 파라미터의 기본값을 유지하면 됩니다. 만약 시나리오에는 많은 노이즈가 있으면 관련 파라미터를 조정하십시오. 상세 내용은 포인트 클라우드 사전 처리 부분을 참조하십시오.
파라미터 조정이 완료된 후 사전 처리 결과 미리 보기 구역에서 스텝 실행 버튼을 클릭하여 시각화 구역에서 사전 처리 효과가 예상치를 충족하는지 확인할 수 있습니다. |
대상 물체 선택 및 인식
|
대상 물체 모델을 만들기
이 튜토리얼에서 CAD 모델 파일(.stl 형삭)을 사용하여 대상 물체의 포인트 클라우드 모델을 생성합니다. 여기를 클릭하면 다운받을 수 있습니다.
아래 내용을 참고하시기 바랍니다. STL 파일을 가져오는 것을 통해 포인트 클라우드 모델을 생성하고 수동으로 픽 포인트를 구성해 대상 물체 매칭 모델을 제작합니다.
주의 사항:
-
카매라로 볼트의 포인트 클라우드 데이터를 수집할 때 포인트 클라우드가 과도하게 평활한 현상이 나타날 수 있습니다. 이로 인해 볼트의 디테일 특징이 손실될 수 있습니다. 그러므로 이 튜토리얼은 STL 파일을 가져와 포인트 클라우드 모델을 생성하는 방법에 대해 소개하겠습니다. 아래 그림과 같이 이 튜토리얼에서 제공된 STL 파일은 간소화된 처리로 완전한 볼트 디테일을 포함하지 않습니다.
-
‘STL 파일 구성’ 스텝에서 단위 설정에서 미터(m)를 선택해 시각 설정에서 모든 시각을 선택합니다.
-
'픽 포인트 설정' 스텝에서 실제 상황에 따라 포인트 클라우드 모델에 대해 픽 포인트를 설정합니다. 상세 내용은 픽 포인트를 참조하십시오. 이 솔루션에서 그리퍼를 사용하여 중심 부분을 고정하므로 대상 물체의 픽 포인트는 중심점으로 설정하는 것이 좋습니다.
대상 물체를 피킹하는 데 사용되는 말단장치의 관련 구성은 현재 설정하지 않아도 되며 Mech-Viz 프로젝트 구성 때 구성할 수 있습니다. |
대상 물체 모델이 만들어진 후 대상 물체 창을 닫고 3D 대상 물체 인식 도구 인터페이스로 돌아가 대상 물체 업데이트 버튼을 클릭합니다. 만약에 이 솔루션의 대상 물체 편집기에는 단 하나만의 대상 물체 모델이 있으면 도구는 자동으로 이 대상 물체를 선택할 것입니다. 만약에 이 프로젝트에는 대상 물체 여러 개가 있으면 사용할 대상 물체 모델을 선택하십시오.
딥 러닝 파라미터 설정
-
딥 러닝 사용 구역에서 딥 러닝으로 인식 지원 기능을 활성화합니다.
-
모델 패키지 관리 도구를 사용하여 이 튜토리얼에서 제공된 딥 러닝 패키지를 가져오거나 Mech-DLK 스스로 훈련을 시키는 딥 러닝 모델 패키지를 사용해도 됩니다. 상세 내용은 딥 러닝 모델 패키지를 가져오기 부분을 참조하십시오.
-
딥 러닝 사용 구역에서 모델 드롭다운 선택 리스트에서 가져온 모델을 선택합니다.
딥 러닝 모델을 처음 로딩하는데 시간이 좀 걸리니 기다려 주십시오. -
ROI 설정 버튼을 클릭하여 2D ROI를 설정합니다. 상세 내용은 2D ROI 설정 스텝 부분을 참조하십시오.
-
딥 러닝 파라미터 조정: 딥 러닝 모델에서 출력되는 마스크의 이미지 가장자리에서 정보 손실을 방지하기 위해 마스크 이미지에 대해 5픽셀의 팽창 처리를 해야 합니다. 이를 통해 더욱 완전한 대상 물체 포인트 클라우드 데이터를 얻을 수 있습니다.
포즈 조정 V2
스텝 이름 |
포즈 조정 V2 |
---|---|
단계 |
포즈 조정 |
예시 그림 |
|
설명 |
포즈 변환, 포즈 조정, 포즈 정렬 그리고 포즈 필터링을 위해 파라미터를 구성해야 합니다. |
대상 물체 포즈를 받은 후 포즈를 조정해야 합니다. 구체적인 처리 프로세스는 다음과 같습니다.
Mech-Vision에는 포즈 조정 도구가 있습니다. 사용자가 이 도구를 사용하여 쉽게 물체 포즈를 조정하고 피킹 순서를 최적화할 수 있습니다. 다음 어떤 방식으로든 포즈 조정 도구를 열어 파라미터를 조정할 수 있습니다.
-
프로젝트의 편집 구역에서 스텝의 구성 마법사 버튼을 클릭하여 파라미터를 조정하기 시작합니다.
-
스텝 파라미터 옵션에 있는 구성 마법사 버튼을 클릭합니다.
다음 스텝을 수행하여 파라미터를 조정하십시오.
-
포즈 변환: 포즈 조정 탭에서 포즈를 카메라 좌표계에서 로봇 좌표계로 전환합니다.
-
포즈 조정: 포즈 조정 탭에서 포즈의 Z 축을 참조 포즈로 지정합니다.
-
포즈 정렬: 포즈 규칙 탭에서 좌표계 중 로봇의 위치 Z 값에 따라 내림차순으로 정렬합니다.
-
각도 필터링: 포트 규칙 탭에서 포즈 Z 축의 방향에 따라 현저히 피킹 불가능한 포즈를 필터링하여 Mech-Viz의 경로 계획 시간을 줄립니다.
-
ROI 밖의 포즈 필터링: 포트 규칙 탭에서 ROI을 설정하고 포즈가 ROI에 있는지를 판단하여 ROI에 있는 포즈만 보류합니다.
이 부분의 ROI(3d_roi)는 로봇 좌표계에 있습니다. 잘못된 필터링 문제가 발생하지 않도록 실제 외부 파라미터에 따라 다시 ROI를 설정해야 합니다.
표준 빈 위치 파악
스텝 이름 |
표준 빈 위치 파악(자체 정의 프로시저) |
---|---|
단계 |
빈 위치 지정 |
예시 그림 |
|
설명 |
빈은 Mech-Viz 프로젝트에서 시나리오 물체로의 이름과 빈 포즈 옵셋을 설정해야 합니다. |
-
Mech-Vision프로젝트 편집 구역에서 표준 빈 위치 파악 프로시저를 선택하고 페이지 우측 하단의 스텝 파라미터 텝에서 문자열 리스트 파라미터를 설정합니다.
문자열 리스트 파라미터 값은 Mech-Viz 프로젝트의 빈 시나리오 물체 이름으로 사용 됩니다. Mech-Viz 프로젝트의 빈 시나리오 물체를 구성할 때 반드시 이 파라미터 값을 이름으로 사용해야 합니다. -
이동 거리 파라미터는 빈 높이의 절반으로 설정합니다.
현재 인식되는 빈 포즈가 빈 표면에 있으므로 다른 빈 포즈가 정확하게 빈 중심 위치에 일치하도록 포즈를 인식하여 조정해야 합니다. 이 프로시저는 빈 좌표계의 Z축을 따라 이동하므로 특정한 옵셋을 감소해야 합니다. 따라서 이 부분은 음수로 설정됩니다.
출력
스텝 이름 |
출력 |
---|---|
단계 |
로봇 경로 계획(전제 조건) |
예시 그림 |
|
설명 |
경로 계획 및 충돌 감지에 필요한 정보가 모두 출력이 되는지 확인해야 합니다. |
경로 계획 및 충돌 감지의 요구 사항에 따라 다음과 같은 정보를 Mech-Viz로 출력해야 합니다.
-
물체 중심점(PoseList)
-
대상 물체 이름(StringList)
-
법선 방향이 있는 포인트 클라우드(Cloud(XYZ-Normal)): 사전 처리 후의 포인트 클라우드
-
시나리오 물체 이름(StringList): 빈 시나리오 모델의 이름
-
시나리오 물체 포즈(PoseList): 빈 중심점 포즈
위의 모든 포트가 데이터 스트림과 연결됨을 확인한 후 실행 버튼을 클릭하여 프로젝트가 성공적으로 실행할 수 있음을 확인하고 비전 효과를 출력합니다. Mech-Vision 로그 바의 비전 옵션에서 비전 결과를 가지는 로그가 있는지를 확인할 수 있습니다.