1. 서 론
오랜 진화에 의한 생물체의 진보된 특성을 모방함으로써, 로봇의 H/W 와 S/W 의 큰 발전이 이루어져 왔다. 일부는 형태와 구조를 중심으로, 다른 일부는 지능적인 처리에 초점을 맞추어 왔다. 사람을 모방한 휴머노이드, 개나 말을 모방한 4족보행 로봇외에 파충류나 곤충을 모방한 로봇들이 그 생물적 개체가 지닌 특성을 최대한 반영하고자 개발되어 왔다[1].
본 연구에서 대상으로 하는 KMC 모듈라 뱀형 로봇은 형태면에서 뱀의 모양을 가지고 있으며, 모듈을 일렬로 연결하여 구성한 로봇이다. 실제 움직임의 특성은 횡적이 아닌 수직적인 애벌레의 이동과 유사하지만 규모가 약 1m 로서 상당히 크기 때문에 뱀형 로봇이라고 칭하고 있다[2].
모듈라 뱀형 로봇에 대해서 진화연산을 적용하여 이동 성능을 향상시키는 기법에 대한 연구[3, 4] CPG(Central Pattern Generator)를 이용하여 지형의 변화에 적응하는 연구등이[5] 있다.
그러나, 장애물에 대한 이러한 적응성은 각 환경에 대해서 로봇이 이동시 일정 이상의 동적인 제어 성능이 발휘되어야만 가능하다. 각기 다른 환경에 대처할수 있는 제어기의 설계는 매우 어려우므로, 주로 학습에 의한 접근 방법이 많이 쓰이고 있다[6]. 그러나 학습으로 인해 얻어질수 있는 적응성에 대한 분석은 거의 이루어지지 않고 있다. 즉, 로봇이 환경에 적응하여 이동하는 경우 어떠한 변화의 차이를 관찰할 수 있는지에 대한 탐구가 필요하다.
본 연구에서는 로봇 이동시 환경에 대한 적응성을 주파수 분석을 통해서 고찰하고자 한다. 수행 방법은 진화최적화 방식의 학습기법인 NEAT(Neuro Evolution of Augmenting Topologies)[7]를 사용하여 뱀형 로봇을 평지에서 학습한다. 여기서, 생성된 신경망을 장애물 지형에 적응하여 성공한 신경망의 입출력 특성을 주파수 측면에서 분석한다. 서로 다른 지형에 대한 뱀형 로봇 움직임의 적응성을 입력파형에 대한 Fourier Transform, Short time Fourier Transform, 그리고 Wavelet Transform 으로 분석한다.
2. NEAT 기반 신경망과 뱀 로봇
2.1 NEAT(Neuro Evolution of Augmenting Topologies)
NEAT[7]는 기존의 신경망 기법의 약점인 고정적인 구조를 보완하기 위한 것으로 GA(Genetic Algorithm) 최적화 기법을 기반으로 한 신경망 구성 기법이다. 신경망의 노드에 대한 유전자와 연결 관계에 대한 유전자를 별도로 표현하고, 이를 조합하여 신경망을 구성한다(그림 1).
그림 1NEAT의 유전자 표현. Fig. 1 Expression of Genes for NEAT
기존의 일반적 신경망과는 달리, NEAT는 미리 중간층의 층수와 노드수를 정하지 않고 이들에 대한 점진적인 추가를 통하여 네트워크의 구조를 결정해가는 장점이 있다. 즉, 입력과 출력 노드만으로 구성된 기본 구조에서 중간 은닉 노드와의 연결 관계를 추가하며 성장하는 기법으로, 그림 1과 같이 Node Genes과 Connect Genes으로 표현된 유전자를 돌연변이연산과 교배연산을 통해 진화시켜간다. 주어진 Node Genes과 Connect Genes을 해석하면 그림 1 하단의 네트워크로 표현된다. 임의의 층이나 노드의 추가 및 연결이 가능하며, 부가적으로 이전의 출력 노드 값이 입력 노드에 연결되어 현재 상태를 반영할 수도 있다.
이 기법은 4족 보행로봇 걸음새의 적응성을 높이는 연구에 시도 된 바 있다[8].
2.2 KMC 뱀형 로봇
본 논문의 실험에서 사용된 로봇은 KMC Robotics사의 뱀형 로봇 KMC-KOBI로서[2], 그림 2에 나와 있다. 3개의 수평 관절과 7개의 수직 관절등 총10개의 RC 서보모터로 이루어진 관절과 8개의 알루미늄 프레임으로 구성되어 있으며, 로봇의 무게는 약 1.3Kg이고, 총 길이는 1 미터이다.
그림 2KMC 뱀형 로봇 Fig. 2 KMC snake-like robot
3. 뱀형 로봇의 적응적 제어
3.1 NEAT를 이용한 뱀형 로봇 제어
본 논문에서는 뱀형 로봇을 대상으로 수평 관절의 모터를 제외한 수직 관절 모터 7개의 값과 바이어스를 합한 8개를 입력 노드로 사용하였고, 7개의 수직 관절 모터의 목표값을 출력 노드로 구성하였다(그림 3).
그림 3NEAT를 이용한 뱀형 로봇 제어 Fig. 3 Snake-like robot control using NEAT
각 모터마다 약 16초 동안 32ms단위로 로봇의 현재 모터값을 읽어와 신경망의 입력에 전달한다. 전달된 입력값은 신경망을 통하여 값이 계산되어 나온 출력값이 모터에 대한 다음 상태의 입력값이 된다.
3.2 장애물 환경에서의 이동의 적응성
평지에서의 뱀형 로봇의 이동을 NEAT 신경망 제어기에 학습 시킨 후, 이 제어기를 장애물 환경에 적용하였다. 상당수는 장애물 환경에 적응하지 못하고 장애물을 전혀 넘지 못하거나 넘다가 중간에 걸리는 현상들이 나타났다.(그림 4, 5).
그림 4장애물 적응의 실패 예(1) Fig. 4 An example of failure locomotion in in obstacle(1)
그림 5장애물 적응의 실패 예(2) Fig. 5 An example of failure locomotion in in obstacle(2)
그러나 일부는 장애물에 적응하는 결과를 보였으며(그림 6), 이 결과로부터 내부적인 어떤 상태의 변화를 통해 적응성이 발휘되었음을 추측할 수 있다. 본 연구에서는 적응성이 발휘된 경우의 현상 차이를 주파수 측면에서 분석하고자 한다.
그림 6장애물에 적응 한 예 Fig. 6 An example of adapted locomotion in obstacle
4. 실험 환경 및 결과
4.1 실험 환경 구성
뱀로봇 실험을 위한 시뮬레이션 환경은 Cyberbotics사의 Webots을 사용하였다. Webots[9]은 ODE 기반의 모델링과 프로그래밍, 그리고 시뮬레이션 기능을 제공하는 모바일 로봇 시뮬레이션 S/W이다. Webots 시뮬레이터상에서 KMC 뱀형 로봇을 그림 7과 같이 모델링하였다.
그림 7Webots상의 뱀형 로봇 모델 Fig. 7 The model of snake-like robot in Webots
전체 프로그램 구현 및 수행과정은 다음과 같다. 프로젝트에 로봇의 디바이스의 선언과 활성화를 포함한 실험코드와 헤더를 추가한다. 그리고 Webots의 라이브러리와 컨트롤러의 라이브러리를 추가한다.
프로그램은 디바이스와 변수의 선언, 디바이스 활성화, 진화연산 세 부분으로 구현된다. Webots의 뱀형로봇의 로봇과 관절의 모터를 매칭 시키고, 디바이스들을 활성화 시킨 뒤, 각 모터마다 약 16초 동안 32ms단위로 로봇의 현재 모터값을 읽어와 신경망의 입력에 전달한다. 프레임과 모터에 실제 수치를 적용하였고 모듈의 마찰, 탄성 등 실제와 최대한 유사하게 수치를 설정하였다. 지형은 평지, 반원형 장애물, 사다리꼴 장애물, 이 세 가지로 설정하였다. 반원형 장애물의 경우 길이는 뱀형 로봇길이의 1/3정도이며 높이는 뱀형 로봇의 높이와 비슷하게 설정하였다. 사다리꼴 장애물의 경우 오르막과 내리막의 길이는 뱀형 로봇길이의 1/3정도이며 평면의 길이는 뱀로봇의 길이와 비슷하게 설정하였다(그림 8).
그림 8실험 지형(a : 평지, b : 반원형 장애물, c : 사다리꼴 장 애물) Fig. 8 Experimental terrains - (a) flat, (b) round obstacle, (c) trapezoid obstacle
실험은 평지에서 NEAT를 이용하여 뱀형 로봇의 움직임을 학습시켰다. 평지에서 학습시키기 위한 파라미터는 다음과 같다.
Generation: 100, Population: 50, Network Size: 200, AddLinkL 0.2, AddNode: 0.02, MutationRate 0.3, 실험 횟수: 10회
그림 9에는 평지에 대해서 학습한 NEAT 기반의 신경망 중에서 장애물에 성공적으로 적응한 구조의 예가 나와 있다.
그림 9장애물에 적응한 NEAT의 구조의 예 Fig. 9 Example of the structure of NEAT which is adapted in obstacles
4.2 주파수 측면에서의 분석법
뱀형 로봇의 경우, 앞으로 이동하기 위해서는 수직적인 관절의 움직임이 필요하고, Sin 파형처럼 주기를 가지는 움직임이 일반적으로 사용되고 있다. 따라서, 뱀형 로봇의 움직임에 대해서 주파수 측면에서의 분석이 필요함을 알 수 있다.
분석방법은 장애물에 적응한 그림 9의 NEAT 신경망을 통해 얻어진 모터에 대한 다음 상태의 입력값에 대한 몇가지의 주파수 분석을 평지와 두 가지 장애물 지형에 대해서, 차이를 비교한다.
분석에는 모터에 대한 입력파형과 FT(Fourier Transform), STFT(Short Time Fourier Transform)[10], 그리고 Wavelet Transform[11]을 사용한다.
FT를 통하여 뱀형 로봇이 움직이는 전체 시간의 주파수 성분을 확인 할 수 있고, STFT와 Wavelet Transform을 통해 시간에 따른 주파수 성분을 확인 할 수 있다. 평지에서 뱀형 로봇의 움직임은 동일 움직임을 반복하지만 중간에 장애물이 있으면 장애물에 따라 다른 움직임을 보인다. 이 움직임을 주파수 측면에서 확인할 수 있다.
그림 10-12에는 평지에서의 뱀 로봇 이동에 대해서 모터 1, 3, 6에 대한 각 4가지 파형 결과가 나와 있다 - 좌상부터 차례대로 입력파형, FT(우상), STFT(좌하), Wavelet(우하). 입력파형에서 X축은 time, Y축은 angle(radian), FT에서 X축은 frequency, Y축은 magnitude, STFT에서 X축은 time, Y축은 frequency, 그리고 Wavelet에서 X축은 time, Y축은 scale을 나타낸다.
그림 10평지에서 모터 1의 입력파형, FT, STFT, Wavelet 결과 Fig. 10 Input waveform, FT, STFT and Wavelet results of first joint in flat terrain
그림 11평지에서 모터 3의 입력파형, FT, STFT, Wavelet 결과 Fig. 11 Input waveform, FT, STFT and Wavelet results of third joint in flat terrain
그림 12평지에서 모터 6의 입력파형, FT, STFT, Wavelet 결과 Fig, 12 Input waveform, FT, STFT and Wavelet results of sixth joint in flat terrain
그림 10에서 모터 입력파형(좌상)을 보면 일정한 주기를 가지며, FT(우상)의 결과에서는 1~2Hz에 나타나는 주봉외에는 다른 부분의 주파수 성분은 미미하게 나타난다. STFT(좌하)에서도 Y축의 1~2Hz 부근의 성분이 균일하게 나타나며, Wavelet(우하)의 경우에도 전체 스케일에 걸쳐서 비교적 균일한 패턴을 보이고 있다. 모터 3(그림 11)과 모터 6(그림 12)에 대해서도 유사한 결과가 나타남을 알 수 있다. 이를 통하여 뱀형 로봇은 평지에서 일정한 움직임을 반복하는 것을 유추할 수 있다.
참고로 웨이블릿 결과에서 스케일과 주파수의 관계는 표 1에 나와 있다.
표 1웨이블릿에서 스케일과 주파수 관계 Table 1 Scales vs. frequency in wavelet
그림 13-15에는 반원형 장애물에서의 파형 결과가 나와 있다. 그림 13의 모터 1에 대한 입력 파형을(좌상) 통하여 장애물을 넘는 2.5-6초 사이에 주기가 조금 길어지는 것을 확인 할 수 있고, FT를 통해서는 평지와 같이 한 주파수 성분(1~2Hz)에 몰려 있는 것이 아니라, 다른 부분(1Hz 이하)에서도 성분이 존재하는 것을 알 수 있다. 이를 더 정확히 파악하기 위해 STFT 그래프를 보면, 장애물을 넘는 구간에(2.5-6초) 평지보다 더 낮은 주파수 성분이 나타난다. Wavelet 그래프에서도 같은 시 구간에서 스케일 15~128(1Hz 근방 및 이하, 표 1의 스케일 환산 참조)의 저주파에 해당하는 부분의 변화가 두드러짐을 알 수 있다.
그림 13반원형 장애물에서 모터 1의 입력파형, FT, STFT, Wavelet 결과 Fig. 13 Input waveform, FT, STFT and Wavelet results of first joint in round obstacle
그림 14반원형 장애물에서 모터 3의 입력파형, FT, STFT, Wavelet 결과 Fig. 14 Input waveform, FT, STFT and Wavelet results of third joint in round obstacle
그림 15반원형 장애물에서 모터 6의 입력파형, FT, STFT, Wavelet 결과 Fig. 15 Input waveform, FT, STFT and Wavelet results of sixth joint in round obstacle
또한, 머리 부분의 모터 1번은(그림 13) 장애물에 가장 먼저 닿고 장애물에 가장 많이 영향을 받기 때문에 그림 14, 15의 다른 모터의 경우에 비해 가장 많은 변화를 보인다. 종합적으로 장애물을 넘는 순간을 평지와 비교하였을 때, 정도의 차이는 있지만 저주파 성분이 증가한 것을 볼 수 있다.
그림 16-18에는 사다리꼴 장애물에 대한 실험 결과가 나와 있다. 그림 16의 모터 1에 대한 입력 파형을 통해 장애물을 올라갈 때 4~6초 근방에서 주기가 변화하는 것이 나타난다. 장애물의 구간이 반원형보다 길기 때문에, 시간축에서 보다 넓은 구간에 걸쳐 변화가 나타남을 보인다. FT에서도 반원형 장애물의 경우보다 더 주요 주파수 성분(1~2Hz) 이하의 저주파 성분이 증가한 것을 볼 수 있다. STFT에서도 4~6초 구간에서 반원형 장애물의 경우보다 초저주파 성분이 더 나타남을 알 수 있다. Wavelet 그래프에서도 더 넓은 4~8초 구간에서 초저주파에 해당하는 부분의 변화가 현저함을 더욱 명확히 알 수 있다.
그림 16사다리꼴 장애물에서 모터 1의 입력파형, FT, STFT, Wavelet 결과 Fig. 16 Input waveform, FT, STFT and Wavelet results of first joint in trapezoid obstacle
그림 17사다리꼴 장애물에서 모터 3의 입력파형, FT, STFT, Wavelet 결과 Fig. 17 Input waveform, FT, STFT and Wavelet results of third joint in trapezoid obstacle
그림 18사다리꼴 장애물에서 모터 6의 입력파형, FT, STFT, Wavelet 결과 Fig. 18 Input waveform, FT, STFT and Wavelet results of sixth joint in trapezoid obstacle
그림 17과 18에 모터 3과 모터 6에 대한 결과 그래프가 나와 있으며, 모터 1번보다는 변화량이 유사하거나 약간 작게 나타난다. 특히, 사다리꼴 장애물에서 내려오는 지점에 대한 14~16초 구간에서의 특성 변화가 더 뚜렷하게 나타남을 알 수 있다.
5. 결 과
본 논문에서는 NEAT를 통해 진화된 신경망을 평지에서 학습시킨 후, 장애물 지형에 적용을 하여 변화된 환경에 적응하는 신경망의 모터 입력상태를 분석하였다.
특히, 이들 신경망의 입출력에 대한 주파수 성분이 장애물을 넘는 과정에 변화됨을 발견하였다. 반원형 장애물을 넘는 실험에서, 평지를 움직일 때의 주요 주파수 성분보다 더 낮은 주파수 성분이 나타남을 알 수 있었다. 보다 큰 사다리꼴 장애물의 경우에는 초저주파 성분이 더 뚜렷하게 나타남을 확인할 수 있었다.
따라서 뱀형 로봇이 장애물 환경에 적응하기 위해서는 움직임에 대한 저주파 성분이 변화해야 한다는 것을 알 수 있다. 향후, 관찰된 주파수 성분을 수치적으로 해석하고, 이를 이용하여 움직임 파형을 생성하면 뱀형 로봇에 대한 적응적인 움직임을 제어할 수 기법의 개발이 가능하리라고 사료된다.