Archive

Journal of Korea Robotics Society - Vol. 16 , No. 3

[ ARTICLE ]
The Journal of Korea Robotics Society - Vol. 16, No. 3, pp. 260-269
Abbreviation: J. Korea Robot. Soc.
ISSN: 1975-6291 (Print) 2287-3961 (Online)
Print publication date 31 Aug 2021
Received 23 Mar 2021 Revised 04 May 2021 Accepted 19 May 2021
DOI: https://doi.org/10.7746/jkros.2021.16.3.260

휴머노이드 로봇 HUMIC 개발 및 Gazebo 시뮬레이터를 이용한 강화학습 기반 로봇 행동 지능 연구
김영기1 ; 한지형

Development of Humanoid Robot HUMIC and Reinforcement Learning-based Robot Behavior Intelligence using Gazebo Simulator
Young-Gi Kim1 ; Ji-Hyeong Han
1Master’s Degree Student, Dept. of Computer Science and Engineering, Seoul National University of Science and Technology, Seoul, Korea (kyg1552@seoultech.ac.kr)
Correspondence to : Assistant Professor, Corresponding author: Dept. of Computer Science and Engineering, Seoul National University of Science and Technology, Seoul, Korea (jhhan@seoultech.ac.kr)


CopyrightⓒKROS
Funding Information ▼

Abstract

To verify performance or conduct experiments using actual robots, a lot of costs are needed such as robot hardware, experimental space, and time. Therefore, a simulation environment is an essential tool in robotics research. In this paper, we develop the HUMIC simulator using ROS and Gazebo. HUMIC is a humanoid robot, which is developed by HCIR Lab., for human-robot interaction and an upper body of HUMIC is similar to humans with a head, body, waist, arms, and hands. The Gazebo is an open-source three-dimensional robot simulator that provides the ability to simulate robots accurately and efficiently along with simulated indoor and outdoor environments. We develop a GUI for users to easily simulate and manipulate the HUMIC simulator. Moreover, we open the developed HUMIC simulator and GUI for other robotics researchers to use. We test the developed HUMIC simulator for object detection and reinforcement learning-based navigation tasks successfully. As a further study, we plan to develop robot behavior intelligence based on reinforcement learning algorithms using the developed simulator, and then apply it to the real robot.


Keywords: Robot Simulator, Intelligent Humanoid Robot, ROS, Gazebo, Reinforcement Learning

1. 서 론

최근 인공지능 연구가 활발히 이뤄짐에 따라 기존의 로봇 연구 접근 방식인 규칙 기반 시스템(Rule-based system)을 넘어서는 새로운 로봇 행동 지능 연구가 이루어지고 있다. 규칙 기반 시스템은 특정 도메인(Domain) 혹은 작업(Task)을 위해서 로봇의 작업 환경(Environment)에 대한 정보를 수집, 분석하여 로봇의 행동 알고리즘을 구현, 적용하기 때문에 로봇의 작업 환경이 변하면 새로운 환경에 맞는 알고리즘을 다시 구현해야 하는 한계가 있다. 때문에 최근에는 로봇이 주변 환경으로부터 관찰할 수 있는 상태(State)에서 보상(Reward)을 최대로 할 수 있는 행동(Action)을 선택하는 강화학습을 적용하여 로봇의 행동 지능을 학습하는 연구가 이뤄지고 있다[1,2]. 강화학습은 시행착오(Trial-and-error)를 통해 학습을 하기 때문에 실 세계의 로봇 하드웨어를 이용해 강화학습을 적용하는 것은 많은 제약이 따른다. 따라서 Gazebo, MuJoCo와 같은 시뮬레이션 환경에서 로봇에 강화학습을 적용하여 로봇 행동을 학습하고 실 세계 로봇에 적용하는 Sim2Real에 대한 연구도 이뤄지고 있다[3-5].

Gazebo는 오픈소스 기반의 3차원 로봇 시뮬레이터로, 로봇을 정확하고 효율적으로 시뮬레이션 할 수 있는 기능과 실·내외 환경을 제공한다[6]. 물체의 질량, 마찰, 밀도, 형태 등과 환경의 빛, 중력, 맵 등 시뮬레이션 환경을 실험 상황에 맞게 구체적으로 설정할 수 있어서 실제 환경과 유사한 실·내외 환경 설정이 가능하다. 따라서, 자율주행, pick and place, push and pull, knock, carry 등 다양한 로봇 작업을 Gazebo 환경에서 수행할 수 있다. 또한, 로봇과 관련된 다양한 센서 및 액추에이터들도 플러그인(Plugin)형태로 제공하고 있어 간편하게 사용이 가능하고, 센서와 엑추에이터의 사양(Specification)도 필요에 따라 수정하여 사용할 수 있다.

Robot Operating System (ROS)는 로봇용 오픈 소스 기반의 메타 운영체제이며, 이기종 하드웨어 간의 데이터 송수신, 스케줄링, 에러 처리 등의 소프트웨어 프레임워크와 각종 드라이버, 라이브러리, 개발 도구를 제공한다. ROS는 Gazebo와 호환성이 좋고, ROS를 활용하여 다양한 로봇 구동 및 로봇 지능 알고리즘을 Gazebo에서 시뮬레이션 할 수 있다[7,8].

본 논문에서는 Adult-sized 휴머노이드형 로봇 HUMIC과 HUMIC의 Gazebo 시뮬레이터를 개발하고, 시뮬레이터를 이용한 강화학습 기반 간단한 로봇 행동지능을 학습한다. HUMIC의 이름은 Human과 Mimic의 합성어로 Human-Robot Interaction (HRI) 및 Collaboration (HRC) 연구를 위해 제작한 휴머노이드형 로봇이기 때문에 사람을 모방하는 로봇 행동지능 개발의 의미를 함축하고 있다. Adult-sized 휴머노이드 로봇은 실 세계의 로봇을 이용해 성능을 검증하거나 실험을 하기 위해서는 로봇 하드웨어 뿐만 아니라 실험 공간의 구축과 많은 실험 시간 등이 필요하다. 따라서 본 논문에서는 HUMIC의 시뮬레이션 및 Sim2Real 연구를 위해 ROS와 Gazebo 시뮬레이터를 이용하여 로봇을 모델링하고 시뮬레이션 테스트를 하였다. 또한, 개발한 HUMIC 시뮬레이터를 공개하여 다양한 로봇 연구자들이 활용할 수 있도록 하였다.

본 논문의 구성은 다음과 같다. 2장에서는 기존에 개발된 다양한 휴머노이드형 로봇 및 시뮬레이터에 대해 소개하고, 본 논문에서 개발한 HUMIC 및 시뮬레이터와 비교 분석한다. 3장에서는 본 논문에서 개발한 휴머노이드형 로봇 HUMIC의 디자인과 하드웨어 사양에 대해서 자세히 기술한다. 4장에서는 로봇 시뮬레이션을 위한 모델링과 시뮬레이션 구성에 대해서 기술한다. 마지막으로 5장과 6장에서는 시뮬레이션 환경에서의 강화학습 기반 로봇 구동 실험과 결론을 기술한다.


2. 기존 휴머노이드형 로봇 및 시뮬레이터 관련 연구

휴머노이드형 로봇은 사람과 유사하게 머리, 몸, 팔, 다리 구조를 가지고 있는 형태의 로봇으로 크기와 무게에 따라 adult-sized와 child-sized로 분류한다. 그리고 동작 방식에 따라 2족 보행(Bipedal)과 바퀴 구동(Wheeled)으로도 분류한다. Bipedal 휴머노이드형 로봇은 사람과 같이 걷기, 달리기, 계단 오르기 등이 가능하기 때문에 다양한 환경에 적응이 가능하지만 환경에 맞는 움직임에 대한 안정적인 제어 및 디자인의 어려움이 있다.

반면에 Wheeled 휴머노이드형 로봇은 사용 환경이 제한되지만 2족 보행에 비해 안정적이고, 제어가 쉽다는 장점이 있다[9].

[Table 1]은 휴머노이드형 로봇을 크기에 따라 정리하고 각 휴머노이드형 로봇의 특징을 비교 분석하였다. Adult-sized 휴머노이드형 로봇은 big-sized, life-sized, full-sized, large-sized, human-sized로도 부르며, 크기가 크고 무거운 로봇을 말한다. 때문에 하드웨어 개발 및 테스트 비용과 공간이 많이 필요하다. 이에 속하는 Bipedal 로봇으로는 NimbRo-OP2X, DRC-HUBO+, ATLAS, BHR-5, HRP-4C, LOLA, WABIAN-2, ASIMO가 있다. NimbRo-OP2X는 높이 1.35 m, 무게 19 kg, 34자유도를 가지며, 각 파츠를 3D 프린팅이 가능한 오픈소스 플랫폼으로 ROS기반 오픈소스 및 Gazebo 시뮬레이터 모델을 제공한다[10]. 3D 프린팅을 이용해 경량화하고 개발 비용을 줄였고, RoboCup2018에서 좋은 성능을 보여주었다. DRC-HUBO+는 KAIST에서 Defense Advanced Research Projects Robotics Challenge (DRC)에 참여하기 위해 개발한 휴머노이드 로봇으로 ROS 기반 오픈소스 및 Gazebo 시뮬레이터 모델을 제공하며, 높이 1.7 m, 무게 80 kg, 32자유도를 가진다[11,12]. 두 다리의 무릎에 바퀴가 부착되어 있어서 무릎을 꿇으면 Wheeled mode로 전환이 가능하다. ATLAS 또한 DRC에 참여하기 위해 Boston Dynamics에서 개발한 휴머노이드 로봇으로 ROS기반 Gazebo 시뮬레이터 모델을 제공한다[13]. ATLAS는 높이 1.5 m, 무게 80 kg, 28자유도를 가지며, 최근 달리기, 점프, 백플립을 하는 영상을 공개하여 발전된 휴머노이드 로봇의 모습을 보여주었다. BHR-5는 높이 1.62 m, 무게 65 kg, 30자유도를 가지며, 탁구가 가능하도록 제어 시스템을 설계했다[14]. HRP-4C는 높이 1.58 m, 무게 43 kg, 42자유도를 가지며, 일본의 젊은 성인 여성을 모티브로 제작되었다[15]. LOLA는 높이 1.8 m, 무게 55 kg, 25자유도를 가지며, 걸음 속도를 높이기 위한 디자인을 제안하였다[16]. WABIAN-2는 높이 1.53 m, 무게 64.5 kg, 32자유도를 가진다[17]. ASIMO는 높이 1.2 m, 무게 52 kg, 26자유도를 가진다[18]. REEM은 PAL Robotics에서 쇼핑몰, 병원, 박물관과 같은 실내 환경에서 서비스를 제공하는 것을 목적으로 개발하였으며, 높이 1.7 m, 무게 90 kg, 26자유도를 가지며, 차동구동 방식의 모바일 플랫폼을 사용하였다[19]. PR2는 Willow Garage에서 개발한 Personal Robot으로 ROS기반 오픈소스 및 Gazebo 시뮬레이터 모델을 제공한다[20]. PR2는 몸통에 lifting 장치가 있어서 높이를 1.34 m에서 1.65 m까지 조절이 가능하고, 무게 226.8 kg, 20자유도를 가지며, 4개의 바퀴를 사용하여 구동한다. 4개의 바퀴의 방향을 전환할 수 있는 회전 조인트가 있다. AMIGO는 RoboCup2014에 참여하기 위해 개발된 로봇으로 lifting 장치가 있어서 높이를 1 m에서 1.35 m까지 조절 가능하고, 무게 80 kg, 15자유도를 가진다[21]. AMIGO는 4개의 옴니휠을 사용하여 바퀴의 방향 전환없이 수평이동이 가능하지만 문턱 같은 장애물을 잘 넘지 못하는 단점이 있다. Rollin’ Justin은 HRI 연구를 위해 개발되었고, 높이 1.91 m, 무게 200 kg, 43자유도를 가지며, 허리에 회전 모터가 있어서 허리를 숙이는 동작을 할 수 있다[22]. 4개의 바퀴로 구동하며, 각각의 바퀴에 다리가 부착되어 있어 길이 확장이 가능하고, 각 바퀴는 방향 전환이 가능하다.

[Table 1] 
Humanoid robots classified into two sizes
Size Name Bipedal Wheeled Arm/Fingers ROS Simulation Height (m) Weight (kg)
Adult HUMIC - O 2 Arms/ 5(9DOF) O Gazebo 1.1 ~ 1.6 98
NimbRo-OP2X[10] O - 2 Arms/- O Gazebo 1.35 19
DRC-HUBO+[11] O O 2 Arms/ 3(1DOF) O Gazebo 1.7 80
ATLAS[13] O - 2 Arms/ 3(1DOF) O Gazebo 1.5 80
BHR-5[14] O - 2 Arms/- - - 1.62 65
HRP-4C[15] O - 2 Arms/ 5(2DOF) O - 1.58 43
LOLA[16] O - 2 Arms/- - - 1.8 55
WABIAN-2[17] O - 2 Arms/ 5(3DOF) - - 1.53 64.5
ASIMO[18] O - 2 Arms/5(1DOF) - - 1.3 48
REEM[19] - O 2 Arms/ 3(3DOF) O Gazebo 1.7 90
PR2[20] - O 2 Arms/ 2(1DOF) O Gazebo 1.34 ~ 1.65 226.8
AMIGO[21] - O 2 Arms/ 2(1DOF) O Gazebo 1.0 ~ 1.35 80
Rollin’ Justin[22] - O 2 Arms/ 4(12DOF) - - 1.91 200
Child Surena-Mini[23] O - 2 Arms/- - - 0.5 3.4
Poppy[24] O - 2 Arms/- O V-REP 0.84 3.5
DARWin-OP[25] O - 2 Arms/- O Gazebo, Webots 0.45 2.8
iCub[26] O - 2 Arms/ 5(9DOF) O Gazebo 1.0 22
NAO[27] O - 2 Arms/ 3(8DOF) O Gazebo, Webots 0.57 4.5
Robovie[28] - O 2 Arms/- - - 1.2 40

Child-sized 휴머노이드형 로봇은 small-sized, kid-sized, teen-sized로도 부르며, 크기가 작고, 가벼운 로봇을 말한다. 때문에 하드웨어 개발 및 테스트 비용과 공간이 적게 필요하다. 이에 속하는 Bipedal 로봇으로는 Surena-Mini, Poppy, DARWin-OP, iCub, NAO가 있다. Surena-Mini는 높이 0.53 m, 무게 3.3 kg, 23자유도(Degrees of freedom)를 가지며, 각 파츠를 3D 프린팅하여 경량화하고, 개발 비용을 줄였다[23]. Poppy는 높이 0.84 m, 무게 3.5 kg, 25자유도를 가지며, 3D 프린팅이 가능한 교육용 오픈소스 휴머노이드 로봇 플랫폼으로 ROS기반 오픈소스 및 V-REP 시뮬레이터 모델을 제공한다[24]. DARWin-OP는 높이 0.45 m, 무게 2.8 kg, 20자유도를 가지며, 연구 및 교육용 플랫폼으로 ROS기반 오픈소스 및 Gazebo와 Webots 시뮬레이터 모델을 제공한다[25]. iCub은 높이 1 m, 무게 22 kg, 53자유도를 가지며, 4~5세 아이의 크기의 연구용 오픈 플랫폼으로 ROS 및 YARP기반 오픈소스와 Gazebo 시뮬레이터 모델을 제공한다[26]. NAO는 높이 0.57 m, 무게 4.5 kg, 25자유도를 가지며, 연구 및 교육용 플랫폼으로 ROS기반 오픈소스 및 Gazebo와 Webots 시뮬레이터 모델을 제공한다[27]. Wheeled 로봇은 Robovie이 있다. Robovie는 높이 1.2 m, 무게 40 kg, 15자유도를 가지며, 2개의 바퀴로 구동하는 차동구동(Differential-drive)방식의 모바일 플랫폼을 사용하였다[28]. 차동구동은 두 개의 바퀴의 속도 및 회전방향을 제어하여 전진, 후진, 회전이 가능하고, 구조가 단순하기 때문에 제어가 간단하다는 장점이 있어서 모바일 로봇에 많이 사용된다.

본 논문에서 개발한 HUMIC은 adult-sized & wheeled 휴머노이드형 로봇으로 HRI 연구를 목적으로 한다. 따라서, 효율적인 HRI 연구를 위하여 HUMIC은 제어가 어려운 bipedal 타입이 아닌 전방향 이동이 자유롭고, 옴니휠 보다 마찰이 높으며 문턱 같은 장애물을 잘 넘을 수 있도록 4륜 메카넘 휠(Mecanum Wheel)을 사용하여 로봇의 이동성 및 안정성이 높은 장점이 있다. 또한, HRI 연구를 목적으로 하는 만큼 로봇의 상체 높이를 1.1 m에서 1.6 m까지 조절할 수 있는 lift column을 사용하여, 어린 아이부터 성인까지 눈높이를 맞출 수 있도록 하고, 다양한 조작이 가능하도록 양팔과 5개의 손가락을 가지는 양손을 제작한 것에 기존 휴머노이드형 로봇과의 차별성이 있다. 마지막으로, ROS와 Gazebo 기반의 시뮬레이터를 개발 및 공개하여 다른 로봇 연구자들이 실제 로봇을 개발하지 않아도 손쉽게 다양한 로봇 지능 연구에 활용할 수 있도록 하였다. HUMIC과 비슷하게 양팔과 양손이 있고, 높이 조절이 가능한 adult-sized & wheeled 휴머노이드형 로봇으로는 Rollin’ Justin이 있으나, 시뮬레이터 공개가 되어있지 않은 한계가 있다.


3. HUMIC 하드웨어

제작된 HUMIC의 실제 모습은 [Fig. 1]과 같으며, 사람과 유사하게 머리, 몸통, 허리, 팔, 손을 가지고 있는 구조로 되어있다. [Table 2]은 로봇의 전체 제원을 기술한다. 로봇의 전체 무게는 약 98 kg이다. Lift column은 최대 1.6 m에서 최소 1.1 m까지 로봇 상체의 높이를 조절할 수 있어서 사용자의 눈높이에 맞게 조절이 가능하다.


[Fig. 1] 
Humanoid robot HUMIC

[Table 2] 
Robot hardware specification
Height Maximum 1.60 m
Minimum 1.10 m
Weight 98 kg
Head Pitch H54-100-S500-R
Yaw H42-20-S300-R
Camera Kinect V2
Torso Micro Controller Unit OpenCR 1.0
Vision Processor Nvidia Xavier
DCDC converter PCB type SP1018 x4
USB hub IpTIME UH 305
Router IpTIME A7004M
Display Lap1503
Arm Robotis Manipulator-H(6 DoF) x2
Hand OpenBionics Brunel V2(9 DoF) x2
Mobile Platform Programmable Mecanum Wheel Vectoring Robot - IG52DB
Micro Controller Unit Arduino Mega 2560 x2
DCAC converter A302-600-F3
DCDC converter PCB type SP1018
Lift Column STC500700
Motor Driver SZH-GNP521
Sensors HC-SR04P x4
Battery Lithium-ion LIP2467SP(24V 67Ah)

머리 부분은 Pitch, Yaw로 움직일 수 있도록 2개의 다이나믹셀(Dynamixel)이 있고, 머리 부분에 Kinect V2 카메라가 부착되어 있다. 몸통 내부에 비전 프로세서(Vision Processor)로 Nvidia Xavier가 부착되어 있고 머리와 팔의 다이나믹셀을 제어하기 위한 제어기(Controller)로 OpenCR1.0이 부착되어 있다. 로봇 팔은 로보티즈 사의 Manipulator-H를 사용하였으며, 6자유도를 가진다. 양팔에 각각 9자유도로 손가락을 움직일 수 있는 로봇 손이 부착되어 있다. 모바일 플랫폼의 최대 속도는 0.8m/s, 최대 가속도는 5.6 m/s2, 최대 감속도는 3.2 m/s2이다.


4. Gazebo 기반 시뮬레이터
4.1 HUMIC 로봇 모델링

[Fig. 2]은 Gazebo 환경에서의 로봇 모습이며, Unified Robot Description Format (URDF)으로 모델링하였다[29]. URDF는 XML 형식으로 작성하며 로봇에 대한 전체적인 정보를 기술할 수 있다. URDF 구성요소 구조는 [Fig. 3]와 같다. HUMIC과 관련된 전체 파일 내용은 오픈소스로 공개하였으며, 다음 깃허브에서 확인할 수 있다.


[Fig. 2] 
HUMIC in Gazebo


[Fig. 3] 
URDF elements structure

URDF에는 <link> ~ </link> tag와 <joint> ~ </joint> tag를 이용해 로봇 모델링 정보를 기술한다. <link> ~ </link> tag에는 링크에 대한 정보를 기술할 수 있으며, <visual> ~ </visual> tag, <collision> ~ </collision> tag, <inertial> ~ </inertial> tag로 구성된다. <visual> ~ </visual> tag에는 로봇 외형에 대한 정보를 기술할 수 있는데, mesh 파일을 외형으로 사용하거나 box, cylinder, sphere와 같은 도형을 외형으로 사용할 수 있다. 본 논문에서는 로봇의 외형을 사실적으로 표현하기 위해서 STereoLithography (STL)파일을 사용하였다[30].

<inertial> ~ </inertial> tag에는 링크의 mass (kg)와 inertia를 기술할 수 있고, <collision> ~ </collision> tag에는 링크의 충돌 정보를 visual처럼 mesh, box, cylinder, sphere을 사용하여 표현할 수 있다.

<joint> ~ </joint> tag에는 joint type, parent joint와 child joint, axis 등을 기술할 수 있다. Joint type은 fixed, revolute, continuous, prismatic 4가지 type이 있다.

본 논문에서 사용한 joint type은 다음과 같다.

  • • Continuous: Mecanum Wheels
  • • Prismatic: Lift Column
  • • Revolute: Arms, Finger#, Thumb, Neck, Head
  •   - #: 1~8 (Number of fingers)
  •   - Arms: Left, Right
  •   - Shoulder
  •   - UpperArm
  •   - Elbow
  •   - ForeArm
  •   - LowerArm
  •   - Wrist
  • • Fixed: else

각 조인트의 동작 범위(radian)는 다음과 같다.

  • • Lift Column Joint: 0 ~ 0.50
  • • Neck Joint: -1.57 ~ 1.57
  • • Head Joint: -1.57 ~ 1.57
  • • Shoulder Joints: -3.14 ~ 3.14
  • • UpperArm Joints: -1.57 ~ 1.57
  • • Elbow Joints: -0.785 ~ 1.57
  • • ForeArm Joints: -3.14 ~ 3.14
  • • LowerArm Joints: -1.57 ~ 1.57
  • • Wrist Joints: -3.14 ~ 3.14
  • • Finger# Joints: 0 ~ 1.57
  • • Thumb Joints: 0 ~ 0.785

또한, URDF에는 <gazebo> ~ </gazebo> tag를 이용해 Gazebo 환경에 불러올 로봇 모델의 링크들의 마찰 계수(), self-collide, material 등의 세부 정보와 센서, 액추에이터, 컨트롤러 등의 플러그인 정보를 기술할 수 있다.

4.2 HUMIC Gazebo 시뮬레이터 파일 시스템 구조

HUMIC의 Gazebo 시뮬레이터 관련 파일 시스템 구조는 다음과 같다.

  • • humic_description
  •   - urdf
  •   - meshes

humic_description 디렉토리는 urdf 디렉토리와 meshes 디렉토리로 구성되어 있으며, urdf 디렉토리에는 로봇 모델링 정보와 Gazebo 환경에서 사용할 플러그인, 액추에이터, 컨트롤러 정보를 기술한 xacro 파일들이 있다. meshes 디렉토리에는 로봇의 외형을 표현할 STL 파일들이 있다.

  • • humic_gazebo
  •   - config
  •   - worlds
  •   - models
  •   - launch

humic_gazebo 디렉토리에는 config, launch, models, worlds 디렉토리로 구성되어 있으며, config 디렉토리에는 로봇 액추에이터들의 컨트롤러 정보를 기술한 YAML 파일이 있다[31]. worlds 디렉토리에는 Gazebo 실행 시 설정할 Gazebo 환경에 대한 정보를 담고 있는 world 파일이 있고, world 파일에는 Gazebo 실행 시 불러올 object model들에 대한 정보를 함께 기술할 수 있다. models 디렉토리에는 Gazebo 환경에서 사용할 model 파일들을 담고 있다. launch 디렉토리에는 roslaunch 명령어로 실행할 수 있는 launch 파일이 있으며, launch 파일에는 urdf, world, controller 등의 Gazebo 환경에 불러올 파일과 정보들을 기술할 수 있으며, launch 파일 실행 시 launch 파일 안에 기술된 모든 내용들이 동시에 실행된다.

4.3 Gazebo Controller and Plugin

이 장에서는 Gazebo 환경에서 사용한 로봇의 액추에이터 컨트롤러 및 플러그인에 대해서 기술한다. Actuator controller 내용은 다음과 같다.

  • • Joint state controller
  •   - joint_state_controller/JointStateController
  • • Left & Right Arms, Neck & Head (position control)
  •   - position_controllers/JointTrajectoryController
  • • Fingers, Thumb, Lift Column (position control)
  •   - position_controllers/JointPositionController

시뮬레이터에 사용한 plugin은 다음과 같다.

  • • Gazebo ROS controller
  •   - libgazebo_ros_control.so
  • • Mecanum Wheel controller (velocity control)
  •   - libgazebo_ros_planar_move.so
  • • Kinect V2 camera sensor
  •   - libgazebo_ros_openni_kinect.so
  • • Ultrasonic sensor
  •   - libgazebo_ros_range.so
  • • Collision detection (contacts sensor)
  •   - libgazebo_ros_bumper.so
4.4 HUMIC ROS topic of actuators and sensors

[Table 3]는 Gazebo 시뮬레이터에서 사용한 액추에이터들의 ROS 메시지 타입과 ROS 토픽 이름을 정리하였다. [Table 4]는 Gazebo 시뮬레이터에서 사용한 센서들의 ROS 메시지 타입과 ROS 토픽 이름을 정리하였다.

[Table 3] 
Topic message types and names of arms, fingers, and mecanum wheel actuators
Message type Topic name
trajectory_msgs/ JointTrajectory • /humic/right_arm/command
• /humic/left_arm/command
• /humic/head/command
std_msgs/Float64 • /humic/left_finger#/command
• /humic/left_thumb/command
• /humic/right_finger#/command
• /humic/left_thumb/command
• /humic/lift_column/command
geometry_msgs/Twist • /humic/cmd_vel

[Table 4] 
Topic message types and names of kinect V2 camera, ultrasonic, and contact sensors
Message type Topic name
sensor_msgs/Image • /kinect2/hd/image_color_rect
• /kinect2/hd/camera_info
• /kinect2/hd/image_depth_rect
• /kinect2/hd/points
std_msgs/Float64 • /humic/front_ultrasonic
• /humic/rear_ultrasonic
• /humic/left_ultrasonic
• /humic/right_ultrasonic
gazebo_msgs/ContactsState • /humic/gazebo_contact


5. 시뮬레이션 실험
5.1 HUMIC Controller GUI

[Fig. 4]는 시뮬레이션 실험을 위해 구성한 환경이며, GUI를 제작하여 사용자가 시뮬레이터 상에서 로봇을 간편하게 테스트를 할 수 있도록 하였다.


[Fig. 4] 
Humic simulation environment in Gazebo

GUI는 RQT를 이용해 제작하였다. RQT는 ROS와 QT framework의 합성어로 다양한 GUI 도구를 플러그인 형태로 구현이 가능한 QT 기반의 ROS의 소프트웨어 프레임워크이다[32]. RQT는 제어, 모니터링 등 20개 이상의 플러그인을 기본적으로 제공하고 있으며, 하나의 창에 필요한 플러그인들을 배치하여 사용할 수 있다. 또한, 사용자는 필요한 플러그인을 직접 제작하여 사용할 수 있고 사용 가능한 언어는 python, c++이다.

본 논문에서는 ROS noetic 버전에서 python을 사용하여 플러그인을 제작하였다. 제작된 플러그인은 [Fig. 5]의 상단에 보여지는 Humic Controller이며 마우스와 키보드를 이용해 버튼을 클릭하거나 제어 값을 입력하는 방법으로 로봇을 제어할 수 있다. Humic Controller는 로봇 제어를 담당하며, 모바일 플랫폼, 양팔, 허리, 손을 제어할 수 있다. Gazebo Simulation Controller는 시뮬레이션 환경을 리셋(Reset)하는 버튼, YCB objects를 다시 불러오는 기능 (Respawn)기능이 있다. [Fig. 5]에서 보이듯이 Image View, Matplot 플러그인을 RQT의 하나의 화면에 Humic Controller 플러그인과 함께 사용하여 Humic Controller을 이용해 로봇을 제어하면서 카메라 센서로부터 얻은 이미지와 초음파 센서 데이터도 같이 확인하였다. [Fig. 6]은 Deep Object Pose Estimation (DOPE) 알고리즘을 Gazebo 환경에서 구동하여 책상 위에 놓인 YCB objects의 pose를 Image View 플러그인을 통해 확인한 것이다[33].


[Fig. 5] 
HUMIC Controller, Image View, MatPlot plugin


[Fig. 6] 
DOPE algorithm test in Gazebo

5.2 강화학습을 이용한 HUMIC Navigation 학습

모바일 로봇의 Navigation 기능 수행 시 로봇이 목표 위치까지 이동할 때, 장애물과 충돌 회피를 위해 단순히정지할 수도 있지만, 장애물을 회피하며 목적지까지 이동해야 할 경우에는 환경이 복잡할수록 회피 알고리즘 또한 모든 상황에 대처하도록 구현해야하기 때문에 복잡해진다.

위와 같은 단점을 해결하기 위해 강화학습을 이용하여 모바일 로봇이 장애물과 충돌하지 않고 목표 위치까지 이동하도록 학습하는 연구가 이뤄지고 있다. Zuo et al. 는 Q-learning 기반으로 unknown 환경에서 모바일 로봇의 navigation 학습 방법을 제안했다[34]. Zuo et al. 의 연구에서는 차동구동 방식의 모바일 플랫폼을 사용하였고, 로봇은 정면과 좌∙우 방향 6개의 초음파 센서의 거리에 따라 전진, 좌∙우 회전 3가지 행동 중에 선택하여 움직이도록 학습하였다. Tai et al. 는 DDPG 알고리즘을 이용해 V-REP 시뮬레이터에서 navigation 학습을 진행한 후 실제 로봇에 적용하는 연구를 하였다[35]. Tai et al. 연구에서는 로봇은 Turtlebot을 사용하였고, Laser 센서의 거리 정보에 따라 행동을 선택하며, 행동 범위는 linear x: (0, 1), angular z: (-1 , 1)으로 전진 및 회전이 가능하다.

본 논문에서는 개발한 Gazebo 기반의 HUMIC 시뮬레이터를 이용하여 [Fig. 7]과 같이 HUMIC의 navigation 학습 환경을 만들고, 강화학습을 적용하여 학습하였다. 타겟 위치는 HUMIC이 타겟 위치에 도달했을 경우 랜덤하게 바뀌게 된다.


[Fig. 7] 
HUMIC navigation environment

HUMIC의 상태(state)는 전∙후방, 좌∙우 4개의 초음파 센서의 값과 HUMIC의 위치(x, y)와 타겟 위치(x, y)의 거리이며, 행동(action)은 메카넘 휠의 전방향 이동을 고려하여 다음과 같이 정의하였다.

  • • linear x: [-1, 1]
  • • linear y: [-1, 1]
  • • angular z: [-1, 1]

따라서 본 논문에서는 기존 연구[34, 35]와 달리 초음파 센서 4개만을 사용하여 로봇 주변 장애물을 감지하도록 하였으며, 지정된 속도와 방향으로만 행동을 선택하지 않고, 전진, 후진, 수평 및 사선 이동, 회전 행동의 연속적인 행동 범위에 대해서 학습을 하였다.

보상(reward)은 다음과 같이 정의하였다.

  • • Goal: 100
  • • Collision: -100
  • • Else: previous distance – current distance

학습에는 연속 행동 공간(Continuous action space)에 적용 가능한 DDPG 알고리즘을 사용하였고, pytorch로 구현하였다. DDPG 알고리즘은 Atari game에서 사람 수준의 성능을 보여줬던 대표적인 강화학습 알고리즘 중 하나인 DQN의 continuous action space와 high-dimensional action space에 적용하기 어려운 문제점[36]을 보완한 강화학습 알고리즘이다. DDPG는 DQN의 Replay buffer, soft target update와 같은 주요 아이디어를 그대로 채용하면서 continuous action space와 high-dimensional action space에 적용 가능한 알고리즘을 제안하였다[37]. DDPG는 off-policy, policy gradient 알고리즘이며, actor-critic network 구조를 사용한다.

학습에 사용한 actor, critic 네트워크는 [Fig. 8]와 같고, 하이퍼 파라미터는 [Table 5]와 같다. [Fig. 9]은 3100 에피소드 동안 80 k step을 진행한 학습 결과이다. 매 에피소드에서 최대 step은 500으로 설정하였다. 시뮬레이션 속도는 3배로 진행했을 때, 7시간 정도 소요되었다. 강화학습을 적용하여 학습했을 때 벽과 충돌하지 않고 목표 위치로 이동하는 것을 확인하였다.


[Fig. 8] 
Actor, critic networks

[Table 5] 
Hyperparameters
Hyperparameter Value
Discount factor (γ) 0.99
Learning rate 0.0001
Buffer size 100000
Batch size 128
Optimizer Adam
Weight decay (critic) 0.01


[Fig. 9] 
HUMIC navigation task reward (n:episode)


6. 결론 및 향후 연구

본 논문에서는 휴머노이드 로봇 HUMIC을 개발하고, HUMIC의 성능 검증 및 실험을 위해서 Gazebo와 ROS을 이용하여 시뮬레이터를 개발하였다. 사용자가 시뮬레이터 상에서 간편하게 로봇 구동을 할 수 있도록 GUI를 개발하고 테스트를 하였으며, 개발한 시뮬레이터를 공개하여 사용할 수 있도록 하였다. 또한, 개발한 시뮬레이터를 이용하여 HUMIC의 navigation task를 강화학습을 적용하여 로봇 행동 지능을 학습하였다.

로봇이 수많은 시행착오를 겪으면서 행동을 학습하는 강화학습을 실제 하드웨어 로봇에 적용하는 것은 많은 제약이 따른다. 따라서, 향후 연구로써 본 논문에서 개발한 시뮬레이터를 이용하여 로봇 행동 지능을 강화학습 알고리즘 기반으로 학습시킨 후, 실제 로봇에 적용하는 연구를 진행할 예정이다.


Acknowledgments

This work was supported by a grant from the National Research Foundation of Korea (NRF) funded by the Korean government (MSIT) (No. 2018R1C1B6007230)


References
1. S. Woo, “Research trends in how to transfer trained autonomous intelligence from virtual environments to real world robots,” Communications of the Korean Institute of Information Scientists and Engineers, vol. 37, no. 11, pp. 41-47, 2019, [Online], https://www.dbpia.co.kr/Journal/articleDetail?nodeId=NODE09233684.
2. Y. Kim and B.-Y. Kang, “Cooperative Robot for Table Balancing Using Q-learning,” Journal of Korea Robotics Society, vol. 15, no. 4, pp. 404-412, Dec., 2020.
3. C. Wang, Q. Zhang, Q. Tian, S. Li, X. Wang, D. Lane, Y. Petillot, and S. Wang, “Learning Mobile Manipulation Through Deep Reinforcement Learning,” Sensors, vol. 20, no. 3, 2020.
4. OpenAI, “Learning dexterous in-hand manipulation,” The International Journal of Robotics Research, vol. 39, no. 1, pp. 3-20, 2020.
5. I. Zamora, N. G. Lopez, V. M. Vilches, and A. H. Cordero, “Extending the OpenAI Gym for robotics: a toolkit for reinforcement learning using ROS and Gazebo,” arXiv:1608.05742, pp. 1-6, 2016, [Online], https://arxiv.org/abs/1608.05742.
6. N. Koening and A. Howard, “Design and Use Paradigms for Gazebo, An Open-Source Multi-Robot Simulator,” 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems(IROS)(IEEE Cat. No.04CH37566), Sendai, Japan, 2004.
7. M. Quigley, B. Gerkey, K. Conley, J. Faust, T. Foote, J. Leibs, E. Berger, R. Wheeler, and A. Ng, “ROS: an open-source Robot Operating System,” ICRA workshop on open source software, 2009, [Online], http://robotics.stanford.edu/~ang/papers/icraoss09-ROS.pdf.
8. Open Source Robotics Foundation, [Online], http://wiki.ros.org/, Accessed: 0217, 2021.
9. S. Saeedvand, M. Jafari, H. S. Aghdasi, and J. Baltes, “A comprehensive survey on humanoid robot development,” The Knowledge Engineering Review, vol. 34, 2019.
10. G. Ficht, H. Farazi, A. Brandenburger, D. Rodriguez, D. Pavlichenko, P. Allgeuer, M. Hosseini, and S. Behnke, “NimbRo-OP2X: Adult-sized open-source 3D printed humanoid robot,” 2018 IEEE-RAS 18th International Conference on Humanoid Robots (Humanoids), Beijing, China, 2018.
11. T. Jung, J. Lim, H. Bae, K. K. Lee, H.-M. Joe, and J. H. Oh, “Development of the humanoid disaster response platform DRC-HUBO+,” IEEE Transactions on Robotics, vol. 34, no. 1, pp. 1-17, 2018.
12. J. Lim, I. Lee, I. Shim, H. Jung, H. M. Joe, H. Bae, O. Sim, J. H. Oh, T. Jung, S. Shin, K. Joo, M. Kim, K. Lee, Y. Bok, D.-G. Choi, B. Cho, S. Kim, J. Heo, I. Kim, J. Lee, I. S. Kwon, and J.-H. Oh, “Robot system of DRC‐HUBO+ and control strategy of team KAIST in DARPA Robotics Challenge finals,” Journal of Field Robotics, vol. 34, no. 4, pp. 802-829, 2017.
13. S. Kuindersma, R. Deits, M. Fallon, A. Valenzuela, H. Dai, F. Permenter, T. Koolen, P. Marion, and R. Tedrake, “Optimization-based locomotion planning, estimation, and control design for the atlas humanoid robot,” Autonomous Robots, vol. 40, no. 3, pp. 429-455, 2016.
14. Z. Yu, Q. Huang, G. Ma, X. Chen, W. Zhang, J. Li, and J. Gao, “Design and development of the humanoid robot BHR-5,” Advances in Mechanical Engineering, vol. 6, 2014.
15. K. Kaneko, F. Kanehiro, M. Morisawa, K. Miura, S. I. Nakaoka, and S. Kajita, “Cybernetic human HRP-4C,” 2009 9th IEEE-RAS International Conference on Humanoid Robots, Paris, France, 2009.
16. S. Lohmeier, T. Buschmann, and H. Ulbrich, “Humanoid robot LOLA,” 2009 IEEE International Conference on Robotics and Automation, Kobe, Japan, 2009.
17. Y. Ogura, H. Aikawa, K. Shimomura, H. Kondo, A. Morishima, H. O. Lim, and A. Takanishi, “Development of a new humanoid robot WABIAN-2,” 2006 IEEE International Conference on Robotics and Automation(ICRA), Orlando, FL, USA, 2006.
18. Y. Sakagami, R. Watanabe, C. Aoyama, S. Matsunaga, N. Higaki, and K. Fujimura, “The intelligent ASIMO: System overview and integration,” IEEE/RSJ international conference on intelligent robots and systems, Lausanne, Switzerland, 2002.
19. F. Ferro and L. Marchionni, “Reem: A humanoid service robot,” ROBOT2013: First Iberian Robotics Conference, pp. 521-525, 2014.
20. W. Meeussen, M. Wise, S. Glaser, S. Chitta, C. McGann, P. Mihelich, E. Marder-Eppstein, M. Muja, V. Eruhimov, T. Foote, J. Hsu, R. B. Rusu, B. Marthi, G. Bradski, K. Konolige, B. Gerkey, and E. Berger, “Autonomous door opening and plugging in with a personal robot,” 2010 IEEE International Conference on Robotics and Automation, Anchorage, AK, USA, 2010.
21. J. J. M. Lunenburg, S. van den Dries, L. F. Bento Ferreira, and M. J. G. van de Molengraft, “Tech United Eindhoven@ Home 2015 team description paper,” RoboCup@ Home League Team Descriptions for the Competition in Hefei, 2015, [Online], http://robocup2015.oss-cn-shenzhen.aliyuncs.com/TeamDescriptionPapers/RoboCup@Home/RoboCup_Symposium_2015_submission_147.pdf.
22. C. Borst, T. Wimbock, F. Schmidt, M. Fuchs, B. Brunner, F. Zacharias, P. R. Giordano, R. Konietschke, W. Sepp, S. Fuchs, C. Rink, A. Albu-Schaffer, and G. Hirzinger, “Rollin’ justin-mobile platform with variable base,” 2009 IEEE International Conference on Robotics and Automation, Kobe, Japan, 2009.
23. A. Nikkhah, A. Yousefi-Koma, R. Mirjalili, and H. M. Farimani, “Design and implementation of small-sized 3d printed surena-mini humanoid platform,” 2017 5th RSI International Conference on Robotics and Mechatronics (ICRoM), Tehran, Iran, 2017.
24. M. Lapeyre, P. Rouanet, J. Grizou, S. Nguyen, F. Depraetre, A. Le Falher, and P. Y. Oudeyer, “Poppy project: open-source fabrication of 3D printed humanoid robot for science, education and art,” Digital Intelligence, 2014, [Online], https://hal.inria.fr/hal-01096338.
25. I. Ha, Y. Tamura, H. Asama, J. Han, and D. W. Hong, “Development of open humanoid platform DARwIn-OP,” SICE Annual Conference, Tokyo, Japan, 2011, [Online], https://ieeexplore.ieee.org/abstract/document/6060333.
26. G. Metta, L. Natale, F. Nori, G. Sandini, D. Vernon, L. Fadiga, C. Hofsten, K. Rosander, M. Lopes, J. Santos-Victor, A. Bernardino, and L. Montesano, “The iCub humanoid robot: An open-systems platform for research in cognitive development,” Neural Networks, vol. 23, pp. 8-9, 2010.
27. D. Gouaillier, V. Hugel, P. Blazevic, C. Kilner, J. Monceaux, P. Lafourcade, B. Marnier, J. Serre, and B. Maisonnier, “Mechatronic design of NAO humanoid,” 2009 IEEE International Conference on Robotics and Automation, Kobe, Japan, 2009.
28. H. Ishiguro, T. Ono, M. Imai, T. Maeda, T. Kanda, and R. Nakatsu, “Robovie: an interactive humanoid robot,” Industrial Robot, 2001.
29. L. Kunze, T. Roehm, and M. Beetz, “Towards Semantic Robot Description Languages”, IEEE International Conference On Robotics and Automation, Shanghai, China, 2011.
30. K. H. Lee, H. Woo, and T. Suk, “Data reduction methods for reverse enginerring,”The International Journal of Advanced Manufacturing Technology, vol. 17, no. 10, pp. 735-743, 2001.
31. V. Sinha, F. Doucet, C. Siska, R. Gupta, S. Liao, and A. Ghosh, “YAML: a tool for hardware design visualization and capture,” International Symposium on System Synthesis, Madrid, Spain, 2000.
32. Open Source Robotics Foundation, [Online], http://wiki.ros.org/rqt, Accessed: 0303, 2021.
33. J. Tremblay, T. To, B. Sundaralingam, Y. Xiang, D. Fox, and S. Birchfield, “Deep object pose estimation for semantic robotic grasping of household objects,” arXiv:1809.10790, 2018, [Online], https://arxiv.org/abs/1809.10790.
34. B. Zuo, J. Chen, L. Wang, and Y. Wang, “A reinforcement learning based robotic navigation system,” 2014 IEEE International Conference on Systems, Man, and Cybernetics (SMC), San Diego, CA, USA, 2014.
35. L. Tai, G. Paolo, and M. Liu, “Virtual-to-real deep reinforcement learning: Continuous control of mobile robots for mapless navigation,” 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Vancouver, BC, Canada, 2017.
36. V. Mnih, K. Kavukcuoglu, D. Silver, A. A. Rusu, J. Veness, M. G. Bellemare, A. Graves, M. Riedmiller, A. K. Fidieland, G. Ostrovski, S. Petersen, C. Beattie, A. Sadik, I. Antonoglou, H. King, D. Kumaran, D. Wierstra, S. Legg, and D. Hassabis, “Human-level control through deep reinforcement learning,” Nature, vol. 518, no. 7540, pp. 529-533, 2015.
37. T. P. Lillicrap, J. J. Hunt, A. Pritzel, N. Heess, T. Erez, Y. Tassa, D. Silver, and D. Wierstra, “Continuous control with deep reinforcement learning,” arXiv:1509.02971, 2015, [Online], https://arxiv.org/abs/1509.02971.

김 영 기

2020 대전대학교 전자정보통신공학과(학사)

2020~현재 서울과학기술대학교 컴퓨터공학과(석사과정)

관심분야: 강화학습, 딥러닝, 인간-로봇 상호작용,지능형 로봇

한 지 형

2008 KAIST 전기 및 전자공학과(학사)

2015 KAIST 전기 및 전자공학과(박사)

2015~2017 한국전자통신연구원 선임연구원

2017~현재 서울과학기술대학교 컴퓨터공학과 조교수

관심분야: 인간-로봇 상호작용, 인간 의도 파악, 지능형 로봇, 기계학습, 딥러닝