Journal of Korea Robotics Society
[ ARTICLE ]
The Journal of Korea Robotics Society - Vol. 17, No. 4, pp.417-424
ISSN: 1975-6291 (Print) 2287-3961 (Online)
Print publication date 01 Dec 2022
Received 05 Sep 2022 Revised 04 Oct 2022 Accepted 18 Oct 2022
DOI: https://doi.org/10.7746/jkros.2022.17.4.417

간선화물의 상자 하차를 위한 외팔 로봇 시스템 개발

정의정 ; 박성호1 ; 강진규2 ; 손소은3 ; 조건래4 ; 이영호5
Development of a Single-Arm Robotic System for Unloading Boxes in Cargo Truck
Eui-Jung Jung ; Sungho Park1 ; Jin Kyu Kang2 ; So Eun Son3 ; Gun Rae Cho4 ; Youngho Lee5
1Senior Researcher, KIRO, Pohang, Korea psh84@kiro.re.kr
2Senior Researcher, KIRO, Seoul, Korea kangjinkyu@kiro.re.kr
3Assistant Researcher, KIRO, Pohang, Korea smallsilver@kiro.re.kr
4Chief Researcher, KIRO, Pohang, Korea sandman@kiro.re.kr
5Principal Researcher, Hyundai Movex, Incheon, Korea yh.lee@hyundaimovex.com

Correspondence to: Principal Researcher, Corresponding author: Intelligent Robotics R&D Division, KIRO, Pohang, Korea ( ejjung@kiro.re.kr)

CopyrightⓒKROS

Abstract

In this paper, the developed trunk cargo unloading automation system is introduced, and the RGB-D sensor-based box loading situation recognition method and unloading plan applied to this system are suggested. First of all, it is necessary to recognize the position of the box in a truck. To do this, we first apply CNN-based YOLO, which can recognize objects in RGB images in real-time. Then, the normal vector of the center of the box is obtained using the depth image to reduce misrecognition in parts other than the box, and the inner wall of the truck in an image is removed. And a method of classifying the layers of the boxes according to the distance using the recognized depth information of the boxes is suggested. Given the coordinates of the boxes on the nearest layer, a method of generating the optimal path to take out the boxes the fastest using this information is introduced. In addition, kinematic analysis is performed to move the conveyor to the position of the box to be taken out of the truck, and kinematic analysis is also performed to control the robot arm that takes out the boxes. Finally, the effectiveness of the developed system and algorithm through a test bed is proved.

Keywords:

Object Recognition, Robotic Arm, Kinematics, Task And Motion Planning, Image Processing

1. 서 론

시간이 흐를수록 인터넷과 스마트폰의 기술이 발전함에 따라 온라인 시장 역시 크게 확대되고 있다. 특히, 최근 몇 년 사이 코로나로 인해 물류 및 유통 산업이 크게 성장하고 있다. 이에 따라 물류 현장 노동자들의 인력 수요도 급증하고 있지만, 힘든 노동으로 인해 인력 수급이 어려운 것은 현재의 문제점이다. 일반적으로 물건 배송은 판매자가 상품을 발송하고 그 소포는 지역별 허브로 이송된다. 지역별 허브에서 허브로 배송될 때는 보통 10톤 이상의 간선화물 트럭이 사용된다. 지역별 허브에 도착한 물품들은 목적지에 따라 이를 구분하여 소비자에게 전달되는데, 현재 간선트럭에 실린 제품 상자를 내리는 작업은 순수한 육체노동으로 수행되고 있다. [Fig. 1]은 실제 간선화물 트럭에 다양한 상자가 적재되어 있는 상황과 작업자들이 적재된 상자를 꺼내고 있는 장면을 보여준다. 이 작업은 물류 운송 과정에서 가장 힘이 많이 들고 부상의 위험이 높기 때문에 전 세계적으로 로봇 시스템에 의한 자동화 연구가 진행되고 있다[1-5]. 하지만, 간선화물 트럭에 실린 상자는 크기, 무게, 모양, 적재 조건이 다양하기 때문에 협소한 공간에서 사람과 같은 빠른 속도로 상자를 집어서 내리는 작업을 로봇으로 구현하는 것은 결코 쉬운 일이 아니다.

[Fig. 1]

Real environment of trunk cargo box unloading: (a) A situation in which various types of boxes are stacked inside the cargo truck, (b) Scene with workers taking out boxes from trucks

트럭에서 물건을 하차하기 위한 로봇 자동화에 대한 연구의 개요는 [6]에 잘 설명되어 있다. 자율 컨테이너 하차 시스템은 크게 두 가지 형태로 개발되고 있으며, 여러 개의 상자를 한 번에 꺼내는 큰 시스템의 형태와 개별 상자를 한 개씩 꺼내는 다소 작은 시스템의 형태가 있다. 자동화된 로봇 트럭 하차 시스템은 일반적으로 배송된 상자를 인식하고, 내릴 상자를 선택하고, 로봇을 이용하여 상품을 빼내는 순서로 진행된다. 상자 인식 과정에서는 주로 RGB-D 카메라가 사용된다[7,8]. 센서를 이용하여 획득한 영상을 이용하여 전처리 및 분할을 통해 상자를 인식하거나, 깊이 정보를 이용하여 획득한 포인트 클라우드를 통해 대상 상자 면을 검출한다. 상자를 하나씩 꺼내서 컨베이어 벨트로 옮기는 상황에서는 다른 상자의 위치에 영향을 주지 않기 위해 일반적으로 상자의 측면을 부착하고 당기는 공압 도구를 사용한다. 상자의 하차 순서를 생성하기 위해서는 연산 시간을 최소화하는 것을 고려해야 하며, 단기 계획을 목적으로 항시 휴리스틱 검색 기반 플래너를 사용하는 전략도 제안되었다[9]. 상자가 불규칙적으로 쌓여 있는 환경에서도 상자를 꺼내는 연구도 진행되었다[10].

실제 화물은 다양한 크기의 상자가 복잡하게 적재되어 있지만, 본 논문에서는 연구 개발을 시작하는 단계로 표준 컨테이너에 한 종류의 상자가 다양한 무게로 쌓여 있는 상황으로 가정하고 우선 이 상황부터 해결하고자 한다. 우선 상자의 적재상황을 RGB-D 센서를 이용하여 상자의 위치를 인식하는 알고리즘에 대해서 설명하고, 인식 후 상자를 하나씩 내리기 위한 하차 순서를 정하는 방법을 제안하며, 계획된 하차 순서에 따라 개발된 외팔 로봇 시스템을 이용하여 하차 작업을 수행하는 방법을 설명하고자 한다.

2장에서는 개발된 간선화물 상자 하차를 위한 외팔 로봇 시스템에 대해서 소개하고, 기구학 해석을 통한 제어 방법을 제안 한다. 3장에서는 트럭에 적재된 상자의 상태를 인식하는 방법과 절차에 대해서 소개하고 하차 계획 방법에 대해서 설명하며, 4장에서는 개발된 시스템의 유용성을 실험을 통해 보여주고자 한다.


2. 상자 하차 로봇 시스템

2.1 상자 하차 로봇 시스템 구성

본 연구에서는 최대 20 kg의 상자를 시간당 1,500개(평균 인력 2명의 작업량)의 속도로 하차할 수 있는 상자 하차 작업을 위한 외팔 로봇 시스템을 개발하는 것이 최종 목표이다. 이를 위해서 개발된 시스템은 [Fig. 2]과 같이 구성되어 있다. 이 시스템은 상하-좌우 회전이 가능한 컨베이어 벨트와 앞뒤 이동이 가능한 컨베이어 벨트가 연결되어 있으며 상자를 잡아서 꺼내기 위한 3자유도 로봇팔과 상자의 적재 상황을 파악하고 하차 순서를 결정하는 RGB-D 카메라 시스템으로 구성되어 있다.

[Fig. 2]

Single-arm robotic unloading system: consist of a conveyer with tilt and swivel joints, one 3-DOF robot arm, and RGB-D camera system

2.2 컨베이어 장치

2.2.1 컨베이어 장치 기구 구조

이 상자 하차 로봇 시스템에서 컨베이어 장치의 역할은 로봇팔이 적재된 상자를 꺼냈을 때 상자가 떨어지지 않도록 받쳐서 안쪽으로 이송하고 상자들이 앞으로 넘어지지 않도록 지지하는 것이다. 따라서 이 컨베이어 장치는 컨베이어의 끝이 꺼내고자 하는 박스의 조금 아래쪽으로 이동하면 된다. 이를 위해 본 연구에서 개발된 컨베이어 장치는 [Fig. 3]과 같이 3자유도를 갖도록 제작되었다. 첫 번째 구동기(d1)는 컨베이어를 앞뒤로 이동하기 위한 선형 구동기이며, 두 번째 구동기(θ2)는 컨베이어를 좌우 회전을 위한 회전 구동기이고, 세 번째 구동기(d3)는 컨베이어를 상하로 이동하기 위한 회전 조인트(θ3)를 움직여주는 선형 구동기이다. 따라서 본 논문에서는 이러한 형태의 컨베이어 장치 구조를 이용하여 컨베이어를 원하는 위치로 움직이고자 한다.

[Fig. 3]

Kinematic diagram of the box unloading conveyer: this system has 3-DOFs which consist of two active prismatic joints (d1, d3), one active revolute joint (θ2), and two passive revolute joints (ϕ3, ϕ4)

2.2.2 컨베이어 장치 기구학

컨베이어의 끝부분을 꺼내려는 상자의 아랫부분으로 이동시키기 위해서는 우선 구동기의 움직임 정보를 이용하여 컨베이어 장치의 원점을 기준으로 컨베이어 끝의 위치를 알아야 한다. 이를 위해 다음과 같이 정기구학 식을 구하였다. 이 컨베이어 장치는 3자유도를 지니고 있으며 컨베이어 장치의 원점에서 컨베이어 끝의 위치까지의 관계식을 [Fig. 3]의 모델 파라메타로 표현하면 아래의 식과 같이 나타낼 수 있다.

xeyeze=-L3sinθ2cosθ3-L2sinθ2L3cosθ2cosθ3+L2cosθ2+d1L3sinθ3+L0(1) 

식 (1)을 이용하면 각 관절의 각도와 그 사이의 길이를 알 때 컨베이어 끝점의 위치를 계산할 수 있게 된다.

실제 컨베이어를 사용하기 위해서는 컨베이어의 끝점이 주워졌을 때 각 구동기의 각도와 거리를 알아야 한다. 따라서 다음과 같이 역기구학 식을 구하였다. 우선 컨베이어의 끝점의 높이(ze)가 주어지면 세 번째 회전 관절의 각도(θ3)는 아래의 식으로 구할 수 있다.

θ3=sin-1ze-L0L3(2) 

이제 세 번째 회전 관절의 각도(θ3)는 구했기 때문에 두 번째 회전 관절의 각도(θ2)는 아래의 식으로 구할 수 있다.

θ2=sin-1-xeL3cosθ3+L2(3) 

마지막으로 첫 번째 선형 관절의 길이(d1)는 두 번째와 세 번째 회전 관절의 각도(θ2, θ3)를 알기 때문에 아래의 식과 같이 구하면 된다.

d1=ye-L3cosθ2cosθ3-L2cosθ2(4) 

따라서 적재된 상자를 꺼내기 위해 컨베이어 끝의 위치가 주어지면 위의 식 (2)-(4)를 이용하여 각 관절의 구동기에 필요한 목표 값을 넣으면 된다. 하지만, 여기서 세 번째 관절(θ3)은 구동기가 없는 수동 관절이기 때문에 실제 컨베이어의 위치를 제어하기 위해서는 구동기가 있는 능동 관절의 길이(d3)와의 관계식이 추가로 필요하다.

[Fig. 4]는 [Fig. 3]에서 θ3d3의 기구적 구속 조건을 보여주고 있다. 여기서 링크길이 S14S23은 고정된 상수 값이므로 이 두 링크 사이에 있는 각(β)과 능동 관절의 길이(d3) 사이의 관계식은 제2코사인 법칙을 이용하여 아래와 같이 구할 수 있다.

d3=S142+S232-S14S23cosβ(5) 
[Fig. 4]

Kinematic diagram of the conveyer lifting system: The input is prismatic joint (d3) and the output is revolute joint (θ3)

여기서 β는 [Fig. 4]에서 볼 수 있듯이 세 번째 관절의 각도(θ3)와 아래와 같은 관계식을 갖는다.

θ3=α+β+γ-π/2(6) 

여기서 αγ는 상수이다. 본 논문에서 지정된 상자를 꺼내기 위해 상자의 아랫부분에 개발된 컨베이어의 끝부분이 위치하도록 위의 수식들을 사용하였다.

2.3 로봇팔

2.3.1 로봇팔 기구 구조

본 상자 하차 시스템에 적용된 로봇팔은 상자 적재 면과 수직/수평을 유지하면서 상자를 빼내기 위해 [Fig. 5]와 같이 3자유도를 지니며 수평면으로만 이동 가능한 SCARA 타입으로 개발되었다. 그리고 추가적으로 로봇팔을 수평으로 유지하기 위해 회전 조인트로 컨베이어와 로봇팔을 연결하였다. 이 수평 유지 장치의 회전 관절의 각도는 세 번째 회전 관절의 각도(θ3)가 양수일 때(컨베이어의 끝이 세 번째 좌표계 보다 위에 있을 때)는 서로 동일하도록 제어하여 상자를 수평으로 꺼낼 수 있도록 하고, 음수일 때(컨베이어의 끝이 세 번째 좌표계 보다 아래에 있을 때)는 수평 유지 장치의 회전관절의 각도를 0으로 유지하여 상자를 위로 잡아당기면서 꺼내는 효과가 나타 날 수 있도록 설계 되었다. 그리고 로봇팔 끝에는 50 mm의 신축성이 있는 공압 흡입기를 장착하여 약간의 위치 오차가 있더라도 최대 30 kg의 상자를 집어서 꺼내는데 문제가 없도록 설계 되었다. 여기에 적용된 진공 펌프의 사양은 900 m3/h•-17.0~-34.0 kPa 이다.

[Fig. 5]

Kinematic diagram of the robotic arm: 3-DOF SCARA robot (Horizontal articulated robot) with leveling device

2.3.2 로봇팔 기구학

본 시스템에 적용된 로봇팔은 평면형 3자유도로 구성되어 있다. 따라서 로봇팔의 원점으로부터 공압 흡입기의 끝부분까지 위치와 회전각을 각 회전 관절의 각도로 표현하면 아래와 같이 나타낼 수 있다.

xeyeΦe=L1cosθ1+L2cosθ12+L3cosθ123L1sinθ1+L2sinθ12+L3sinθ123θ1+θ2+θ3(7) 

여기서 θ12 = θ1 + θ2 이고 θ123 = θ1 + θ2 + θ3 이다. 위의 식으로부터 공압 흡입기의 끝부분의 위치가 회전각이 주어지면 각 회전 관절의 각도는 아래와 같은 순서로 구할 수 있다. 우선 툴의 각도는 주어지기 때문에 식 (7)의 세 번째 행을 통해서 세 회전 관절의 각의 합(θ1 + θ2 + θ3 )은 아는 값이 된다. 따라서 두 번째 회전 관절의 각도 값은 아래와 같이 구할 수 있다.

θ2=cos-1x32+y32-L12-L222L1L2(8) 

여기서 세 번째 좌표계의 위치는 아래와 같다.

x3=xe-L3cosθ123y3=ye-L3sinθ123(9) 

그다음 첫 번째 회전 관절의 각도 값은 아래와 같이 구할 수 있다.

θ1=atan2y3,x3-atan2k2,k1(10) 

여기서 상수 k1, k2는 아래와 같이 정의되었다.

k1=L1+L2cosθ2k2=L2sinθ2(11) 

마지막으로 세 번째 회전 관절의 각도 값은 아래와 같이 구할 수 있다.

θ3=Φ-θ1-θ2(12) 

위와 같은 기구학식을 이용하여 꺼낼 상자의 위치 아래쪽으로 컨베이어를 이동시키고 로봇팔을 이용하여 상자를 꺼내는 작업을 수행할 수 있었다.


3. 상자 적재 상황 인식 및 하차 계획

3.1 상자 적재 상황 인식 및 하차 계획 절차

개발된 상자 하차 외팔 로봇 시스템은 상자의 적재 상황을 인식하기 위하여 [Fig. 2]에서 보는바와 같이 컨베이어 뒤쪽 윗부분에 RGB-D 카메라 시스템을 개발하여 설치하였다. 이 시스템의 주요 구성품은 상자의 적재 상황을 센싱하기 위한 RGB-D 카메라와 카메라에서 얻은 영상을 처리하기 위한 PC, 그리고 어두운 환경을 밝혀줄 LED 조명으로 구성되어 있다. RGB-D 카메라는 Microsoft사의 Azure Kinect를 사용하였고, PC는 HP사의 Elitedesk 805 G6가 사용 되었다.

간선 화물 트럭에서 상자를 꺼내기 위한 적재 상황 인식 및 하차 계획 절차는 다음과 같다. 본 시스템은 RGB-D 카메라를 이용하여 상자의 적재 상황을 인식하는데, 이는 컨베이어에서 가장 가까운 면에 있는 꺼내야 할 상자들의 위치를 얻는 것이다. 따라서 이를 위한 절차는 [Fig. 6]과 같다. 가장 먼저 카메라로부터 RGB 영상을 얻으면 이 영상에 보이는 모든 상자들의 크기와 위치를 YOLO[11]를 이용하여 얻는다. 여기서 벽을 상자로 잘못 인식하는 경우를 제거하기 위해 상자 중심의 법선벡터를 구해서 내벽을 필터링 한다. 그 다음 상자들의 거리 정보를 히스토그램으로 그려서 컨베이어에서 가장 가까운 적재 면을 찾아내고 마지막으로 적재 면에 있는 상자들의 위치와 크기 정보를 추출한다. 이후 이 상자들의 위치 정보를 바탕으로 최단 경로를 탐색하여 가장 가까운 면의 하차 계획을 수립한다.

[Fig. 6]

Overall flowchart of the proposed box detection algorithms: From the RGB image to box unloading plan

3.2 상자 인식

상자들의 적재 상황을 알기 위해서 가장 먼저 해야 할 작업은 RGB 영상에서 상자를 인식하는 것이다. 이를 위해 본 논문에서는 YOLO v4 tiny를 사용하였다. YOLO는 최근 객체 검출분야에서 뛰어난 성능을 보여주고 있는 오픈소스 알고리즘으로 CNN (Convolutional Neural Network)을 기반으로 하며 객체 검출과 위치를 동시에 예측하여 실시간 처리가 가능하기 때문에 실시간으로 상자의 적재 상황을 인식하기에 적합하다. 그리고 여기서 사용된 심층학습알고리즘인 YOLO는 대량의 학습데이터가 필요하기 때문에 이를 학습시키기 위해서 테스트 베드 내에서 다양한 상자와 다양한 조명 조건, 그리고 다양한 위치 및 각도에서 영상을 취득하여 학습 데이터로 사용하였다.

[Fig. 7]은 본 시스템을 이용하여 상자를 인식한 결과를 보여주고 있다. 간선 화물 트럭과 유사한 크기의 테스트 베드 공간에 상자를 쌓아 두고 상자 인식 실험을 했을 때 [Fig. 7]과 같이 상자 정면의 가장자리가 아주 정밀하게 인식됨을 알 수 있다. 그리고 여기서 인식된 상자의 위치는 인식된 네모 상자의 중심으로 가정하여 계산하였다.

[Fig. 7]

Result of box detection: the green squares denote the size and the location of detected boxes

3.3 내벽 필터링

심층학습 알고리즘의 인식률은 어떤 데이터를 얼마나 많이 학습하느냐에 따라 달라진다. 따라서 실제와 같은 다양한 상자로 구성된 학습 데이터가 필요한데, 현실적으로 모든 상자에 대한 학습은 어렵다. 따라서 본 시스템에는 테스트 베드의 환경에서 취득한 상자 영상으로만 학습하였고, 다른 환경에서는 잘못 인식할 가능성이 충분히 있기 때문에 우선 트럭 내부에서 상자가 아닌 부분을 제거 하고자 한다.

트럭 내부에서 박스가 아닌 부분은 상하좌우에 있는 내벽이 유일하다. 따라서 이 부분을 제거하기 위해서 깊이 영상을 이용하여 각 픽셀의 위치벡터(d)을 구하고 이위치가 속한 면의 법선벡터(υ)는 아래와 같이 구하였다.

υi,j=di+1,j-di,j×di,j+1-di,j(13) 

여기서 ij는 픽셀의 행과 열을 뜻한다. 이 법선벡터를 통해서 각 픽셀의 위치좌표가 포함된 면의 기울기를 알 수 있다.

[Fig. 8]은 내벽 제거 과정을 보여주고 있다. [Fig. 8(a)]는 카메라로부터 들어오는 RGB 영상이며, [Fig. 8(b)]는 카메라로부터 들어오는 깊이 영상이다. 이 깊이 영상으로부터 법선 벡터를 구하고 그 벡터와 카메라의 중심축과의 각도를 구해서 이미지화하면 [Fig. 8(c)]와 같은 결과를 얻을 수 있다. 여기서 이 각도 차이가 일정 범위 이내이면 카메라를 바라보는 상자의 표면이라고 간주 할 수 있다. 다만, 제일 뒷면의 내벽도 카메라를 바라보는 면으로 인식이 되는데, 이 부분을 제거하는 방법은 다음절에서 다룬다. 최종적으로 깊이 영상의 법선 벡터를 이용하여 상하좌우 내벽을 제거하면 [Fig. 8(d)]와 같은 결과를 얻을 수 있기 때문에 상자를 인식할 때 카메라 이미지를 바로 사용할 때 보다 상자를 잘못 인식하는 경우를 줄일 수 있게 된다.

[Fig. 8]

Inner wall filtering process: (a) raw RGB image, (b) raw depth image, (c) normal vector angle image, (d) result of inner wall filtering

3.4 가장 가까운 면 상자 추출

간선 화물 트럭 내에 있는 상자를 꺼낼 때는 컨베이어에 가장 가까운 면에 있는 상자들을 먼저 꺼내야 한다. 이를 위해서 본 논문에서는 영상의 깊이 데이터를 히스토그램으로 표현하고 상자의 면을 구분하였다. [Fig. 9]는 트럭 화물칸 내벽을 제거하기 전후의 거리정보를 히스토그램으로 그린 것이다. 내벽을 제거한 그래프에서 보다 명확한 박스의 면이 구분됨을 알 수 있으며 첫 번째 면부터 뒷벽까지 거리에 따라 순차적으로 나타남을 확인 할 수 있다. 따라서 그래프 상의 각 봉우리 사이의 중간점을 기준으로 데이터를 나누면 컨베이어에서 가장 가까운 면을 추출해 낼 수 있고, 뒷벽 또한 구분할 수 있다.

[Fig. 9]

Depth histogram data: Box layers can be clearly separated by using depth histogram

3.5 상자 하차 계획

실제 간선 화물트럭에는 다양한 종류의 박스가 쌓여 있지만, 본 논문에서는 개발 초기 단계로 한 종류의 박스가 쌓여있는 상황을 우선 해결하고자 한다. 개발된 컨베이어 장치는 상하 이동보다 좌우 이동이 다소 적은 에너지를 소모하고 속도도 빠르기 때문에 한 종류의 박스가 균일하게 쌓여 있을 때는 ‘ㄹ’자 형태로 움직이는 것이 최적의 이동 경로이다. 이러한 경로는 간단하지만 실제 상자 인식 결과에서 얻을 수 있는 데이터는 [Fig. 10]과 같이 ID와 위치가 정렬이 안 되어 있기 때문에 이를 구현하기 위해서는 다음과 같은 절차가 필요하다.

[Fig. 10]

Result of unloading path planning in the first box layer: The red circle denotes the center location of a box, the red line shows optimal unloading path

  • 1. 상자들 중에 가장 밑에 있는 상자{a}를 찾는다.
  • 2. {a}와 비슷한 높이에 있는 상자들{b}을 모두 찾는다.
  • 3. {b}중 순번이 없는 가장 왼쪽 상자를 찾아서 순번을 1씩 증가시켜서 할당한다. ({b}에 순번이 없는 상자가 없을 때 까지 반복)
  • 4. {b}중에서 가장 마지막에 순번을 할당 받은 상자를 기준으로 아직 순번이 할당되지 않은 상자들 중에 가장 가까운 상자{c}를 찾는다.
  • 5. {c}와 비슷한 높이에 있는 상자들{d}을 모두 찾는다.
  • 6. {d}중에서 순번이 없는 가장 오른쪽 상자를 찾아서 순번을 1씩 증가시켜서 할당한다. ({d}에 순번이 없는 상자가 없을 때 까지 반복)
  • 7. {d}중에서 가장 마지막에 순번을 할당 받은 상자를 기준으로 아직 순번이 할당되지 않은 상자들 중에 가장 가까운 상자를 찾는다.
  • 8. 모든 상자가 순번이 할당 될 때까지 2~7 반복수행.
  • 9. 하차 순서는 상자의 순번을 역순으로 정함.

따라서 위의 방법을 이용하면 [Fig. 10]과 같이 ‘ㄹ’자의 형태를 갖는 최적의 경로가 생성된다.


4. 실 험

본 논문에서 소개하고 제안한 상자 하차 로봇 시스템과 알고리즘을 검증하기 위해 실제 간선화물 트럭의 적재공간과 비슷한 크기의 테스트 베드를 만들어서 우체국 4호(410 x 310 x 280 mm) 상자로 하차 실험을 수행하였다. 그리고 상자들의 무게는 1~20 kg으로 다양한 무게로 설치하였다. [Fig. 11]은 상자 하차 로봇 시스템의 실험 장면을 보여주고 있다. 상자를 꺼내기 전에 컨베이어를 바닥까지 내린 후 [Fig. 11(a)]와 같이 상자의 적재 상황을 인식하게 된다. 현재 개발된 시스템은 평균 11 ms/frame 의 검출 속도가 나오기 때문에 거의 실시간으로 처리가 가능한 상태이며, 상자의 중심 위치 측정 정밀도는 ±30 mm 이내이다. 적재 상황 인식 후 하차계획이 완료되면 [Fig. 11(b)]와 같이 컨베이어가 꺼내고자 하는 상자의 하단에서 50 mm 아래의 지점으로 이동한다. 그리고 [Fig. 11(c)]와 같이 로봇팔을 상자의 중심으로 이동 시킨 후 공압 흡입기를 이용하여 [Fig. 11(d)]와 같이 상자를 꺼내서 컨베이어 올려놓고 [Fig. 11(e)]와 같이 상자가 컨베이어로 지나갈 수 있도록 로봇팔을 피해야 한다. 이러한 절차들을 반복하면서 하차 계획 순서에 따라 상자를 꺼내면 [Fig. 11(i)]와 같이 가장 가까운 면에 있는 모든 상자를 꺼낼 수 있게 된다. 이후 다시 [Fig. 11(a)]부터 반복하게 되면 트럭에 실려 있는 모든 상자를 꺼낼 수 있게 되는 것이다. 현재 이 시스템은 1~10 kg의 상자 한 개를 꺼내는데 평균적으로 약 8초의 시간이 소요되는데, 최전면의 전체 상자를 꺼낼 때 시간당 600개의 상자를 꺼낼 수 있는 속도로 사람 한 명의 약 80%정도의 수준이다. 또한, 상자가 약간 비스듬하게 있더라도 로봇팔의 공기 흡입기 부분이 상자를 조금씩 밀면서 흡착을 시도하고 흡착에 실패하면 조금 더 상자를 밀어서 다시 시도하기 때문에 약간의 변수들은 대처가 가능하다는 것을 알 수 있었다.

[Fig. 11]

Experiment of the unloading automation system: (a) the box loading situation recognition stage, (b) conveyer moving to the first box, (c) robotic arm moving to the first box, (d) unloading the first box, (e) robotic arm avoiding the box path, (f) unloading the first box in the second row, (g) unloading the first box in the third row, (h) unloading the first box in the last row, (i) unloading the last box in the first layer


5. 결 론

본 논문에서는 개발된 간선 화물 하차 자동화 시스템과 이 시스템에 적용된 RGB-D 센서 기반 박스 적재 상황 인식 방법 및 하차 계획을 소개하였다. 우선 컨베이어를 하차 할 상자의 위치로 이동시키기 위해 기구학적 해석을 수행하였고, 상자를 꺼내는 로봇팔을 제어하기 위한 기구학적 해석도 수행하였다. 그리고 박스 적재 상황 인식을 위하여 실시간으로 RGB 이미지의 객체를 인식할 수 있는 CNN 기반 YOLO를 적용하여 상자를 인식함과 동시에 위치를 찾았다. 깊이 영상으로 상자 중심의 법선 벡터를 구하여 정면에 해당하는 수직면을 추출함으로써 상자의 오인식을 줄이고, 영상에서 트럭의 내부 벽도 제거되었다. 그리고 인식된 상자의 깊이 정보를 이용하여 거리에 따라 상자의 적재 면을 분류하는 방법을 제안하였다. 마지막으로 가장 가까운 면에 있는 상자의 좌표 정보를 사용하여 상자를 가장 빨리 꺼낼 수 있는 최적의 경로를 생성하는 방법을 소개하였다.

개발된 시스템과 알고리즘의 유효성은 테스트베드를 통해 증명하였지만, 모두 동일한 상자를 대상으로 실험하였기 때문에 실제 현장에 적용하기 위해서는 다양한 상자가 다양한 상태로 적재되어 있는 경우도 해결하여야 할 것이다. 실제 물류 현장에서 다양한 크기와 모양을 지니는 상자의 학습데이터를 대량으로 획득하여 구축한다면 다양한 상자를 인식하는 문제는 대부분 해결 될 것으로 생각된다. 그리고 다양한 상자들이 적재되어 있을 때 하차계획은 현재 심층강화학습을 통해서 해결하고자 연구 중에 있다. 또한, 현재 로봇팔의 설계 문제로 구동 관절의 속도가 50%로 제한되어 있지만 설계 개선을 통하여 사람과 비슷한 수준의 상자 하차 자동화 시스템을 개발하고자 한다.

Acknowledgments

This work was supported by Korea Evaluation Institute of Industrial Technology (KEIT) grant funded by the Korea government (MSIT) (No.20015420, Development of stacker robot technology for standard pallet rack system having high degree of logistics stacking)

References

  • A. Urru, M. Bonini, T. Burbach, E. Hong, P. Stein, and W. Echelmeyer, “Autonomous unloading of heavy deformable goods: Market opportunities,” 2015 IEEE International Conference on Service Operations And Logistics, And Informatics (SOLI), Yasmine Hammamet, Tunisia, pp. 54-59, 2015. [https://doi.org/10.1109/SOLI.2015.7367411]
  • D. Shen, J. Hu, T. Zhai, T. Wang, and Z. Zhang, “Parallel loading and unloading: smart technology towards intelligent logistics,” 2019 IEEE International Conference on Systems, Man and Cybernetics (SMC), Bari, Italy, pp. 847-851, 2019. [https://doi.org/10.1109/SMC.2019.8913852]
  • W. Echelmeyer, A. Kirchheim, and E. Wellbrock, “Robotics-logistics: Challenges for automation of logistic processes,” 2008 IEEE International Conference on Automation and Logistics, Qingdao, China, pp. 2099-2103, 2008. [https://doi.org/10.1109/ICAL.2008.4636510]
  • G. Q. Huang, M. Z. Q. Chen, and J. Pan, “Robotics in ecommerce logistics,” HKIE transactions, vol. 22, no. 2, pp. 68-77, 2015. [https://doi.org/10.1080/1023697X.2015.1043960]
  • A. Shahmardan and M. S. Sajadieh, “Truck scheduling in a multi-door cross-docking center with partial unloading - Reinforcement learningbased simulated annealing approaches,” Computers & Industrial Engineering, vol. 139, pp. 1-18, 2020. [https://doi.org/10.1016/j.cie.2019.106134]
  • T. Stoyanov, N. Vaskevicius, C. A. Mueller, T. Fomm, R. Krug, V. Tinicani, R. Mojtahedzadeh, S. Kunaschk, R. M. Ernits, D. R. Canelhas, M. Bonilla, S. Schwertfeger, M. Bonini, H. Halfar, K. Pathak, M. Rohde, G. Fantoni, A. Bicchi, A. Birk, A. J. Lilienthal, and W. Echelmeyer “No more heavy lifting: robotic solutions to the container unloading problem,” IEEE Robotics & Automation Magazine, vol. 23, no. 4, pp. 94-106, 2016. [https://doi.org/10.1109/MRA.2016.2535098]
  • P. Doliotis, C. D. McMurrough, A. Criswell, M. B. Middleton, and S. T. Rajan “A 3D perception-based robotic manipulation system for automated truck unloading,” 2016 IEEE International Conference on Automation Science and Engineering (CASE), Fort Worth, TX, USA, pp. 262-267, 2016. [https://doi.org/10.1109/COASE.2016.7743416]
  • J.-U. Won, M.-H. Park, S.-W. Park, J.-H. Cho, and Y.-T. Kim, “Deep learning based cargo recognition algorithm for automatic cargo unloading system,” Journal of Korean Institute of Intelligent Systems, vol. 29, no. 6, pp. 430-436, 2019. [https://doi.org/10.5391/JKIIS.2019.29.6.430]
  • F. Islam, A. V. Vemula, S.-K. Kim, A. Dornbush, O. Salzman, and M. Likhachev, “Planning, learning and reasoning framework for robot truck unloading,” 2020 IEEE International Conference on Robotics and Automation (ICRA), Paris, France, pp. 5011-5017, 2020. [https://doi.org/10.1109/ICRA40945.2020.9196604]
  • R. Mojtahedzadeh, A. Bouguerra, and A. J. Lilienthal, “Automatic relational scene representation for safe robotic manipulation tasks,” 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems, Tokyo, Japan, pp. 1335-1340, 2013. [https://doi.org/10.1109/IROS.2013.6696522]
  • 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]
정 의 정

2006 한양대학교 전자컴퓨터공학부(학사)

2008 한양대학교 전기전자제어계측학과(석사)

2013 한양대학교 전기전자제어계측학과(박사)

2014~2015 Carnegie Mellon University, The Robotics Institute, Postdoctoral Fellow

2015~현재 한국로봇융합연구원 책임연구원

관심분야: 모바일 로봇, 자율주행, 로봇 기구학, 객체 인식

박 성 호

2010 영남대학교 전자공학과(학사)

2010~현재 한국로봇융합연구원 선임연구원

관심분야: 회로설계, 임베디드 시스템, 로봇 메커니즘

강 진 규

2016 동국대학교 전자전기공학과(학사)

2021 동국대학교 전자전기공학과(박사)

2020~현재 한국로봇융합연구원 선임연구원

관심분야: 컴퓨터 비전, 머신러닝, 딥러닝

손 소 은

2013 부산대학교 항공우주공학과(학사)

2015 부산대학교 항공우주공학과(석사)

2015~2018 국방과학연구소 연구원

2018~현재 한국로봇융합연구원 주임연구원

관심분야: FEM. 구조해석, 로봇플랫폼설계, 최적설계

조 건 래

2001 KAIST 기계공학과(학사)

2003 KAIST 기계공학과(석사)

2010 KAIST 기계공학과(박사)

2010~2016 삼성중공업 책임연구원

2016~현재 한국로봇융합연구원 수석연구원

관심분야: 수중로봇, 물류로봇, 강인제어, 매니퓰레이션

이 영 호

2006 동아대학교 전자공학과(학사)

2008 성균관대학교 전자전기컴퓨터공학과(석사)

2014 성균관대학교 전자전기컴퓨터공학과(박사)

2019 한화/기계(현 한화모멘텀) 선임연구원

2019~현재 현대무벡스 책임연구원

관심분야: AGV, LGV, AMR, 물류로봇

[Fig. 1]

[Fig. 1]
Real environment of trunk cargo box unloading: (a) A situation in which various types of boxes are stacked inside the cargo truck, (b) Scene with workers taking out boxes from trucks

[Fig. 2]

[Fig. 2]
Single-arm robotic unloading system: consist of a conveyer with tilt and swivel joints, one 3-DOF robot arm, and RGB-D camera system

[Fig. 3]

[Fig. 3]
Kinematic diagram of the box unloading conveyer: this system has 3-DOFs which consist of two active prismatic joints (d1, d3), one active revolute joint (θ2), and two passive revolute joints (ϕ3, ϕ4)

[Fig. 4]

[Fig. 4]
Kinematic diagram of the conveyer lifting system: The input is prismatic joint (d3) and the output is revolute joint (θ3)

[Fig. 5]

[Fig. 5]
Kinematic diagram of the robotic arm: 3-DOF SCARA robot (Horizontal articulated robot) with leveling device

[Fig. 6]

[Fig. 6]
Overall flowchart of the proposed box detection algorithms: From the RGB image to box unloading plan

[Fig. 7]

[Fig. 7]
Result of box detection: the green squares denote the size and the location of detected boxes

[Fig. 8]

[Fig. 8]
Inner wall filtering process: (a) raw RGB image, (b) raw depth image, (c) normal vector angle image, (d) result of inner wall filtering

[Fig. 9]

[Fig. 9]
Depth histogram data: Box layers can be clearly separated by using depth histogram

[Fig. 10]

[Fig. 10]
Result of unloading path planning in the first box layer: The red circle denotes the center location of a box, the red line shows optimal unloading path

[Fig. 11]

[Fig. 11]
Experiment of the unloading automation system: (a) the box loading situation recognition stage, (b) conveyer moving to the first box, (c) robotic arm moving to the first box, (d) unloading the first box, (e) robotic arm avoiding the box path, (f) unloading the first box in the second row, (g) unloading the first box in the third row, (h) unloading the first box in the last row, (i) unloading the last box in the first layer