미로(迷路)를 달리는 작은 로봇, 즉 마이크로마우스는 로봇의 내일을 점치게 한다.
미로를 달리는 로봇을 제작, 시발점에서 종점까지 이르는 시간을 다투는 경기가 바로 마이크로 마우스 대회다. 이 경기는 현재까지 국내에서 일곱 차례 개최됐는데 올해에도 제8회 대회가 서울대학교 제어계측공학과 주최로 열릴 예정이다.
마이크로 마우스 대회용의 미로는 16×16=256 구획의 크기로 결정돼 있다. 그리고 각 구획의 크기나 바닥의 재질, 벽의 높이·두께 등도 규정에 의해 정해지는데 미로는 시합당일 경기가 있기 직전에 알려진다. 각 구획은 한변이 18cm인 정방형이고 벽의 높이는 5cm, 두께는 1.2cm다.
인간이 이 미로를 위에서 보고 빠져 나오는 일은 별로 힘들지 않다. 그러나 로봇에게는 그렇게 간단한 문제가 아니다. 인간 역시 미로안에 있다면 빠져나오기가 결코 쉽지 않을 것이다. 미로의 크기가 매우 협소하기 때문이다. 그 속을 달리는 마이크로마우스의 크기도 작아질 수 밖에 없다. 실제 경기에서도 마이크로 마우스의 크기는 가로·세로가 각각 25cm 이내로 한정돼 있다. 이처럼 작은 마이크로 마우스 안에 전지마이크로컴퓨터 센서 모터 등을 모두 싣고 그것만을 이용해 미로의 목적점(가운데)을 찾아야 하는 것이다.
미로가 경기당일까지 전혀 알려지지 않으므로 마이크로 마우스는 어떤 형태의 미로속에서도 길을 찾아내는 능력을 갖춰야 한다. 사실 미로는 얼마든지 다르게 만들 수 있다. 따라서 달리는 길을 미리 마우스에 기억시켜 놓는 방법으로는 문제를 해결할 수 없다. 다시 말해 어떤 미로라도 통과할 수 있는 기능, 즉 일반적인 알고리즘을 보유하고 있어야 한다.
불과 17초만에
마이크로마우스 경기는 미국의 IEEE(Institute of Electrical and Electronics Engineers) 주최로 1977년 5월에 처음 실시됐다. 그 후 이 경기는 유럽으로 건너갔는데 유럽에서는 유로마이크로(Euromicro)라는 컴퓨터관계 학회가 주관하고 있다.
국내에서는 83년 11월 4일 서울대 제어계측공학과 주관으로 마이크로마우스대회의 막을 연후 매년 한차례씩 실시 되고 있다. 1회대회는 국내에 마이크로마우스라는 개념을 처음 도입한 대회로 요즘의 대회와는 많은 차이를 보이고 있다.
우선 미로의 크기가 현재의 4분의 1인 8×8 구획이었고 목적지도 중앙이 아닌 미로의 한쪽 끝 (출발점과 그 대각선상의 끝)이었다. 이 대회에는 모두 5개팀이 참가했는데 '시크리트1.0'이라는 마우스만이 3분 15초의 기록으로 주행을 마쳤다.
2회 대회는 이듬 해인 84년에 개최됐는데 미로의 형태나 크기는 현재의 미로와 같은 형태를 취했으나 미로의 난이도가 형편이 떨어졌다. 이 대회에서는 '골목대장'이라는 마우스가 1분50초의 기록으로 우승을 차지했다.
이때 마이크로 캣(cat)이라는 경기도 같이 열렸다. 마이크로 캣 대회는 마이크로마우스대회와는 달리 8×8의 미로에서 진행되는 경기다. 각 블럭(block)의 크기가 60cm×60cm로 매우 넓은 이 경기는 오래 지속되지 못하고 한번으로 끝나고 말았다. 캣 대회가 마우스 대회에 비해 너무 싱겁기 때문이었다.
제3회대회의 입상자에게는 그해 일본도쿄에서 열린 세계 마이크로마우스대회 출전자격이 주어졌다. 또 이 대회부터 일본 마이크로마우스대회에서 사용하는 고난도의 미로를 사용하기 시작했다. 일본대회에는 국내대회에서 1분30초의 기록으로 우승한 '고추2호'가 참가했으나 완주에는 실패했다.
4회 대회부터는 미로의 난이도가 이전대회보다 더 높아져 국내대회의 수준을 한단계 끌어올리는 계기를 마련했다. 이 때문에 종전의 미로에서라며 완주가 가능했던 마우스들이 모두 탈락하는 결과를 낳았다.
이날 세계대회에서 우승했던 일본의 '노리코'가 시범주행을 했는데 2차 주행기록이 놀랍게도 '17초'였다. 이 시범은 세계수준의 마우스와 국내 마우스의 차이를 분명하게 보여줘 국내 로봇의 발전을 촉진시키는 계기가 되었다.
5회 대회는 이전까지의 경기수준과 현격한 차가 있는 대회였다. 대회 규모면에서도 양적인 팽창을 보여주었다. 무려 9팀이 완주했다는 사실이 이를 여실히 보여준다.
총45개팀이 참가해 15개팀이 1,2차 예선을 통과, 본선에 진출했다. 본선 대회에 참가한 팀 중에서 5팀이 1차 주행에 성공했고 우승한 '스피디1'은 38초 25라는 좋은 기록을 내었다. 이 대회에서 2위에 입상한 '터보3'은 비록 2위에 그쳤지만 대회가 끝난 뒤 실시한 시범주행에서 새로운 묘기를 선보였다. 국내 최초로 한바퀴를 정지시키고 다른 한 바퀴로만 방향을 바꾸는 고난도 기술을 보여준 것이다.
6회 대회부터는 대회 규정이 바뀌었다. 소프트웨어의 효율성과 마우스의 안정성에 비중을 둬야 좋은 성적을 낼 수 있도록 규정을 변경한 것이다. 시간을 계산하는 방법도 이전 대회와는 달라졌다.
5회대회까지는 2차주행의 최단시간으로 순위를 결정했으나 6회대회부터는 1차 주행때 소요되는 시간도 고려했다. 또 제작자가 모든 주행이 끝날 때까지 마우스에 전혀 손을 대지 않으면 소요시간에서 10초를 빼주는 보너스가 주어진다.
이 대회에서 우승한 '스피드3'은 기능을 제어하고 길을 찾는 법을 계산하는 컴퓨터 부분이 탁월했다. 이전의 로봇들이 8비트의 Z-80을 주로 사용했던 것과는 달리 '스피드 3'은 V40이라는 16비트 CPU(중앙연산처리장치)를 사용, 효율을 증대시켰다. 또 마우스가 고속을 낼 수 있는 회로를 사용했다.
반면 '터보 4'는 CPU에 Z-80과 8081 8비트 프로세서를 사용, 두개의 CPU로 계산처리를 동시에 수행하도록 했다. 이 마우스의 가장 큰 특징은 '스무스 턴'이다. 열심히 달리다가 회전할 때 대개의 마우스들은 일단 정지하고 나서 회전한다. 하지만 '스무스 턴'을 하는 로봇은 멈추지 않고 돌기 때문에 짧은 시간에 주행을 마칠 수 있다.
하드와 소프트의 균형이 중요
작년에 열린 7회 대회에서도 많은 성과가 있었다. 참가한 마우스들의 수준이 전반적으로 매우 높았고 대회참가 마우스의 수에서도 양적인 팽창이 이뤄졌다. 우승은 5회 6회 대회에서 연거푸 우승했던 '스피디 2' '스피드 3'과 같은 계열인 '스피디 3⁺'가 차지했다.
'스피디 3⁺'는 하드웨어는 '스피디 3'과 같으나 소프트웨어에 있어서 보다 효율적인 알고리즘을 갖고 있었다. 기존의 마우스들이 최단 '시간'을 계산해 내는데 주로 최단 '경로'의 길을 찾는 데 비해 이 마우스는 회전이 적은 최단 '시간'의 길로 달렸다. 또 주행할 때는 '스무스 턴' 기법을 보여주었다. 한마디로 '스피디 3⁺'는 완벽에 가까운 마우스였다.
한편 '미스터 블랙'은 처음 출전해 우수한 성적을 거둔 마우스로 대회장의 갈채를 한 몸에 받았다. 기록도 2위에 해당하는 좋은 성적이다.
그리고 '축지법'은 CPU에 68000이라는 고성능의 32비트 마이크로프로세서를 채택해 효율을 높였으나 역시 주행이 불안, 2차 주행에 실패하고 말았다. 그러나 이 마우스가 사용한 CPU는 종래의 다른 마우스가 장착한 것과는 비교할 수 없을 정도로 우수한 것이었다. 그러나 제작자는 "마우스에는 그런 정도의 고성능 CPU를 탑재할 필요가 없는 것 같다"라고 지적했다. 확실히 이 말은 시사하는 바가 크다. 전체적인 하드웨어와 소프트웨어의 균형이 우수한 마우스를 보장한다는 해석이 가능하기 때문이다.
마이크로 마우스는 크게 세 부분으로 이루어진다. 사람의 두뇌에 해당하는 CPU(Central Processing Unit, 중앙연산처리장치), 눈과 귀에 해당하는 센서, 다리에 해당하는 모터(motor)로 나누어 생각할 수 있는 것이다.
알다시피 CPU 보드(board)는 마우스의 컴퓨터다. 마이크로마우스는 지능을 가진 로봇이어야 하므로 이를 해결할 부분이 필요한데 CPU 보드가 이 기능을 담당하는 것이다. 대회에서 제시되는 미로들이 난해 목적지까지 길을 찾아가려면 마우스는 많은 생각을 해야 한다.
그런데 보통 사용되는 8비트 CPU(보통 Z80을 쓴다.)는 처리속도가 16비트보다 훨씬 느려 고도의 계산을 해야할 경우, 대단히 비효율적이다. 이에 비해 16비트 CPU는 처리속도가 상대적으로 빠르고 데이터의 처리도 용이하기 때문에 앞으로는 16비트가 주류를 이룰 것이다.
마이크로마우스대회에서 사용되는 미로는 크기가 정해져 있다. 이런 미로 속에서 마우스가 좁은 길을 부딪치지 않고 빠른 속도로 달리려면 벽들에 대한 정보를 갖고 있어야만 한다. 이를 담당하는 부분이 바로 센서회로이다.
센서에는 여러 종류가 있다. 광센서 초음파센서 접촉센서 컬러센서 레이저센서 이미지센서 등등. 이런 센서들중에서 회로를 구성하기 쉽고 경제적인 것이 광센서와 초음파센서다. 광센서을 쏘아주는 적외선LED(Infra Red Light Emitting Diode)를 사용, 벽에 반사돼 돌아오는 적외선을 광 트랜지스터를 통해 받아 벽의 유무를 판별하는 것이다. 국내의 마우스들이 완주에 실패하는 이유의 대부분은 적외선센서의 불안함에 있다.
초음파센서는 주로 거리측정을 하기 위해 사용된다. 빛은 속도가 너무 빠르기 때문에 아주 먼 거리가 아니면 거리측정에 사용하기 힘들다. 그러나 음파는 1초에 3백40m를 진행하므로 근거리 측정이 가능하다. 소리가 1m 나아가는데 1/340초가 걸리므로 벽에 맞고 반사돼 돌아오는 신호를 검출, 그때까지의 소요시간을 재는 것이다.
이러한 센서외에도 일본에서는 자이로스코프라는 기기를 활용하는 로봇도 등장하고 있다. 자이로스코프란 비행기나 미사일 등에 사용하는 센서로 물체가 회전할 때의 회전각을 정밀하게 측정하는 기기다. 따라서 이 센서를 마우스에 사용하면 정확한 위치제어가 가능해진다.
그러나 국내에서는 아직 아마추어가 사용할만한 자이로스코프를 만드는 곳이 없다. 기술적으로도 많은 어려움이 따른다. 다시 말해 이를 마우스에 장착시키는 기술이 확보돼 있지 않다.
DC모터를 권해
마이크로마우스에 장착되는 모터로는 보통 DC모터와 스테핑모터를 꼽는다. 그중에서도 제어하기 쉽다는 장점을 지닌 스테핑모터(펄스모터라고도 부른다)가 많이 사용된다.
DC모터란 모형탱크나 모형자동차 등에 사용되는 모터와 원리가 같은 것이다. 이 모터는 크기에 비해 속도나 힘이 크다. 하지만 제어하기가 힘들다는 단점도 동시에 가지고 있다. 어쩔 수 없이 제어회로가 복잡해지는 이 모터를 정밀하게 제어하기 위해서는 전자공학 전반에 걸친 지식을 두루 알고 있어야 한다.
예를 들어 선풍기에서 사용되는 모터(DC모터와는 조금 다르지만)를 정확히 10° 또는 45°회전시킨 후 정지시킨다고 생각해 보자. 참으로 어려운 일이다.
그러나 스테핑모터를 부착하면 한 펄스마다 일정한 각도씩 회전하여 정지한다. 쉽게 설명하면 스위치를 한번 껐다 켤 때마다 (모터마다 다르게 정해져 있지만) 일정한 각도(보통 0.9° 1.8° 3.6° 등)를 회전한다. 따라서 1.8°모터의 경우 한바퀴 회전시키려면 스위치를 2백번 누르면 된다. 물론 스위치 조작은 컴퓨터 처리부에서 고속으로 행한다.
이러한 스테핑모터의 장점에도 불구하고 이 모터는 고속용으로는 부적당한 것으로 평가되고 있다. 힘이나 속도에 비해 무게가 많이 나가고 전력의 소모도 DC모터에 비해 크기 때문이다. 따라서 고속의 마우스를 만들려면 (적어도 1초당 1.5m 이상의 속도) DC모터를 부착해야 한다. 실제로 일본이나 미국의 세계 정상급 마우스에 DC모터가 내장돼 있다.
아직 국내에서 DC모터를 장착한 채로 완주한 마우스가 없다. DC모터의 제어는 전자공학이나 제어계측공학의 학부과정 학생이 이를 소화해 내기란 쉽지 않다.
그러나 마이크로마우스대회가 전자공학도들의 최종목표가 아니라 한 과정이라는 점을 생각해 볼 때 DC모터를 사용하는 학생이 거의 없다는 사실은 무척이나 아쉬운 점이다. 실제 산업 현장에서는 대부분 DC모터(혹은 AC모터)같은 것이 쓰인다. 앞으로 국내 마이크로마우스대회의 질적인 향상을 꾀하려면 DC모터를 부착한 마우스에 대한 특별 배려가 있어야 할 것이다.