CHOU

제6회 임베디드 소프트웨어 공모대전(휴머노이드 부분) 본문

Tech/Robotics

제6회 임베디드 소프트웨어 공모대전(휴머노이드 부분)

chobabo 2009. 3. 8. 19:17

 3개월 동안 팀원들이 같이 밤새워가며 노력을 했지만 수상을 하지 못해서 매우 아쉬웠던 대회였다.

 대회에 관해서 간략한 소개를 하자면 16개 블록으로 이루어진 4x4 배열의 임의로 구성된 미로를 로봇이 가장 빠르게 2차 목적지를 스스로 찾아내고 다시 최단거리를 분석하여 출발지로 되돌아오는 시간을 측정하여 최소 시간으로 미션을 마친 팀이 우승을 하는 경기였다. (6회 대회동안 건국대 반바지 팀을 제외하고는 완주한 팀이 없다^^)

그림1. 실제 경기장 맵 규격대로 만든 테스트 미로 사진

 대회는 총 두번의 산출물 심사를 하는데 1차예선때는 주최측에서 제공하는 로봇 스펙을 공개하고 그 로봇을 이용하여 얼마나 효율적으로 미로를 통과할 것인가를 물어보는데 문서로만 심사하기 때문에 통과하는데에는 큰 어려움은 없다. 2차예선은 대회 2주전 정도에 실시 되는데 그때까지 만든 어플리케이션 산출물과 최종 문서를 요구한다.(2차 예선때도 프로그램이 완성되지 못하는 경우가 많다)

 로봇이 맵을 효율적으로 통과하고 귀환하기 위해서는 로봇에 달린 카메라 비전과, 적외선 센서등을 이용하여 복합적인 알고리즘을 적용해야 하는데 크게 4가지 기능으로 분류하여 설명할 수 있다.


1. 각 블록마다 있는 미션 캐릭터 인식을 위한 비전인식

 캐릭터는 영문자이기 때문에 전처리만 적절하게 하고 오픈소스 엔진을 이용하면 거의 100%에 가까운 인식률을 나타낼 수 있다. 실제 우리 팀도 영상인식에 많은 시간을 투자했지만 나중에는 굉장히 후회한 부분이었다.


그림2. 실제 segmentation 끝내는 과정 (이정도만 해도 잘 읽어서 처리한다.)

2. 맵 빌딩

 이미 4x4 배열이라는 사실과 출발점을 알기 때문에 SLAM 과 같은 복합적인 알고리즘 보다는 간단하게 내가 어디에 있나 정도만 알 수 있는 알고리즘과 경로저장 알고리즘 정도만 있어도 충분하다. 

3. 적외선 센서를 통한 거리와 현재점 위치 제어

 적외선 센서는 다양한 변수에 따라 값의 변화가 심하고 일정한 출력값을 내려면 정말로 최적의 환경을 보여줘야 하기때문에 여러가지 필터링을 통해서 센서를 제어해야 하는데 센서와 카메라를 복합적으로 사용해서 거리를 측정할 수도 있고 센서만으로 측정할 수도 있고 자신의 팀에 맞게 설계하는게 중요하다.

4. 보행
 실제로 대회 당일날 수상팀과 비 수상팀의 가장 실력차를 보였던건 보행이었다. 실제로 직진과 좌.우측 턴 보행등은 센서나 다른 기능으로 보정을 한다 하더라도 어느정도 균일한 값을 보여줘야 하는데 배터리의 용량이나 지면의 마찰력등에 크게 변화가 되어서 대회 수상실패 요인중에 가장 큰 부분이라고 생각한다. 실제로 2009년에 공모대전이 개최되어 재 출전을 한다면 이 부분을 집중적으로 연구해볼 필요가 있다고 생각한다.


그림3. 보행연구할때 만든 프레임




**결론**
 실제 시뮬레이션 테스팅 전까지 개발과정은 영상인식 -> 맵빌딩 -> 센싱 -> 보행 순으로 이루어져서 센싱개발 까지의 시뮬레이션 테스팅은 90%이상의 성공률을 보였다. 하지만 보행에 대한 준비연구 없이 무작정 테스팅을 반복하다 보니 모터도 쉽게 손상되고 효율적이고 빠른 보행이 이루어 지지 못했던 것 같다.

**참고**
1. 대회 전날 테스트하는 맵이 다음날 경기장맵과 동일하다^^; (나쁜맘 먹으면 먹을수 있지만 학생의 양심을 지켰다)
2. 영상인식은 명확히 글자를 못 읽어도 상관없다. 4x4 미로는 공식에 의해서 2차목적지까지 오는데 몇개의 캐릭터가 있는지만 알 수 있어도 미션을 수행하는데는 아무 문제가 없다.
3. 핵심 알고리즘은 개발하기 보다는 오픈소스 붙이는게 훨씬 수월하다. 대회에서는 오픈소스 이용 제약이 전혀 없다.


개최된지 꽤 지난 대회를 몇달만에 갑자기 생각나서 정리하려고 하니까 지난날의 패배의 아픔이 떠오른다 ㅋㅋㅋ^^;
2008년에는 이매진 컵에 이어서 소프트웨어 공모전까지 미끄러 지면서 참 힘든 한해였지만^^; 올해는 일본에서 꼭 대회 하나 수상해야지!!! ㅋㅋㅋ

첨부파일: 대회 2차전 최종 문서
(비록 수상은 못했지만 보행 빼고는 거의 구현했기 때문에 혹시 궁금한 분들은 받아서 보시기를..)