처음 IBM 로보코드 2007에 로봇을 제출할때 자신이 있었다.

전에 2006년 대회의 로봇들과 붙혀보았을때 매번 상위권점수를 유지 했기때문이다.

몇일있다가 내 로봇이 16강에 올랐다는 소식을 듣고 정말 기뻤다.

그리고, 나름 자만했다.

"역시나 생각대로 되는구나.." 이런 생각을 하며 말이다.

그러나, 세상은 그렇게 쉬운곳은 아닌가보다.


드디어 로보코드 2007 16강을 하는 오늘.

친구들을 대거(?) 몰고 도곡동 IBM 본사를 찾았다.

1등은 힘들겠지만 수상권 안에 들거라는 자신은 있었다.

솔직히 처음 16강 진출자들 전략 소개할때는

" 어떻게 올라왔는지 모른다. ",

" 남들이 설명하는 어려운 용어들은 모른다. "

라는 말을 했지만, 언제나 그랬듯.

졌을때를 대비한 도피처에 지나지 않았다.

나름 열심히 준비했고, 준비하며 그런 용어들을 많이 접해봤다.

1등 까진 아니더라도 올라가 주길 바랬다.

그러나 토너먼트 1차전에서 질 줄은 몰랐다.

같이온 친구들에게 미안했고,

아쉬웠다.

나에게도 화가났다.

그나마 위안이 되었던건 1차전에 나와 붙었던 로봇이 우승을 했다는 것이다.

솔직히 그때 우승상품인 맥북 보다 부러웠던건 우승자에게 쏫아진 스포트라이트 였다.

저게 나일수 있었다면....


대회는 끝났다.

아쉽지만 이제 접자.

내년을 기약하며.

'자유글' 카테고리의 다른 글

이클립스 업그레이드!  (24) 2007.08.29
사고  (49) 2007.08.27
기초.  (34) 2007.07.19
메리대구 공방전 중에서..  (20) 2007.07.14
우리 포도밭 guard 를 소개합니다.  (748) 2007.07.06
by cranix 2007. 8. 9. 00:53

로보코드 마스터들이 주는 힌트, 팁, 조언이 나왔습니다. 참고하세요.

Factored wall avoidance (한글)

코너에 갇히거나 원하는 이동 방향에서 너무 많이 벗어나지 않으면서, 로봇과 벽 사이의 간격을 유지하는 알고리즘을 만드는 것은 어려운 일입니다. 이에 대한 한 가지 간단한 솔루션으로, factored wall avoidance가 있습니다. 이 글에서, David McCoy가 이 기술을 구현하는 방법을 설명합니다.

반 중력 움직임 (한글)
반 중력 움직임(Anti-gravity movement)은, 여러 가지 변형된 형태들 중에, 대부분의 로보코더(Robocoder) 전문가들이 선택하는 움직임 유형입니다. 이것을 사용하면 지도상에서 피할 위치들을 정의하고, 움직임 패턴들을 쉽게 만들며, 적의 총알을 피할 수 있습니다. Alisdair Owens가 이 유용한 기술을 구현하는 방법을 설명합니다.

예상 타겟팅(targeting)
성공적으로 상대편 로봇의 위치를 찾아내고 슈팅 하기 위해서는 상대편이 있을 것이라고 예상되는 특정한 지점에 총알을 발사하는 알고리즘이 필요합니다. 이 글에서, Simon Parker는 직선형(linear), 원형(circular), 진동(oscillating) 예상 타겟팅에 사용될 수 있는 알고리즘을 설명합니다.

적의 움직임 추적하기
적의 움직임은 예상하기가 어려운 패턴을 가지고 있기 때문에 모든 타겟팅 알고리즘에는 한계가 있습니다. 각각의 상대편 로봇에 따라 최상의 움직임 알고리즘을 선택할 수 있는 방법을 배워봅시다.

원형(circular) 타겟팅
원형(circular) 타겟팅은 직선형 타겟팅을 터득한 후 취할 수 있는 다음 단계입니다. 고급 수학을 사용하면, 이 타겟팅은 정확히 원을 도는 로봇들을 공격하여 맞출 수 있습니다. 그러면서, 직선형으로 움직이는 로봇을 공격하는데도 효과를 발휘합니다. Alisdair Owens가 이 기술을 구현하는 방법을 설명하고 테스트 할 수 있는 예제 로봇도 제공합니다.

총알 피하기
승리하는 로보코드 로봇을 만들려면, 상대편이 여러분을 공격하는 것 보다 더 많이 여러분이 상대편을 공격해야 합니다. 자신의 로봇이 상대편 로봇을 타겟팅 하도록 하는 것은 더할 나위 없는 기술이지만, 상대편이 여러분 로봇을 타겟팅 할 수 없다면 어떻게 될까요? 간단한 트릭과 추측을 통해, DodgeBot은 총알을 피하는 방법을 보여줍니다.

레이더 스위프(Radar Sweep)
로봇의 레이더(radar)를 가장 효율적으로 사용하여 상대편의 위치에 대한 최신 정보를 얻는 방법을 설명합니다.

Roboleague
로보코드 플레이어들을 위한 리그를 만드는 것에 관심 있으십니까? 이 글에서, Christian Schnell이 그가 어떻게 그의 Roboleague을 만들었는지에 대한 방법을 설명합니다.

Polymorphic enemy cache
성공적인 로봇들은 전투 시 중요한 결정을 내릴 때 언제라도 액세스 할 수 있는 축적된 정보를 관리하고 있습니다. 적들의 움직임 패턴 분석부터, 적들이 얼마나 접근해 있느냐와 힘에 따라서 누구를 공격할지를 결정하는 방법까지 다양한 면에서 유용합니다. 이 글에서는 다형성을 이용하는 최신 객체의 편의성을 가지면서 효율적이고, 빠른 에너미 캐시(Enemy Cache)를 구현하는 방법을 설명합니다.

확장 가능하며, 재사용 가능한 로봇
Ray Vermette은 그의 로보코드 로봇을 모듈과, 재사용 가능한 조각으로 나누어서, 로봇들의 다양한 행동 패턴들을 관리하는 방법을 설명합니다.

로보코드 전략
로보코드 전략 가이드에서는 Gladiatorial League의 역사를 설명하고, 움직임, 슈팅, 정보 모으기 등의 다양한 전략 레벨을 설명합니다.

총알 추적하기
상대편을 조준하는 가장 적절한 기술을 사용하기 위해서는 어떤 기술이 작동하고, 어떤 기술이 작동하지 않는지에 대한 정확한 통계가 있어야 합니다. 이 글에서 Ray Vermette은 BulletTracker 클래스를 구현하여 이 기술을 사용하는 방법을 설명합니다.

원문: http://www.ibm.com/developerworks/kr/library/j-robotips/

by cranix 2007. 7. 11. 18:26
| 1 |