2022. 2. 6. 01:48ㆍ논문 리뷰
이번 포스팅에서는 'Bin Picking System Based on Point Cloud Deep Learning for Industrial Applications' 라는 논문을
리뷰해보고자 한다. 이 논문에서는 심층학습 기반의 빈피킹 방식의 연구방식을 제시한다.
먼저 RGB-D 카메라로 물체들의 Point Cloud Data를 얻어 Point Cloud를 각각의 형상을 군집으로 나누어 분할 한다.
심층 학습(GresNet)으로 각 군집의 파지 가능성을 추정하고, 이를 기반으로 가장 적절한 파지 대상을 선정한다. 이후 파지자세와 이동경로를 설정하여 물체 파지를 하는 알고리즘이다. 즉 Point Cloud processing -> deep lerning processing -> collision avoidance algorithm 으로 구성된다. Point Cloud를 얻으면 먼저 작업공간 내의 Point Cloud만 추출하고 다움샘플링 한다. Clusting 하여 객체를 구분하고 모든 객체들의 파지점을 중심으로 Pointcloud를 정규화 한다. 이후 Pointㅊcloud와 물체 파지 성공 여부 데이터를 이용해서 GresNet model로 정규화한 clusters를 분석해 파지 가능성을 추정한다. 모든 군집에서 가장 파지 가능성이 높은 군집을 파지 대상으로 선정한다. 그리고 그 군집의 자세를 이용해 물체의 POse Estimation을 추정하고 충돌하지 않는 경로를 추정한다. 이전에 다운샘플링을 하는 이유는 PointCloud를 추출하면 필요이상으로 많은 데이터가 있어 다운샘플링으로 필요한 데이터만 추출하여 분석 속도를 높이기 위함이다. 이때 복셀 그리드 (Voxel Grid) 개념으로 다운샘플링을 진행하게된다. 그다음로 군집화를 진행하는데 본 논문에서는 군집화 방식으로 Euclidean clustering 방식으로 진행하였다.
이후 파지점을 추정하여야하는데 이때 한 객체의 Clustering 내의 Point CCloud들의 x,y,z 평균을 구하면 객체의 중심점 위치를 구할 수 있다. 본 논문에서는 이 중심점을 구해 중심점 기준으로 Point Cloud들을 정규화 한다.
GresNet으로 학습을 위해서 먼저 학습데이터를 만들어 내기 위해 피킹을 위한 대상물체의 3D CAD 모델로 Point Cloud를 다운샘플링하여 소스 점군으로 정한다. 그리고 RGB-D 카메라로 Clusstering 한 Point Cloud를 목표 점군으로 정한다. 소스점군에서 목표점군에 일치하는 부분을 찾아나갈때 Histogram을 통해 찾아나가며 매칭 시킨 이후의 점군끼리의 거리를 계산해 매칭률을 판단한다. 해서 매칭 점수가 가장 낮은 즉 두 점군 거리의 차이가 가장 낮은 목표점군을 파지대상으로 선정할 수 있고 이후 파지를 위한 알고리즘을 사용해 파지를 하게된다. 이제 파지 성공 여부에 따라 이 해당 점군의 x,y,y 값과 파지 결과를 심층학습 데이터로 사용하게 된다.
심층학습을 위한 점군의 데이터는 점군의 점의 개수 n을 길이로 한 아래와 같은 형태를 가진다.
GresNet 모델 구조는 아래와 같다.
위 모델을 거쳐 fc 2 layer 에서 파지성공에 대한 확률과 파지 불가능에 대한 확률을 최종 Output으로 출력하게된다.
Gresnet을 거쳐 나온 성공여부 Score로 대상이 선정되면 그 객체를 파지하기 위한 충돌 회피 알고리즘을 적용하게 되고 최종적인 물체 자세추정및 파지자세 추정을 하게된다. 회피알고리즘,Pose Estimation ,Path Planning 등은 논문 뒷면을 참고하면 도움이 될 것같다.
카메라를 부착하게되면 카메라 기준에서의 물체 위치를 로봇 Base에 기준에 맞게 Localization Transfer가 필요하다.
Point Cloud를 이용해서 Bin Picking하는 방식에 대해서 본 논문을 보고 개념이 조금 잡혀 나가는것 같다.
Reference
Paper : https://dcollection.korea.ac.kr/public_resource/pdf/000000235379_20220206001716.pdf