Robot 움직임 전략 - Wave Surfing, Wall Smoothing

로그[log]/로보코드 2013. 3. 20. 00:49



파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
728x90
'


 

Wave Surfing


Wave는 로봇이 발생시킬 수 있는 가상의 파동이며, 이를 이용하면 타 로봇의 발사 각도를 수집하여 총알의 가능한 모든 위치를 파악할 수 있게 한다. 로봇은 이러한 Wave와 총알의 관찰을 통해 위험 (i.e.적이 총알을 다양한 각도에서 발사했을 가능성)을 파악하고, 그에 따라 최적의 경로를 설정할 수 있게 되는 것이다.


Wave surfing
의 작동 원리는 다음과 같다.

1. Energy Drop을 탐지하여 총알이 발사된 것을 감지한다. 이에 맞는 Wave를 파악한다.

2. onHitByBullet이나 onBullethitBullet를 이용하여 적의 firing 각도를 탐지한다.

3. Wave상에서 가장 안전한 장소로 이동한다.


참조: http://robowiki.net/wiki/Wave_surfing




Wall Smoothing


단순히 현재 이동 방향의 반대 방향으로 이동하는 것 외에도 벽에 부딪히는 것을 방지하는 방법이다. Wall Smoothing을 이용하면 로봇은 벽을 따라 이동하지만 벽에는 부딪히지 않을 수 있다.


원리는 다음과 같다. 로봇의 주위에 반경 150~200 unit의 원을 그리고 그 원의 둘레와 벽에서 어느 정도 (20 unit) 떨어진 곳에 수평으로 그려진 선이 만나는 지점으로 로봇을 이동시키는 것이다. 아래 그림을 예로 든다면, 파란 로봇을 중심으로 그려진 흰색 원과 벽에 수평한 노란색 선이 만나는 연두색 원이 바로 로봇이 이동할 지점인 것이다. 파란 로봇이 연두색 원으로 이동하면서 연두색 원의 위치는 다시 재설정된다. 이 전략은 두 가지 장점이 있다.


1.
벽에 부딪히지 않을 수 있다

2. 시계방향이나 반시계방향 모두 자유롭게 이동할 수 있어 적이 움직임을 예측하기 어렵게 한다.


참조: http://robowiki.net/wiki/Wall_Smoothing

 

'
728x90