JKSPE
[ REGULAR ]
Journal of the Korean Society for Precision Engineering - Vol. 41, No. 5, pp.401-405
ISSN: 1225-9071 (Print) 2287-8769 (Online)
Print publication date 01 May 2024
Received 05 Feb 2024 Revised 16 Feb 2024 Accepted 26 Feb 2024
DOI: https://doi.org/10.7736/JKSPE.024.008

Poppy Robot의 모션 제어를 위한 디지털 트윈 기반의 머신러닝 및 Openpose의 활용 방법에 관한 연구

김범진1 ; 김석1 ; 조영태1, #
1국립창원대학교 스마트제조융합협동과정
A Study on How to Utilize Digital Twin-based Machine Learning and Openpose for Poppy Robot’s Motion Control
Bum Jin Kim1 ; Seok Kim1 ; Young Tae Cho1, #
1Smart Manufacturing Engineering, Changwon National University

Correspondence to: #E-mail: ytcho@changwon.co.kr, TEL: +82-55-213-3608

Copyright © The Korean Society for Precision Engineering
This is an Open-Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

This paper was presented at KSPE Autumn Conference in 2023

Abstract

The key components of smart manufacturing, a central concept in the era of the 4th Industrial Revolution, consist of digital twin technology, AI, and computer vision technology. In this study, these technologies were utilized to govern the Poppy robot, a humanoid robot designed for educational and research purposes. The digital twin creates a virtual environment capable of real-time simulation, analysis, and control of the robot's motions. The digital twin of the robot was constructed using Unity, a 3D development program. Motion data was captured while simulating the physical structure and movements of the virtual robot. This data was then fed into a Tensorflow-based deep neural network to generate a regression model that predicts motor rotation based on the position of the robot's hand. By integrating this model with a Python-based robot control program, the robot's movements could be effectively managed. Additionally, the robot was controlled using Openpose, a computer vision algorithm that predicts characteristic points on a human body. Position data for human joint points was collected from 2D images, and the motor angle was calculated based on this data. By implementing this approach on an actual robot, it became possible to enable the robot to replicate human movements.

Keywords:

Digital twin, Unity, Deep neural network, Poppy robot, Openpose, Motion control

키워드:

디지털 트윈, 유니티, 심층신경망, Poppy 로봇, 오픈 포즈, 모션 제어

1. 서론

4차 산업혁명(Industry 4.0) 시대에 핵심 패러다임 중 하나인 스마트 제조(Smart Manufacturing)는 다양한 정보통신기술(ICT)과 인공지능(AI)을 도입하여 제조업의 혁신을 추구한다. 스마트 제조는 제조 공정의 디지털화, 네트워킹, 그리고 지능화를 통해 생산성을 향상시키고, 제조업의 유연성과 효율성을 극대화하는 것을 목표로 하고 있다[1]. 이러한 변화의 중심에는 디지털 트윈(Digital Twin) 기술과 AI, 컴퓨터 비전 기술이 자리 잡고 있으며, 이들 기술은 제조업뿐만 아니라 여러 산업 분야에서 디지털 전환을 가속화하는데 중요한 역할을 하고 있다.

디지털 트윈은 물리적 객체와 시스템에 대한 정확한 디지털 쌍둥이를 생성하는 기술로, 현실에서 발생하는 상황을 시뮬레이션하여 다양한 시나리오에서 로봇의 성능을 시험할 수 있다[2]. 이 기술은 실제 환경에서 발생할 수 있는 다양한 조건과 상황을 모델링하여, 성능 최적화, 문제 해결 및 예측 분석에 활용된다[18].

이러한 디지털 트윈에 대한 연구는 특히 제조 산업에 많이 사용되는 로봇을 대상으로 활발히 진행되고 있다[7]. 이러한 연구의 일환으로, 본 논문에서는 교육 및 연구 목적으로 개발된 오픈소스 휴머노이드 로봇인 Poppy Robot[4]을 활용하였다. Poppy Robot은 인간의 운동과 인지 능력을 모방할 수 있도록 총 25개의 서보모터를 사용하여 디자인된 로봇이다[5-9].

Fig. 1

Poppy robot’ wiring diagram overview [9] (Adapted from Ref. 9 on the basis of OA)

Blanchard et al.[3]은 Poppy robot의 구조적 특성과 비전 시스템을 활용해 사람이 자신의 스트레칭 모션을 확인하고 교정할 수 있는 시스템을 개발하였고, Urban and Adorno[17]는 V-REP 기반의 Poppy Robot의 디지털 트윈 시뮬레이터를 활용한 이족보행을 모션을 제어하는 방법에 대해 연구한 바 있다.

본 논문에서는 Poppy Robot을 활용하여 디지털 트윈을 구현하고 시뮬레이션으로 데이터를 수집한 후 AI를 통해 활용해 보고자 하였다. 또한 컴퓨터 비전 기술 중 사람과 상호작용에 유리한 Openpose 기술을 활용하여 Poppy Robot의 제어에 적용해 보고자 하였다.


2. 디지털 트윈 시뮬레이터를 활용한 Poppy Robot의 제어

2.1 Unity 기반 디지털 트윈 시뮬레이터 구축

Unity는 시뮬레이션 플랫폼으로 널리 사용되는 3D 개발 프로그램이다[6]. Unity는 그래픽 렌더링과 물리엔진을 제공하여 다양한 시나리오에서의 물리적 시뮬레이션을 가능하게 한다. 실제 로봇과 시스템의 복제본을 통해 디지털 트윈 시뮬레이터의 구축에 사용되기도 한다[7]. 본 논문에서는 Poppy Robot의 디지털 트윈 시뮬레이터를 Unity를 활용하여 구축해 보고자 하였다.

디지털 트윈의 구현을 위해서는 우선 로봇의 모델 파일이 필요하다. Poppy Robot은 오픈소스로 로봇 하드웨어의 CAD 파일을 제공하기 때문에[8], 이를 Unity에서 사용 가능한 FBX형식으로 저장한 뒤 Unity 가상 공간에 가져와서 로봇의 물리적 구조를 디지털 환경에서 구현할 수 있다. 가상 모델이 실제 로봇과 동일한 움직임을 나타낼 수 있도록 구현하기 위하여, 로봇 모델링의 각 부품에 해당하는 Game Object들의 계층관계를 설정하여 종속 관계를 설정하였다. 또한 모터 회전부에 해당하는 회전 축 부품에 Articulation Body 기능을 활용하여 물리적 회전 기능을 추가하여 Fig. 2 와 같이 Unity 상에 가상 모델을 완성하였다.

Fig. 2

Poppy robot’s digital twin modeling in unity (a) Figure of robot, (b) Parts of poppy robot, (c) Transform of parts of robot, (d) Real robot figure, and (e) A virtual robot posing like a real robot

가상 모델을 움직일 때 각 관절부로 설정한 부품의 회전 각도나 원하는 부품의 위치 데이터를 수집하는 C#스크립트를 추가하였고, Fig. 3과 같이 가상 모델을 움직였을 때 각 관절의 회전 데이터를 실시간으로 수집할 수 있음을 확인하였다.

Fig. 3

Acquiring motor angles in poppy robot's digital twin simulator

제작된 디지털 트윈 시뮬레이터를 활용하여 로봇 모터의 회전 데이터에 따른 위치 데이터를 수집하였다. 왼손 끝을 로봇의 끝점으로 지정하여 상체가 고정되어 있을 때 Fig. 1과 같이 왼손 끝의 움직임에 관여하는 4개의 모터(l_shoulder_y, l_shoulder_x, l_arm_z, l_elbow_y)[9]의 회전 각도를 수집해 데이터베이스를 제작하였다.

각 모터를 5°씩 회전시켰고, 그때 왼쪽 손끝의 X, Y, Z 위치 데이터를 수집하여 결과적으로 Table 1과 같이 총 19,802개의 데이터가 수집된 것을 확인할 수 있다.

Position data of the fingertip per motor’ rotation value

2.2 DNN을 활용한 수집된 데이터의 학습

디지털 트윈 시뮬레이터를 이용하여 수집된 데이터는 머신러닝 기법을 통해 학습되어 로봇에 적용시킬 수 있다[10]. 본 연구에서는 디지털 트윈 시뮬레이터를 이용하여 수집된 모터의 회전 각도 데이터에 따른 손끝의 위치 데이터를 활용하여 손 위치에 따른 모터의 회전 각도를 예측 머신러닝 모델을 개발하였다. 모델은 Tensorflow를 사용하여 DNN (Deep Neural Network)으로 구조로 제작하였다[11].

모델의 세부적인 구조는 다음과 같다. 입력층에서 3개의 입력값인 로봇 손 끝의 X, Y, Z 위치 데이터를 입력받았고, 은닉층에서는 기울기 소실 문제를 방지하기 위하여 ReLU[12] 활성화 함수를 사용하여 5개의 레이어로 구성하였다. 출력층에서는 선형 활성화 함수를 사용하여[13] 4개의 출력 데이터인 로봇의 왼팔에 해당하는 4개의 모터(l_shoulder_y, l_shoulder_x, l_arm_z, l_elbow_y)의 회전 값을 출력하도록 회귀(Regression) 모델을 구현하였다. 최적화 함수로는 Adam (Adaptive Moment Estimation)알고리즘을[14] 사용하였고, 학습률은 Adam에 가장 좋은 설정값이라고 알려진 0.001을 사용하였다[14].

총 19,802개의 데이터를 1,024 Batch로 나누어 25,000만큼의 Epoch로 학습을 진행하였다. 학습 과정에서는 손실함수(Loss)를 산정하여 모델의 성능을 평가했는데 회귀 모델에서 주로 평가 지표로 사용되는 MSE (Mean Square Error)[15] 방식으로 산정하였다. 학습 결과로, 모델은 74.5%의 정확도와 0.025의 Loss값을 가지도록 학습된 것을 Fig. 4와 같이 확인할 수 있다.

Fig. 4

Learning results of regression model for robot motion estimation (a) change in accuracy up to 25,000 epoch, and (b) change in LOSS (MSE) value up to 25,000 epoch

2.3 회귀 모델을 활용한 실제 로봇의 제어

2.3절에서 제작한 회귀 모델을 실제 Poppy Robot의 제어에 활용하였다. Poppy Robot은 Python 프로그래밍 언어로 제어가 가능한데, Poppy Robot에 부착된 Dynamixel 서보모터는 Pypot[4] 라이브러리를 통해 효율적으로 제어할 수 있다. 모터의 이름, 방향, 원점, 한계각도의 설정을 통해 제어 환경을 세팅하고, 모터의 각도, 동작 실행 시간, 동작 간격을 설정하여 전반적인 로봇의 움직임을 제어할 수 있다. 제작한 회귀 모델에 Pypot 라이브러리를 결합하여 출력값으로 나온 4개의 모터 각도를 실제 로봇에 실시간으로 적용할 수 있도록 하였고, 입력값으로는 쉽게 적용할 수 있는 모니터 속 마우스 포인터 위치 데이터를 사용하는 방법을 도입하였다. 사용자가 마우스 포인터를 이동시키면, 해당 위치 데이터가 실시간으로 회귀 모델에 입력되어 모터의 회전 데이터를 예측한다. 이 예측된 회 전값은 Poppy Robot의 실제 모터 제어 데이터로 사용되어 Fig. 5와 같이 로봇의 팔 동작을 제어할 수 있다.

Fig. 5

As shown in (a) and (b), the robot arm is controlled by the regression model as the mouse pointer position changes


3. Openpose를 활용한 Poppy Robot의 제어

3.1 Openpose알고리즘

Openpose[16]란 이미지 처리를 위한 오픈소스인 OpenCV를 기반으로 한 사람의 자세 예측 알고리즘이다. 사람의 손이나 얼굴, 몸체에서 특징점들을 탐지하고 그 점들을 이어 자세를 추정하고 동작을 분석할 수 있는 알고리즘으로, 약 25,000개의 데이터를 바탕으로 CNN (Convolution Neural Network)을 기반으로 딥러닝 된 모델이다. Python 환경에서 구현할 수 있고, 추가적인 OpenCV 라이브러리를 활용해 다양한 작업이 가능하다[19]. Openpose 모델 중 몸체의 자세를 추정할 수 있는 모델은 3가지가 있다. 몸의 전체 관절을 추출하는 MPI 모델과, 얼굴 인식이 추가된 Coco 모델, 발의 세부적인 특징점을 추출하는 Body-25 모델이 있다. 본 연구에서는 사람 몸체의 움직임을 로봇에 적용하기 위해, MPI 모델을 사용하였다.

3.2 Openpose를 활용한 로봇제어

본 논문에서는 이 Openpose 알고리즘을 활용하여 사람 사진에서 자세를 추정하고, 추정된 점들의 2D 좌표를 추출한 뒤 가공하여 로봇에 적용해 보는 연구를 진행하였다. Openpose 모델을 활용하여 사람 사진에서 각 관절 점들을 추출하였고, 추출된 점들은 사진의 왼쪽 아래 끝을 영점으로 설정한 좌표 데이터로 변환하였다. 이후 두 점의 좌표 사이의 각도를 구할 수 있는 수식을 코드로 표현하였고, Openpose를 이미지에 적용해 나온 점들의 좌표 데이터를 수식에 적용하여 로봇의 양 팔의 어깨와 팔꿈치에 해당하는 모터의 각도를 구했다. 이 각도 데이터를 Pypot 라이브러리[4]와 결합하여 Poppy Robot의 제어에 사용하였고, 로봇이 이미지 내 인간의 움직임을 모방할 수 있었다.

2D 사진에서 X축을 가로, Y축을 세로로 할 때, 깊이 정보인 Z축을 직접 얻을 수 없는 한계를 극복하기 위해, 특정 방법론을 도입하여 관련 모터의 각도를 계산하였다. Openpose가 적용된 이미지에서 손 끝의 점 픽셀의 Y값이, 어깨에 대항하는 점의 픽셀의 Y값보다 위, 아래에 있는지 여부를 계산하였다. 이때 손끝 점의 Y값이 더 크다면 +90, 더 작다면 -90 값을 부여하여 Z값을 필요로 하는 arm_z 모터를 제어하였다. Fig. 6과 같이 구한 모터 회전값들을 실제 로봇에 적용하였을 때 사진과 같은 형상대로 제어된 것을 확인할 수 있다. 손 끝에 해당하는 4, 6번 점의 Y값이 어깨에 해당하는 2, 번 점보다 위에 있어 arm_z 모터에 +90 값이 적용된 것을 확인할 수 있다.

Fig. 6

Data on joint points extracted from photos using openpose applied to actual robot


4. 결론

본 연구에서는 교육용 휴머노이드 로봇인 Poppy Robot을 활용하여 Unity 기반 디지털 트윈 시스템을 구축하고, AI 기반의 제어 기법을 결합하여, 실시간 로봇 제어의 가능성을 탐구하였다. 실제 로봇의 모터 각도 회전 값과 부품의 위치 측정에 어려움을 극복하기 위해, 디지털 트윈 시뮬레이터를 이용해 로봇 부품(손 끝)의 위치 데이터를 수집하였고, 이를 Python 기반의 Tensorflow로 구축한 DNN 모델의 훈련 데이터로 활용하였다. 학습 결과 로봇 손 위치에 따른 모터의 회전을 예측하는 모델이 완성되었다. 제작된 회귀 모델은 Pypot 라이브러리와 결합되어 로봇의 제어에 활용되었다. 최종적으로 마우스 포인터의 위치에 따라 로봇의 손 끝이 움직이는 방식으로 왼쪽 팔에 부착된 모터들의 동작을 성공적으로 확인하였다. 모델의 출력층에 선형 활성화 함수를 사용함으로써, 모터들이 최소한의 움직임으로 팔을 조절하도록 하였으나, 이로 인해 일부 어색한 움직임이 발생하는 한계가 있었다.

또한, 사진 속 인간의 관절 특징점을 추출하는 컴퓨터 비전 모델인 Openpose를 사용하여, 이를 로봇에 매핑하는 방법을 개발하였다. 사람 사진의 자세를 분석하고, 이를 통해 얻은 2D 좌표 데이터를 가공하여 로봇 제어에 적용하는 방법을 탐구하였다. 사람의 사진에서 추출된 각 관절 점들의 데이터를 활용하여 로봇의 양 팔 모터 각도를 계산하고, 이를 실제 로봇의 동작 제어에 성공적으로 적용함으로써, 로봇이 인간의 움직임을 효과적으로 모방할 수 있음을 확인하였다. 특히, 2D 이미지에서 깊이 정보의 부재라는 한계를 극복하기 위해, 손 끝과 어깨의 상대적 위치를 분석하여 arm_z 모터를 제어하는 방법론을 도입하였고, 이 접근 방식은 로봇이 사진과 동일한 형상을 재현하는 데 성공적으로 기여하였다. 추후 연구에서는 Depth Camera를 활용하여 3D Openpose 모델을 구현함으로써 로봇 모션의 정밀도를 향상시키고 최적화하는 방안을 모색할 필요가 있다.

Acknowledgments

본 과제(결과물)는 2023년도 교육부의 재원으로 한국연구재단의 지원을 받아 수행된 지자체-대학 협력기반 지역혁신 사업의 결과입니다(2021RIS-003). 또한 이 성과는 정부(과학기술정보통신부)의 재원으로 한국연구재단의 지원을 받아 수행된 연구임(No. NRF-2019R1A5A8083201).

REFERENCES

  • Kang, H. S., Lee, J. Y., Choi, S., Kim, H., Park, J. H., Son, J. Y., Kim, B. H., Noh, S. D., (2016), Smart manufacturing: Past research, present findings, and future directions, International Journal of Precision Engineering and Manufacturing-green Technology, 3, 111-128. [https://doi.org/10.1007/s40684-016-0015-5]
  • He, Y., Guo, J., Zheng, X., (2018), From surveillance to digital twin: Challenges and recent advances of signal processing for industrial internet of things, Institute of Electrical and Electronics Engineers Signal Processing Magazine, 35(5), 120-129. [https://doi.org/10.1109/MSP.2018.2842228]
  • Blanchard, A., Nguyen, S. M., Devanne, M., Simonnet, M., Goff-Pronost, L., & Rémy-Néris, O, (2022). Technical feasibility of supervision of stretching exercises by a humanoid robot coach for chronic low back pain: The R-COOL randomized trial. BioMed Research International, 2022. [https://doi.org/10.1155/2022/5667223]
  • Lapeyre, M., Rouanet, P., Grizou, J., Nguyen, S., Depraetre, F., Le Falher, A., Oudeyer, P.-Y., (2014), Poppy project: Open-source fabrication of 3D printed humanoid robot for science, education and art, Digital Intelligence 2014, 6.
  • Mick, S., Lapeyre, M., Rouanet, P., Halgand, C., Benois-Pineau, J., Paclet, F., Cattaert, D., Oudeyer, P., de Rugy, A., (2019), Reachy, a 3D-printed human-like robotic arm as a testbed for human-robot control strategies, Frontiers in Neurorobotics, 13, 65. [https://doi.org/10.3389/fnbot.2019.00065]
  • Juliani, A., Berges, V.-P., Teng, E., Cohen, A., Harper, J., Elion, C., Goy, C., Gao, Y., Henry, H., Mattar, M., (2018), Unity: A general platform for intelligent agents, arXiv preprint arXiv:1809.02627, .
  • Garg, G., Kuts, V., Anbarjafari, G., (2021), Digital twin for fanuc robots: Industrial robot programming and simulation using virtual reality, Sustainability, 13(18), 10336. [https://doi.org/10.3390/su131810336]
  • Lakmazaheri, A., (2018), Software architecture for humanoid control: Review & guide. Virginia Tech.
  • Poppy Project. Documentation of the Poppy Project. https://docs.poppy-project.org/en/
  • Matulis, M., Harvey, C., (2021), A robot arm digital twin utilising reinforcement learning, Computers & Graphics, 95, 106-114. [https://doi.org/10.1016/j.cag.2021.01.011]
  • Pang, B., Nijkamp, E., Wu, Y. N., (2020), Deep learning with tensorflow: A review, Journal of Educational and Behavioral Statistics, 45(2), 227-248. [https://doi.org/10.3102/1076998619872761]
  • Ramachandran, P., Zoph, B., Le, Q. V., (2017), Searching for activation functions, arXiv preprint arXiv:1710.05941, .
  • Sharma, S., Sharma, S., Athaiya, A., (2017), Activation functions in neural networks, Towards Data Sci, 6(12), 310-316. [https://doi.org/10.33564/IJEAST.2020.v04i12.054]
  • Kingma, D. P., Ba, J., (2014), Adam: A method for stochastic optimization, arXiv preprint arXiv:1412.6980, .
  • Chicco, D., Warrens, M. J., Jurman, G., (2021), The coefficient of determination r-squared is more informative than SMAPE, MAE, MAPE, MSE and RMSE in regression analysis evaluation, Peerj Computer Science, 7, e623. [https://doi.org/10.7717/peerj-cs.623]
  • Cao, Z., Simon, T., Wei, S.-E., Sheikh, Y., (2017), Realtime multi-person 2D pose estimation using part affinity fields, Proceedings of the Institute of Electrical and Electronics Engineers Conference on Computer Vision and Pattern Recognition, 7291-7299. [https://doi.org/10.1109/CVPR.2017.143]
  • Urban, S. D., Adorno, B. V., (2020), Biped walking control based on quadratic programming and differential inequalities1, Congresso Brasileiro de Automática-CBA, 2(1).
  • Liu, Y., Xu, H., Liu, D., Wang, L., (2022), A digital twin-based sim-to-real transfer for deep reinforcement learning-enabled industrial robot grasping, Robotics and Computer-integrated Manufacturing, 78, 102365. [https://doi.org/10.1016/j.rcim.2022.102365]
  • Ramasubramanian, A. K., Kazasidis, M., Fay, B., Papakostas, N., (2024), On the evaluation of diverse vision systems towards detecting human pose in collaborative robot applications, Sensors, 24(2), 578. [https://doi.org/10.3390/s24020578]
Bum Jin Kim

M.Sc. candidate in the Department of Smart Manufacturing Engineering, Changwon National University. His research interests are Digital twin, AI and Robot control technology

E-mail: 20237176@gs.cwnu.ac.kr

Seok Kim

He is an assistant professor in the department of Smart Manufacturing and department of mechanical engineering, Changwon National University. His research focuses on the development of a variety of advanced manufacturing with functional materials for energy, environmental, and biological applications.

E-mail: kimseok@changwon.ac.kr

Young Tae Cho

He is a professor in the department of mechanical engineering, Changwon National University. Research interests are imprint process, super-hydrophobic and precision manufacturing system.

E-mail: ytcho@changwon.ac.kr

Fig. 1

Fig. 1
Poppy robot’ wiring diagram overview [9] (Adapted from Ref. 9 on the basis of OA)

Fig. 2

Fig. 2
Poppy robot’s digital twin modeling in unity (a) Figure of robot, (b) Parts of poppy robot, (c) Transform of parts of robot, (d) Real robot figure, and (e) A virtual robot posing like a real robot

Fig. 3

Fig. 3
Acquiring motor angles in poppy robot's digital twin simulator

Fig. 4

Fig. 4
Learning results of regression model for robot motion estimation (a) change in accuracy up to 25,000 epoch, and (b) change in LOSS (MSE) value up to 25,000 epoch

Fig. 5

Fig. 5
As shown in (a) and (b), the robot arm is controlled by the regression model as the mouse pointer position changes

Fig. 6

Fig. 6
Data on joint points extracted from photos using openpose applied to actual robot

Table 1

Position data of the fingertip per motor’ rotation value

L_shoulder_x L_shoulder_y L_arm_z L_elbow_y Hand_pos_x Hand_pos_y Hand_pos_z
19802 rows X 7 columns
0 -120 -10 -30 -20 -0.3287 1.8475 3.8166
1 -120 -10 -30 -15 -0.3698 1.7979 3.8995
2 -120 -10 -30 -10 -0.4140 1.7420 3.9766
3 -120 -10 -30 -5 -0.4608 1.6800 4.0473
19799 -65 25 25 -10 -2.3436 -0.5908 3.9708
19800 -65 25 25 -5 -2.3134 -0.6913 3.9658
19801 -65 25 30 -90 -2.2400 -0.8850 3.9328