One of the rule elements which is tricky to implement is the detection of
“forceful contact” leading to a direct free kick.
What can be easily interpreted by a human referee is much more difficult to
describe formally in order to implement it for an automatic referee.
The current status of the rules is indicated in Law 12, it contains the following
fouls for a robot:
touches another player with a body part which is moving faster than the part of
the opposing robot that is touched, if the robot of the opposing team falls to
the ground within 5 seconds after the touch occurred.
touches another player with a body part which is moving faster than the part
of the opposing robot that is touched for at least 80% of the time during a
time interval of 5 seconds.
Two exceptions are planned for the goal keeper inside it’s penalty area or for
a robot which had an offence committed against him.
The TC did not find a phrasing for this rule which suited everybody, especially
because there is a high potential of false positives and false negatives for
every proposal that was brought so far.
Especially, it is difficult to establish which player committed the foul without
taking into account both, the properties of the contact (e.g. speed of the
center of mass, duration of contact etc…)
and information about the game which are difficult to retrieve
(e.g. are both robots playing the ball?).
Therefore I present here the different proposals that were discussed in order to
open the discussions and try to improve them and agree on a clear proposal that
we can include in the rulebook.
There are currently 4 different approaches to handle this rule (details below):
- No foul on collisions
- Fouls on specific scenarios
- Cylinder based collision detection
- Use the collision rules from Simulation 3D
No foul on collisions
This simple solution ensures that there is no false positive and that the games
will not be stopped frequently due to collisions.
The main drawbacks is that teams who try to avoid collisions will be strongly
penalized with respect to teams that do not try to prevent them.
The only mechanism to prevent teams from playing in an aggressive way would be
cancellation of the games by the TC because of a lack of fair-play which would
be reserved to extreme cases.
Fouls on specific scenarios
The main idea of this approach is to use the contact properties to determine if
a suspicious contact happened.
Those contacts are considered as foul only if the game situation is clear enough
to know which robot committed the foul.
A suspicious contact between two robots (A and B) from different teams occurs in
one of the following cases:
Collision: a part of A collides with a part of B and the difference between
the velocity vector of the CoM of A and B is greater than 0.1 m/s
Pushing: Over the last 2 seconds, robot A and B have been colliding for a
cumulated duration of 1 second.
A susipicious contact is converted into a foul of player A if:
Attacking goalkeeper: B is goal keeper and its CoM is inside its own goal
Charge from behind: The following conditions are all met:
- B is closer than 1m from the ball
- CoM of B is significantly closer to the ball than CoM of A (> 5 cm)
- B is not moving significantly away from the ball: distance between the ball and
B two seconds ago was at most 5 cm more than current distance between the ball and B
Attacking static player: In this case, A is penalized, but free-kick is not
given to team of robot B. This case is triggered if all the following
conditions are met:
- Distance from B to the ball is larger than 1m
- In the last two seconds, CoM speed of B was always below 0.05m/s
- CoM speed of A is above 0.1 m/s
Conditions are checked in ascending order which means that if A performs a
charge from behind on B, but A is goalkeeper inside its own area, then the
foul is committed by player B.
Cylinder-based collision detection
A cylinder of radius 1.2*H_width is applied around each robot.
A collision occurs between A and B if the two following conditions are met:
- The cylinder of A collides with the cylinder of B
- The difference between CoM velocity of A and B is greater than 0.25 m/s
In this case, the robot with the highest CoM velocity is the one who committed a
Use the collision rules from Simulation 3D
The current rules in simulation 3D are available
To the best of my understanding, they are not considering aspects such as
goal keeper and it would probably need some adaptation to reflect the fact that
we have heterogeneous robots.