Mobile QR Code QR CODE : The Transactions P of the Korean Institute of Electrical Engineers

  1. (Dept. of Electronics and Computer Engineering, Hanyang University, Korea E-mail:swgu@hanyang.ac.kr)



Networked Control System, Self-Balancing Robot, Public Cloud, ROS2, Container, Docker, Kubernetes, Google Cloud Platform

1. μ„œ λ‘ 

λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ(Networked Control System)은 톡신 λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ œμ–΄ λŒ€μƒ λͺ¨λΈκ³Ό 원격 μ œμ–΄κΈ°λ₯Ό μ—°κ²°ν•˜μ—¬ 원격 μ œμ–΄κΈ°κ°€ λͺ¨λΈμ˜ μ„Όμ„œκ°’μ„ μˆ˜μ‹ ν•˜κ³  μ œμ–΄ 연산을 μˆ˜ν–‰ν•œ ν›„ μ œμ–΄ λͺ…령을 λͺ¨λΈμ— μ „μ†‘ν•˜λŠ” μΌμ’…μ˜ 폐루프 μ œμ–΄ μ‹œμŠ€ν…œμ΄λ‹€ [1]. ν΄λΌμš°λ“œ 기술의 λ°œμ „μœΌλ‘œ λ„€νŠΈμ›Œν¬ μ œμ–΄κΈ°λ₯Ό ν΄λΌμš°λ“œ μƒμ—μ„œ κ΅¬ν˜„ν•˜μ—¬ μ‹€μ‹œκ°„ μ œμ–΄λ₯Ό μ‹€ν˜„ν•˜κ³  ν΄λΌμš°λ“œλ₯Ό ν™œμš©ν•˜μ—¬ λ‘œλ΄‡κ³Ό μžλ™ν™” μž₯λΉ„λ₯Ό μ—°κ²°ν•˜λŠ” 연ꡬ가 보고되고 μžˆλ‹€ [2]-[4].

이 λ•Œ, ν΄λΌμš°λ“œ μ μš©μ„ μœ„ν•œ 핡심 기술 쀑 ν•˜λ‚˜λŠ” 가상화 기술둜, 컴퓨터 μžμ›μ„ κ³΅μœ ν•˜μ§€λ§Œ κΈ°λŠ₯λ³„λ‘œ 독립적인 운영체제λ₯Ό μœ μ§€ν•  수 μžˆλŠ” 도컀 μ»¨ν…Œμ΄λ„ˆ(Docker Container) 방식이 μžˆλ‹€. μ΄λŸ¬ν•œ 도컀 μ»¨ν…Œμ΄λ„ˆ κΈ°μˆ μ€ λ‘œμ»¬μ—μ„œλ§Œ μš΄μ˜ν–ˆλ˜ λ§Žμ€ 기술과 μ‘μš©λ“€μ„ ν΄λΌμš°λ“œμ—μ„œ κ΅¬ν˜„ν•˜μ—¬ λΆ„μ‚°μ²˜λ¦¬, 원격 관리, μžλ™ μ—…λ°μ΄νŠΈ, μž₯μ•  ν—ˆμš©(Fault Tolerance) λ“±μ˜ μžλ™ν™” μ„œλΉ„μŠ€λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•œλ‹€ [5].

λ³Έ λ…Όλ¬Έμ—μ„œλŠ” ν΄λΌμš°λ“œ κΈ°μˆ μ„ ν™œμš©ν•œ μ‹€μ‹œκ°„ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ„ μ œμ•ˆν•˜κ³ , 퍼블릭 ν΄λΌμš°λ“œ(Public Cloud) 기반의 μ‹€μ œ ν™˜κ²½κ³Ό λ‘œλ΄‡ μ‹œμŠ€ν…œμ— μ μš©ν•˜μ—¬ κ΅¬ν˜„ν•œ ν›„ μ„±λŠ₯을 κ²€μ¦ν•œλ‹€. μ„±λŠ₯을 κ²€μ¦ν•˜κΈ° μœ„ν•œ μ œμ–΄ λŒ€μƒ λͺ¨λΈλ‘œ 2개의 바퀴(Wheel)을 κ°–λŠ” μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡(Two-Wheeled Self-Balancing Robot)을 μ œμž‘ν•œ ν›„ μ œμ•ˆν•œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ˜ ꡬ동 μ„±λŠ₯을 κ²€μ¦ν•œλ‹€.

μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ˜ μžμ„Έ μ œμ–΄λ₯Ό μœ„ν•΄μ„œλŠ” λΉ„λ‘€λ―ΈλΆ„ μ œμ–΄κΈ°λ₯Ό μ‘°μ •ν•˜μ—¬ μ μš©ν•˜λ©°, ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ 을 μ‹€ν–‰μ‹œν‚€κ³  μš΄μ˜ν•˜λŠ” ν”Œλž«νΌμœΌλ‘œλŠ” μΏ λ²„λ„€ν‹°μŠ€λ₯Ό μ±„νƒν•œλ‹€ [6]. 이λ₯Ό 톡해 ν–₯ν›„ μ„œλΉ„μŠ€λ‘œμ„œμ˜ μ œμ–΄κΈ° (Control as a Service)λ₯Ό κ³ λ €ν•  수 있으며, μž¬μ‚¬μš©μ„± 및 μ œμ–΄κΈ° 쑰정도 맀우 μš©μ΄ν•˜κ²Œ ν•  수 μžˆμ„ 것이닀 [7].

ν•œνŽΈ, 퍼블릭 ν΄λΌμš°λ“œμ™€ λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ œμ–΄λ˜λŠ” μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ—μ„œ μ•ˆμ •μ„± 및 μ„±λŠ₯에 영ν–₯을 쀄 수 μžˆλŠ” μ£Όμš” 인자 쀑 ν•˜λ‚˜λŠ” 지연(Latency)이닀. 특히, λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ†‘μˆ˜μ‹ λ˜λŠ” μ„Όμ„œ μΈ‘μ •κ°’ 및 μ œμ–΄ λͺ…령은 64 λ°”μ΄νŠΈ(byte) 미만으둜 λŒ€μ—­ν­μ— λ―ΈμΉ˜λŠ” 영ν–₯은 λ¬΄μ‹œν•  수 μžˆλ‹€. λ”°λΌμ„œ, λ³Έ λ…Όλ¬Έμ—μ„œλŠ” 지연을 μ„±λŠ₯ μ§€ν‘œμ˜ μ£Όμš” 인자둜 μ„€μ •ν•˜κ³  μ‹€ν—˜μ„ μ§„ν–‰ν•œλ‹€. 이λ₯Ό 톡해 퍼블릭 ν΄λΌμš°λ“œ 및 λ„€νŠΈμ›Œν¬μ˜ 지연에 λ―Όκ°ν•œ μ œμ–΄ μ‹œμŠ€ν…œμ„ μ‹€μ¦ν•˜μ—¬ ν΄λΌμš°λ“œ 기반 μ‹€μ‹œκ°„ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ ꡬ좕이 κ°€λŠ₯함을 보인닀. λ³Έ λ…Όλ¬Έμ—μ„œ μ–»μ–΄μ§€λŠ” 싀증 κ²°κ³Όλ₯Ό λ°”νƒ•μœΌλ‘œ ν–₯ν›„ 지연에 λŒ€ν•˜μ—¬ λ‹€μ–‘ν•œ μ œμ–΄κΈ° 섀계 기법을 ν΄λΌμš°λ“œ 기반 μ œμ–΄ μ‹œμŠ€ν…œμ— λ„μž…ν•  수 μžˆμ„ 것이닀.

λ³Έ λ…Όλ¬Έμ˜ ꡬ성은 λ‹€μŒκ³Ό κ°™λ‹€. 2μž₯μ—μ„œλŠ” μ œμ–΄ λŒ€μƒμ΄ λ˜λŠ” μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ˜ λͺ¨λΈλ§ 및 μ œμž‘ν•œ μ‹œμŠ€ν…œ ꡬ성에 λŒ€ν•˜μ—¬ μ„€λͺ…ν•˜κ³ , 3μž₯μ—μ„œ ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ„ μ œμ•ˆν•œλ‹€. 4μž₯μ—μ„œλŠ” μ‹€ν—˜μ„ 톡해 ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ 싀증 κ²°κ³Όλ₯Ό 보이며, 5μž₯μ—μ„œ 결둠을 λ§ΊλŠ”λ‹€.

2. μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡ λͺ¨λΈλ§ 및 μ‹œμŠ€ν…œ ꡬ성

2.1 λͺ¨λΈ μ œμž‘ 및 μ œμ›

λ³Έ λ…Όλ¬Έμ—μ„œλŠ” μ œμ•ˆν•˜λŠ” μ‹œμŠ€ν…œμ— λŒ€ν•˜μ—¬ μ‹€ν˜„ κ°€λŠ₯성에 λŒ€ν•œ 싀증을 보이기 μœ„ν•΄μ„œ λ¨Όμ €, μ‹€μ œ λ‘œλ΄‡μ„ μ œμž‘ν•œλ‹€. κ·Έλ¦Ό 1μ—λŠ” μ œμž‘ν•œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡ λͺ¨λΈκ³Ό μ‹€μ œ κ΅¬ν˜„ν•œ μ‹€λ¬Ό 사진을 λ‚˜νƒ€λ‚΄μ—ˆλ‹€. κ·Έλ¦Ό 1κ³Ό 같이 μ œμž‘λœ λ‘œλ΄‡μ€ 바퀴, λͺ¨ν„° ꡬ동뢀(Driver), μ„Όμ„œλΆ€, 배터리, μ‘μš© ν”„λ‘œμ„Έμ„œ (Application Processor) λ“±μœΌλ‘œ κ΅¬μ„±λ˜λ©°, μ•Œλ£¨λ―ΈλŠ„ μƒ·μ‹œ(Chassis)둜 전체 μ‘°λ¦½ν•œ λ‘œλ΄‡μ˜ μœ λ™μ΄ 없도둝 κ³ μ •ν•˜μ˜€λ‹€.

κ·Έλ¦Ό 1. μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡

Fig. 1. Self-Balancing Robot

../../Resources/kiee/KIEEP.2022.71.3.169/fig1.png

μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡ λͺ¨λΈλ§ 및 μ œμ–΄λŠ” λ§Žμ€ λ…Όλ¬Έμ—μ„œ 닀루어져 μ™”λŠ”λ° λ³Έ λ…Όλ¬Έμ—μ„œλŠ” [8]μ—μ„œ μ œμ•ˆν•œ 방법을 기반으둜 μˆ˜ν•™μ  λͺ¨λΈλ§μ„ μˆ˜ν–‰ν•œλ‹€. λ³Έ λ…Όλ¬Έμ—μ„œ μ‹€ν—˜μ— μ‚¬μš©ν•˜κΈ° μœ„ν•˜μ—¬ μ œμž‘ν•œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ˜ ν•˜λ“œμ›¨μ–΄ 기ꡬ 사양을 ν‘œ 1에 μ •λ¦¬ν•˜μ—¬ λ‚˜νƒ€λ‚΄μ—ˆλ‹€. μ‹€μ œ κ΄€μ„±κ°’ (Inertia value)은 츑정이 λΆˆκ°€ν•˜μ—¬ [8]의 λ‚΄μš©μ„ μ°Έμ‘°ν•˜μ˜€μœΌλ©°, μ œμ–΄κΈ°μ˜ 비둀이득과 미뢄이득을 μ‘°μ •ν•˜μ—¬ λ³΄μ •ν•˜λŠ” 방법을 μ‚¬μš©ν•˜μ˜€λ‹€.

ν‘œ 1 μ œμž‘λœ μ£Όμš” ν•˜λ“œμ›¨μ–΄ 기ꡬ 사양

Table 1 Main Specifications of Hardware and Fabrication

기호

κ°’

μ„€λͺ…

λ‹¨μœ„

ms

14.3

λͺΈμ²΄ 무게

kg

d

0.4

μΆ•κ³Ό λ¬΄κ²Œμ€‘μ‹¬ 거리

m

g

9.8

쀑λ ₯가속도

m/sec2

mc

2.35

휠 무게

kg

I2

3.679Β·10-3

N3 λ°©ν–₯ κ΄€μ„±

kgΒ·m2

I3

28.07Β·10-3

N2 λ°©ν–₯ κ΄€μ„±

kgΒ·m2

R

0.0825

휠 λ°˜μ§€λ¦„

m

L

0.18

바퀴 사이 거리/2

m

2.2 ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ ꡬ성

ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ λŒ€μƒμœΌλ‘œ μ œμž‘ν•œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡ μ‹œμŠ€ν…œμ˜ ꡬ성은 κ·Έλ¦Ό 2 와 κ°™λ‹€. λ¨Όμ €, λ‘œλ΄‡μ˜ μœ„μΉ˜ 츑정을 μœ„ν•΄μ„œλŠ” [9]와 같이 κ΄€μ„± μΈ‘μ • μž₯치 (Inertial Measurement Unit: IMU)λ₯Ό μž₯μ°©ν•˜μ—¬ 직각을 κΈ°μ€€μœΌλ‘œ κΈ°μšΈμ–΄μ§„ Pitch (각도)와 Pitch rate (각속도) 값을 μΈ‘μ •ν•˜κ³ , 이λ₯Ό λ²”μš©μœΌλ‘œ 많이 μ‚¬μš©ν•˜λŠ” 아두이노 λ©”κ°€ (Arduino Mega)λ₯Ό ν†΅ν•˜μ—¬ 츑정값을 μˆ˜μ§‘ν•œλ‹€. μ΄λ ‡κ²Œ μΈ‘μ •ν•˜κ³  νšλ“λœ 값을 톡신 λ„€νŠΈμ›Œν¬λ₯Ό 톡해 퍼블릭 ν΄λΌμš°λ“œ 상에 μžˆλŠ” μ œμ–΄κΈ°μ— μ†‘μ‹ ν•˜μ—¬ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ— ν”Όλ“œλ°± λ˜μ–΄ μž…λ ₯될 μ œμ–΄ λͺ…령을 κ³„μ‚°ν•œλ‹€.

이 λ•Œ, λͺ¨ν„° 2개λ₯Ό 직접 κ΅¬λ™ν•˜λŠ” μ œμ–΄ λ³΄λ“œμ—λŠ” 56VκΉŒμ§€ μ§€μ›ν•˜λŠ” ODriver v3.6 을 μ‚¬μš©ν•˜μ˜€λ‹€ [10]. μ œμž‘λœ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ€ ν΄λΌμš°λ“œ μƒμ˜ 원격 μ œμ–΄ μ‹œμŠ€ν…œμœΌλ‘œ λΆ€ν„° μ œμ–΄ μž…λ ₯을 μˆ˜μ‹ ν•˜κ³ , 이λ₯Ό 젯슨 μžλΉ„μ–΄ (Jetson Xavier)λ₯Ό 톡해 직접 λͺ¨ν„° ꡬ동뢀에 μž…λ ₯ν•˜μ—¬ λͺ¨ν„°λ₯Ό μ œμ–΄ν•œλ‹€ [11].

ν•œνŽΈ, ν•˜λ“œμ›¨μ–΄ μš΄μš©μ„ μœ„ν•œ μ†Œν”„νŠΈμ›¨μ–΄ ꡬ성은 λ‹€μŒκ³Ό κ°™λ‹€. λ¨Όμ €, μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ˜ λ‘λ‡ŒλΌ ν•  수 μžˆλŠ” μ‘μš© ν”„λ‘œμ„Έμ„œμ˜ μš΄μš©μ²΄μ œλŠ” λ²”μš©μ„±μ„ μœ„ν•˜μ—¬ λ¦¬λˆ…μŠ€ μš°λΆ„νˆ¬ (Ubuntu) 20.04 λ₯Ό μ‚¬μš©ν•˜μ˜€λ‹€. μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡κ³Ό μ„œλ²„ μ‚¬μ΄μ˜ μ„Όμ„œ λ©”μ‹œμ§€ μ†‘μˆ˜μ‹ , μ œμ–΄ λͺ…λ Ήμ–΄ μ†‘μˆ˜μ‹ μ€ ROS2 ν”Œλž«νΌμ„ μ‚¬μš©ν•˜μ˜€μœΌλ©° [12], μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡κ³Ό ν΄λΌμš°λ“œ μ„œλ²„λŠ” 일반 μ™€μ΄νŒŒμ΄(WiFi)λ₯Ό 톡해 κ³΅μ€‘λ§μœΌλ‘œ μ—°κ²°λ˜λ„λ‘ μ„€κ³„ν•˜μ˜€λ‹€. μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ μ—°κ²°λœ μ„œλΈŒ λ„€νŠΈμ›Œν¬μ™€ ν΄λΌμš°λ“œ μ„œλ²„κ°€ μ—°κ²°λœ μ„œλΈŒ λ„€νŠΈμ›Œν¬λŠ” μ„œλ‘œ λ‹€λ₯Έ λ„€νŠΈμ›Œν¬λ‘œμ„œ 일반적으둜 ROS2 톡신을 ν•  수 μ—†λ‹€. 이λ₯Ό μœ„ν•΄ λ³Έ λ…Όλ¬Έμ—μ„œλŠ” μ˜€ν”ˆμ†ŒμŠ€μΈ ν΄λΌμš°λ“œ λΈŒλ¦¬μ§€(Cloud Bridge)λ₯Ό μ΄μš©ν•˜μ—¬ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ μ—°κ²°λœ μ„œλΈŒ λ„€νŠΈμ›Œν¬μ™€ ν΄λΌμš°λ“œ μ„œλ²„κ°€ μ—°κ²°λœ μ„œλΈŒ λ„€νŠΈμ›Œν¬ 간에 ROS2 λ©”μ‹œμ§€λ₯Ό μ†‘μˆ˜μ‹  ν•  수 μžˆλ„λ‘ κ΅¬ν˜„ν•˜μ˜€λ‹€ [13].

κ·Έλ¦Ό 2. μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡ μ‹œμŠ€ν…œ ꡬ성도

Fig. 2. Block Diagram of Self-Balancing Robot System

../../Resources/kiee/KIEEP.2022.71.3.169/fig2.png

3. ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ κ΅¬ν˜„

3.1 μ œμ–΄κΈ° κ΅¬ν˜„

ν΄λΌμš°λ“œ μƒμ˜ λΉ„λ‘€λ―ΈλΆ„ μ œμ–΄κΈ°λ₯Ό κ³ λ €ν•œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ˜ 폐루프 ν”Όλ“œλ°± μ œμ–΄ μ‹œμŠ€ν…œμ€ κ·Έλ¦Ό 3κ³Ό 같이 λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€. κ·Έλ¦Ό 3μ—μ„œ κΈ°μ€€ μž…λ ₯ μ‹ ν˜Έ r(t)λŠ” 0 으둜 κ°€μ •ν•˜μ—¬ λ‘œλ΄‡μœΌλ‘œ μΈ‘μ •λ˜μ–΄ 받은 μ„Όμ„œκ°’μ„ κ·ΈλŒ€λ‘œ 였차(error)둜 κ°€μ •ν•˜κ³  비둀이득(Kp) κ°’κ³Ό 미뢄이득(Kd) 값을 μ‘°μ •ν•œλ‹€. λ˜ν•œ, 퍼블릭 ν΄λΌμš°λ“œμ—μ„œ μ œμ–΄κΈ°λ₯Ό μš΄μ˜ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같은 두가지λ₯Ό μΆ”κ°€λ‘œ κ΅¬ν˜„ν•œλ‹€. 첫 λ²ˆμ§ΈλŠ” μΏ λ²„λ„€ν‹°μŠ€ μ‹œμŠ€ν…œμ„ 직접 퍼블릭 ν΄λΌμš°λ“œμ— κ΅¬μΆ•ν•˜κ³ , 두 λ²ˆμ§ΈλŠ” 여기에 μ œμ–΄κΈ°λ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ μš°λΆ„νˆ¬ 20.04λ₯Ό 운영체제둜 ν•˜κ³  Foxyλ₯Ό ROS2 λ²„μ „μœΌλ‘œ ν•˜μ—¬ μ œμ–΄κΈ° λͺ¨λ“ˆμ„ 도컀 μ»¨ν…Œμ΄λ„ˆ μ΄λ―Έμ§€λ‘œ κ΅¬μ„±ν•œλ‹€. μ œμ–΄κΈ°λ₯Ό ν¬ν•¨ν•œ μ œμ–΄ μ‹œμŠ€ν…œμ— λŒ€ν•΄μ„œλŠ” λ‹€μŒ μ ˆμ—μ„œ 보닀 μƒμ„Ένžˆ 닀루도둝 ν•œλ‹€.

κ·Έλ¦Ό 3. ν΄λΌμš°λ“œ 기반 폐루프 ν”Όλ“œλ°± μ œμ–΄ μ‹œμŠ€ν…œ ꡬ성도

Fig. 3. Block Diagram of Cloud-based Closed-loop Feedback Control System

../../Resources/kiee/KIEEP.2022.71.3.169/fig3.png

3.2 ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ

κ·Έλ¦Ό 4μ—λŠ” ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ˜ λŒ€λž΅μ μΈ ꡬ성도λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. κ·Έλ¦Ό 4μ—μ„œ 퍼블릭 ν΄λΌμš°λ“œλ‘œ ꡬ글 ν΄λΌμš°λ“œ ν”Œλž«νΌ (Google Cloud Platform: GCP)을 ν™œμš©ν•˜μ˜€μœΌλ©°, ν•΄λ‹Ή ν΄λΌμš°λ“œ μ„œλ²„μ— μ»΄ν“¨νŠΈ μΈμŠ€ν„΄μŠ€ (Compute Instance)λ₯Ό μƒμ„±ν•˜μ—¬ 직접 μΏ λ²„λ„€ν‹°μŠ€ ν”Œλž«νΌμ„ κ΅¬μΆ•ν•œλ‹€.

κ·Έλ¦Ό 4. ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ ꡬ성도

Fig. 4. Block Diagram of Cloud-based Networked Control System

../../Resources/kiee/KIEEP.2022.71.3.169/fig4.png

κ·Έλ¦Ό 5μ—λŠ” ꡬ글 ν΄λΌμš°λ“œμ˜ μ»΄ν“¨νŠΈ μΈμŠ€ν„΄μŠ€λ₯Ό κ΅¬μ„±ν•˜κ³ , 이λ₯Ό μΏ λ²„λ„€ν‹°μŠ€λ‘œ κ΅¬μΆ•ν•œ κ²°κ³Όλ₯Ό μΊ‘μ²˜ν•˜μ—¬ λ‚˜νƒ€λ‚΄μ—ˆλ‹€. κ·Έλ¦Ό 5μ—μ„œ controller-1 은 λ§ˆμŠ€ν„° λ…Έλ“œ(Master Node)둜 μΏ λ²„λ„€ν‹°μŠ€ λ‚΄λΆ€ μ»¨ν…Œμ΄λ„ˆ 운영 (Orchestration)κ³Ό μ™ΈλΆ€ 톡신을 κ΄€λ¦¬ν•˜λŠ” λ§ˆμŠ€ν„° 역할을 ν•˜λ©°, worker-1은 μ›Œμ»€ λ…Έλ“œ(Worker Node)둜 μΏ λ²„λ„€ν‹°μŠ€μ—μ„œ μ‹€μ œ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•œλ‹€. λ§ˆμŠ€ν„° λ…Έλ“œμ™€ μ›Œμ»€ λ…Έλ“œλŠ” ν΄λΌμš°λ“œ ν”Œλž«νΌ λ‚΄μ—μ„œ 독립적인 μ»΄ν“¨νŒ… μžμ›μœΌλ‘œ 각각의 인터넷 μ£Όμ†Œ (Internal IP)λ₯Ό ν΄λΌμš°λ“œ ν”Œλž«νΌμœΌλ‘œλΆ€ν„° ν• λ‹Ή λ°›λŠ”λ‹€.

μ„±λŠ₯ 검증 μ‹€ν—˜μ„ μœ„ν•œ μ»΄ν“¨νŒ… μžμ› 2개의 ν•˜λ“œμ›¨μ–΄ 사양은 쀑앙 μ—°μ‚° 처리 μž₯치의 μ½”μ–΄ 2개, μ†λ„λŠ” 2.2GHz, RAM은 8GB 에 ν•΄λ‹Ήν•˜λŠ” λ¨Έμ‹  νƒ€μž…(Machine type)으둜 e2-standard-2 λ₯Ό μ„€μ •ν•˜μ˜€λ‹€. λ˜ν•œ, μ»΄ν“¨νŒ… μžμ›μ˜ 지역적인 μœ„μΉ˜λŠ” ꡬ글 ν΄λΌμš°λ“œ μ„œλΉ„μŠ€ 지역(Zone) λ‚΄μ—μ„œ μ‹€ν—˜ν•˜λŠ” κ³³κ³Ό κ°€μž₯ κ°€κΉŒμš΄ μ„œμšΈ 지역을 μ„ μ •ν•˜μ—¬ ν•΄λ‹Ή 지역인 asia-northeast3-a 둜 μ„€μ •ν•œλ‹€.

κ·Έλ¦Ό 5. ꡬ글 ν΄λΌμš°λ“œ ν”Œλž«νΌμ˜ μΏ λ²„λ„€ν‹°μŠ€λ₯Ό κ΅¬μ„±ν•˜λŠ” μ»΄ν“¨νŠΈ μΈμŠ€ν„΄μŠ€

Fig. 5. Compute Instance on Google Cloud Platform for Kubernetes

../../Resources/kiee/KIEEP.2022.71.3.169/fig5.png

κ·Έλ¦Ό 6μ—λŠ” ꡬ글 ν΄λΌμš°λ“œ μ»΄ν“¨νŒ… μžμ› μƒμ—μ„œ μš΄μ˜λ˜λŠ” λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ˜ μ†Œν”„νŠΈμ›¨μ–΄ ꡬ쑰 블둝도λ₯Ό λ‚˜νƒ€λ‚΄μ—ˆλŠ”λ° κ·Έλ¦Ό 6μ—μ„œ ν΄λΌμš°λ“œ 기반 μ œμ–΄ μ‹œμŠ€ν…œ μš΄μ˜μ„ μœ„ν•΄ ν•„μš”ν•œ ꡬ성은 λ‹€μŒκ³Ό κ°™λ‹€. μ»¨ν…Œμ΄λ„ˆ λ ˆμ§€μŠ€νŠΈλ¦¬λŠ” μ œμ–΄ μ‹œμŠ€ν…œμ˜ μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό λ²„μ „λ³„λ‘œ μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•˜λ©°, μΏ λ²„λ„€ν‹°μŠ€ ν”Œλž«νΌμ—μ„œ μ§€μ •λœ λ²„μ „μ˜ λ‹€μš΄λ‘œλ“œ μš”μ²­μ— μ‘λ‹΅ν•˜μ—¬ 버전을 μ„ νƒν•˜μ—¬ λ‹€μš΄λ‘œλ“œ ν•  수 μžˆλ„λ‘ ν•œλ‹€. μΏ λ²„λ„€ν‹°μŠ€ ν”Œλž«νΌμ€ λ§ˆμŠ€ν„° λ…Έλ“œμ™€ μ›Œμ»€ λ…Έλ“œλ‘œ κ΅¬μ„±λ˜λ©°, λ§ˆμŠ€ν„° λ…Έλ“œλŠ” μ œμ–΄κΈ° μ»¨ν…Œμ΄λ„ˆμ™€ ν΄λΌμš°λ“œ λΈŒλ¦¬μ§€ μ»¨ν…Œμ΄λ„ˆμ˜ μ‹œμž‘, μ’…λ£Œ, μƒνƒœ 관리 등을 μˆ˜ν–‰ν•˜κ³  μ œμ–΄κΈ° 이미지와 ν΄λΌμš°λ“œ λΈŒλ¦¬μ§€ 이미지λ₯Ό μ§€μ •λœ μ›Œμ»€ λ…Έλ“œμ— μ‹€ν–‰ν•˜λ„λ‘ μš”μ²­ν•œλ‹€. μ›Œμ»€ λ…Έλ“œλŠ” λ§ˆμŠ€ν„° λ…Έλ“œμ˜ μš”μ²­μ— λ”°λΌμ„œ μ œμ–΄κΈ°μ™€ ν΄λΌμš°λ“œ λΈŒλ¦¬μ§€ 이미지λ₯Ό μ»¨ν…Œμ΄λ„ˆ λ ˆμ§€μŠ€νŠΈλ¦¬λ‘œ λΆ€ν„° λ‹€μš΄ λ°›μ•„ 직접 μ‹€ν–‰ν•˜λŠ” 역할을 ν•œλ‹€.

이후, 이듀 μ»¨ν…Œμ΄λ„ˆκ°€ μ‹€ν–‰λ˜λ©΄μ„œ, 각각 μ œμ–΄κΈ° νŒŒλ“œ (Pod)와 ν΄λΌμš°λ“œ λΈŒλ¦¬μ§€ νŒŒλ“œκ°€ μƒμ„±λ˜κ³ , 각 νŒŒλ“œλŠ” λ‚΄λΆ€ 인터넷 μ£Όμ†Œ (Pod IP)λ₯Ό λΆ€μ—¬λ°›μœΌλ©°, 톡신을 μœ„ν•΄ 인터넷 μ£Όμ†Œλ₯Ό μ‚¬μš©ν•œλ‹€. λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” μΏ λ²„λ„€ν‹°μŠ€ 내뢀와 외뢀에 각각 인터넷 μ£Όμ†Œμ™€ 포트λ₯Ό λΆ€μ—¬ν•˜μ—¬, λ‚΄λΆ€ 데이터 솑신과 μ™ΈλΆ€ 데이터 μˆ˜μ‹ μ„ ν†΅μ œν•˜λ©°, μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡κ³Ό 직접 ν†΅μ‹ ν•œλ‹€. 특히, 직접 데이터λ₯Ό μ²˜λ¦¬ν•˜μ—¬ μ œμ–΄κΈ°μ— ROS2 λ©”μ‹œμ§€λ‘œ μ†‘μˆ˜μ‹ ν•˜λŠ” κΈ°λŠ₯은 ν΄λΌμš°λ“œ λΈŒλ¦¬μ§€μ—μ„œ λ‹΄λ‹Ήν•˜λ©°, μ΄λ•Œ, μ„Όμ„œμ™€ μ œμ–΄ λͺ…λ Ήμ˜ 데이터 흐름은 μ œμ–΄κΈ° – ν΄λΌμš°λ“œ λΈŒλ¦¬μ§€ – λ‘œλ“œ λ°ΈλŸ°μ„œ – μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡κ³Ό 같은 흐름을 κ°–λŠ”λ‹€.

κ·Έλ¦Ό 6. 퍼블릭 ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ 상세 ꡬ쑰도

Fig. 6. Detailed Block Diagram of Public Cloud-based Networked Control System

../../Resources/kiee/KIEEP.2022.71.3.169/fig6.png

4. μ„±λŠ₯ μ‹€ν—˜ 및 κ²°κ³Ό

4.1 μ‹€ν—˜ 쑰건 및 방법

λ³Έ μ ˆμ—μ„œλŠ” μ œμ•ˆν•œ 방식에 λŒ€ν•˜μ—¬ μ œμž‘ν•œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ„ λŒ€μƒμœΌλ‘œ 상세 μ‹€ν—˜ λ‚΄μš©κ³Ό 결과에 λŒ€ν•΄ κΈ°μˆ ν•œλ‹€. λ³Έ λ…Όλ¬Έμ—μ„œ μ œμž‘ν•œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ€ μ™€μ΄νŒŒμ΄λ₯Ό ν™œμš©ν•˜μ—¬ 곡쀑망에 μ—°κ²°ν•˜μ—¬, μΏ λ²„λ„€ν‹°μŠ€ λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ μ œκ³΅ν•œ 인터넷 μ£Όμ†Œμ™€ 포트λ₯Ό 톡해 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ— μ ‘μ†ν•œλ‹€.

κ·Έλ¦Ό 7μ—λŠ” μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡κ³Ό μ œμ–΄ μ‹œμŠ€ν…œ μ‚¬μ΄μ˜ μ„Όμ„œ 및 μ œμ–΄ λͺ…λ Ήμ–΄ μ†‘μˆ˜μ‹  과정에 λŒ€ν•œ μ‹œκ°„ 절차λ₯Ό λ‚˜νƒ€λ‚΄μ—ˆλ‹€. μ—¬κΈ°μ„œ, μ œμ–΄κΈ°μ—μ„œ μ„Όμ„œκ°’μ„ λ°›μ•„ μ œμ–΄ λͺ…령을 κ³„μ‚°ν•˜λŠ” μ‹œκ°„ csn – can 은 CPU, RAM λ“±μ˜ ν΄λΌμš°λ“œ μ—°μž₯ μžμ›μ„ μΆ©λΆ„νžˆ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— λ„€νŠΈμ›Œν¬μ˜ μ‹œκ°„ 지연에 λΉ„ν•˜μ—¬ 맀우 μž‘μ•„μ„œ μ‹€ν—˜μ— 큰 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ”λ‹€κ³  κ°€μ •ν•œλ‹€. κ·Έλ¦Ό 7μ—μ„œ 솑신츑 μ„Όμ„œκ°’μ„ μΈ‘μ •ν•΄μ„œ μ œμ–΄κΈ°λ‘œ μ†‘μ‹ ν•˜λŠ” μ£ΌκΈ° rs2 – rs1 은 10ms (100Hz) 이며, 이것은 μ‹€μ œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ˜ μ„Όμ„œμ—μ„œ ν”ΌμΉ˜κ°’μ„ μΈ‘μ •ν•˜λŠ” 주기와 같도둝 μ„€μ •ν•œλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ ν΄λΌμš°λ“œ μƒμ˜ μ œμ–΄κΈ°λ„ rc2 – rc1 의 μ£ΌκΈ°λ₯Ό κ°–κ³  있으며, μ‹€ν—˜μ—μ„œλŠ” μ„Όμ„œ 주기와 같이 10ms 둜 μ„€μ •ν•œλ‹€. κ·Έλ¦Ό 7μ—μ„œ ra1 > rs2 인 κ²½μš°μ—λŠ”, λ‘œλ΄‡μ—μ„œ μ„Όμ„œκ°’μ„ μΈ‘μ •ν•˜μ—¬ 원격 μ œμ–΄κΈ°μ— μ†‘μ‹ ν•˜κ³ , 그에 ν•΄λ‹Ήν•˜λŠ” μ œμ–΄ λͺ…령을 μˆ˜μ‹ ν•˜λŠ” μ™•λ³΅μ‹œκ°„ (Round Trip Time)이 10ms λ₯Ό μ΄ˆκ³Όν•œλ‹€λŠ” μ˜λ―Έμ΄λ‹€. μ΄λŸ¬ν•œ λ„€νŠΈμ›Œν¬ 지연이 μ§€μ†λ˜μ–΄ λˆ„μ λœλ‹€λ©΄, λ‘œλ΄‡μ˜ λ™μž‘μ΄ λΆˆμ•ˆμ •ν•΄μ§€κ³ , 회볡 λΆˆκ°€λŠ₯ν•œ μƒνƒœκ°€ μ§€μ†λ˜μ–΄ μ΅œμ’…μ μœΌλ‘œλŠ” κ· ν˜•μ„ μžƒκ³  λ„˜μ–΄μ§€κ²Œ λœλ‹€. λ”°λΌμ„œ, 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” 지연에 λ”°λ₯Έ μ„Όμ„œκ°’μ„ μ˜ˆμΈ‘ν•˜μ—¬ μ œμ–΄ λͺ…령을 κ³„μ‚°ν•˜μ—¬ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ— μ†‘μ‹ ν•˜λŠ” μ ˆμ°¨κ°€ μžˆμ–΄μ•Ό ν•˜λ©° [14], λ³Έ λ…Όλ¬Έμ—μ„œλŠ” 비둀이득과 미뢄이득을 상황에 λ§žμΆ”μ–΄ νœ΄λ¦¬μŠ€ν‹±(Heuristic)ν•˜κ²Œ μ‘°μ •ν•œλ‹€.

보닀 ν˜„μ‹€μ μΈ μ‹€ν—˜μ„ μœ„ν•΄μ„œ λ‘œλ΄‡κ³Ό μ œμ–΄κΈ°κ°€ μœ„μΉ˜ν•œ μ„œλ²„ 사이 μ‹œκ°„ 동기화λ₯Ό μœ„ν•΄ λ„€νŠΈμ›Œν¬ νƒ€μž„ ν”„λ‘œν† μ½œ (Network Time Protocol: NTP)을 μ„œλ²„ 및 μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ— μ„€μΉ˜ν•˜κ³ , NTP μ„œλ²„λŠ” asia.pool.ntp.org 둜 μ„ΈνŒ…ν•˜μ—¬ 같은 μœ„μΉ˜μ˜ μ‹œκ°„μœΌλ‘œ 동기화 ν•œλ‹€. μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ μœ„μΉ˜ν•œ μž₯μ†Œμ—μ„œ 퍼블릭 ν΄λΌμš°λ“œ 기반 μ œμ–΄ μ‹œμŠ€ν…œκΉŒμ§€μ˜ 톡신 속도λ₯Ό μΈ‘μ •ν•˜κΈ° μœ„ν•΄μ„œ ν•‘(ping)을 ν†΅ν•˜μ—¬ 64 λ°”μ΄νŠΈ νŒ¨ν‚·μ˜ 왕볡 μ‹œκ°„μ„ μΈ‘μ •ν•˜μ—¬ 왕볡 μ‹œκ°„μ„ 기반으둜 비둀이득과 미뢄이득을 νœ΄λ¦¬μŠ€ν‹± ν•˜κ²Œ μ‘°μ •ν•œλ‹€. 특히, ROS2 ν”Œλž«νΌμ—μ„œ μ œκ³΅ν•˜λŠ” API (Application Programming Interface)λ₯Ό ν™œμš©ν•˜μ—¬ ν”ΌμΉ˜, ν”ΌμΉ˜μœ¨, ν† ν¬μ˜ μ£ΌκΈ°λ₯Ό μΈ‘μ •ν•œλ‹€. λ˜ν•œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ˜ κ· ν˜• μœ μ§€ μ—¬λΆ€λ₯Ό 싀증을 톡해 ν™•μΈν•˜κ³ , ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ˜ μ‹€ν˜„ κ°€λŠ₯성을 ν™•μΈν•œλ‹€.

κ·Έλ¦Ό 7. μ„Όμ„œμ™€ μ œμ–΄ λͺ…λ Ή μ†‘μˆ˜μ‹  μ‹œκ°„ 절차

Fig. 7. Time Sequence for Communication of Sensor value and Control command

../../Resources/kiee/KIEEP.2022.71.3.169/fig7.png

4.2 μ‹€ν—˜ κ²°κ³Ό

μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ—μ„œ ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œκΉŒμ§€μ˜ 왕볡 μ‹œκ°„μ„ μΈ‘μ •ν•˜κΈ° ν•œ κ²°κ³Ό, 530개의 νŒ¨ν‚·(packet)을 μ†‘μ‹ ν–ˆμ„ λ•Œ, 100% μˆ˜μ‹ μœ¨μ„ 보여 νŒ¨ν‚· 손싀은 0% μ˜€λ‹€. ν‘œ 2μ—λŠ” 왕볡 μ‹œκ°„μ— λŒ€ν•˜μ—¬ μ΅œλŒ€, μ΅œμ†Œ, 평균 μ‹œκ°„ 츑정값을 λ‚˜νƒ€λ‚΄μ—ˆλ‹€. ν‘œ 2μ—μ„œμ™€ 같이, 왕볡 μ‹œκ°„μ˜ 평균은 5.667ms λ‘œμ„œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡ μ„Όμ„œ 솑신 주기와 μ œμ–΄ λͺ…λ Ήμ–΄μ˜ 솑신 μ£ΌκΈ° 10ms 보닀 μž‘μ•„μ„œ, μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ κ· ν˜•μ„ μœ μ§€ν•˜λŠ” 쑰건을 λ§Œμ‘±ν•¨μ„ μ•Œ 수 μžˆλ‹€.

이λ₯Ό 보닀 더 μžμ„Ένžˆ μ‚΄νŽ΄λ³΄κΈ° μœ„ν•˜μ—¬ κ·Έλ¦Ό 8μ—λŠ” μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μœΌλ‘œλΆ€ν„° ν΄λΌμš°λ“œ μ œμ–΄ μ‹œμŠ€ν…œκΉŒμ§€μ˜ 각 νŒ¨ν‚· 별 왕볡 μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄μ—ˆλ‹€. κ·Έλ¦Ό 8μ—μ„œμ™€ 같이 총 530개 νŒ¨ν‚· μ€‘μ—μ„œ 10msλ₯Ό μ΄ˆκ³Όν•˜λŠ” νŒ¨ν‚·μ€ 14개둜 μ•½ 2.4%μ˜€μœΌλ‚˜, 10ms μ΄ν•˜μ˜ νŒ¨ν‚·μ΄ 516개둜 μ•½ 97.6%μ—μ„œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ κ· ν˜•μ„ μœ μ§€ν•˜λŠ” 쑰건을 λ§Œμ‘±ν•¨μ„ 확인할 수 μžˆλ‹€. λ³Έ λ…Όλ¬Έμ—μ„œλŠ” μ΄λŸ¬ν•œ μ‹€ν—˜ ν™˜κ²½μ— μ ν•©ν•˜λ„λ‘ μ΅œλŒ€ν•œ νœ΄λ¦¬μŠ€ν‹±ν•˜κ²Œ μ œμ–΄κΈ° 이득을 μ‘°μ •ν•˜μ˜€λ‹€.

ν‘œ 2 왕볡 μ‹œκ°„ μΈ‘μ • κ²°κ³Ό (ms)

Table 2 Round Trip Time of Measurements (ms)

min

avg.

max

deviation

μ™•λ³΅μ‹œκ°„

3.032

5.667

24.585

2.111

κ·Έλ¦Ό 8. νŒ¨ν‚·λ³„ 왕볡 μ‹œκ°„

Fig. 8. Round Trip Time for Packet

../../Resources/kiee/KIEEP.2022.71.3.169/fig8.png

μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡κ³Ό ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œκ°„μ˜ 연결을 톡해 μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡ κ· ν˜• μœ μ§€λ₯Ό μ œμ–΄ν•˜λŠ” μ‹€μ œ μ‹€ν—˜ μ‹œκ°„μ€ 총 530초 λ™μ•ˆ 진행 λ˜μ—ˆλ‹€. μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ μž‘λ™ μ‹œμž‘λΆ€ν„° μ•½ 175μ΄ˆκΉŒμ§€ κ· ν˜•μ„ 잘 μœ μ§€ν•¨μ„ ν™•μΈν•œ ν›„ λ‘œλ΄‡μ— μΈμœ„μ μœΌλ‘œ 좩격을 κ°€ν•΄μ„œ 고의적인 μ™Έλž€μ„ λ°œμƒμ‹œμΌ°λŠ”λ°, μ΄λ•Œ μ•½ 2초 λ™μ•ˆ λ‘œλ΄‡μ— μ•žλ’€ 진동이 μžˆμ—ˆμœΌλ‚˜, 이후 λ°”λ‘œ κ· ν˜•μ„ μœ μ§€ν•˜λ©° 530초 λ™μ•ˆμ˜ μ‹€ν—˜μ„ μ„±κ³΅μ μœΌλ‘œ λ§ˆμ³€λ‹€.

κ·Έλ¦Ό 9μ—λŠ” μ‹œκ°„λ³„ ν”ΌμΉ˜κ°’κ³Ό ν”ΌμΉ˜μœ¨μ— λŒ€ν•œ κ²°κ³Όλ₯Ό λ‚˜νƒ€λ‚΄μ—ˆλ‹€. κ·Έλ¦Ό 8μ—μ„œ ν”ΌμΉ˜μ™€ ν”ΌμΉ˜μœ¨μ΄ λ‘œλ΄‡μ— μΈμœ„μ μœΌλ‘œ 좩격을 κ°€ν•΄μ„œ 고의적인 μ™Έλž€μ„ λ°œμƒμ‹œν‚¨ 175초 λΆ€κ·Όμ—μ„œ μ™ΈλΆ€ 좩격으둜 크게 λ³€ν™”ν•˜λŠ” 것을 λ³Ό 수 μžˆλ‹€. ν•œνŽΈ κ·Έλ¦Ό 9μ—λŠ” λͺ¨ν„°μ— κ°€ν•΄μ§€λŠ” 토크λ₯Ό μ‹œκ°„λ³„λ‘œ μΈ‘μ •ν•œ κ²°κ³Όλ₯Ό λ‚˜νƒ€λ‚΄μ—ˆλ‹€. κ·Έλ¦Ό 10μ—μ„œλ„ 같은 이유둜 175초 λΆ€κ·Όμ—μ„œ 토크값이 크게 λ³€ν™”ν•˜λŠ” 것을 λ³Ό 수 μžˆλŠ”λ° μ΄λŠ” μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ μ•žλ’€λ‘œ 크게 μ§„λ™ν•˜λŠ” 것에 λŒ€ν•΄μ„œ κ· ν˜•μ„ μœ μ§€ν•˜κΈ° μœ„ν•΄ λͺ¨ν„°μ— κ°€ν•΄μ§€λŠ” 힘이 μ¦κ°€ν–ˆκΈ° λ•Œλ¬Έμ΄λ‹€.

ν•œνŽΈ, μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ ν”ΌμΉ˜κ°’μ™€ ν”ΌμΉ˜μœ¨κ°’μ„ μ†‘μ‹ ν•˜λŠ” μ£ΌκΈ°λŠ” 평균 10.15ms (98.5Hz) μ΄μ—ˆκ³ , μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ—μ„œ μˆ˜μ‹ ν•˜λŠ” ν† ν¬κ°’μ˜ μ£ΌκΈ°λŠ” 평균 10.10ms (99Hz)둜 μΈ‘μ •λ˜μ—ˆλ‹€. λ”°λΌμ„œ μ„Όμ„œκ°’μ˜ 전솑 μ£ΌκΈ° 보닀 λͺ¨ν„°μ˜ 전솑주기가 λ”γ€€μž‘κΈ° λ•Œλ¬Έμ— νŠΉμ΄ν•œ ν†΅μ‹ μƒμ˜ μ™Έλž€μ΄ μ—†λ‹€λ©΄ 퍼블릭 ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ€ μΆ©λΆ„νžˆ μ‹€ν˜„κ°€λŠ₯ ν•  것이닀.

μœ„μ—μ„œ μ‚΄νŽ΄λ³Έ 바와 같이, λ³Έ λ…Όλ¬Έμ—μ„œ μ œμž‘ν•œ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡κ³Ό ꡬ글 ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ˜ μ‹€ν—˜ κ²°κ³Όλ₯Ό 톡해 μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ„ ν†΅ν•΄μ„œ κ· ν˜•μ„ μœ μ§€ν•˜λ©° μ œμ–΄ κ°€λŠ₯ν•œ 것을 확인 ν•  수 μžˆλ‹€.

κ·Έλ¦Ό 9. ν”ΌμΉ˜(pitch), ν”ΌμΉ˜μœ¨(pitch rate)의 μ‹œκ°„λ³„ μΈ‘μ •

Fig. 9. Pitch(Β°) and Pitch Rate(Β°/sec) according to Time (ms)

../../Resources/kiee/KIEEP.2022.71.3.169/fig9.png

κ·Έλ¦Ό 10. λͺ¨ν„°μ— κ°€ν•΄μ§€λŠ” ν† ν¬μ˜ μ‹œκ°„λ³„ μΈ‘μ •

Fig. 10. Torque (NΒ·m) according to Time (ms)

../../Resources/kiee/KIEEP.2022.71.3.169/fig10.png

5. κ²° λ‘ 

λ³Έ λ…Όλ¬Έμ—μ„œλŠ” ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ„ μ œμ•ˆν•˜κ³  μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡ μ œμ–΄ μ‹€ν—˜μ„ 톡해 타당성을 μ‚΄νŽ΄λ³΄μ•˜λ‹€. λ¨Όμ €, 2개의 바퀴, λͺ¨ν„° ꡬ동뢀, μ„Όμ„œλΆ€, μ‘μš© ν”„λ‘œμ„Έμ„œλ‘œ κ΅¬μ„±λ˜λŠ” μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ„ μ œμž‘ν•˜μ˜€λ‹€. 이후, ν΄λΌμš°λ“œ 기반 μ œμ–΄ μ‹œμŠ€ν…œ ꡬ성을 μœ„ν•΄ ꡬ글 ν΄λΌμš°λ“œ ν”Œλž«νΌμ„ ν™œμš©ν•˜μ—¬ 2개의 μ»΄ν“¨νŠΈ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³ , 이λ₯Ό 톡해 μΏ λ²„λ„€ν‹°μŠ€ ν”Œλž˜νΌμ„ κ΅¬μΆ•ν•˜μ˜€λ‹€. μ œμ–΄κΈ°μ™€ ν΄λΌμš°λ“œ λΈŒλ¦¬μ§€λ₯Ό 도컀 μ»¨ν…Œμ΄λ„ˆ μ΄λ―Έμ§€λ‘œ λ§Œλ“€μ–΄ μΏ λ²„λ„€ν‹°μŠ€ ν”Œλž«νΌμ—μ„œ μ‹€ν–‰μ‹œν‚€κ³ , λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό λ§Œλ“€μ–΄ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡κ³Ό 톡신을 ν•  수 μžˆλ„λ‘ μ„€κ³„ν•˜μ˜€λ‹€.

μ„±λŠ₯ κ²€μ¦μš© μ‹€ν—˜μ„ μœ„ν•΄ λ„€νŠΈμ›Œν¬ νƒ€μž„ ν”„λ‘œν† μ½œμ„ ν΄λΌμš°λ“œ μ„œλ²„μ™€ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ— μ„€μΉ˜ν•˜μ—¬ 동기화λ₯Ό μˆ˜ν–‰ν–ˆμœΌλ©°, ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œκ³Ό 연결을 톡해 μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ˜ κ· ν˜•μ„ μ œμ–΄ν•˜λŠ” μ‹€ν—˜μ„ μ§„ν–‰ν•˜μ˜€λ‹€. μ‹€ν—˜ κ²°κ³Ό μΈ‘μ •λœ ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ—μ„œ μ œμ–΄λ₯Ό μœ„ν•΄ μ†‘μ‹ ν•˜λŠ” ν† ν¬κ°’μ˜ μ£ΌκΈ°κ°€ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ˜ ν”ΌμΉ˜κ°’κ³Ό ν”ΌμΉ˜μœ¨κ°’μ˜ μ£ΌκΈ°κ°€ 보닀 μž‘μ•„ μ•ˆμ •μ μœΌλ‘œ μ œμ–΄ κ°€λŠ₯함을 확인할 수 μžˆμ—ˆμœΌλ©°, μ‹€ν—˜ μ‹œκ°„ 전체에 걸쳐 ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ— μ—°λ™λœ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ΄ κ· ν˜•μ„ μœ μ§€ν•¨μ„ ν™•μΈν•˜μ˜€λ‹€. λ³Έ λ…Όλ¬Έμ—μ„œμ˜ ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ„ 톡해 μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡ μ œμ–΄κ°€ κ°€λŠ₯함을 λ³΄μž„μœΌλ‘œμ¨ μ‹€μ‹œκ°„μ˜ 폐루프 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ˜ ν–₯ν›„ μ—¬λŸ¬ μ‘μš© μ‹œμŠ€ν…œμ— 적용 κ°€λŠ₯성을 확인 ν•  수 μžˆμ—ˆλ‹€.

λ³Έ λ…Όλ¬Έμ—μ„œλŠ” ν΄λΌμš°λ“œ 기반 λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œμ„ μ…€ν”„ λ°ΈλŸ°μ‹± λ‘œλ΄‡μ— μ μš©ν•˜μ—¬ κ·Έ κ°€λŠ₯성을 μ‚΄νŽ΄λ³΄μ•˜λ‹€. λ³Έ λ…Όλ¬Έμ—μ„œ μ œμ•ˆν•œ 방식이 μ‹€μ œ 적용되기 μœ„ν•΄μ„œλŠ” μ•žμœΌλ‘œ λ‹€μ–‘ν•˜κ²Œ λ³€ν™”ν•˜λŠ” 지연을 κ³ λ €ν•œ κ°•μΈν•œ μ œμ–΄κΈ°λ₯Ό μ„€κ³„ν•˜μ—¬ μ•ˆμ •μ μΈ 폐루프 μ œμ–΄ μ‹œμŠ€ν…œ ꡬ성이 μΆ”κ°€μ μœΌλ‘œ μš”κ΅¬λœλ‹€. λ˜ν•œ, μž₯μ•  ν—ˆμš© κΈ°λŠ₯의 ν΄λΌμš°λ“œ λ„€νŠΈμ›Œν¬ μ œμ–΄ μ‹œμŠ€ν…œ 섀계가 μΆ”κ°€μ μœΌλ‘œ 이루어진닀면 μΏ λ²„λ„€ν‹°μŠ€ ν”Œλž«νΌμ„ κ΅¬μ„±ν•˜λŠ” λ§ˆμŠ€ν„° λ…Έλ“œμ™€ μ›Œμ»€ λ…Έλ“œμ— μž₯μ• κ°€ λ°œμƒν•˜κ±°λ‚˜ μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό κ΅¬λ™ν•˜λŠ” νŒŒλ“œμ— μž₯μ• κ°€ λ°œμƒν•˜λŠ” κ²½μš°μ—λ„ μ•ˆμ •μ μΈ μ œμ–΄ μ‹œμŠ€ν…œ 운영이 κ°€λŠ₯ν•  것이닀.

References

1 
N.J. Ploplys, P.A. Kawka, A.G. Alleyne, Jun. 2004, Closed-loop control over wireless networks, IEEE Control Systems Magazine, Vol. 24, No. 3, pp. 58-71DOI
2 
Liang Ma; Yuanqing Xia; Yasir Ali; Yufeng Zhan, Jul, 2017, Engineering problems in initial phase of cloud control system, 2017 36th Chinese Control Conference (CCC)DOI
3 
Ben Kehoe, Sachin Patil, Pieter Abbeel, Ken Goldberg, April 2015, A Survey of Research on Cloud Robotics and Automation, IEEE Trans. on Automation Science and Engineering, Vol. 12, No. 2, pp. 398-409DOI
4 
S. Gu, S. Kang, W. Jeong, H. Moon, H. Yang, Y. Kim, Jun. 2022, Validation of Cloud Robotics System in 5G MEC for Remote Execution of Robot Engines, Journal of Korea Robotics Society, Vol. 17, pp. 118-409DOI
5 
Jul. 2016, Containers & Docker: Emerging roles & future of Cloud technology, 2016 2nd International Conference on Applied and Theoretical Computing and Communication Technology (iCATccT), pp. 804-807DOI
6 
Kubernetes, [Online] http://kubernetes.io, Accessed: Aug. 18, 2022.URL
7 
J. A. Bigheti, M. M. Fernandes, E. P. Godoy, 2019, Control as a Service: A Microservice Approach to Industry 4.0, 2019 II Workshop on Metrology for Industry 4.0 and IoT (MetroInd4.0&IoT), Naples, ItalyDOI
8 
Y. Kim, S. Kim, Y. KWAK, 2005, Dynamic Analysis of a Nonholonomic Two-Wheeled Inverted Pendulum Robot, Journal of Intelligent and Robotic Systems, Vol. 44, pp. 25-46DOI
9 
BNO055, [Online] https://www.bosch-sensortec.com/ products/smart-sensors/bno055, Accessed: Aug. 11, 2022.URL
10 
ODriver, [Online] https://odriverobotics.com/shop/odrive-v36, Accessed: Aug. 11, 2022.URL
11 
Jetson AGX Xavier, [Online] https://developer.nvidia.com/embedded/jetson-agx-xavier-developer-kit, Accessed: Aug. 12, 2022.URL
12 
ROS2 Platform, [Online] https://docs.ros.org/en/foxy/Installation.html, Accessed: Aug. 12, 2022.URL
13 
S. Kang, cloud_bridge, [Online] https://github.com/lge-ros2/cloud_bridge, Accessed: Aug. 18, 2022.URL
14 
Z. Music, F. Molinari, S. GallenmΓΌller, O. Ayan, S. Zoppi, W. Kellerer, G. Carle, T. Seel, JΓΆrg Raisch, 2019, Design of a Networked Controller for a Two-Wheeled Inverted Pendulum Robot, IFAC, Vol. 52, No. issue 20, pp. 169-174DOI

μ €μžμ†Œκ°œ

ꡬ세완(Sewan Gu)
../../Resources/kiee/KIEEP.2022.71.3.169/au1.png

1994λ…„ 2μ›” ν•œμ–‘λŒ€ν•™κ΅ μ „μžν†΅μ‹ κ³΅ν•™(곡학사)

1996λ…„ 2μ›” ν•œμ–‘λŒ€ν•™κ΅ μ „μžν†΅μ‹ κ³΅ν•™(곡학석사)

1997~2000λ…„ 2μ›” ν•œκ΅­μ² λ„κΈ°μˆ μ—°κ΅¬μ›

2022λ…„ ν˜„μž¬ : ν•œμ–‘λŒ€ν•™κ΅ μ „μžμ»΄ν“¨ν„°ν†΅μ‹ κ³΅ν•™κ³Ό 박사과정

2000λ…„~ν˜„μž¬ LGμ „μž μ±…μž„μ—°κ΅¬μ›

μœ€λ™μ›(Dongweon Yoon)
../../Resources/kiee/KIEEP.2022.71.3.169/au2.png

1989λ…„ 2μ›” ν•œμ–‘λŒ€ν•™κ΅ μ „μžν†΅μ‹ κ³΅ν•™κ³Ό(곡학사)

1992λ…„ 2μ›” ν•œμ–‘λŒ€ν•™κ΅ μ „μžν†΅μ‹ κ³΅ν•™κ³Ό(곡학석사)

1995λ…„ 8μ›” ν•œμ–‘λŒ€ν•™κ΅ μ „μžν†΅μ‹ κ³΅ν•™κ³Ό(곡학박사)

2022λ…„ ν˜„μž¬ : ν•œμ–‘λŒ€ν•™κ΅ μœ΅ν•©μ „μžκ³΅ν•™λΆ€ ꡐ수