서비스 자동화 시스템을 위한 물체 자세 인식 및 동작 계획
CopyrightⓒKROS
Abstract
Recently, automated solutions using collaborative robots have been emerging in various industries. Their primary functions include Pick & Place, Peg in the Hole, fastening and assembly, welding, and more, which are being utilized and researched in various fields. The application of these robots varies depending on the characteristics of the grippers attached to the end of the collaborative robots. To grasp a variety of objects, a gripper with a high degree of freedom is required. In this paper, we propose a service automation system using a multi-degree-of-freedom gripper, collaborative robots, and vision sensors. Assuming various products are placed at a checkout counter, we use three cameras to recognize the objects, estimate their pose, and create grasping points for grasping. The grasping points are grasped by the multi-degree-of-freedom gripper, and experiments are conducted to recognize barcodes, a key task in service automation. To recognize objects, we used a CNN (Convolutional Neural Network) based algorithm and point cloud to estimate the object’s 6D pose. Using the recognized object’s 6d pose information, we create grasping points for the multi-degree-of-freedom gripper and perform re-grasping in a direction that facilitates barcode scanning. The experiment was conducted with four selected objects, progressing through identification, 6D pose estimation, and grasping, recording the success and failure of barcode recognition to prove the effectiveness of the proposed system.
Keywords:
Pose Detection, Object Detection, Grasping, Motion Planning, Point Cloud1. 서 론
협업 로봇의 연구가 활발히 진행되면서 산업 현장에서 적용된 사례가 많아지고 있다. 대표적인 사례로는 물체의 규격과 크기가 정형화 되어있는 택배 물류 현장에서의 디팔레타이징과 비전 센서를 이용하여 부품을 인식하여 조립 및 체결과 같은 공정에서 활용되고 있다[1,2].
최근에는 공장과 같이 반복 작업을 수행하는 현장뿐만 아니라 서비스 산업에서의 수요도 증가하고 있다[3]. 산업현장과 같이 규격과 제품이 정형화되어 있는 상황과 달리 마트와 같은 서비스 업종에서 활용하려면 여러 제품들이 혼재되어 있는 상황에서 강력한 인식 시스템이 필요하다[4].
다양한 물체를 안정적으로 파지하기 위해서는 비전 시스템을 통한 물체의 인식과 자세를 추정하는 알고리즘뿐만 아니라, 인식된 물체를 안정적으로 파지할 수 있는 그리퍼와 제어 알고리즘 또한 필요하다. 그리퍼는 파지의 형태에 따라 버큠을 활용하는 공압식 그리퍼[5], 납작한 물체를 집기 용이하게 설계된 소프트 그리퍼[6], 여러가지 물체를 다양하게 집을 수 있도록 설계된 다자유도 그리퍼[7]와 같이 다양한 연구가 진행되고 있다.
유사한 연구로 물체를 파지하고 특정한 작업을 수행하기 위해서 비전시스템과 manipulation을 이용하는 bin-picking 알고리즘과 디팔레타이징 시스템에 대한 연구들이 있다. 여러 가지 방법론들을 사용하는 연구들이 있으며 포인트 클라우드 데이터에서 Pointnet[8]과 같은 뉴럴 네트워크를 사용하여 물체의 자세를 추정하는 방법[9]과, multi 카메라를 사용하여 물체의 포인트 클라우드 데이터를 얻어서 ICP알고리즘과 같은 model-base의 자세 추정 방법[10], 물체 인식 알고리즘은 단일 이미지에서 객체의 자세를 추정하는 방법[11], 2D 이미지에서 keypoint를 통한 Perspective-n-Point (PnP) 알고리즘[12,13]을 이용한 물체의 자세를 추정하는 방법 등이 연구되었다.
본 연구에서는 매장 내에서 일반적으로 구할 수 있는 물건들을 대상으로 마트 계산대에서 계산 자동화하는 시스템을 구현하였다. 이러한 작업을 수행하기 위해서는 비슷한 연구인 bin-picking 알고리즘이나 디팔레타이징 시스템이 있지만 이러한 방법들은 물체의 파지에만 초점을 두기 때문에 본 연구의 목적인 물체 내의 바코드를 찍는 동작을 수행하기에는 적합하지 않다. 최종적으로 물체 내의 바코드를 찍는 작업을 수행하기 위해서는 물체의 정확한 자세를 알고 바코드를 찍을 수 있는 자세로 물체를 re-orientation 한 후 파지하는 방법이 필요하다. 따라서 본 연구에서는 물체의 정확한 자세를 추정하기 위한 비전 시스템과 물체를 파지 또는 재파지 하기위한 manipulation 방법을 제시하였다.
비전 시스템으로는 다양한 물건이 혼재되어 있는 상태에서 정확한 인식을 수행하기 위해서는 2D 이미지를 이용한 알고리즘보다 3D 이미지를 이용한 인식 시스템의 인식률이 더 높기 때문에, 본 연구에서는 3대의 카메라를 이용한 Multi camera 비전 시스템을 구현하였다. 영상에서의 물체 정보를 추출하기 위해 CNN 기반의 YOLO v8 (You Only Look Once) 알고리즘[14]을 사용하였다. 인식된 물체의 자세 및 파지점을 생성하기 위해 3대의 카메라에서 point cloud를 생성하고 RGB-D 데이터를 사용하여 3D reconstruction을 수행하였다. 원하는 물체의 정보만을 얻기 위해 RANSAC (RANdom SAmple Consensus)[15]과 SOR (Statistical Outlier Removal)[16] filter를 적용하였다. 이렇게 물체에 대한 point cloud를 추출하고 마지막으로 물체의 정확한 자세를 추정하기 위하여 PCA (Principle Component Analysis)[17] 알고리즘을 이용하여 파지를 하기 위한 정보를 획득하였다.
물체를 인식하고 자세를 추정한 이후에는 그리퍼를 통하여 해당 물체를 정확하게 파지하는 계획이 필요하다. 본 연구에서는 여러 가지 물체를 다양한 방법으로 파지해야 하므로 자유도가 높은 그리퍼를 활용하였다. 물체의 바코드를 인식하는 실험을 진행하기 위해 물체를 단순히 파지하는 것뿐만 아니라, 원하는 방향으로 자세를 수정하기 위한 re-grasping 과정을 수행하여 정확하게 바코드를 인식할 수 있는 시스템을 구성하였다. 또한 다자유도 그리퍼를 사용하여 in-hand manipulation이 가능하게 하여 그리퍼만 사용하여도 물체의 자세를 수정할 수 있기 때문에 그리퍼와 함께 사용되는 manipulator를 로봇팔과 같은 고가의 장비가 아닌 저가형의 겐트리형 로봇 구조로도 해당 알고리즘이 동일하게 작동할 수 있다는 장점을 가질 수 있다.
본 논문의 구성은 다음과 같다. 2장에서는 전체적인 시스템 구성에 대해 소개하고, 3장에서는 제안하는 시스템의 알고리즘, 4장에서는 물체의 인식과 자세 추정을 위한 비전 시스템, 5장에서는 파지를 위한 제어 알고리즘에 대하여 설명한다. 6장에서는 실험을 통하여 본 시스템의 유효성을 입증하고, 끝으로 7장에서는 결론에 대하여 서술한다.
2. 시스템 구성
2.1 하드웨어
물체를 파지하고 물체의 바코드를 찍는 작업을 수행하기 위해 협동 로봇팔인 Doosan Robot Arm M1013 모델의 엔드 이펙터에 그리퍼를 결합한 형태로 로봇팔을 구성하였다. 그리퍼를 이용하여 물체를 정확하게 파지하고 물체를 re-orientation 하기 위해서는 [Fig. 1]과 같이 자유도가 높은 손가락형 그리퍼를 제작하여 사용하였다. 낮은 자유도의 그리퍼를 사용할 경우 물체를 re-orientation 하기 위해 물체를 파지한 상태에서 로봇팔의 엔드 이펙터의 orientation을 수정해야 때문에 로봇팔의 많은 관절 움직임이 필요하다. 본 시스템에서는 높은 자유도의 손가락형 그리퍼를 사용함으로써 사람이 물체를 잡고 자세를 바꾸듯이 손가락 관절만을 사용하여 로봇팔의 관절 움직임을 최소화하고, 물체를 빠르게 re-orientation 할 수 있게 하였다. 총 12개의 dynamixel ax-12a 모터를 사용하4 개의 손가락으로 구성하였고 각 손가락은 3자유도를 가지는 3개의 모터로 구성하였고 손가락 관절은 {b} 프레임에서 가까운 순서대로 pitch방향, roll방향, roll방향으로 회전하게 구성하였다. [Fig. 1]의 {s}프레임은 두산 로봇팔의 엔드 이펙터 좌표계이고, {b}프레임은 각 손가락의 기구학을 풀기 위해 설정한 손가락 좌표계이다. lg는 손바닥에서 첫 번째 손가락 관절까지의 거리로 44 mm, l1은 첫 번째 관절에서 두 번째 관절까지의 거리로 72 mm, l2은 두 번째 관절에서 세 번째 관절까지의 거리로 72 mm, 세 번째 관절에서 손가락 끝점까지의 거리는 l3로 93 mm이다. 최대 z 방향으로 280 mm의 길이까지 파지점을 가질 수 있다. 네 손가락으로 물체를 파지할 때 최대 300 g의 무게까지 안정적으로 파지할 수 있었다. 손가락의 링크들이 충돌하지 모든 관절에 80°~280°의 범위만 움직일 수 있도록 joint limit을 추가하였다. 그리퍼에 사용된 브라켓 및 손바닥은 3D프린터를 사용하여 제작하였다.
2.2 비전 시스템
본 연구에서는 reconstruction에 필요한 최소한의 데이터인 3방향에서 본 RGB-D 데이터를 취득하기 위해 3대의 뎁스 카메라를 인식할 물체가 있는 방향으로 향하게 설치하였다. [Fig. 2]의 (a)는 정확한 카메라의 위치와 자세를 설정하기 위해서 3D cad tool을 사용하여 지정한 카메라와 실험에 사용한 두산 로봇팔의 배치를 나타낸다. 실험을 진행하기 위해서 RGB-D 데이터로부터 point cloud를 reconstruction할 때 완전한 물체의 point cloud를 얻기 위해 3대의 카메라를 약 120° 간격으로 설치하여 비전 시스템을 구성하였다. 카메라의 FOV를 고려하여 탐지 영역이 30×30×30 (cm)이 되도록 카메라의 위치와 각도를 고정하였다. 탐지 영역은 [Fig. 2]의 (b)와 같이 두산 로봇팔의 base 프레임에서 y축으로 45 cm 떨어진 곳에 빨간색 선의 영역으로 설정하였다. 물체가 탐지 영역 내에 존재할 때 3대의 카메라를 통해 물체의 RGB-D 데이터를 얻어 비전 처리를 진행한다. [Fig. 2]의 (b)의 우측 하단에 설치되어 있는 카메라는 일반 웹캠으로 바코드가 정확히 찍혔는지 확인하는 용도이다.
실험은 실내에서 진행하였기 때문에 강한 빛 반사나 그림자에 대한 점은 고려하지 않았고 실내 환경에서 안정적으로 RGB-D 데이터 취득이 가능한 Intel d435 카메라를 사용하였다. 카메라로부터 RGB-D 이미지를 받아온 뒤 이미지에 대한 전처리 과정을 거치기 위해 RealSense SDK를 사용하였다. 2D detection과 visualization을 위해서 YOLO v8과 OpenCV를 사용하였고, point cloud 데이터를 처리하기 위해 Open3D 라이브러리를 사용하였다[18]. 전체 비전 데이터를 처리하기 위한 프로세서로는 Intel(R) i5-10400 CPU, 32gb RAM, RTX 3070 Ti 그래픽카드를 사용하였다.
3. 알고리즘
본 시스템은 크게 [Fig. 3]과 같이 비전 시스템과 동작 계획 부분으로 구분 지을 수 있다. 전체 시스템의 과정은 [Fig. 4]와 같다. 비전 시스템의 경우 전체 과정은 먼저 3개의 카메라를 통해 얻은 3개의 RGB-D 이미지에서 RGB 값을 2D detection network를 통과시켜 물체들 대한 class ID와 바코드의 위치를 파악한다. Depth 이미지들로부터는 각 카메라에서 point cloud를 생성하고 해당 장면들을 reconstruction한다. 그리고 물체에 영역에 해당되는 point cloud를 얻기 위해 뎁스 카메라에 의해서 생기는 노이즈 들을 필터링한다. 한번에 여러 물체가 있을 경우 각각의 물체들의 point cloud를 구분짓기 위해서 clustering과정을 거처 RGB 이미지에서 얻은 class ID와 해당 point cloud를 매칭 시킨다. 그리고 각 물체에 해당하는 point cloud에 PCA (Principal Component Analysis) 알고리즘을 적용하여 물체의 자세를 추정한다. 제안한 비전 알고리즘과 같이 여러 단계를 거쳐 물체의 자세를 추정하게 될 경우 서론에서 언급하였던 2D 이미지에서 keypoint를 통한 Perspective-n-Point (PnP) 알고리즘을 사용하여 물체의 자세를 추정하는 end-to-end 방에는 적용되기 어려운 3개의 이미지를 한 번에 사용하는 장점과 필터링 과정들을 통해서 더 물체에 대한 다방면의 정보와 정확한 정보를 자세 추정기의 입력으로 사용하여 더 높은 정확도를 가질 수 있었다.
다음으로 물체의 동작계획을 위해서 인식된 물체의 현재 자세와 모양에 따라 바로 바코드를 찍는 동작이 생성되는지 판단하고 바코드를 찍을 수 없는 상태라면 그리퍼를 이용하여 물체를 re-grasping 하여 바코드를 찍을 수 있는 자세로 만들어 준다. 그 후 [Fig. 5]와 같이 물체를 파지한 뒤 두산 로봇팔의 엔드 이펙터 goal position을 지정된 바코드 리더기의 위치로 설정하여 물체를 이동시키고 물체의 바코드가 있는 면을 바코드 리더기에 인식시킨다.
4. 물체 자세 추정
4.1 2D segmentation
먼저 현재 탐지된 물체와 물체 내의 바코드 위치를 인식하기 위하여 YOLO v8 segmentation 모델을 사용하였다. 개별적인 물체의 인식뿐만 아니라 여러 물체가 혼재되어 있는 상황에서도 높은 인식률을 가지기 위하여 YOLO v8n segmentation 모델을 사용하였다. 전체 학습에 사용된 데이터는 training dataset 1832장, validation dataset 552장, testing dataset 274장을 사용하였다. 학습된 이미지 class는 바코드, can, spam, tea box, tissue 각 943장, 111장, 135장, 99장, 123장이다. 그리고 혼재된 물체들에 대한 이미지 283장을 추가로 training dataset로 사용하였다. 상대적으로 카메라에 보이는 바코드는 크기가 작아서 인식률이 낮은 문제가 있어서 학습시키기 전에 mosaic augmentation을 사용하여 이미지상에서 크기가 작은 물체를 detection 하기 어려운 점을 최대한 극복하였다. 모든 클래스에 대해서 98% 이상의 정확도로 학습이 되었다.
3대의 카메라를 사용한 이점을 살리기 위해 물체에 대한 추론을 3대의 카메라를 모두 동시에 2d segmentation을 진행하였다. 따라서 하나의 카메라에서는 물체가 가려져서 잘 보지 못하는 물체에 대해서도 확인할 수 있었다. [Fig. 6]은 각 물체와 바코드에 대한 segmentation 결과를 시각화 한 것이다.
Segmentation 과정이 기본적으로 추론 속도가 오래 걸리는 편이지만 하드웨어 성능의 발전과 모델들의 최적화가 진행됨에 따라서 충분히 실시간성을 가질 수 있게 되었다. 3대의 카메라로 segmentation을 진행하였을 때 7fps의 처리 속도로 실시간으로 물체에 대해서 탐지할 수 있었다.
4.2 3D Reconstruction
물체에 해당되는 point cloud를 얻기 위해 [Fig. 7]과 같이 3대의 카메라에서 얻은 Depth 이미지로부터 point cloud를 생성하고 하나의 장면으로 reconstruction을 하였다. 하나의 카메라를 기준으로 다른 카메라에 대한 transformation 값을 미리 설정해 두고 각 카메라에서 생성된 point cloud에 transformation 값을 적용하여 하나의 장면을 3 방향에서 본 point cloud로 생성하였다. 합쳐진 point cloud 들에서 중복되는 점들을 제거하기 위해서 voxel radius와 inlier radius를 설정하여 voxel radius보다는 크고 inlier radius보다는 작은 범위 내의 점들만 point cloud로 생성하고 그 외 범위의 점들은 모두 제거한다.
4.3 Point cloud filtering and clustering
Reconstruction 된 point cloud에서 관심있는 물체의 영역을 제외한 부분을 제거하기 위해서 filtering 과정이 필요하다. 물체들은 바닥에 놓여있는 상태로 계산대에 있기 때문에 먼저 RANSAC (RANdom SAmple consensus) 알고리즘을 사용하여 바닥에 해당하는 평면 값을 찾고 해당 point cloud를 제거한다. 그리고 뎁스 카메라로부터 생긴 노이즈들을 제거하기 위해서 필터링 알고리즘을 적용하였다. 대표적인 방법으로 statistical outlier removal (SOR)와radius outlier removal (ROR)가 있다. Statistical outlier removal는 n개의 이웃한 점들에서 서로 간의 거리를 구하여 평균 거리를 지정하고 평균 거리의 표준 편차를 기반으로 임계값 t를 정하여 노이즈를 제거한다. Radius outlier removal는 구의 반경 r을 설정하고 해당 구 내부에 n개의 이웃한 점들이 없는 경우 노이즈로 판단하고 제거한다. 본 연구에서는 point cloud에서 같은 노이즈를 제거하더라도 SOR이 노이즈가 아닌 물체의 영역을 보존하면서 노이즈를 효과적으로 제거하는 것을 확인할 수 있었다. ROR의 경우 밀도에 감하지 않아서 노이즈에 따라서 알고리즘의 파라미터인 r값과 n값을 다르게 설정해주어야 하는 어려움이 있었고 SOR은 밀도의 변화에 민감하여 다양한 노이즈가 있는 상황에서도 같은 파라미터로 노이즈를 효과적으로 필터링할 수 있다.
여러 물체가 탐지 영역에 존재할 때는 [Fig. 8]과 같이 각각의 point cloud들을 clustering 하였다. Point cloud clustering에 대표적인 방법으로 K-means clustering과 Density-based spatial clustering of applications with noise (DBSCAN)이 있다[19,20]. K-means clustering 방식의 경우 초기 중심점을 선택하고 각 데이터 포인트를 해당 중심점에 가장 가까운 클러스터에 할당하며, 중심점을 재조정하여 클러스터를 업데이트하게 된다. 따라서 cluster가 원형으로 가정되며, 중심점과의 거리를 기반으로 cluster를 형성하기 때문에 구 형태의 point cloud에 효과적이다. DBSCAN clustering은 임의의 데이터 포인트를 선택하고 그 주변의 이웃을 확인하여 밀도를 기반으로 cluster를 확장하게 된다. 따라서 상대적으로 밀도가 작은 노이즈를 무시하거나 개별의 cluster로 처리가 가능하여 노이즈에 강인하다. 본 연구에서는 물체의 모양이 다양하고, 노이즈가 있는 상황에서도 적용할 수 있는 clustering 방법인 DBSCAN clustering을 적용하였다.
4.4 Pose estimation
Clustering된 point cloud의 자세를 추정하기 위해서 PCA알고리즘을 적용하였다. PCA는 데이터 분석에서 차원 축소 및 특징 추출에 사용되는 통계 방법으로 데이터 내에서 가장 중요한 분산 방향을 식별한다. Point cloud에서 PCA를 적용하여 포인트 클라우드 데이터 내 최대 분산의 주성분이나 방향을 식별하여 해당 물체의 자세를 추정할 수 있다. 주성분은 점이 가장 많이 퍼져 있는 축을 뜻한다. 특히나 가로, 세로, 높이가 구분되고 표면이 평평한 물체에 대해서 더 높은 정확도를 가질 수 있다. 물체의 자세를 추정하고 나면 point cloud의 3D 바운딩 박스로 8개의 꼭짓점을 찾는다.
5. 물체 파지 계획
5.1 Grasping point
물체의 크기와 상태에 따라 안정적인 파지법이 필요하다. 물체를 파지하기 가장 안정적인 방법은 물체의 가로, 세로, 높이에 맞게 해당 면의 중심을 잡는 방법이다. 물체 파지의 기본 방법은 [Fig. 9]와 같이 물체의 point cloud에서 생성된 3D 바운딩 박스에서 옆면 4면의 중심점을 파지점으로 설정한다. 기본적으로 물체의 4점을 파지하도록 설정하였고, 물체의 바코드가 그리퍼의 손가락에 가려져 있을 때 바코드를 찍기 위해서 손가락 하나를 때더라도 3점 파지로 물체를 안정적으로 잡을 수 있는 위치인 것을 확인하였다.
5.2 Inverse kinematics
그리퍼의 각 손가락의 끝단을 파지점으로 이동시켜 물체를 파지하기 위해 각 손가락의 역 기구학을 풀어서 제어하였다. 첫 번째 조인트에서 손가락 끝단까지 l1e, 두 번째 조인트에서 손가락 끝단까지 l2e, l1과 l2e의 사이 각을 θq1, l2와 l2e의 사이 각을 θq2로 설정하였다. [Fig. 1]의 {b} 프레임에서 손가락 끝단의 desired position을 (xd, yd, zd)로 설정하고 4개의 손가락에 동일하게 적용하였다. 역 기구학의 풀이 과정은 식 (1) ~ (7)까지의 과정과 같다. 최종적으로 구해진 (θ1, θ2, θ3)를 각 모터의 입력값으로 넣어 주어 제어하였다.
(1) |
(2) |
(3) |
(4) |
(5) |
(6) |
(7) |
5.3 Re-grasping
물체의 초기 자세가 랜덤한 상태일 때 항상 일정한 파지 방법을 적용할 수 없다. 그리고 물체에 따라 물체 내에 있는 바코드의 위치가 다르기 때문에 파지하기 위해 지정된 자세로 초기 상태를 맞춰줄 필요가 있다. 각 물체의 지정된 초기 상태는 물체를 파지하고 최소 3개의 손가락으로 물체를 파지한 상태에서 바코드를 찍을 수 있는 상태이다. 본 시스템에서 re-grasping이 발생하는 경우는 스팸, 캔, 티 박스가 지정된 자세로 놓여있지 않을 경우에 실행한다. 물체 내의 바코드 위치는 3대의 카메라를 통해서 확인되며 물체의 옆면에 바코드가 있을 때 확인이 가능하다. 따라서 re-grasping은 바코드가 확인되지 않는 물체의 윗면 아랫면에 있을 경우 물체 내의 바코드가 옆면으로 가도록 re-orientation 한다.
스팸과 티 박스는 같은 방식으로 re-grasping을 진행하였으며 물체의 자세로 인해서 물체의 바코드가 위나 아래 방향으로 향하게 되어 바코드를 인식할 수 없게 되면 물체를 바코드가 옆면에 위치하게 하는 자세로 눕히는 과정을 추가하였다. 물체를 수평으로 눕힌 후에 추가적인 과정 없이 바로 파지할 수 있게 안정적인 re-grasping이 중요하다. 이를 위해서 re-grasping 과정을 여러 단계로 나누어 진행하였다. 첫 번째로 point cloud의 3D 바운딩 박스에서 물체의 가로, 세로, 높이 값과 바코드 위치에 대한 값을 받아와서 해당 물체가 re-grasping 필요한지 확인한다. 다음으로 물체와 바닥 면 사이의 supporting point 가 한 점이 되도록 눕히려는 방향으로 rotation을 주기 위해 두 손가락으로 물체를 기울이는 각도를 생성한다. 물체의 회전 방향에 개입하는 손가락 2개를 사용하고 그 외 두 손가락은 물체를 re-grasping 하는 과정에서 넘어지는 것을 방지하기 위해 물체 두께 값에 이격을 둔 위치로 설정하였다. 물체의 회전 방향으로 그리퍼의 손가락으로 물체를 밀어서 물체의 무게중심이 supporting point를 넘어가게 한다. 그리퍼의 제어는 역 기구학을 통해 제어되기 때문에 물체의 무게중심이 supporting point를 지나는 점 ()을 [Fig. 10]과 같이 구하였고 해당 좌표를 그리퍼의 goal position으로 지정하여 물체를 넘어뜨린다. 그리고 난 뒤 그리퍼를 바닥 방향으로 내려서 물체를 바닥에 놓고 파지를 위해 물체를 그리퍼의 가운데 지점으로 이동시킨 후 물체를 파지하고 바코드를 찍는 작업을 수행한다. 해당 작업은 사람이 물체의 자세를 수정하는 방법과 유사하게 손가락형 그리퍼의 이점을 살려 로봇팔의 조인트 움직임을 최소화한 상태에서 진행하였다.
다음으로 캔을 re-grasping 하는 과정은 위의 방법과 달리 넘어져 있는 물체를 바로 세우는 방식으로 진행하였다. 캔은 바코드가 캔의 옆면에 있기 때문에 바닥에 누워 있을 경우 그대로 파지하면 바코드가 손가락에 가려지기 때문에 바코드를 아래로 가도록 세로로 세운 뒤 바코드를 찍는 작업을 수행한다. 첫 번째로 point cloud의 3D 바운딩 박스에서 물체의 가로, 세로, 높이 값과 바코드 위치에 대한 값을 받아와서 해당 물체가 re-grasping 필요한지 확인한다. 다음으로 바코드 위치가 아래로 가도록 세우기 위해 바코드의 반대 방향으로 로봇팔을 이동시키고 그리퍼의 두 손가락으로 캔을 파지 후 수직으로 로봇팔을 이동시켜 캔을 세운다. 그리고 물체를 4개의 손가락으로 안정적으로 파지한 후 바코드를 찍는 작업을 수행한다. [Fig. 11]은 물체의 자세를 인식하고 re-grasping 한 뒤 물체의 바코드를 찍는 전체 과정이다.
6. 실 험
6.1 물체 선정
실험에 사용할 물체로는 마트 내에서 흔히 볼 수 있는 물체로 선정하였다. 마트 내의 물건들의 일반적인 특징은 [Fig. 12]와 같이 종이 상자로 포장된 물체, 알루미늄 캔 통조림류, 비닐로 포장된 물체들이다. 이에 맞게 통조림인 스팸, 캔, 상자 포장 물체인 티 박스, 물티슈를 실험에 사용할 물체로 선정하였다. [Table 1]은 각 물체의 크기, 무게를 나타낸 표이다.
6.2 실험
먼저 단일 카메라를 이용하는 SSP를 비전 시스템으로 사용하여 물체의 자세를 추정하는 것과 본 연구에서 사용한 멀티 카메라를 이용한 비전 시스템을 사용하여 물체의 자세를 추정하였을 때 바코드를 찍는 성공률을 비교하였다[12]. SSP는 2D 이미지에서 keypoint를 통한 Perspective-n-Point (PnP) 알고리즘을 사용하여 물체의 자세를 추정하는 방법으로 LineMod dataset[21]에 대해서 90.37%의 높은 accuracy를 가지는 자세 추정기로 본 논문에서 제안하는 비전시스템과 정확도를 비교하기 위해서 사용하였다. 해당 실험은 스팸에 대해서만 진행하였고 두 방법 중 더 높은 정확도를 가지는 방법을 이후 실험에서 사용하였다.
SSP를 사용하기 위해 학습에 필요한 물체의 데이터를 학습시킨 후 데이터에 대한 평가를 하였다. 다각도에서 찍은 물체 이미지를 사용하기 위해 두산 로봇팔의 엔드 이펙터에 카메라를 부착하여 로봇팔의 경로를 생성하여서 데이터를 수집하였고 총 1135장의 이미지를 학습에 사용하였다. 학습은 정확도 90.3으로 가장 높은 값을 보이는 파라미터인 batch_size 4.0, epoch 250회, learning_rate 0.0005로 설정하였다.
먼저 [Fig. 13]과 같이 초기 상태를 임의의 각도로 스팸을 바닥에 놓고 SSP 네트워크를 통과시켜 물체의 자세를 추정하였다. 그리고 추정된 스팸의 transformation 값을 스팸의 reference point cloud 모델에 적용하여 물체의 현재 자세와 위치를 파악하고 3D 바운딩 박스와 파지 점을 구하였다. 실험 결과 바코드를 찍는 횟수가 총 15회 중 11회로 약 73%의 성공률을 보였다. 바코드 인식에 실패한 경우에 대해서 스팸의 자세 추정이 잘못되었음을 확인하기 위해서 [Fig. 14]와 같이 ground truth 값인 point cloud 값과 SSP로 추정된 transformation 값을 point cloud에 적용한 값의 차이를 확인하였다. [Fig. 14]는 총 4가지의 실패한 상황이다. 각 사진에 있는 프레임은 두산 로봇팔의 베이스 좌표계이고 검은색 point cloud는 reference point cloud에 추정된 transformation 값을 적용한 것이고, RGB-D point cloud는 실험할 때 설정해둔 스팸의 ground truth point cloud이다. 물체의 keypoint를 정확히 찾지 못한 경우에는 매우 큰 오차가 발생하였고, 그 외 경우에는 ground truth point cloud와 추정된 point cloud가 겹쳐있어 상대적으로 적은 오차가 발생한 것을 확인할 수 있다.
이러한 문제는 단일 카메라를 사용하는 비전 시스템에서 발생하는 keypoint에 대한 오차와 PnP알고리즘에 대한 오차로 아주 정확한 물체의 자세 추정이 어렵다는 것을 보여준다. 또한 SSP를 이용하여 3대의 카메라에 대해서 동시에 물체의 자세를 추정하더라도 3개의 이미지가 각각의 네트워크를 개별적으로 통과하여 추론된 자세값이기 때문에 하나의 정보로 사용하기 어려워 정확도를 향상시하기는 힘들다. 빠른 추론 속도와 하나의 카메라만 사용하여도 되기 때문에 비용적으로 낮다는 장점이 있지만 물체를 정확히 파지하기 위해서는 물체의 자세에 대한 적은 오차에도 파지 점이 달라지기 때문에 안정적으로 파지할 수 없고 이 경우 바코드 인식에 실패하였다. 따라서 3대의 카메라를 사용하여 비용적으로 높고 추론 속도가 상대적으로 길지만 더 높은 정확도를 가지는 multi camera를 이용한 비전 시스템이 본 시스템에서는 더 적합하였다. 본 연구에서 제안한 multi camera를 이용한 비전 시스템으로 스팸을 같은 위치에 놓고 동일하게 15회 반복 실험한 결과 15회 중 15회로 100%의 성공률을 확인하였다. 따라서 빠른 속도보다는 높은 정확도가 가장 중요하게 요구되는 본 시스템에서는 multi camera를 이용한 비전 시스템을 사용하여 나머지 실험 또한 진행하였다. 해당 비교 실험 결과는 이어서 나오는 multi camera를 이용한 비전 시스템 실험에 포함하여서 결과를 보였다.
본 실험은 Multi camera를 이용한 비전 시스템을 적용하여 실험은 단일 물체들에 대한 실험과 여러 물체에 대한 실험으로 나누어 진행하였다. 각각의 물체들은 탐지 영역에 랜덤한 자세로 놓고 실험을 진행하였다. [Fig. 15]는 스팸의 초기 자세와 바코드 인식 결과, [Fig. 16]은 캔의 초기 자세와 바코드 인식 결과, [Fig. 17]은 물티슈의 초기 자세와 바코드 인식 결과, [Fig. 18]은 티 박스 초기 자세와 바코드 인식 결과, [Fig. 19]는 다중 물체의 초기 자세와 바코드 인식 결과이다. 초기 물체의 자세에서 2D segmentation, 3D reconstruction, pose estimation, grasping, re-grasping을 거처 최종 바코드 인식이 성공하는지 확인하였다. 물체별로 30회씩 테스트를 진행하여 최종 성공 횟수로 전체 성공률을 계산하였다.
첫 번째 실험을 통해 [Table 2]와 같이 multi camera를 이용한 비전 시스템이 SSP를 이용한 비전 시스템보다 더 높은 성공률을 보이는 것을 확인하였다. 두 번째 실험을 통해 [Table 3]과 같이 multi camera를 이용하여 물체의 자세를 랜덤한 상태로 놓고 실험하였을 때 각 물체에 대한 성공률을 확인하였다. 모든 물체에 대해서 91% (164/180)의 성공률이 나오는 것을 확인하였다.
7. 결 론
본 논문에서 마트 내에 흔히 볼 수 있는 물건들을 선정하여 해당 물체에 대한 계산 과정을 자동화하는 시스템을 제시하였다. 물체의 바코드를 찍는 과정을 성공적으로 수행하기 위해 최근 연구되고 있는 SSP와 같은 자세 추정기를 사용하였을 경우 높은 정확도의 자세 추정에 어려움이 있음을 판단하여 multi 카메라를 이용하여 환경을 구축하여 물체의 자세를 추정하는 방법을 제시하였다. 2D segmentation은 로봇 비전 시스템에서 훌륭한 성능을 보이는 YOLO 모델을 사용하였고 탐지 방법은 여러 물체가 혼재되어 있어도 분류 정확도가 높은 segmentation을 사용하였다. 3대의 카메라에서 획득된 RGB-D 데이터로 해당 물체를 reconstruction하고 필터링과 클러스터링 과정을 거처 PCA 알고리즘을 사용하여 물체의 자세를 추정하였다. 그리고 물체의 현재 자세가 re-grasping이 필요한 상태인지 판단하기 위해 물체 내의 바코드를 인식하여 바코드의 위치에 따라 파지 방법을 다르게 적용하게 하였다. 물체가 어떤 자세로 놓여있어도 최종 목표인 바코드 인식을 성공적으로 수행하기 위해 손가락형 그리퍼를 사용하여 두산 로봇팔의 관절 움직임을 최소화하면서 사람이 손으로 물체를 파지하고, 물체의 자세를 수정하는 방법과 비슷하게 re-grasping을 적용하였다. 실험 결과 단일 물체와 다중 물체일 때 전체 과정에서 총 91% (164/180)의 성공률을 보여줌으로써 전체 시스템이 성공적으로 동작하는 것을 확인할 수 있었다. 이를 통해 물체의 파지에만 초점을 두는 기존의 bin-picking과 디팔레타이징 시스템으로는 구현하기 어려운 물체 내의 바코드를 찍는 작업을 수행하기 위해서는 추가적인 물체 re-orientation과 물체의 정확한 자세 추정하기 위한 알고리즘을 적용하여 시스템을 구현될 수 있음을 확인하였다.
향후 본 시스템에서 가장 실패가 많이 발생하였던 re-grasping 과정을 안정적인 그리퍼 manipulation 기법을 적용하여 더 높은 성공률이 나오는 시스템으로 개선하기 위한 연구를 진행할 것이고, 또한 본 실험에서 사용한 육면체의 형태가 아닌 물체에 대해서도 파지 계획을 세울 수 있도록 하기 위해서 known object라는 가정을 사용하여 물체에 대한 파지점을 미리 지정하거나 물체 내에서 가장 평평한 면을 찾아서 파지점으로 설정하는 등의 알고리즘을 추가하여 문제를 해결할 수 있는 연구를 진행할 것이다.
Acknowledgments
This paper was supported by Korea Institute for Advancement of Technology (KIAT) grant funded by the Korea Government (MOTIE) (P0008473, HRD Program for Industrial Innovation).
This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (No. NRF-2021R1C1C1009989).
References
- Y. Sim and S. Jin, “Gripper Design with Adjustable Working Area for Depalletizing Delivery Cardboard box of Various Sizes,” Journal of Korea Robotics Society, vol. 18, no. 1, pp. 29-36, Feb., 2023. [https://doi.org/10.7746/jkros.2023.18.1.029]
- J. Cho, S. S. Kang, and K. K. Kim, “Object Recognition and Pose Estimation Based on Deep Learning for Visual Servoing,” Journal of Korea Robotics Society, vol. 14, no. 1, pp. 1-7, Feb., 2019. [https://doi.org/10.7746/jkros.2019.14.1.001]
- E-.C. Hwang, “Artificial Intelligence Service Robot Market Trend,” Korean Society of Computer Information Conference, vol. 29, no. 1, pp. 111-112, 2021, [Online], https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE10532113, .
- D. Song, J.-B. Yi, and S.-J. Yi, “Development of an Efficient 3D Object Recognition Algorithm for Robotic Grasping in Cluttered Environments,” Journal of Korea Robotics Society, vol. 17, no. 3, pp. 255-263, Aug., 2022. [https://doi.org/10.7746/jkros.2022.17.3.255]
- R. Mykhailyshyn, V. Savkiv, F. Duchon, R. Trembach, and I. M. Diahovchenko, “Research of Energy Efficiency of Manipulation of Dimensional Objects with the Use of Pneumatic Gripping Devices,” 2019 IEEE 2nd Ukraine Conference on Electrical and Computer Engineering (UKRCON), Lviv, Ukraine, pp. 527-532, 2019. [https://doi.org/10.1109/ukrcon.2019.8879957]
- H. J. Lee, S. Y. Han, and H.-S. Yoon, “A Soft Gripper with Variable Stiffness for Stable Gripping using an Auxetic Structure,” Journal of the Korean Society of Manufacturing Process Engineers, vol. 22, no. 9, pp. 96-104, Sept., 2023. [https://doi.org/10.14775/ksmpe.2023.22.09.096]
- T. Chen, M. Tippur, S. Wu, V. Kumar, E. Adelson, and P. Agrawal, “Visual dexterity: In-hand dexterous manipulation from depth,” arXiv:2211.11744, 2022. [https://doi.org/10.48550/arXiv.2211.11744]
- R. Q. Charles, H. Su, M. Kaichun, and L. J. Guibas, “PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation,” 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, HI, USA, pp. 77-85, 2017. [https://doi.org/10.1109/cvpr.2017.16]
- Z. Wang, Y. Xu, Q. He, Z. Fang, G. Xu, and J. Fu, “Grasping pose estimation for SCARA robot based on deep learning of point cloud,” The International Journal of Advanced Manufacturing Technology, vol. 108, pp. 1217-1231, Apr., 2020. [https://doi.org/10.1007/s00170-020-05257-2]
- H.-Y. Lin, S.-C. Liang, and Y.-K. Chen, “Robotic Grasping With Multi-View Image Acquisition and Model-Based Pose Estimation,” IEEE Sensors Journal, vol. 21, no. 10, pp. 11870-11878, pp. 11870-11878, May, 2021. [https://doi.org/10.1109/jsen.2020.3030791]
- Y. Xiang, T. Schmidt, V. Narayanan, and D. Fox, “PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes,” Robotics: Science and Systems, Jun., 2018. [https://doi.org/10.15607/rss.2018.xiv.019]
- B. Tekin, S. N. Sinha, and P. Fua, “Real-Time Seamless Single Shot 6D Object Pose Prediction,” 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, Salt Lake City, UT, USA, pp. 292-301, 2018. [https://doi.org/10.1109/cvpr.2018.00038]
- S. Peng, X. Zhou, Y. Liu, H. Lin, Q. Huang, and H. Bao, “PVNet: Pixel-Wise Voting Network for 6DoF Object Pose Estimation,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 44, no. 6, pp. 3212-3223, Jun., 2022. [https://doi.org/10.1109/tpami.2020.3047388]
- J. Redmon, S. Divvala, R. Girshick, and A. Farhadi, “You Only Look Once: Unified, Real-Time Object Detection,” 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA, pp. 779-788, 2016. [https://doi.org/10.1109/cvpr.2016.91]
- M. A. Fischler and R. C. Bolles, “Random sample consensus,” Communications of the ACM, vol. 24, no. 6, pp. 381-395, Jun., 1981. [https://doi.org/10.1145/358669.358692]
- H. Balta, J. Velagic, W. Bosschaerts, G. De Cubber, and B. Siciliano, “Fast Statistical Outlier Removal Based Method for Large 3D Point Clouds of Outdoor Environments,” IFAC-PapersOnLine, vol. 51, no. 22, pp. 348-353, 2018. [https://doi.org/10.1016/j.ifacol.2018.11.566]
- R. Bro and A. K. Smilde, “Principal component analysis,” Anal. Methods, vol. 6, no. 9, pp. 2812-2831, 2014. [https://doi.org/10.1039/c3ay41907j]
- Q.-Y. Zhou, J. Park, and V. Koltun, “Open3D: A modern library for 3D data processing,” arXiv:1801.09847, 2018. [https://doi.org/10.48550/arXiv.1801.09847]
- T. M. Kodinariya and P. Makwana, “Review on determining number of Cluster in K-Means Clustering,” International Journal, vol. 1, no. 6 pp. 90-95, Jan., 2013, [Online], https://www.researchgate.net/publication/313554124, .https://www.researchgate.net/publication/313554124, .
- M. Ester, H. Kriegel, J. Sander, and X. Xu, “A density-based algorithm for discovering clusters in large spatial databases with noise,” Knowledge Discovery and Data Mining, vol. 96, no. 34, Aug., 1996, [Online], https://cdn.aaai.org/KDD/1996/KDD96-037.pdf, .
- S. Hinterstoisser, V. Lepetit, S. Ilic, S. Holzer, G. Bradski, K. Konolige, and N. Navab, “Model Based Training, Detection and Pose Estimation of Texture-Less 3D Objects in Heavily Cluttered Scenes,” Lecture Notes in Computer Science, vol. 7724, pp. 548-562, 2013. [https://doi.org/10.1007/978-3-642-37331-2_42]
2022 부산대학교 전자공학과 학사
2022~현재 부산대학교 전기전자공학과 석사과정
관심분야: 컴퓨터 비전, 자세 추정, 물체 파지
2023 부산외국어대학교 전자로봇공학과
2023~현재 부산대학교 전기전자공학과 석사과정
관심분야: 설계, 컴퓨터 비전
2017 부산대학교 항공우주공학과 학사
2019 부산대학교 전기전자공학과 석사
2019~현재 부산대학교 전자전기공학과 박사과정
관심분야: 로보틱스, 보행로봇, 딥러닝, 환경 인식
2017 경남과학기술대학교 전자공학과 학사
2019 부산대학교 전기전자컴퓨터공학과 석사
2019~현재 부산대학교 전자공학과 박사과정
관심분야: 지능제어, 강인제어, 마이크로프로세서 응용
2009 한국과학기술원 기계공학과 학사
2011 한국과학기술원 기계공학과 석사
2016 한국과학기술원 기계공학과 박사
2020~현재 부산대학교 전자공학과 조교수
관심분야: Robotics, 기계 시스템 자동화, 시스템 모델링