DOI QR코드

DOI QR Code

Design and Implementation of the Pitching Machine with Mobility using the Android Smartphone

안드로이드 스마트폰 기반 이동형 피칭 머신의 설계 및 구현

  • Park, Sung-Yong (Dept. of Electrical Engineering, Dong-A University) ;
  • Oh, Kyung-Hyun (Dept. of Electrical Engineering, Dong-A University) ;
  • Choi, Ho-Lim (Dept. of Electrical Engineering, Dong-A University)
  • Received : 2014.05.07
  • Accepted : 2014.06.25
  • Published : 2014.07.01

Abstract

Pitching machines have been around for many years for casual amusement purpose or professional athletes' training usage, and so forth. The current pitching machines are usually built on the firm ground and do not have any mobility function. In this paper, we develop a pitching machine that has both ball-shooting and mobility functions. Our developed pitching machine consists of two parts. The upper body part has a function of shooting a ball using two DC motors and the lower body part has a function of mobility like mobile robots by using two wheels governed by DC motors. All these functions are operated wirelessly by Android smartphones via bluetooth. The control of each DC motor is done by ${\epsilon}$-PID control method in which the gain tuning is simplied by using a single parameter ${\epsilon}$. Simulation and actual experiment show that our developed pitching machine has both nontrivial shooting and mobility features.

Keywords

1. 서 론

현재 피칭머신의 특성은 모터제어나 움직임, 공 충전 방식등을 수동으로 조작해야 작동을 한다는 것이다. 이러한 특성을 개선시키기 위해 스마트폰을 이용하여 좀 더 능동적인 형태를 가지게 하려고 한다. 또한 스마트폰은 가속도 센서, GPS 등의 각종 센서가 적용이 되고 있고, 블루투스 및 Wi-Fi와 데이터 처리를 위한 CPU의 성능이 크게 향상되고 있다. 이를 이용한 다양한 산업분야에서 로봇이나 자동차등의 기계와 스마트폰을 연동하려는 다양한 연구들이 진행 되고 있다[8]. 아두이노는 IoT(Internet of Things)기반의 개방형 플랫폼이다. 이를 이용하여 스마트폰과 블루투스를 연동하여 제어 할 수 있다. IoT란 사물에 센서를 부착해 실시간으로 데이터를 모아 인터넷으로 전달해주는 것이며, 이는 사물간 데이터를 주고받은 후 이를 다시 활용하는 프로세서라고 할 수 있다. 전자 기판의 하드웨어와 이를 제어하는 소프트웨어로 구성되어 있으며 개발을 위한 도구로 이용되기에 오픈 소스(Open source)형태이고, 이는 쉬운 접근성과 장비 구성 및 소스 작성에 유연성을 가진다. 이는 기본적인 하드웨어 지식을 익힌다면 윈도우, MAC, 리눅스OS 등등 다양한 OS에서도 활용 할 수 있다는 장점으로 부각된다[7]. 앞에서 말했듯이 기존의 피칭머신의 수동적인 특성을 개선하기위해 본 논문을 통해 발사부분의 모터와 하단부의 움직임을 스마트폰을 이용하여 제어하고 기존의 특성을 최소화시켜 본 논문에서 제시된 피칭머신의 장점으로 나타낸다.

본 논문은 다음과 같이 구성되어 있다. 2장에서는 피칭머신의 개요 및 세부 구조를 나타내어 블루투스통신이 어떻게 적용 되었는지와 제어 방식을 설명하고 3장은 모터의 운동방정식과 상단부와 하단부로 나위어져 є-PID 제어 방식이 나오며 4장은 시뮬레이션 및 실험 결과를 보여 준다.

 

2. 피칭 머신의 개요 및 세부 구조

2.1 피칭 머신의 개요

그림 1은 본 논문의 실제 피칭머신 개요도이며 그림 2는 실제로 제작된 피칭머신이다. 크게 상단부와 하단부로 나뉘어져 있으며 스마트폰과 피칭머신과의 블루투스 통신을 이용하여 피칭 머신을 제어하게된다. 피칭머신을 원거리에서 스마트폰으로 제어하기 위해서는 블루투스나 Wi-Fi같은 무선 통신을 이용하여 데이터를 전송할 수 있다. 본 논문에서 Wi-Fi가 아닌 블루투스를 이용하는 이유는 블루투스가 통신거리에는 제한이 있지만 단가 측면과 개인이 스마트폰에 어플리케이션을 깔거나 노트북을 이용하여 쉽고 편리하게 모니터링을 할 수 있다는 장점을 가지고 있어 사용하게 되었다[5]. 블루투스는 마스터와 슬레이브의 역할을 조절함으로써 전송거리를 확장할 수도 있다. 블루투스의 연결을 성립하기 위해서는 요청과 연결의 과정을 통해 패킷을 교환함으로써 정보를 교환한다[3]. 이러한 과정을 통해 스마트폰과 피칭머신의 블루투스 통신을 이용하여 상단부 모터의 RPM과 하단부 움직임을 위한 모터의 RPM을 제어한다.

그림 1피칭 머신의 전체개요도 Fig. 1 Design schematic of pitching machine

그림 2제작된 피칭 머신 Fig. 2 Manufactured pitching machine

2.2 피칭머신의 세부 구조

그림 3은 피칭머신의 발사부 구조를 나타낸 것이다. 2개의 휠과 모터는 공을 발사하는 구동체로 작동한다. 모터 컨트롤러를 통해 모터의 rpm을 올리게 되면 휠의 각속도가 증가하게 된다. 이때 공을 넣게 되면 양쪽 휠의 구동으로 인해 휠의 진행방향대로 발사하게 된다. 이때 가이드바로 인해 공이 원하는 곳으로 더욱 안정하게 발사한다. 오른쪽휠의 속도를 낮추게 되면 공은 회전력으로 인해 오른쪽으로 휘어가게 되며 반대로 왼쪽 휠의 속도를 낮추게 되면 왼쪽으로 휘어가게 된다.

그림 3상단부 Fig. 3 Upper body part

그림 4는 본 논문에서 제시된 피칭머신의 하단부이다. 사용자의 필요에 의해 움직일 수 있도록 제작되었다. 블루투스 모듈을 이용해 스마트폰의 블루투스와 테더링을 하여 모터 드라이브를 통해 각각의 모터를 제어 하도록 되어있다. 하단부는 상단부의 무게를 안정하게 견디며 작동이 가능해야 되기 때문에 속도의 변화를 주는 제어 보다는 일정 속도를 유지할 수 있도록 제어시스템을 설계하였다.

그림 4하단부 Fig. 4 Lower body part

 

3. 모터 제어 및 설계

3.1 DC모터 운동 방정식

다음 식은 본 논문의 피칭머신에 쓰인 DC모터의 방정식이다[1].

V(t)는 전기자에 가해지는 전압, i(t)는 전기자 권선의 전류, Ra는 전기자 권선의 저항, La는 전기자 권선의 인덕턴스, e(t)는 역기전력이다. 식 (1)은 전기자 회로의 전압식이며, 식 (2)는 토크, 식 (3)은 유도 기전력, 식 (4)는 부하의 운동 식이다. ke는 역기전력 상수,øf는 계자 자속, 𝜔m은 회전자의 회전 각속도, B는 점성마찰게수, kT 는 토크상수이다. 식 (1), (2), (3) 그리고, (4)와 = 𝜔m을 정리하여 상태 방정식을 구하면 식 (5), (6)으로 나타내진다.

x1=θ, x2 =𝜔m, V(t) =u이고, , , 로 정리해서 사용한다.

그리고 다음과 같은 식으로 정리하여 사용할 수 있다.

식 (7), (8)의 상태방정식에서 각속도인 x1(= 𝜔m)을 제어하기 위해서 є-PID제어 방식을 사용한다[9].

부하토크인 TL 의 측정은 고가의 장비가 필요하기 때문에 직접적으로 측정이 곤란하다. 그러므로 TL 은 알 수 없다고 가정하는 경우가 많다[1]. 본 논문에서는 TL 을 미분 가능하며, 한정된 상수를 가진 ρ로 가정하고 ṪL≤ ρ라는 조건을 설정한다. 식 (9)를 미분하면 식 (10)과 같으며,

=𝑣로 𝓏 = [𝓏1 𝓏2 𝓏3]T = [ė1, ė2, e1]T로 두고 식 (10)과 합쳐 나타내면 식 (11)이 된다.

궤환 선형화 제어기 식 (12)를

식 (11)에 적용하면 다음을 얻을 수 있다.

내부 제어기인 를 식 (14)로 정의한다.

여기서 K= [k1, k2, k3]. Eє = diag[1,є, є−1],є ≻ 0로 정하고 식 (14)를 식 (12)에 대입하면 다음과 같다.

=𝑣로 인하여 e = e1으로 놔두고 є-PID제어기를 최종정리하면 다음과 같다

PID의 이득값은 다음과 같다.

이득값 k1, k2, k3 와 단일 파라미터 є을 이용하여 정리 하는것을 다음장에 설명 하도록 한다.

3.2 제어기의 안정성 및 성능 분석

제안된 є-PID제어기에 대한 다음과 같은 설계과정을 제시한다.

(i) K값을 정하기 위해서는 AK = A+BK가 Hurwitz가 되어야 한다.

(ii) Lyapunov 방정식에 의해 을 만족하는 P를 구한다.

(iii) є-PID의 이득값 튜닝에서 є값을 정하기 위해 є−1−2r1 ≻ 0의 조건을 만족해야 하고 r1=2║P║이다.

위 설계과정 (i)과 같은 K값을 구할려면 모든근이 아래의 다항식에서 음의 실수를 가져야 한다.

정리를 하자면 AK 가 Hurwitz이면 AK (є):=A+Bє−2 KE𝑣도 є>0일 때 Hurwitz가 된다. 증명하자면 AK와 AK(є)은 다음과 같은 관계가 성립된다[9].

참고로 λ (EєAK(є)Eє−1) = λ (є−1 AK)와 λ (є−1AK) =є−1λ (AK) 이고, λ (M)은 M행렬의 고유값을 의미하며, AK가 Hurwitz일 때 є≻ 0 이면 AK(є)또한 Hurwitz임을 보장한다. 다시 언급하면, K값과 є을 위에서 제시된 설계과정에 의해 결정되었다고 하고 식 (13)을 폐루프시스템으로 정리하면 식(18)이 되고,

AK 는 Hurwitz이므로 다음의 Lyapunov방정식이 존재하는데

식 (18)을 식 (21)에 적용하여 새로운 Lyapunov방정식으로 유도하면 다음과 같다.

식 (22)에서 얻은 Lyapunov방정식은AK(є)이 Hurwitz가 되고 Pє이 양수로 정의되면 시스템에서 유효성을 가진다. 이제 Lyapunov함수를 V(𝓏) = 𝓏TPє𝓏로 정의한다. 그런 다음 식 (20)의 궤도에 따라 시간에 대해 미분을 하면

식 (23)으로부터 EєB(—cṪL) ≤║ Eє║ + єcp 인 조건하에, 식(24)로 나타낼 수 있다.

여기서 r1=2 ║P║, r2 =2cp ║P║ 이다. є은 є−1−2r1 ≻ 0조건에 맞도록 설정하며 ║Eє𝓏║은 O(є2)으로 묶는다. Eє으로 부터 ║ 𝓏 ║는O(є)으로 나타낼 수 있다. 그리고 부하토크인TL 은 상수인 경우 ρ = 0이다. 단일 파라미터인 є값을 바꾸면서 이득값을 결정하여 나타낸 시뮬레이션은 4.1장에서 나타내도록 한다.

3.3 상단부 모터 컨트롤러와 스마트폰 연동

그림 5(우)는 본 논문의 상단부 컨트롤러이다. 내부 볼륨을 이용하여 스마트폰과 연동하여 조작하거나, 외부의 단추나 볼륨을 이용하여 수동조작도 가능하도록 되어있다, LCD기판을 이용해 모터의 RPM도 출력이 되도록 설정이 되어 있다. 상단부 모터(TM90-D0331)의 RPM제어는 BluCar어플리케이션과 컨트롤러의 내부 볼륨에 아두이노와 블루투스 모듈을 적용시켜 스마트폰과 테더링 후 제어를 하게 된다.

그림 5BluCar어플리케이션(좌), 상단부 컨트롤러(우) Fig. 5 Blucar application(left), upper body part controller(right)

테더링이 된 후에는 소스코드인 타이머를 이용하여 Forward나 Reverse버튼을 누르게 되면 누른 시간을 적용하여 휠의 RPM을 제어하게 된다. 이 때 컨트롤러에 있는 LCD기판에 RPM이 출력이 되도록 설정이 되어 있어 모터가 구동이 되었을 때 RPM을 알 수 있다. 그리고 스마트폰을 오른쪽이나 왼쪽으로 기울여 버튼을 누를 경우 기울어진 방향의 모터만 RPM이 높아지거나 낮아지게 된다. 이러한 제어로 인해 휠의 RPM차이로 공의 회전이 달라지게되어 오른쪽으로 휘거나 왼쪽으로 휘어져 발사될 수 있다.

3.4 하단부의 이동 제어

기존의 피칭머신에서 새로 추가 할 하단부의 모터(BL5057), 설계된 제어기가 코딩된 모터 드라이브, 아두이노 그리고 블루투스 모듈을 이용해 제어를 하게 된다. 하단부의 블루투스 모듈과 스마트폰을 테더링 하여 제어를 하게 되는데, 이 때 스마트폰에 내장된 기울기 센서를 이용하여 움직임을 제어 하게 된다. BluCar라는 스마트폰의 어플리케이션을 이용하여 움직임을 제어한다.

BluCar어플리케이션(그림 5(좌))은 스마트폰의 기울기센서를 이용하여 좌회전 우회전이 가능하도록 설정이 되어있다. Connect to a device를 눌러 블루투스통신을 하고 Forward나 Reverse버튼을 누르거나 버튼을 누르면서 기울이게 되면 코딩된 명령어가 블루투스 무선통신을 통하여 피칭머신에 제어명령을 전달한다. 그러면 피칭머신은 스마트폰으로부터 수신받은 명령패킷을 분석하여 피칭머신의 모터를 구동시킨다.

그림 6하단부 이동 제어 알고리즘 Fig. 6 Lower part movement control algorithm

그림 7에서 하단부의 바퀴가 지면에 대해 미끄러짐이 없다고 가정할 때 수식은 다음과 같다[4].

그림 7하단부 모델 Fig. 7 Upper body part model

여기서 P는 바퀴사이의 중심이고, θP는 하단부의 회전각을 의미한다. 하단부 모델은 논홀로노믹(non-holonomic)이다. 다시 말해 하단부는 한번에 x 또는 y 방향으로 이동할수 없다. 그 이유는 하단부가 다리가 아닌 바퀴로 되어 있기 때문에 바퀴가 90° 로 꺽여 움직이지 않는 이상 한번에 x,y방향으로 이동할 수 없다. 로봇의 선속도 𝑣와 각속도 𝜔는 다음과 같다[4].

식 (26)을 정리하면 다음과 같다.

따라서 𝑣,𝜔는 다음과 같이 구해진다.

여기서 𝑣l,𝑣r 은 각각 왼쪽과 오른쪽 모터의 PWM(Pulse Width Model)값이고 2dp는 양쪽 바퀴 사이의 수평거리이다. 스마트폰에 의해 제어되는 하단부는 스마트폰으로부터 수신 받은 명령패킷에 의해 하단부의 양쪽 DC모터를 제어하며, BluCar어플리케이션에서 Turn Headlights On과 Forward사이의 숫자는 기울기 정도를 나타내며, 이 기울기는 스마트폰 내부의 기울기 센서를 이용하여 나타내어 진다. 수평상태가 0이라면 오른쪽으로 기울였을 경우 음수로 왼쪽으로 기울였을 경우에는 양수로 나타 내어 진다. Foward를 눌릴 경우 양쪽 모터에 신호를 주어 전진을 하게 되고 Reverse는 후진, 오른쪽으로 기울일 경우 오른쪽 모터에만 신호가 들어가 제자리 우회전을 하고, Forward를 누르면서 오른쪽 또는 왼쪽으로 기울일 경우 양쪽모터에 신호가 전달되지만 모터의 속도차이로 인해 우회전 및 좌회전을 하게 된다. 후진의 경우도 마찬가지로 작동을 하게 된다.

 

4. 시뮬레이션 및 실험 결과

4.1 시뮬레이션

설계된 є -PID제어기를 시뮬레이션한 것이다. 식 (9)에 대한 파라미터 값은 B= 0.001, J= 0.01, kTøf = 3, keøf = 3이다. є 값은 0.5, 0.2, 0.1에 대해 그래프로 나타내었다. 그림 8은 є -PID제어기가 PID 이득값 튜닝요소인 є 의 변화에 대한 시뮬레이션 결과이다.

그림 8TL 값이 상수인 경우 є값에 따른 є-PID제어기 시뮬레이션 결과 Fig. 8 TL is a constant in the simulation result

그림 8의 시뮬레이션에는 rpm이 500에 수렴 되게 하여 나타낸 것이다. PID이득값 튜닝요소 є값에 따라 시뮬레이션 결과가 달라지는 것을 보여 준다. 그림 8은 TL 이 상수일 때 의 그래프 이다. є이 0.5일 때 수렴은 하지만 오버슈트가 존재해 є이 0.1 일 때 보다 좋지 않은 결과를 보여준다. 그림9는 TL = e−t + 12sint + 3cost 로 설정했을 때 시뮬레이션 결과이다. 이때의 시뮬레이션은 상수일 때보다 결과가 좋지는 않지만 그래도 목표치에 수렴을 하고 있는 것을 보여준다. 시뮬레이션에서 보여주듯이є이 0.1일 때 좋은 결과 값을 보여주지만 모터의 성능과 연결된 휠을 같이 돌리기 때문에 과부하가 걸리게 되어 본 실험에서는 є이 0.2일 때 과부하가 생기지 않아 이번 실험을 통해 최종결정 하였다.

그림 9TL값이 상수가 아닌 경우 є값에 따른 є-PID 제어기 시뮬레이션 결과 Fig. 9 TL is time-vary in the simulation result

4.2 실험 결과

본 논문의 피칭머신은 아두이노와 블루투스 모듈, 그리고 안드로이드 기반의 스마트폰을 이용함으로 원격으로 피칭머신의 하단부 이동 제어 및 상단부의 속도 제어를 하게 된다. 하단부의 이동제어는 BluCar어플을 이용하게 되며, 블루투스 모듈에서는 각각 버튼의 명령패킷을 분석하고 그 데이터를 받고 분석하여 모터드라이브에 설계된 제어기를 통해 각각 모터에 신호를 보내게 되어 상황에 따른 움직임을 보여준다.

그림 10(좌)는 설계된 є-PID에 이득값이 입력되어 컨트롤러를 조절하여 모터가 구동하는 사진이다. 정지와 구동이 되고 있다는 것을 보여주기 위해 한쪽 모터는 정지된 상태이다. 그림 10(우)는 여러 가지 신호 중 제자리 우회전의 신호를 받은 사진이며 왼쪽 위에서부터 오른쪽으로 진행되며 원격으로 조종하여 하단부의 움직임이 제어가 되고 있다는 것을 보여준다. 그림 11의 그래프는 버튼을 누른 시간에 따른 모터RPM의 변화 이다. 시뮬레이션과는 다르게 살짝 늦게 RPM이 증가하는 것을 보여준다.

그림 10모터 구동(좌), 제자리 우회전(우) Fig. 10 Motor operation(left), right turn motion(right)

그림 11시간에 따른 모터 RPM의 변화 Fig. 11 Change of motor RPM in time

그 이유는 모터의 회전축에 샤프트 및 휠이 설치되면서 모터에 부하토크가 생겨 시뮬레이션과 다른 결과를 보여 준다. 추가된 무게 때문에 부하토크가 생겨 갑자기 RPM이 증가하게 되면 모터에 과부하가 걸리게 되어 모터가 정지하거나 사고가 날 수 있기 때문에 컨트롤러에 목표치의 수렴속도를 늘리게 되었다. 그리고 그림 11의 오른쪽 그래프는 모터RPM에 따른 공의 속도이다. 1200이하로 공을 발사했을때 공의 속도가 거의 측정이 되지 않아 1200부터 측정하여 나타낸 것이다. 그림 9와 그림 11, 12의 실험을 통해 본 논문에서 제안된 스마트폰을 이용하여 피칭머신의 하단부, 상단부 제어가 되고 있음을 알 수 있다.

그림 12모터RPM에 따른 공의 속도변화 Fig. 12 Velocity of ball correspond to motor RPM

 

5. 결 론

본 논문에서는 안드로이드 기반 스마트폰을 사용하여 피칭머신의 이동 및 속도 제어를 구현한다. 피칭머신을 제어하기 위하여 블루투스 모듈과 스마트폰 그리고 제어할 모터만 있다면 구현을 할 수 있으며, 아두이노로 인하여 복잡한 소스코드 대신 간편하게 프로그램을 코딩하여 스마트폰과 블루투스 모듈을 연결 및 모니터링을 할 수 있다. 실험 결과로서 기존 피칭 머신의 특성인 수동적인 부분을 최소화 시켰으며 운동장이나 실내의 야구 연습장등 평평한 바닥을 가지는 공간에서는 어디든지 편하게 움직일 수 있으며, 휠사이의 간격(60mm∼110mm)도 줄이거나 넓힐 수 있어 야구뿐만이 아닌 테니스나 구른 구형의 물체를 투척할 수 있다. 그리고 시뮬레이션 및 실제 실험을 통해 є-PID제어기의 유효성을 검증하였고 실험을 통하여 피칭머신의 이동이 가능하며 기존의 특성들을 최소화하여 효율이 증가 하였음을 알수 있다.

References

  1. S. H. Kim, "DC, AC, BLDC motor control", bogdoo publishing company, vol. 3, 2012.
  2. S. S. Gwak, Y. H. Seo, and T. G. Yang, "Remote control of mobile robot base on smart phone environment and its application", 2010 25th ICROS Annual Conference, vol. 39, pp. 431-435.
  3. J. H. Kwak and J. H. Lim, "Bluetooth network for mobile system control", Journal of Institute of Control, Robotics and Systems (in Korean), vol. 10, no. 11, pp. 1052-1057, 2004. https://doi.org/10.5302/J.ICROS.2004.10.11.1052
  4. Y. G. Kim and D. H. Kim, "Development of a personal riding robot controlled by a smartphone based on androidos", Journal of Institute of Control, Robotics and Systems (in Korean), vol. 19, no. 7, pp. 592-598, 2013. https://doi.org/10.5302/J.ICROS.2013.13.1906
  5. O. Yang and H.-W. Je, "Implementation of the monitoring system for power condition system(PCS) using a smartphone and bluetooth communication", Journal of the Korea Institute of Information and Communication Engineering, vol. 16, no. 10, pp. 2185-2191, 2012. https://doi.org/10.6109/jkiice.2012.16.10.2185
  6. H. An, H. Gao, S. Lu, and J. Tan, "A design of intelligence interactive system of service robot based on th android", IEEE International Conference on Robotics and Biomimetics, pp. 2345-2350, Dec. 2012.
  7. ARDUINO, http://www.arduino.cc
  8. H.-L. Choi, Y.-H. Chang, Y. H. Oh, and J.-T. Lim, "On robust position control of DC motors by $\varepsilon$-PID controller and its application to humanoid robot arms", IFAC, pp. 14449-14453, July. 2008.
  9. S. V. Delden and A. Whigham, "A bluetooth-based architecture for android communication with an articulated robot", 2012 International Conference on CTS, pp. 104-108, Denver, CO, May.
  10. S W. Moon, Y. J. Kim, H. J. Myeong, C. S. Kim, N. J. Cha, and D. H. Kim, "Implementation of smartphone environment remote control and monitoring system for android operating system-based robot platform", 8th International Conference on URAI, pp. 211-214, Nov. 2011.