16
Foosball agent Dov Maizlish & Yuval Zentler supervised by Victor Yosef

Foosball agent Dov Maizlish & Yuval Zentler supervised by Victor Yosef

  • View
    220

  • Download
    4

Embed Size (px)

Citation preview

Foosball agent

Dov Maizlish &

Yuval Zentler

supervised by

Victor Yosef

Background and eco-system

Part of a multiple-project effort to create a self learning, foosball playing robot

Our project’s goal was to create a non-learning, algorithmic reference.

The playing field

All work was done on a server written as part of a previous project by Schmidt Michael & Shamis Eugene

y

x

Major hurdles:

The rate of incoming packets was too low to allow any sophisticated maneuvers.

Commands to the server were executed in a hard to predict manner.

The Only information available was ball location and speed.

The Lack of a clear benchmark that would allow evaluating quality of agent.

Break down of the players

Since every row has different environment characteristics (function , number of players , distance from adversarial units) a slightly different heuristic had to be applied to each of them.

Break down of the players –con’t

Goalie :– most effective unit. Has the simplest job : needs

only to intercept the ball. Does not try turn.

Defender : too close to the opposing attack to effectively block the shots. Main job is thus to help the goalie pass intercepted balls forward

Break down of the players –con’t

Midfielders : large number of players playing very close to opposition. Very hard to react , do not turn.

Offence : a certain amount of randomness has been incorporated into the agent in order to avoid cases of repetition of moves ad-infinitum.

Bringing it all together

Since the player is mandated with having only two hands an arbitration mechanism was needed to select the current active rows.

The solution was using a round-robin like scheme were every row can appear more than once. Thus enabling priority distribution according to ball location , speed and row affectivity.

Real world rearing it’s ugly head

Friction had to be taken into consideration when performing calculations.– The friction value was ascertained by observing ball

velocity degradation over a linear course .

Weak points /future enhancements

Attempts to execute team play / passes have not proven themselves successful due to low granularity of input data.

Due to feature/bug/errata of the server a number of forward turns may or may not manifest themselves as backward kicks.

Groups

Normal – arbitrates all 4 rows. Attack – uses only goal keeper and attack row. Defence – uses only goal keeper and defence

row.

When ball is idle, nearest row moves anyway.

Results

Each group against another. 2 games with different friction value. 15 minutes each.

Normal vs. Attack: 61:9, 24:5 (fric = 0.03, 0.15)

Normal vs. Defense: 23:0, 17:1 Attack vs. Defense: 2:15, 4:8

Conclusions:

Normal group played best. Defense group hardly got chance to score. The idle defenders of the attack group mislead

their goal keeper, resulting in own goals. Slower games with increased friction value.

Backup

return

Software

Stracture

Hand 1

Hand 2

Arbitrator

GK_Decision)(

DefDecision)(

MidDecision)(

AtkDecision)(

ThetaCalc)(

TwoPi_Modulo)(

TimeCalc)(

IntCalc)(

FrictionCalc)(

Team type

Prevous choice