로봇신문사
> 오피니언 > 학생칼럼
로보컵 세계대회 참가 후기한동희ㆍ국민대 자동차학과 2학년
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
승인 2016.07.31  17:23:38
트위터 페이스북 구글+ 밴드

   
 
저는 6월 29일부터 7월 4일까지 6일간 독일 라이프치히에서 열린 로보컵 세계대회에 국민대학교 로봇축구 동아리 팀 KUDOS 일원으로 키드 사이즈 휴머노이드 리그에 참여하였다.


우리팀은 국민대학교 로봇축구 동아리 ‘팀 KUDOS’ 이다. 올해 2월에 개최된 한국 로보컵 오픈대회에서 휴머노이드 축구 리그에서 우승하였고, 올해로 네 번째 로보컵 세계대회에 출전하였다. 독일 라이프치히에서 열린 세계대회에 우리는 ‘KUDOS’ 와 ‘KUDOS-A’ 2개의 팀으로 나누어 출전하였다. KUDOS는 키드 사이즈 휴머노이드 리그 그리고 KUDOS-A는 성인 사이즈 휴머노이드 리그에 참가하였다. 팀 구성은 KUDOS는 학부생 12명, KUDOS-A는 석사 2명이고, 지도교수는 조백규 교수님을  포함해 총 15명으로 구성된 팀이다.

나는 영상처리(Computer Vision)에 많은 관심을 갖고 다양한 연구를 하고 있고, 현재 KUDOS에서 비전 시스템을 담당하는 동시에 골키퍼 로봇(5번)을 동기인 김채은과 함께 맡고있다. 팀에서 영상처리는 주로 그라운드의 공, 잔디, 골대를 찾아내는 것을 주로 했다. 공을 구분하기 위해서는 먼저 잔디를 구분하고, 그 위에 있는 것들 중에서 공을 찾아냈다. 잔디 위에서 흰색들을 콘투어(Contour)로 구분을 한 다음, 그들 중 가장 큰 콘투어를 공으로 구분했다. 사실 이 알고리즘은 많은 보완이 필요하다고 생각한다. 골대는 히스토그램(Histogram)으로 구분했다.이렇게 물체를 구분하는 과정의 기본은 교정(Calibration)이다.(물론, 머신 러닝을 사용하면 달라졌겠지만) 따라서 경기를 할 때마다 교정을 해서 물체들이 정확히 구분이 되는지 확인을 해야한다. 나는 경기가 시작하기 전부터 6대의 로봇들이 교정이 잘 되었는지 확인하는 임무를 맡았다. 따라서 경기를 시작할 때 즈음이 가장 바쁘고 정신 없다.

1학년 2학기가 시작되고 팀 KUDOS에 가입하여 지금까지 영상처리와 휴머노이드 축구를 연구하고 있다. 이제 만 1년이 되었고, 어떻게 보면 1년동안 대회 준비를 한 것이다. 그 동안 팀 내에서 가장 힘들었던 과정은 바로 '쿠보 틴(KuboTeen)1'의 개발 이었다. 틴1의 경우 이제 2살이 되는 로봇인데, 이름에서 알 수 있듯이 틴 사이즈 로봇이다. 이 로봇이 문제가 되었던 이유는 바로 디버깅이었다. 나는 평상시처럼 쿠봇(Kubot)에 들어갈 영상처리를 프로그래밍하고, 다른 거의 모든 쿠봇에 내가 구성한 알고리즘을 적용하였다. 그리하여 한승민 선배의 부탁으로 틴1 에도 내 알고리즘을 적용하였다. 나는 다른 로봇들처럼 내 코드를 넣었고, 내 코드가 잘 적용되는지 테스트를 했는데 터미널 창에 ‘세그멘테이션 폴트’ 라는 끔찍한 문구가 떴다. 나는 깜짝놀라 실수를 했나 하고 디버깅을 시작했다. 그때까지만 해도 심각한 문제라고 생각하지 못했다. 그렇게 나는 점심에 시작한 디버깅을 다음날 밤까지 꼬박 새고서도 끝내지 못했다. 다른 로봇의 코드를 집어 넣으면 잘 돌아가는데 이상하게 한승민 선배의 코드에서 오픈CV를 사용하면 계속 오류가 떴다. 그래서 오픈CV도 다시 설치해 보았지만 결과는 똑 같았다. 어디서 오류가 뜨는지 찾아 봤는데 버퍼 쪽에서 에러가 뜨고 있었다. 결국에는 이틀 동안 문제를 해결하지 못하고, 기본 영상처리 소스를 사용하여 준비했다. 그리고 독일로 출국하기 전 한윤호 선배의 코드와 한승민 선배의 코드를 조합해서 문제를 해결했다. 지금 돌이켜 보니 아마도 파일이 깨져 오류가 발생하지 않았나 추측된다.

가장 바쁠때인 출국 1주전 부터는 정말 정신이 없었다. 로봇연습, 짐 포장, 여행계획 등등...공구나 부품들로 캐리어를 한 사람당 하나씩 추가하였다. 가져가야 할 짐이 너무 많기 때문에 팀원들 간에 소통 부족으로 크나 큰 실수를 범하게 되었다. 여분의 로봇 배터리를 한국에 두고 와서 독일 현지에서 배터리를 급하게 수배하여 구매했다. 향후에는 로봇관련 주요 화물은 출국전 국제특송으로 미리 한국에서 발송하는 편이 여러모로 최선이라 생각한다. 이 뿐만 아니라 틴3가 만들어질 뻔한 이야기나 NUC고장, 필요 물품구매 등 정말 힘들었던 일이 많았다. 하지만 그럴수록 혼자서 해결하려 하지 말고, 팀원들과 합리적인 의견 교환을 통해 빠르고 현명하게 문제를 해결하는 것이 가장 좋은 것 같다. 혼자서 문제를 안고 가려다가 결국 자기 혼자 지치게 되고, 팀 내의 분위기도 흐리게 된다. 또, 자신이 잘못한 점은 확실히 인정을 하고, 잘못을 뉘우쳐야 하며, 앞으로 같은 사고가 재발되지 않도록 주의해야 겠다.

6월 28일과 29일은 경기를 준비하는 셋업 데이였다. 28일 팀 등록을 하고 우리는 경기장에 들어갈 수 있었다. 경기장에 입장하고, 경기가 치뤄질 필드를 보았다. 필드에는 밖에는 각종 스폰서 로고가 전시되어 있었는데 문제는 흰색 바탕에 로고가 그려져 있었다. 심지어 골 포스트도 흰색이었기 때문에 교정(Calibration)해서 골대를 잡아도 그 광고판이 문제가 될 것이라는 생각이 가장 먼저 들었다. 우리는 부랴부랴 짐을 풀고 로봇을 조립하기 시작했다. 경기장은 총 5개가 있었고, 경기가 진행되지 않을 땐 연습용으로 경기장을 쓸 수 있었다. 김채은과 나는 5번 로봇, 골키퍼를 구동시켜 보았다. 한국에서 5번 로봇의 무릎을 MX-64로 바꾼 이후에 액션을 수정하지 않아 일어나지 못했고, 역시 이 곳에서도 제대로 일어나지 못해 가장 먼저 액션을 만들기 시작했다. 액션을 모두 수정한 다음 영상처리 교정을 하여 데모를 최적화 했다. 그리고 경기장 마감 시간인 11시까지 골포스트 찾는 알고리즘에 대해 연구하다가 숙소로 돌아왔다.

29일, 아침부터 계속해서 골포스트를 찾았다. 나는 복잡하게 해결하려 하고 있었는데 의외로 쉽게 풀릴 수 있는 문제였다. 골포스트는 높은 기둥이고 HSV로 봤을 때 V값이 광고판보다 대체로 낮게 되어있었다. 따라서 회색을 교정하여 먼저 골대를 찾아내고, 교정한 회색에서 연속적으로 길게 뻗어져 있고 기둥 아래에 잔디가 연속적으로 있으면 골포스트라고 인식할 수 있는 것이다. 그렇게 골포스트를 구분하여 틴2와 쿠봇1에 이 알고리즘을 적용시켰지만 상당히 불안정해서 계속 수정을 했었다.

30일부터 본격적으로 대회가 시작되었다. 키드 사이즈의 참가 팀 수는 24팀 이었다. 경기 방식은 2번의 리그전, 그리고 8강부터 토너먼트가 시작된다. 두 번째 리그전에서는 각 조의 1등이 무조건 올라가게 되고, 2,3등 팀은 다른 조의 2,3등과 경기를 해서 이긴 팀이 올라가게 된다. 첫 번 째 리그는 총 6개의 조가 만들어 졌으며, 우리가 속한 조는 팀 한명이 참여하지 않았다. 첫 경기는 이란의 MRL-HSL팀과 붙었다. 결과는 0대0. 그리고 다음 경기는 출전하지 않은 팀과 붙어서 필드에는 우리 팀 밖에 없었다. 우리는 최대한 많은 골을 넣어서 리그전 점수를 많이 챙겨야하는 상황이었다. 하지만 로봇이 골대를 찾지 못해서 2골 밖에 못 넣었다. MRL-HSL팀은 3골을 넣었기 때문에 우리는 예선전 2등으로 다른 조 3등과 경기를 치루게 됐다.
2차 리그에 올라가기 위해서는 꼭 이겨야 하는 상황이었다. 상대방은 ???나라의 ???팀이다. 경기는 0대0. 다음 리그로 올라갈 팀을 정해야 하기 때문에 연장전과 승부차기 모두 진행됐다. 연장전도 0대0이 되었고 승부차기에서 승패를 가르게 되었다. 두 팀 모두 승부차기에서 킥을 못했기 때문에 공이 얼마나 멀리 갔는지를 통해 승패를 결정했다. 우리 팀은 아슬아슬하게 이겨서 예선 2차전에 진출했고, 예선 2차전에서는 1승 1패, 조 2위로 토너먼트, 즉 8강에 진출하게 되었다. 8강전에서는 전년도 우승자인 일본의 CIT 브레인즈 팀과 경기를 했으며 결과는 0:5 완패를 하여 2016년 로보컵을 마무리 지었다.

우리 팀은 역대 최고 성적인 8강에 오르게 되었다. 많이 아쉽기도 했지만 이 대회에서 앞으로 우리가 나아가야 할 방향과 목표가 생겼다.

이번 대회를 통해 배운것도 많이 있다. 먼저 소프트웨어 적으로 보자면, 상위 순위에 올라간 모든 팀은 로봇 스스로 자신의 위치를 알 수 있다. 즉, 로컬라이제이션을 할 수 있다고 말한다. 반면에 우리 팀은 이를 시도하지 않았다. 그리고 다수의 로봇들이 ROS(Robot Operating System)을 사용한다. 따라서 로봇 간의 통신과 코드의 공유 등을 편하게 할 수 있고, Qt로 GUI를 직접 만들어서 사용한다. 반면에 우리는 아직도 리눅스 9.04에 ROS를 사용하지 않는다. 이번 대회를 통해서 우리 팀의 한계를 느낄 수 있었다. 또한 같은 팀 로봇 간의 통신을 통해서 공과 자신의 위치 그리고, 골대의 위치를 공유해서 더 전략적으로 경기를 할 수 있었다. 심지어 일본팀(CIT Brain)은 자신의 경로에 상대방 로봇이 있다면 피해서 공을 찾아가기도 했다. 우리 팀이 게임 컨트롤을 사용하지 않은 것도 큰 문제가 됐다. 일일이 버튼 조작을 해서 시작을 해야하기 때문에 핸들러가 작동할 때 시간이 걸리고, 실수도 하면서 로봇을 퇴장시켜야 하는 경우가 있었다. 반면에 다른 팀들은 게임 컨트롤 통신을 사용해서 경기가 시작 될 때 무선으로 로봇이 작동되고, 심지어 Robhan 팀은 스스로 지정된 위치에 가기도 한다. 나는 내년까지 게임 컨트롤 통신을 적용시킬 계획이다. 하드웨어적으로 봤을 때 우리 팀의 로봇이 크게 부족하진 않지만 일본 팀과 몇 몇 팀의 로봇은 다리에 링크 구조를 사용한 것이 인상 깊었다. 또한 큰 토크가 부하되는 힙 피치(Hip Pitch)쪽의 모터는 감속 기어를 사용하여 토크를 좀더 증가시킨 로봇도 있었다. 대부분의 로봇들은 우리와 똑 같은 모터를 사용하거나 사양이 더 낮은 모터를 사용한 팀도 있었다. 사실 1위를 한 팀의 로봇은 기계적 구조를 봤을 때 우리 팀과 큰 차이가 없다. 하지만 ROS를 사용하고, 로컬라이제이션, 슛, 로봇 간의 통신 등 소프트웨어적으로 큰 차이가 있었던 것 같다.

나는 한국에 돌아오자마자 연구실에서 ROS 연구를 시작했고, 학회 자료실에서 그라운드의 외곽을 인식하여 로컬라이제이션 하는 포스터를 찾았고, 오픈CV로 구현을 해놓았다. 이처럼 부족한 부분을 정확히 인지하고 하나씩 개선해 나간다면 분명 내년에는 더욱 발전된 KUDOS 휴머노이드를 기대할 수 있을 것이며, 이를 발판으로 끊임없는 연구, 개발로 더욱 발전시켜 로보컵의 목표인 2050년 이전에 필드에서 인간 월드컵 우승팀과 겨룰수 있는 휴머노이드 로봇에 적용되는 비전 시스템을 완성시켜 나가야겠다.   한동희ㆍ국민대학교 자동차융합대학 자동차학과 2학년

박경일  robot@irobotnews.com
박경일의 다른기사 보기  
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
트위터 페이스북 구글+ 밴드 뒤로가기 위로가기
이 기사에 대한 댓글 이야기 (0)
자동등록방지용 코드를 입력하세요!   
확인
- 200자까지 쓰실 수 있습니다. (현재 0 byte / 최대 400byte)
- 욕설등 인신공격성 글은 삭제 합니다. [운영원칙]
이 기사에 대한 댓글 이야기 (0)
최근인기기사
1
A New Leader in the Field of Collaborative Robots, Neuromeka
2
NT Robot, Pursuing a Human-Robot Symbiosis
3
로봇산업협회, 회원사 오픈 팩토리 행사 개최
4
미쓰비시, AI 적용 산업용 로봇 팔 개발
5
KT, LTE 기반 AI스피커 출시
6
월마트, 바닥청소 로봇 도입 추진
7
국산 무인선 '아라곤Ⅱ호', 닻 올렸다
8
빅데이터ㆍAI 의료기기 허가 심사 가이드라인 마련
9
IFR, "서비스 로봇 시장 탄력받았다"
10
대한민국청소년로봇연맹, 청소년 로봇 스포츠 대회 연다
로봇신문 소개기사제보광고문의불편신고개인정보취급방침이메일무단수집거부청소년보호정책    본지는 인터넷신문위원회 자율심의 준수 서약사입니다
08298) 서울 구로구 공원로 41(구로동, 현대파크빌 427호)  |  대표전화 : 02)867-6200  |  팩스 : 02)867-6203
등록번호 : 서울 아 02659  |  등록일자 : 2013.5.21  |  발행인·편집인 : 조규남  |  청소년보호책임자 : 박경일
Copyright © 2013 로봇신문사. All rights reserved. mail to editor@irobotnews.com