이현선
(Hyun-Sun Lee)
1
정슬
(Seul Jung)
†
-
(Dept. of Mechatronics Engineering, Chungnam National University, Korea.)
Copyright © The Korean Institute of Electrical Engineers(KIEE)
Key words
Intelligent traffic cones, server network, formation control, IoT
1. 서 론
통신기술의 발달과 함께 스마트폰을 통한 무선네트워크가 가능해지고 LTE의 보급으로 고속화되면서 이와 연계한 다양한 IoT(Internet of
things)서비스가 통신사에서 제공되고 있다. 더불어 과거 URC(Ubiquitous Robotic Companion)에서 진보된 IoT로봇 또는
IoRT(Internet of robotic things) 관련 상품이 많이 출시되고 있다(1-5).
스마트폰이 많이 보급되지 않던 2000년도 초에도 네트워크 로봇에 대한 연구는 다양하게 시도되어 왔으며 서버-클라이언트 기반의 인터넷 무선조종이 대부분이었다.
그러나 오늘날에는 AI, 영상처리, 음성인식 등 다양한 소프트웨어 기술이 융합되어 더욱 지능적인 행동과 기능을 갖춘 로봇이 상용화되어 출시되고 있다.
앞서 언급한 IoRT 뿐만 아니라 Industrial IoT(IIoT)와 같은 IoT의 다양한 파생분야 또한 생겼다. 이와 같이 Machine to
machine(M2M), URC를 넘어 현대의 IoT는 네트워크에 한정하지 않고 다양한 소프트웨어 기술과 로봇기술의 융합분야로 각광받고 있다.
교통콘은 고속도로 유지보수 공사 현장에서 자주 볼 수 있는 도류화시설로 공사 현장의 작업영역을 결정하는 역할을 한다. 이는 작업자와 운전자의 안전을
위한 것으로 운전자에게 작업 영역을 미리 알려주는 역할을 수행하기 때문에 교통콘과 같은 도류화 시설은 정해진 규정에 준수하여 설치되어야 하며 적절치
못한 배치는 사고의 위험을 증가시킬 수 있다. 국내에서는 도류화시설의 배치 및 철거작업을 도로보수원이 수작업으로 한다. 해외에서는 이 과정에서 발생할
수 있는 교통사고를 줄이고 작업의 자동화를 위해서 설치 및 철거차량을 개발하여 실제 현장에 투입하고 있다(6). 또한 ETI Software의 Beamfly 플랫폼과 같이 IoT기술을 도로안전에 적용한 사례도 존재한다(7).
선행연구에서는 위에서 언급한 도로보수 작업에서 발생할 수 있는 사고를 예방하기 위하여 수작업으로 이루어지고 있는 도류화시설 설치의 자동화를 위하여
모바일 지능교통콘을 개발하였다(8). 작업자가 인터넷을 통해 서버에 접속하여 지능형 교통콘을 제어할 수 있었다.
그림. 1. 지능형 교통콘의 Line-up 개념도
Fig. 1. Concept of Line-up of Intelligent traffic cones
본 논문에서는 여러 대의 지능교통콘을 개발하여 그림 1과 같은 개념의 교통콘 Line-up 제어에 대해 논한다. 이 때 교통관리 구간 지침에 따른 작업공간의 확보를 자동화하기 위한 방안으로 IoRT(Internet
of Robotic Things) 기술을 활용한다. 스마트폰의 유저 어플리케이션을 통해 지도에서 이동시키고자 하는 좌표를 서버 시스템에 전송하여 시스템으로
하여금 해당 위치로 이동하도록 교통콘을 직접 제어한다. 지능교통콘의 주행성능을 향상시키기 위한 GPS데이터의 수집과 심화된 기구학 기반의 주행 알고리즘의
시뮬레이션을 수행하며 실제 주행결과와 비교하여 타당성을 검증한다. 다수의 교통콘을 이용한 배열제어를 통해 Line-up을 실험한다.
2. 본 론
2.1 전체 시스템
2.1.1 지능 교통콘
직접 작업을 수행하는 시스템으로 주어진 임무를 수행하기 위해서 지능교통콘(ITC)에 각종 센서와 마이크로컨트롤러, 모터를 장착하였고 다음의 3가지
기능을 갖추고 있다.
① 주행기능 : 경・위도로 이루어진 목표좌표까지 주행
② 조종기능 : 주어지는 이동 커맨드에 따라 이동
③ 카메라기능 : 장착된 카메라영상을 전송
그림. 2. 지능 교통콘
Fig. 2. Intelligent traffic cone
2.1.2 서 버
목적에 따라 다양한 서버가 존재하며 이를 구성하는 개념에 차이가 있다. 본 연구에서 설계된 서버에서 지향하는 방향성은 아래와 같다.
① 다수의 시스템에 대하여 서비스를 제공한다.
② 서비스 대상이 되는 시스템의 추가 및 제외가 자유롭다.
③ 다수의 사용자가 자유롭게 서비스를 이용할 수 있으며 서비스 이용자수의 변동이 자유롭다.
서버는 갑작스런 클라이언트 연결 단절과 같이 프로세스 도중 발생할 수 예외상황에 대한 대처와 이를 확인할 수 있는 log 기능이 필수이다. 그림 3은 모니터링을 위하여 콘솔프로그램으로 실행된 서버이다.
그림. 3. 서버 콘솔 프로그램
Fig. 3. Console program of server
2.1.3 User application
유저 어플리케이션(User application)은 사용자가 서버에 접속하여 IoRT환경에 개입하기 위한 도구로 단말기는 휴대성이 높고 매우 친숙한
장비인 스마트폰을 선정하였다. 안드로이드 환경에 맞추어 개발되었으며 Java를 개발언어로 선정하여 게임 서비스를 기본 개념으로 통신・서비스・디자인을
설계하였다.
그림. 4. 주행 서비스
Fig. 4. Application service for driving
그림 4는 어플리케이션의 Map서비스 탭이다. 해당 탭에서는 Google Map과 시스템의 GPS 센서정보에 기반을 둔 driving 서비스를 제공한다.
시스템의 위치확인, viapoint를 통한 주행명령, 주행궤적의 확인이 가능하다.
2.1.4 Client module
로봇 시스템에 네트워크 기능을 추가하기 위해서 WiFi 모듈과 같은 인터넷 기능을 제공하는 장비가 필요하다. 모듈은 Redbear의 CC3200을
선정하였으며 그림 5는 해당 모듈에서 이루어지는 네트워크 프로세스이다. 서버 접속부터 Lobby, Room 접속 등 네트워크 작업과 로봇 통제를 동시에 수행한다.
그림. 5. 클라이언트 모듈 log
Fig. 5. Log of client module
2.2 극좌표 및 GPS 기반 주행
임무 주행의 주체는 교통콘 시스템이며 GPS와 AHRS센서의 헤딩 정보 또한 직교좌표계와 무관한 진북 및 자북 기준의 global 정보이다. 따라서
변화하는 시스템의 위치를 원점, 진북방향을 y축으로 하는 극좌표계를 사용하면 그림 6과 같이 시스템을 기준으로 주행을 분석할 수 있으며 거리오차(distance error)와 방위각오차(azimuth error)를 통한 주행에서 Vincenty의
역문제와 주문제(9)를 통한 좌표연산 프로그램을 활용할 수 있다.
그림. 6. 극좌표계 기반 주행
Fig. 6. Driving based on polar coordinates
ITC와 같은 경량시스템에서 엔코더 신호는 바퀴의 속도제어에는 유용하나 슬립에 의한 시스템의 거동은 반영하기 어렵다. 따라서 슬립은 배제하도록 한다.
이 때 그림 7과 같이 목표반경 내외에서 시스템의 거동을 거리오차와 관련된 병진운동과 방위각오차와 관련된 회전운동으로 구분할 수 있으며 복잡한 기구학적 분석을 줄일
수 있다. $D_{L}$와 $D_{R}$은 좌우모터에 주어지는 pwm의 듀티비를 나타내고 이는 식(1)의 azimuth 오차 $\theta_{err}$와 식(2)의 거리오차 $\gamma_{err}$를 줄인다.
극좌표계에서 방위각오차를 감소시키기 위한 모터의 제어(duty ratio)는 식(1), 거리오차에 대한 모터의 제어는 식(2)과 같으며 $D_{\theta}$와 $D_{\gamma}$는 모터에 주어지는 pwm의 듀티비를 나타내며 각각 모터의 회전운동과 병진운동을 발생시킨다.
절대값의 합은 0에서 1사이의 값을 가지고 부호는 모터의 방향을 나타낸다.
그림. 7. 지능형 교통콘의 P2P 주행
Fig. 7. P2P driving of Intelligent Traffic Cone
표 1. 주행식의 변수와 단위
Table 1. Variables and units of driving methods
변수
|
단위
|
Description
|
Value
|
$\theta_{err}$
|
radian
|
error of azimuth
|
|
$G_{\theta}$
|
-
|
gain for azimuth
|
|
$D_{\theta}$
|
%
|
duty ratio of motor(azimuth)
|
|
$\gamma_{err}$
|
m
|
error of distance
|
|
$\gamma_{\lim}$
|
m
|
limit of distance
|
1.5
|
$G_{\gamma}$
|
-
|
gain for distance
|
|
$D_{\gamma}$
|
%
|
duty ratio of motor(distance)
|
|
2.3 주행 시뮬레이션
앞에서 다룬 주행 이론을 실제주행에 적용하기에 앞서 시뮬레이션을 통해 이론의 타당성을 검증할 필요가 있다. 시뮬레이션에서 사용하는 시스템의 기구학
모델은 그림 8과 같으며 변수는 표 2와 같다.
시뮬레이션을 위한 모델은 동역학 모델이 아닌 기구학 모델을 채용하였으며 최대한 단순하게 설정하였다. 이는 실험의 목적이 시스템의 정확한 거동분석이나
예측이 아니라 이론에 따른 주행이 목적지까지 도달하는지에 대한 검증이며 실험장소에 따른 지면 마찰, 슬립과 같은 예측 불가능한 요소를 배제하기 위함이다.
또한 하중과 같은 동역학에 미치는 시스템의 스케일이 작기 때문에 회전관성과 같은 동역학적 요소의 영향이 낮다고 보았기 때문이다.
그림. 8. ITC의 2차원 기구학 모델
Fig. 8. Two-dimensional kinematic model of ITC
표 2. 기구학 모델의 변수와 단위
Table 2. Variables and units of kinematic model
변수
|
단위
|
Description
|
Value
|
$M_{C}$
|
[Kg]
|
시스템의 무게
|
|
$\theta_{L},\:\theta_{R}$
|
[rad]
|
좌우 바퀴의 회전 각도
|
|
$\dot\theta_{L},\:\dot\theta_{R}$
|
[rad/s]
|
좌우 모터의 회전 속도
|
|
$\phi$
|
[rad]
|
시스템의 헤딩 각도
|
|
$\dot\phi$
|
[rad/s]
|
시스템의 헤딩 각속도
|
|
$L$
|
[m]
|
바퀴사이의 거리
|
0.45
|
$r$
|
[m]
|
바퀴의 반경
|
0.06
|
$x,\:y$
|
[m]
|
시스템의 위치
|
|
$\dot x ,\:\dot y$
|
[m/s]
|
시스템의 속도
|
|
$V_{L},\: V_{R}$
|
[m/s]
|
좌우 모터의 선속도
|
|
위의 모델과 변수에 따른 시스템의 기구학은 식(3)-(6)과 같다.
위 식을 정리한 수식은 식(7)과 같다. 위 수식은 시스템의 기구학만을 고려한 것으로 시뮬레이션에서 시스템의 좌표와 헤딩은 각각의 속도성분을 적분하여 구한다.
주행 알고리즘과 기구학을 이용하여 시스템의 출발점과 목표점의 GPS좌표가 주어진 상태에서의 주행을 Matlab에서 시뮬레이션 하였다. 그림 9는 Matlab을 통해 설계한 주행 시뮬레이션의 기구학을 담당하는 블록이다.
그림. 9. Driving simulation
Fig. 9. Driving simulation
그림 10은 단일좌표에 대한 시스템의 기구학적 주행 시뮬레이션이다. 최초에 진북을 향한 상태에서 초기화를 완료한 시스템은 목표좌표에 대한 주행을 하며 목표좌표까지의
거리오차가 클수록 방위각 제어를 우선한다.
그림. 10. 주행경로(단일목표)
Fig. 10. Driving route(Single destination)
그림 11은 시스템의 주행오차이며 급격한 헤딩변화가 이루어진 후 거리오차를 줄여나가는 것을 확인할 수 있다.
그림. 11. Driving error
Fig. 11. Driving error
그림 12는 복수목표에 대한 시스템의 주행 시뮬레이션이다. 기본적으로 단일좌표 주행과 같으며 목표를 달성 후 다음 주행으로 이행하도록 하였다.
그림. 12. 주행경로(복수목표)
Fig. 12. Driving route(Multi destination)
단, 복수목표 주행의 경우 목표좌표의 반경 1.5m 이내에 진입할 경우 목표달성으로 간주하여 다음 목표로 이동하도록 하였다.
그림 13은 복수목표 주행 중에 측정되는 거리 및 방위각의 오차로 좌표가 갱신될 때 마다 Vincenty’s inverse formula에 의해 값이 커지는
것을 확인할 수 있다. Azimuth error의 경우 목표좌표에 매우 근접하였을 때 매우 작은 좌표오차에 의해 알고리즘의 연산 일부가 무한대 또는
복소수가 되는 현상이 발생하여 값이 불안정해질 수 있다. 이를 해결하기 위해서는 좌표를 표현하는 숫자의 정확도(소숫점이하)를 높여야 한다.
그림. 13. Driving error
Fig. 13. Driving error
2.4 위치 정보 수집
주행 알고리즘에서 사용되는 GPS좌표는 소수점 이하 7자리까지 데이터를 활용하기 때문에 단정도(Single precision)자료형인 4byte 실수형
변수를 사용할 시 데이터의 정밀도에서 문제가 발생한다. 따라서 배정도(Double precision)자료형인 8byte 실수형 변수를 지원하는 MCU를
사용해야 한다.
그림 14는 단정도 정밀도로 수집된 약 30분간 수집된 GPS 데이터이다. 좌표의 표현정밀도의 한계로 좌표 간 간격이 일정한 것을 확인할 수 있다.
그림. 14. GPS데이터(단정도 정밀도)
Fig. 14. GPS data(Single precision)
그림. 15. GPS데이터(배정도 정밀도)
Fig. 15. GPS data(Double precision)
그림 15는 배정도 정밀도로 수집된 GPS 데이터이다. 단정도와 비교하여 좌표간 정밀도가 높은 것을 확인할 수 있다. 그림 16은 수신율이 낮은 장소에서 수집된 GPS 데이터이다. 장애물이 많은 장소에서 주행할 경우 센서의 위치정확도를 높일 필요가 있음을 알 수 있다.
그림. 16. GPS데이터(낮은 수신율)
Fig. 16. 16 GPS data(Low reception sensitivity)
2.5 주행 실험 및 결과
GPS 센서의 수신율이 높은 개활지에서 교통콘의 주행실험을 수행한다. 실험장소에서 진북 또는 자북을 특정한 후 교통콘을 배치하였으며 실험장소의 자편각은
서편 8.02이다. 약 5분간 AHRS센서의 calibration작업을 수행하였으며 GPS의 전송주기는 1초이다.
첫 번째 실험은 단일주행 실험으로 그림 17과 같이 출발점 Ⓢ에서 출발하여 ①에서 ④까지 총 4개의 viapoint를 순회하도록 한다. 해당 그림은 주행을 완료한 것이다.
그림. 17. Application을 통한 주행실험
Fig. 17. Driving experiment using application
그림 18은 시스템의 실제주행을 촬영한 것이다. 촬영한 영상을 시계방향 90도로 회전시켜서 보았을 때 그림 17의 경로와 유사한 것을 확인할 수 있다.
그림. 18. 실제주행궤적
Fig. 18. Actual driving route
그림 19는 해당 주행에 대한 데이터 분석이다. 서버에 기록된 주행 중의 GPS 좌표 정보와 주행 시뮬레이션을 비교한 것으로 동일 목표좌표와 출발좌표를 가질
때 매우 유사한 주행을 수행하였음을 보여준다.
move-real의 초기의 데이터 흐름은 시스템이 주행을 시작하기 전 정지상태의 GPS 좌표의 분산에 의한 것이다. 정지상태의 GPS 좌표는 이동
중과 비교하여 데이터의 분산이 크며 시뮬레이션은 시스템의 초기 위치에 따라 주행 경로가 변화하기 때문에 실제주행과 시뮬레이션의 초기 위치가 일치할수록
유사한 주행을 수행할 수 있다.
그림. 19. 실제주행과 시뮬레이션 비교
Fig. 19. Comparison of actual driving and simulation
세 대의 ITC에 별개의 이동목표를 주어 그림 20과 같이 동시에 주행하도록 하였다.
그림. 20. 실험환경(Line-up)
Fig. 20. Experiment environment(Line-up)
시스템이 일렬로 놓인 상태에서 그림 21(a)와 같이 대각선으로 배치하였으며 그림 21(b)는 서버에 기록된 시스템의 이동궤적이다.
그림. 21. Line-up 실험1
Fig. 21. Line-up experiment1
그림 21의 주행을 완료한 후 그림 22(a)와 같이 대각선 반대방향으로 주행을 지시하였다. 그림 22(b)는 서버에 기록된 시스템의 이동궤적이다.
이와 같이 네트워크 환경에서 임의로 시스템을 추가하여 단일 시스템에 적용한 주행 실험을 복수 시스템으로 확장할 수 있다.
그림. 22. Line-up 실험2
Fig. 22. Line-up experiment2
3. 결 론
실험을 통하여 다수의 사용자 및 시스템이 동시에 서버를 이용할 수 있는 Multi-play server를 검증하였으며 Client module이 네트워크
환경에서 클라이언트의 역할을 충분히 수행하면서 동시에 시스템을 통제하였음을 확인할 수 있다. 이를 통해 서버의 성능 확장이 충분히 이루어질 경우 많은
사용자가 별개의 Room을 생성하여 서비스를 이용할 수 있음을 알 수 있다. 또한 실험을 통해 주행 알고리즘의 성능을 확인할 수 있었으며 저가의 GPS로도
시뮬레이션과 유사한 주행을 할 수 있음을 알 수 있다.
Acknowledgements
본 연구는 충남대 자체연구의 지원을 받아 이루어진 연구로 지원에 감사드립니다.
References
fahmidur R. K., Munaim H., Tanvir S. M., Sayem A. S., 2016, Internet controlled robot,
pp. 1190-119
Zhou B., Chou W., Wu S., 2017, Remote control system of mobile robot based on cloud
platform, pp. 94-98
Abdalla G. O. E., Veeramanikandasamy T., 2017, Implemen- tation of spy robot for a
surveillance system using Internet protocol of Raspberry Pi, pp. 86-89
Zhu W., Guo X., Fang Y. C., 2017, Design of a Modular Snake Robot and Control with
internet of Things, pp. 850-854
Uddin Mohammad Salah, Gianni Mario, 2017, Long Range Robot Teleoperation System based
on Internet of Things, pp. 163-167
Python-Automated Hot Asphalt Pothole Repair, AHMCT, http://ahmct.ucdavis.edu/wp-content/uploads/pdf/Pothole_2_Pager_2014.pdf
Henderson M. B., Smart Traffic Cones : How the ‘Internet of Things’ Save Lives, ETISoft,
http://etisoftware.com/smart-traffic-cones-how-the-internet-of-things-save-lives/
of the Ministry of Overseas Development
Lee H. S., Jung S., 2017, Network Implementation for Position Control of Intelligent
Traffic Cones, Vol. 23, pp. 394-401
Vincenty T., 1975, Direct and inverse solutions of Geodesics on the ellipsoid with
application of nested equations, Vol. 23, No. 176, pp. 88-93
저자소개
2014년 한국기술대학교 메카트로닉스공학과 졸업.
2014년~현재 충남대학교 메카트로닉스공학과 석사과정.
관심분야는 Internet of Robot Thing, 시스템 프로그래밍, 이동로봇.
1988년 미국 웨인 주립대 전기 및 컴퓨터 공학과 졸업.
1991년 미국 캘리포니아대 데이비스 전기 및 컴퓨터 공학과 석사.
1996년 동 대학 박사 졸업.
1997년~현재 충남대학교 메카트로닉스공학과 교수.
관심분야는 지능제어 및 지능로봇 시스템, 밸런싱 시스템, 서비스 로봇, 자이로 구동기, 드론, 로봇교육.