Ⅰ. 서론
최근 반도체, 배터리 등 기술의 발전과 더불어 다양한 로봇이 소개 및 보급되고 있다. 산업용 로봇, 청소로봇, 안내로봇, 놀이용 로봇, 재활로봇, 심리치료 로봇 등 다양한 용도로 연구 및 개발되고 있다. 산업용 로봇은 주로 자동차 조립공정에서의 차체 조립, 선박의 용접 등 사람이 하기 힘든 공정에 적용하여 생산성을 향상시키고 있다. 청소로봇은 실내를 이동하면서 바닥의 먼지 흡입, 물걸레 청소 등으로 주변 환경을 깨끗하게 하는 역할을 담당한다. 안내로봇은 공항, 은행 등 사람들이 많이 모이는 장소에서 길을 안내하고, 주요 시설을 소개하는 등의 지원 업무를 대신한다. 놀이용 로봇은 강아지, 고양이 등 반려 동물을 흉내내는 형태로 어린이, 노약자 등에게 즐거움을 제공한다. 재활로봇은 로봇을 이용하여 손상된 신체의 기능을 회복하거나 나아가 뇌졸중 등 중증질환에 의해 마비된 부분의 재활을 지원한다. 심리치료 로봇은 로봇을 이용하여 사람의 심리를 치료하는 로봇으로, 사람의 목소리에 반응을 하고 감정을 교감할 수 있는 기능을 가진다.
통계청 [1]에 의하면 노인인구의 비중이 점차 증가하여 2017년 이미 고령사회에 진입하였고, 출산율은 지속적으로 하락하고 있다. 이러한 상황이 지속되면 생산가능 인구는 계속 줄어들고, 노령인구는 계속 증가하여 현재의 생산성을 유지하기 어렵게 된다. 현재의 생산성을 유지하기 위한 다양한 방법이 논의되고 있으며, 그 중 로봇을 활용한 사례가 대표적이다. 로봇을 활용한 예로는 은행 업무를 지원하는 SoftBank 사의 로봇 페퍼 (pepper) [2], 서점 운영을 지원하는 네이버랩스사의 어라운드 (around) [3] 등이 있다.
페퍼 로봇은 은행, 공항, 대형 마트 등에 배치되어 사용자에게 영어, 일어, 한국어 등의 언어로 필요한 정보를 주고 받을 수 있다. 어라운드 로봇은 서점에 배치되어 도서의 위치를 찾아주고, 잘못 배치된 도서를 알려주는 기능을 가지고 있으며, 2019년도 CES에서 큰 인기를 누렸다.
이러한 로봇들은 다양한 센서 및 알고리즘이 적용되어 있으며 관련 연구도 활발하게 진행되고 있다. Kang 등은 CDS 센서를 이용하여 공연무대에서 다수 로봇의 위치를 추정할 수 있는 방법이 소개되었고 [4], Jung 등은 실외에서 사용되는 골프카의 위치 정보 및 주행차선을 인식하는 방법에 대해 소개하였다 [5]. 현재까지 소개된 로봇들은 다양한 센서를 사용하여 로봇의 자기위치 인식, 경로파악, 장애물 인식 등의 기능을 수행한다. 이러한 기능을 위해 영상 인식 센서, 2D/3D LiDAR, 3D 스캐너 등이 사용된다. 이러한 센서들은 탐지범위가 넓고, 정밀도가 높은 반면 가격이 고가이다. 그리고 수집한 데이터의 양이 많아서 데이터를 전처리하고, 관심영역의 선택 및 주행경로의 탐색 등을 위하여 복잡한 임베디드 시스템이 요구된다.
본 논문에서는 홀 (hall) 센서를 이용하여 자기 위치를 인식하고, 인식된 결과를 이용해 Dijkstra 알고리즘 기반의 목적지까지 이동하는 로봇 플랫폼과 경로탐색 방법을 제안한다. 2장에서는 실제 실험에 사용할 로봇 플랫폼의 구성에 대하여 제시하고, 3장에서 자기위치 인식을 설명한다. 4장과 5장에서 경로탐색과 실험 결과를 제시한다.
Ⅱ. 로봇 플랫폼의 구현
본 논문에서 제안하는 자기위치인식, 경로탐색, 주행을 위한 로봇은 표 1의 사양으로 결정하였다.
표 1. 로봇플랫폼의 사양
Table 1. Robot platform specification
이를 기반으로 사양을 만족하는 로봇 플랫폼을 모델링하고, 제작한다. 그림 1은 제안하는 시스템을 위한 로봇 모델을 보여주고 있다.
그림 1. 로봇 모델
Fig. 1 Robot model
그림 2는 로봇의 자기 위치 인식을 위한 좌표 평면을 보여주고 있다.
그림 2. 로봇의 방향 및 위치를 위한 좌표 평면
Fig. 2 Coordinate plane for direction and position of the robot
본 논문에서 제안하는 로봇은 374 [mm]×574 [mm]×133 [mm] (가로×세로×높이) 크기를 가지며, 구동부, 인식부, 제어부로 구성된다. 개략적인 시스템 구성도는 그림 3과 같다.
그림 3. 개략적인 시스템 구성도
Fig 3. Schematic diagram of the system
구동부는 로봇 플랫폼의 구동을 위해 BLDC 모터, 감속기, BLDC 모터의 구동 및 제어를 위한 부분으로 구성된다.
BLDC 모터는 DC 모터의 구조에서 정류자가 없고, 터 내부 속도 측정을 위한 홀 센서가 내장되어 있다. 따라서 별도의 외부 엔코더를 추가하지 않아도 속도 제어가 가능하고, 상대적으로 효율이 우수하며 수명이 길다.
모터 구동기는 모터의 구동을 위한 3상 (U, V, W) 출력과 내부에 위치한 홀 센서를 이용하여 속도를 측정하고, 이를 이용해 속도를 제어한다.
그리고 전류센서를 이용하여 BLDC 모터의 전류를 제어한다. 로봇의 토크 향상을 위해 100:1 감속기를 이용하였다.
제어부는 로봇 플랫폼의 주행, 경로탐색, 위치인식 등 전체 제어를 담당하며, ST사의 STM32F107VCT6 Cortex-M3 마이크로프로세서를 사용하였다. 제어부에서 홀 센서 모듈, IMU 센서 모듈, 그리고 초음파 센서 모듈의 모듈간 통신은 잡음에 강한 차동신호기반으로 이루어진 CAN을 이용하였다.
인식부는 로봇의 자기위치를 인식하는 부분으로, Dijkstra 알고리즘 적용을 위한 홀 센서 기반의 위치 인식 모듈, 현재 로봇의 방향을 인식하기 위한 IMU 센서 모듈을 사용하였다. IMU 센서 모듈은 로봇 플랫폼의 정중앙에 위치하고 있으며, 그림 1로봇 모델링에서 C의 표시 부분에 위치시켰다.
Ⅲ. 홀 센서 기반의 자기위치 인식
로봇의 자기위치 인식을 위하여 많은 연구가 진행되고 있다. 네이버랩스사에서 소개한 어라운드 로봇은 실내에서 카메라와 2차원 레이저 스캐너를 이용하여 자기위치를 인식한다 [3]. 실외에서는 Jung 등에 의해 소개한 방법처럼 GPS를 이용하여 현재의 자기위치를 인식한다 [5].
카메라와 2차원 레이저 스캐너 등은 우수한 성능과 정밀도를 가지지만, 고가이고 외부조명 등 주변의 영향을 받기 쉽다. 그리고 수신된 데이터의 처리를 위한 높은 사양의 임베디드 시스템이 필요하다.
홀 센서는 AGV 로봇 등에서 많이 사용되고 있으며, 관련 연구도 많이 이루어졌다. Park 등은 퍼지 추론을 이용하여 N/S극의 측정이 가능한 홀 센서의 성능을 향상시키는 방법을 제안하였고 [6], Choi 등은 전동 휠체어 플랫폼과 홀 센서, 그리고 바닥에 설치된 자석을 이용하여 경로를 인식하고, QR Code 및 자석의 패턴을 이용해 자기위치를 인식하는 시스템을 소개하였다. Choi 등 의해 소개된 시스템은 바닥에 설치된 자석의 경로로만 이동할 시스템은 바닥에 설치된 자석의 경로로만 이동할 수 있어서 이동성이 제약되는 단점이 있다. 그리고 바닥에 자석을 설치하고, 이를 유지, 보수하는 추가 비용이 발생한다 [7].
본 논문에서는 실내의 중간 지점에 자석을 설치하여 로봇이 홀 센서를 이용, 현재의 위치를 인식할 수 있도록 하였다. 여기서는 자석을 특정 패턴으로 설치하여 인식하는 방법과 자석의 세기를 이용하여 인식하는 방법을 제시하였다.
자석의 패턴을 이용하여 자기 위치를 인식하기 위해서는 바닥에 자석을 특정 패턴으로 설치 한 후 홀 센서를 이용한다. 이를 위하여 그림 4와 같이 ±200 [Guass] 범위의 자석을 인식하고, 인식된 결과를 아날로그 전압으로 출력하는 16 채널 홀 센서 및 신호처리기를 포함한 자기위치 인식모듈을 이용하였다.
그림 4. 16 채널 자기위치 인식을 위한 홀 센서 모듈
Fig. 4 The 16 channel Hall sensor module for self localization
자기위치 인식모듈을 이용하여 바닥에 설치된 패턴을 인식하는 과정은 “홀 센서 신호의 변환 (ADC) -> 문턱 값 비교 -> 2진화” 의 순서로 진행된다. 즉, 아날로그 전압 값으로 출력되는 16 채널의 홀 센서 신호를 Analog to Digital 변환과정, 문턱 값 비교를 통한 이진화를 거쳐서 데이터 변환된다. 이렇게 변환된 데이터와 미리 기억되어 있던 데이터를 비교하여 현재의 위치를 인식한다. 본 논문에서는 4가지의 패턴을 이용하여 자기위치를 인식하도록 하였으며, 설치한 패턴 및 함수는 그림 5 및 식 (1)과 같다.
\(\begin{array}{l} f_{p 1}\left(S_{0} \cdots S_{15}\right) \\ =\{1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1\} \\ f_{p 2}\left(S_{0} \cdots S_{15}\right) \\ =\{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\} \\ f_{p 3}\left(S_{0} \cdots S_{15}\right) \\ =\{0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1\} \\ f_{p 4}\left(S_{0} \cdots S_{15}\right) \\ =\{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0\} \end{array}\) (1)
그림 5의 형태로 설치된 자석의 패턴은 식 (1)과 같이 나타낼 수 있다.
그림 5. 설치한 자석 패턴
Fig. 5 Implemented magnet pattern
현재의 위치는 그림 4의 16 채널 값을 통해 인식된다. 이 방법은 다양한 형태의 패턴을 이용할 수 있지만, 인식을 위한 홀 센서 수량이 많아지거나 자석이 훼손되는 경우가 발생할 수 있다.
자석의 패턴을 이용한 자기위치 인식방법의 문제점을 해결하기 위해 자석의 세기를 이용하여 자기위치를 인식하는 방법을 제안한다. 이 방법은 각각 다른 세기를 가지는 자석을 설치하여 측정된 자석의 세기를 측정하여 현재 위치를 인식하는 방법이다. 본 논문에서는 각각 다른 세기를 가진 자석을 설치하지 않고 동일한 세기를 가지는 자석의 설치 위치를 변경하여 실제 자석의 세기가 차이 나는 것과 동일한 환경을 구성하였다. 또한 자석의 세기와 더불어 자석의 극성을 반대로 하여 많은 경우의 수를 만들 수 있도록 하였다. 자석의 세기를 이용하여 위치를 인식하는 방법 및 3 채널 홀 센서 및 신호 처리기를 통한 인식모듈을 그림 6에 나타내었다.
그림 6. 3 채널 자기위치 인식 모듈
Fig. 6 The 3 channel self localization module
그림 6에서 측정된 값을 ADC 변환을 하고, 기준값과 비교하는 등의 처리 과정을 거쳐서 현재의 위치를 인식하게 된다. 이 방법을 이용하면 인식을 위한 홀 센서의 수가 줄어들고, 자석이 노후 또는 일부분 손상이 되더라도 자기 위치를 인식할 수 있는 장점이 있다. 본 논문에서는 자석의 세기를 이용한 위치 인식의 기법으로 주행하는 알고리즘을 제시한다.
Ⅳ. 경로탐색
경로탐색을 위한 알고리즘은 이전부터 많은 연구가 이루어졌으며, Lee 등은 A*와 Dijkstra의 두 알고리즘을 이용하여 네비게이션에서 최단거리의 경로를 탐색하는 연구를 하였다 [8]. 대표적인 알고리즘으로는 경험 및 휴리스틱 추정 값을 이용하여 최단경로를 찾는 A* 알고리즘과 모든 중간경로를 알고 있는 상태에서 시작점부터 목표점까지의 모든 경로를 계산한 후 최단경로를 선택하는 Dijkstra 알고리즘이 대표적이다 [9, 10].
실외주행 시 무수한 중간지점이 존재하기 때문에 모든 중간지점을 거쳐 목적지까지 경로를 계산하여 최종목적지를 선정하는 Dijkstra 알고리즘을 적용하기 어렵다. 이러한 경우 A* 알고리즘을 이용하여 사용자가 특정 경로에 적절한 가중치를 주어 경로를 탐색하는 방법이 효과적이다. 하지만 실내주행의 경우 공간 및 중간지점에 다양한 제약 사항이 있기 때문에 Dijkstra 알고리즘을 적용하는 사례가 늘고 있다. 물론 A* 알고리즘을 적용하여 최단경로를 계산 할 수 있으나, A* 알고리즘은 특정경로에 대한 가중치를 부여하여 탐색하기 때문에 항상 최단경로를 찾을 수 있다는 보장이 없다.
본 논문에서 제안하는 방법은 바닥에 설치된 자석을 이용하여 중간지점 및 자기위치에 대한 인식이 가능하므로 Dijkstra 알고리즘을 적용하여 경로를 탐색하고, 주행하는 방법을 구현하였다.
V. 실험 및 고찰
여기서는 로봇 플랫폼, 홀 센서 기반의 자기위치 인식, Dijkstra 경로탐색 알고리즘을 이용하여 가로 5 [m], 세로 5 [m]의 경로에 9개의 자석을 설치하여 실험한 결과를 제시한다. 실험에서는 먼저 출발점과 목적지를 선택하고, Dijkstra 알고리즘을 이용하여 시작점에서 목적지까지의 모든 경로를 계산한 후, 최단거리 경로를 인식하고 주행을 한다. 표 2에 제시하였듯이 출발점에서 목적지까지의 경로에 대한 연산시간을 측정 한 결과 최대 10 [ms]의 탐색 시간을 얻을 수 있었다. 그리고 홀센서를 이용하여 9개의 위치를 무작위로 각 50번 측정한 결과 95 [%] 이상의 인식률을 나타내었다.
표 2. 경로탐색시간 및 인식률에 대한 실험 결과
Table 2. Experimental results on path search time and recognition rate
그림 7은 실제 구현한 실험환경을 보이고 있다. 5 [m]×5 [m]에 9개의 자석을 부착하고, 자석의 높이를 서로 다르게 하여 자기위치 인식 모듈에서는 다른 세기가 측정되도록 하였다.
그림 7. 실험 환경
Fig. 7 Test environment
출발지에서 목적지까지의 경로는 그림 1 및 그림 2의 dx, dy, θc 로부터 얻어진다.
실제 주행 실험은 장애물이 있는 경우와 없는 경우로 나누어 수행하였다. 그림 8의 (a)는 장애물이 없는 경우의 빠른 주행을 보여주는 장면이며, (b)는 중앙에 장애물을 설치했을 경우의 주행 모습 을 보여준다
그림 8의 (b)와 같이 주행 중에 장애물을 만나면 로봇은 자기 위치를 고려하여 인접한 중간경로까지 이동한 후에 다시 최종 목적지까지의 경로를 탐색하게 된다.
그림 8. 주행 실험 결과
Fig. 8 Experimental results.
장애물이 없는 경우에 비하여 다소 시간은 더 걸렸지만 정확하게 목적지까지 주행하였다.
장애물이 있는 경로의 신속한 주행을 위하여 빠른 장애물 인식을 위한 센서의 추가 및 연산시간을 줄일 수 있는 새로운 경로탐색 알고리즘에 대한 추가 연구가 필요하다.
참고문헌
- Korea National Statistics, "Population Projections for korea : 2005-2050", 2006
- Avaliable on : https://www.softbankrobotics.com/
- Avaliable on : https://www.naverlabs.com/
- C.U. Kang, S.J. Ko, "Position Estimation Method of Entertainment Robot in Performance Stage", Journal of IEMEK J. Embed. Sys. Appl., Vol. 9, No. 3, pp. 151-156, 2014 (in Korean).
- B.M. Jung, I.J. Yeo, C.S. Cho, "Autonomous Traveling of Unmanned Golf-Car Using GPS and Vision system", Journal of the Korean Society for Precision Engineering, Vol. 26, No. 6, pp. 74-80, 2009 (in Korean).
- M.H. Park, H.H. Cho, K.B. Kim, S.S. Kim, "Improvement of Bipolar Magnetic Guidance Sensor Performance Using Fuzzy Inference System", Journal of Korean Institute of Intelligent Systems, Vol. 24, No. 1, pp. 58-63, 2014 (in Korean). https://doi.org/10.5391/JKIIS.2014.24.1.058
- J.H. Choi, B.J. Choi "Design of Self-localization Based Autonomous Driving Platform for an Electric Wheelchair", IEMEK J. Embed. Sys. Appl., Vol. 13, No. 3, pp161-167, 2018 (in Korean). https://doi.org/10.14372/IEMEK.2018.13.3.161
- Yong-Hu Lee, Sang-Woon Kim, "A Hybrid Search Method of A* and Dijkstra Algorithms to Find Minimal Path Lengths for Navigation Route Planning", Journal of the Institute of Electronics and Information Engineers, Vol. 51, No. 51, pp. 109-117, 2014 (in Korean). https://doi.org/10.5573/ieie.2014.51.10.109
- Hart, P. E., Nilsson, N. J., Raphael, B., "A Formal Basis for the Heuristic Determination of Minimum Cost Paths", Journal of IEEE Transactions on System Science and Cybernetics, Vol. 4, No. 2, pp. 100-107, 1968. https://doi.org/10.1109/TSSC.1968.300136
- Dijkstra, E. W., "A Note on Two Problems in Connextion with Graphs", Journal on Numerische Mathematik, Vol. 1, No. 1, pp. 269-271, 1959. https://doi.org/10.1007/BF01386390