한국센서학회 학술지영문홈페이지
[ Article ]
JOURNAL OF SENSOR SCIENCE AND TECHNOLOGY - Vol. 33, No. 1, pp.18-23
ISSN: 1225-5475 (Print) 2093-7563 (Online)
Print publication date 31 Jan 2024
Received 28 Dec 2023 Revised 03 Jan 2024 Accepted 05 Jan 2024
DOI: https://doi.org/10.46670/JSST.2024.33.1.18

CNN 기반의 인간형 로봇의 낙상 판별 모델

박신우1 ; 조현민2,
1경북대학교 로봇 및 스마트시스템공학과
2경북대학교 로봇 및 스마트시스템공학과, 인공지능학과
CNN-based Fall Detection Model for Humanoid Robots
Shin-Woo Park1 ; Hyun-Min Joe2,
1Department of Robot and Smart System Engineering, Kyungpook National University Techno building 406, 80 Daehak-ro, Buk-gu, Daegu, Korea
2Department of Robot and Smart System Engineering, Department of Artificial Intelligence, Kyungpook National University Techno building 406, 80 Daehak-ro, Buk-gu, Daegu, Korea

Correspondence to: hmjoe@knu.ac.kr

This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(https://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.

Abstract

Humanoid robots, designed to interact in human environments, require stable mobility to ensure safety. When a humanoid robot falls, it causes damage, breakdown, and potential harm to the robot. Therefore, fall detection is critical to preventing the robot from falling. Prevention of falling of a humanoid robot requires an operator controlling a crane. For efficient and safe walking control experiments, a system that can replace a crane operator is needed. To replace such a crane operator, it is essential to detect the falling conditions of humanoid robots. In this study, we propose falling detection methods using Convolution Neural Network (CNN) model. The image data of a humanoid robot are collected from various angles and environments. A large amount of data is collected by dividing video data into frames per second, and data augmentation techniques are used. The effectiveness of the proposed CNN model is verified by the experiments with the humanoid robot MAX-E1.

Keywords:

Humanoid robot, Fall detection, CNN, Image augmentation

1. 서 론

인간형 로봇은 높은 무게 중심과 좁은 지지 영역의 특성을 가지고 있으며, 이러한 특성들은 인간형 로봇의 보행 제어를 어렵게 만든다 [1]. 특히 고르지 않은 지면을 포함하여 다양한 외란이 로봇에 작용하는 환경에서 보행 제어는 난제이며, 이러한 문제를 해결하기 위해서 보행 제어기에 관한 많은 연구가 이루어지고 있다 [2-4].

보행 제어기가 실제 로봇에서 안정된 성능을 보여주기 전까지, 제어기를 구현하는 초기 과정에서 여러 시행착오가 발생한다. 이러한 시행착오는 인간형 로봇의 불안정한 보행을 초래할 수 있으며, 심각한 경우에는 인간형 로봇의 낙상을 초래한다. 인간형 로봇이 낙상할 경우, 로봇의 파손이나 오작동, 주변 사람의 부상, 경제적 손실 등의 다양한 문제가 발생하게 된다 [5,6].

보행 제어기 개발 초기 단계에서는 인간형 로봇의 낙상을 방지하기 위한 시스템이 사용된다. 주로 크레인과 같은 시스템이 로봇의 전복을 방지하기 위해 이족 보행 연구에 많이 사용되고 있다 [7]. 보행 실험 시 인간형 로봇은 크레인의 훅 부분에 밧줄 (tether)로 연결되어진다. 보행 실험 중 인간형 로봇이 넘어지려고 할 때 크레인 조작자는 크레인 훅의 위치를 상승시킨다. 이에 따라 로봇은 바닥으로부터 뜨게 되며 로봇의 낙상이 방지된다. 일반적으로 이족 보행 실험에서는 로봇 오퍼레이터뿐만 아니라 크레인 오퍼레이터가 추가로 필요하다. 따라서 효율적이고 안전한 보행 제어 실험을 위해서는 크레인을 조작하는 인력을 대체할 수 있는 시스템이 필요하다.

크레인 조작자를 대체하기 위해서는 우선적으로 인간형 로봇의 낙상을 판별하는 기술의 개발이 요구된다. 인간형 로봇의 낙상을 판별하기 위한 연구는 다양하게 진행되었다 [8]. 낙상을 판별하기 위해 모델 기반의 제어기를 적용하거나, 센서를 이용하는 방법이 있다. [9]에서는 수정된 캡쳐 포인트를 이용하여 모델 기반의 낙상을 판별하는 방법이 제안되었다. [10]에서는 내부 센서 정보들과 칼만 필터를 이용한 낙상 판별 방법이 제안되었다. 낙상을 판별하기 위해 다수의 센서를 이용한 방법도 있다 [11]. 센서와 제어기를 결합시킨 방법으로는 ZMP 제어와 IMU 센서를 이용하여 낙상을 판별하고 방지하는 방법이 있다[12]. 또한 기계 학습을 이용하여 IMU 센서, 엔코더, 압력 센서와 같은 내부의 센서 데이터로부터 인간형 로봇의 낙상을 판별하는 연구가 진행되었다 [13].

보행 제어기 개발 초기 단계에서는 하드웨어 또는 소프트웨어의 문제로 인해 로봇의 낙상이 쉽게 발생한다. 앞서 언급한 낙상 판별 방법들은 로봇의 하드웨어 및 소프트웨어가 안정적으로 구현된 단계에서 적용이 가능하므로, 이러한 방법들은 보행 제어기의 설계 및 구현 단계에서 활용되기 어렵다. 따라서 개발 초기 단계에 로봇 외부의 센서를 활용하여 낙상을 판별하고 이를 방지하기 위한 시스템이 필요하다. 본 연구에서는 외부의 비전 센서를 활용하여 인간형 로봇의 낙상을 판별하는 연구에 초점을 맞춘다.

최근까지 외부의 비전 센서를 이용한 인간형 로봇의 낙상 판별은 거의 연구되지 않은 분야이다. Sapienza University of Rome에서는 낙상을 판별하기 위해 별도의 조작자나 인간형 로봇 내부의 센서를 사용하지 않고, 외부의 비전 센서를 이용하여 인간형 로봇인 Nao 로봇에 대한 낙상 판별 연구를 진행하였다 [14,15]. Light openpose로부터 얻은 데이터셋을 기반으로 합성 곱 신경망(CNN, Convolution Neural Network) 모델을 구현하여 인간형 로봇의 낙상을 판별하였다 [16,17]. Nao 로봇의 낙상을 판별하는 CNN 모델은 학습된 데이터로 평가할 때 높은 정확도를 보인다. 그러나 데이터셋에 포함되지 않은 자세를 판별할 때 70%의 낮은 정확도를 보였으며, 데이터의 확보가 어렵다는 단점이 있었다.

본 연구에서는 CNN 모델을 이용하여 인간형 로봇의 낙상을 판별할 수 있는 방법을 제안한다. 제안하는 방법은 데이터의 확보가 용이하며, 높은 정확도로 낙상 유무를 판별한다. 실제 인간형 로봇의 낙상 실험을 통해, 제안하는 방법이 인간형 로봇의 다양한 낙상을 판별하는 것을 확인하였다. 제안하는 낙상 판별 방법은 본 연구실에서 개발한 이동식 크레인 시스템 [7]에 적용되어, 인간형 로봇의 낙상을 방지하는데 활용될 예정이다.


2. 인간형 로봇의 낙상 판별 모델

2.1 서 있는 자세 유지 가능 유무에 따른 인간형 로봇의 낙상 판별

기존 연구에서는 인간형 로봇의 낙상 판별을 위해 CNN모델을 이용하였다 [18]. CNN 모델의 성능 평가는 ‘Robotis’사의 인간형 로봇 MAX-E1을 이용하여 이루어졌다. 로봇은 12축의 자유도를 가지며 전진, 후진, 우측 이동, 좌측 이동, 회전이 가능하며 이동 속도 조절이 가능하다.

Fig. 1Fig. 2는 인간형 로봇의 서 있는 자세와 낙상 자세의 이미지 데이터셋을 나타낸다. 다양한 환경에서 여러 각도를 통해 인간형 로봇의 서 있는 자세와 낙상 자세 데이터를 수집하였고, 수집된 데이터를 라벨링을 통해 ‘stand’와 ‘fall’ 클래스로 구분하였다. stand와 fall의 분류 기준은 인간형 로봇을 줄에 매달아 자세를 취했을 때, 실제 로봇의 발이 착지된 상태에서 서있는 자세 유지 가능 유무를 기준으로 선정하였다.

Fig. 1.

Standing posture of a humanoid robot.

Fig. 2.

Falling posture of a humanoid robot.

인간형 로봇의 낙상 판별을 위한 CNN 모델은 Google Colab개발 환경에서 Tensorflow의 keras 라이브러리를 통해 구현되었다 [19]. Table 1Fig. 3은 인간형 로봇의 낙상 판별을 위한 CNN 모델의 구조를 보여준다. 모델은 데이터의 특징을 추출하는 convolution 계층 2개와 샘플링을 통하여 추출된 특징들의 사이즈를 축소시키는 max pooling 계층 2개로 구성되었다. 활성화 함수는 출력 결과를 확률 값으로 나타내기 위해 sigmoid함수를 사용하였고, dense층에는 dropout이 적용되었다.

Structure of CNN model for falling detection of a humanoid robot.

Fig. 3.

Structure of CNN model for falling detection of a humanoid robot.

모델은 학습 데이터 648장, 테스트 데이터 163장으로 학습과 평가가 진행되었다. 평가 결과, 모델은 88.34%의 정확도로 인간형 로봇의 낙상을 판별하였다. Fig. 4, 5는 CNN 모델을 통하여 얻은 임의의 데이터에 대한 실험 결과를 보여준다. class는 각각 fall과 stand를 나타내며, 실험을 통해 이미지 데이터가 stand와 fall로 분류되는 것을 확인할 수 있다.

Fig. 4.

Detection result of standing posture of a humanoid robot. (a): standing posture data. (b): detection result graph.

Fig. 5.

Detection result of falling posture of a humanoid robot. (a): falling posture data. (b): detection result graph.

2.2 낙상 각도에 따른 인간형 로봇의 낙상 판별

인간형 로봇의 낙상 판별 CNN모델은 대부분의 테스트셋에서 낙상 여부를 판단할 수 있었다. 그러나 임의의 각도에서 촬영한 일부 테스트셋에서는 stand와 fall의 판별이 정확하게 이루어지지 않았다. 모델의 성능을 향상시키기 위해 학습 데이터를 증가시키고 라벨링 기준을 변경하여 실험을 진행하였다.

학습 데이터를 증가시키기 위해 동영상으로 인간형 로봇의 움직임을 촬영하였다. 촬영한 동영상을 FPS (Frame Per Second)로 분할하여 이미지로 변경하였고, image augmentation 기법을 활용하여 데이터의 수를 9782장으로 증가시켰다. 다음으로 stand와 fall의 라벨링 기준을 인간형 로봇이 낙상할 때의 각도를 기준으로 선정하였다. Fig. 6은 인간형 로봇의 낙상 상태를 판별하는 기준 각도를 나타낸다.

Fig. 6.

Structure of CNN model for falling detection of a humanoid robot.

인간형 로봇의 낙상이 발생하는 각도를 측정한 결과, 로봇은 20.9° 각도에서 낙상이 발생하였다. 따라서 인간형 로봇의 상체기울기가 20.9°보다 작을 경우에는 stand로 분류하였고, 20.9°보다 클 경우에는 fall로 분류하여 라벨링을 진행하였다. 증가된 데이터와 변경된 라벨링 기준을 바탕으로 실험한 모델은 90.8%의 정확도를 보였으며, 이전 실험 결과보다 2% 향상된 결과를 나타냈다.


3. 기존 모델의 파라미터를 변경한 낙상 판별 모델

2.2절에서 활용한 CNN 모델의 정확도를 향상시키기 위해 모델의 파라미터를 변경하여 모델을 재구성하였다. 2.2절에서의 모델은 normalization layer의 부재로 인해 이미지 정규화가 이루어지지 않았다. 정규화가 이루어지지 않은 데이터는 스케일에 차이가 발생하여 모델의 성능을 저하시키는 원인이 되었다. 추가로 활성화 함수로 sigmoid 함수를 사용함으로써 인간형 로봇의 낙상이 일어나는 시작 지점을 판별하는데 어려움이 존재하였다.

Table 2Fig. 7은 기존의 CNN 모델의 파라미터를 변경하여 구현한 인간형 로봇의 낙상 감지 CNN 모델의 구조를 나타낸다. 이미지 정규화를 위해 batch normalization layer를 추가하여 모델의 학습 성능을 향상시킨다. 활성화 함수를 sigmoid 함 수에서 softmax 함수로 변경함으로써 stand와 fall의 판별 확률 의 총합을 1이 되도록 하여 fall의 임계 각도에 대한 정확도를 향상시킨다. Epoch는 200회, patience는 30으로 설정한다. 또한 과적합을 방지하기 위해 전체적인 모델의 층을 증가시킨다.

Structure of a CNN Model according to parameters change of existing CNN model.

Fig. 7.

Structure of a CNN Model according to parameters change of existing CNN model.

Fig. 8은 CNN 모델의 정확도와 손실함수를 나타낸다. Epoch 가 증가함에 따라 정확도는 증가하고, 손실함수는 감소하는 것 을 확인할 수 있다. 모델 학습이 완료되면 가장 높은 정확도일 때의 CNN 모델을 call back 함수를 통해 호출한다. 실험은 2.2에서 사용했던 데이터셋을 사용하여 진행하였다. 실험 결과, 파라미터를 변경한 모델은 98.3%의 정확도를 보였으며, 2.2절의 모델보다 데이터를 확보하기 용이하고, 낙상 판별 정확도가 높은 것을 확인하였다.

Fig. 8.

Accuracy and loss of CNN model. (a): accuracy according to Epoch. (b): loss according to Epoch.


4. 고 찰

본 연구에서 제안하는 인간형 로봇의 낙상 판별 CNN 모델은 기존에 존재하는 인간형 로봇의 낙상 판별 모델들에 비해 데이터셋을 쉽게 구축할 수 있다. 또한 다양한 환경에서 높은 정확도로 인간형 로봇의 낙상을 판별할 수 있다는 장점이 있다. 하지만 MAX-E1 인간형 로봇만을 이용하여 데이터셋을 확보하였기 때문에 다른 인간형 로봇의 낙상을 판별할 수 있는지에 대한 모델의 성능 평가가 필요하다. 이를 보완하기 위해, 후속 연구에서는 다양한 형태의 인간형 로봇을 이용한 낙상 판별 연구를 수행할 계획이다.


5. 결 론

본 논문에서는 인간형 로봇의 낙상 판별을 위한 CNN 모델 기반의 여러 방법들을 제안하고, 각 방법의 정확도를 비교하였다. 또한 다양한 환경에서 획득한 인간형 로봇 이미지 데이터셋과 제안하는 CNN 모델을 이용하여 98.3%의 정확도로 인간형 로봇의 낙상을 판별하였다. 본 연구에서 제안한 인간형 로봇의 낙상 판별 방법을 활용하여 낙상 방지를 위한 인력을 대체하고, 낙상으로 발생할 수 있는 파손 및 피해를 줄이는데 기여할 것으로 기대한다.

Acknowledgments

본 논문은 정부(과학기술정보통신부)의 재원으로 한국 연구재단의 지원을 받아 수행된 연구임 (No.2022R1C1C101311512).

REFERENCES

  • S. Kajita, H. Hirukawa, K. Harada, and K. Yokoi, Introduction to humanoid robotics, Springer Berlin, Heidelberg, pp. 1-210, 2014. [https://doi.org/10.1007/978-3-642-54536-8_1]
  • H. M. Joe and J. H. Oh, “A robust balance-control framework for the terrain-blind bipedal walking of a humanoid robot on unknown and uneven terrain”, Sensors, Vol. 19, No. 19, pp. 4194(1)-4194(19), 2019. [https://doi.org/10.3390/s19194194]
  • H. M. Joe and J. H. Oh, “Balance recovery through model predictive control based on capture point dynamics for biped walking robot”, Rob. Auton. Syst., Vol. 105, pp. 1-10, 2018. [https://doi.org/10.1016/j.robot.2018.03.004]
  • H. M. Joe, “Locomotion control of a humanoid robot using a biped walking pattern based on physical interaction”, Journal of Institute of Control, Robotics and Systems, Vol. 27, No. 9, pp.668-675, 2021. [https://doi.org/10.5302/J.ICROS.2021.21.0075]
  • K. Ogata, K. Terada, and Y. Kuniyoshi, “Falling motion control for humanoid robots while walking”, Proc. of 2007 7th IEEE-RAS International Conference on Humanoid Robots, pp. 306-311, Pittsburgh, USA, 2007.
  • K. Ogata, K. Terada, and Y. Kuniyoshi, “Real-time selection and generation of fall damage reduction actions for humanoid robots”, Proc. of 2008 8th IEEE-RAS International Conference on Humanoid Robots, pp. 232-238, Daejeon, Korea (South), 2008. [https://doi.org/10.1109/ICHR.2008.4755950]
  • S. W. Park and H. M. Joe, “Mobile crane for path tracking of humanoid robots”, Journal of Institute of Control, Robotics and Systems, Vol. 29, No. 9, pp. 734-739, 2023. [https://doi.org/10.5302/J.ICROS.2023.23.0048]
  • R. Subburaman, D. Kanoulas, N. Tsagarakis, and J. Lee, “A survey on control of humanoid fall over”, Rob. Auton. Syst., Vol. 166, p. 104443, 2023. [https://doi.org/10.1016/j.robot.2023.104443]
  • X. Xinjilefu, S. Feng, and C. G. Atkeson, “Center of mass estimator for humanoids and its application in modelling error compensation, fall detection and prevention”, Proc. of 2015 IEEE-RAS 15th International Conference on Humanoid Robots (Humanoids), pp. 67-73, Seoul, Korea (South), 2015. [https://doi.org/10.1109/HUMANOIDS.2015.7363533]
  • R. Subburaman, D. Kanoulas, L. Muratore, N. G. Tsagarakis, and J. Lee, “Human inspired fall prediction method for humanoid robots”, Rob. Auton. Syst., Vol. 121, 2019. [https://doi.org/10.1016/j.robot.2019.103257]
  • R. Subburaman, J. Lee, D. G. Caldwell, and N. G. Tsagarakis, “Multi-Sensor based fall prediction method for humanoid robots”, Proc. of 2016 IEEE International Conference on Multisensor Fusion and Integration for Intelligent Systems (MFI), pp. 102-108, Baden-Baden, Germany, 2016. [https://doi.org/10.1109/MFI.2016.7849474]
  • M. Arfaq, R. S. Dewanto, and D. Pramadihanto, “Fall Detection in T-FLoW Humanoid Robot: V-REP Simulation”, Proc. of 2018 International Electronics Symposium on Engineering Technology and Applications (IES-ETA), pp. 224-228, Bali, Indonesia, 2018. [https://doi.org/10.1109/ELECSYM.2018.8615463]
  • T. Wu, Z. Yu, X. Chen, C. Dong, Z. Gao, and Q. Huang, “Falling prediction based on machine learning for biped robots”, J. Intell. Robot. Syst., Vol. 103, No. 68, pp. 1-14, 2021. [https://doi.org/10.1007/s10846-021-01506-y]
  • D. Gouaillier, V. Hugel, P. Blazevic, C. Kilner, J. Monceaux, P. Lafourcade, B. Marnier, J. Serre, and B. Maisonnier, “Mechatronic design of NAO humanoid”, Proc. of 2009 IEEE international conference on robotics and automation, pp. 769-774, Kobe, Japan, 2009. [https://doi.org/10.1109/ROBOT.2009.5152516]
  • C. Zampino, F. Biancospino, M. Brienza, F. Laus, G. Di Stefano, R. Romano, A. Pennisi, V. Suriani, and D. D. Bloisi, “Fall detection using NAO robot pose estimation in RoboCup SPL matches”, Proc. of the 9th Italian Workshop on Artificial Intelligence and Robotics, pp. 1-8, Udine, Italy, 2022.
  • D. Osokin, “Real-time 2d multi-person pose estimation on cpu: Lightweight openpose”, arXiv preprint arXiv:1811.12004, pp. 1-5, 2018. [https://doi.org/10.5220/0007555407440748]
  • K. O'Shea and R. Nash, “An introduction to convolutional neural networks”, arXiv preprint arXiv:1511.08458, pp. 1-11, 2015.
  • S. W. Park, S. J. Ha, and H. M. Joe, “Fall detection of humanoid robot using CNN”, Proc. of 2023 The 38th ICROS Annual Conference (ICROS 2023), pp. 892-893, Samcheok, Korea (South), 2023.
  • A. Krizhevsky, I. Sutskever, and G. E. Hinton, “Imagenet classification with deep convolutional neural networks”, Commun. ACM, Vol. 60, No. 6, pp. 84-90, 2017. [https://doi.org/10.1145/3065386]

Fig. 1.

Fig. 1.
Standing posture of a humanoid robot.

Fig. 2.

Fig. 2.
Falling posture of a humanoid robot.

Fig. 3.

Fig. 3.
Structure of CNN model for falling detection of a humanoid robot.

Fig. 4.

Fig. 4.
Detection result of standing posture of a humanoid robot. (a): standing posture data. (b): detection result graph.

Fig. 5.

Fig. 5.
Detection result of falling posture of a humanoid robot. (a): falling posture data. (b): detection result graph.

Fig. 6.

Fig. 6.
Structure of CNN model for falling detection of a humanoid robot.

Fig. 7.

Fig. 7.
Structure of a CNN Model according to parameters change of existing CNN model.

Fig. 8.

Fig. 8.
Accuracy and loss of CNN model. (a): accuracy according to Epoch. (b): loss according to Epoch.

Table 1.

Structure of CNN model for falling detection of a humanoid robot.

Layer Output Shape
Convolution 1 (None, 84, 84, 32)
Max Pooling 1 (None, 42, 42, 32)
Convolution 2 (None, 42, 42, 64)
Max Pooling 2 (None, 21, 21, 64)
Flatten (None, 28224)
Dense 1 (None, 100)
Dropout (None, 100)
Dense 2 (None, 2)

Table 2.

Structure of a CNN Model according to parameters change of existing CNN model.

Layer Output Shape
Convolution 1 (None, 84, 84, 32)
Batch Normalization 1 (None, 84, 84, 32)
Dropout 1 (None, 84, 84, 32)
Max Pooling 1 (None, 42, 42, 32)
Convolution 2 (None, 42, 42, 64)
Batch Normalization 2 (None, 42, 42, 64)
Dropout 2 (None, 42, 42, 64)
Max Pooling 2 (None, 21, 21, 64)
Convolution 3 (None, 21, 21, 64)
Batch Normalization 3 (None, 21, 21, 64)
Dropout 3 (None, 21, 21, 64)
Max Pooling 3 (None, 10, 10, 64)
Flatten (None, 6400)
Batch Normalization 4 (None, 6400)
Dense 1 (None, 100)
Dropout 4 (None, 100)
Batch Normalization 5 (None, 100)
Dense 2 (None, 2)