RoboCup-SSL / ssl-rules

Official RoboCup Small Size League Rule Book
https://robocup-ssl.github.io/ssl-rules/
GNU General Public License v3.0
11 stars 12 forks source link

Restructure fouls and offenses sections #32

Closed rhololkeolke closed 4 years ago

rhololkeolke commented 4 years ago

Feedback is specifically requested on:

Other open foul pull requests will be closed in favor of this one as they will depend on the restructuring changes in this pull request.

tobiasheineken commented 4 years ago

How about resetting the no-goal-timer on any free kick / Stop aswell? Otherwise we should at least write an exemption for penalties.

g3force commented 4 years ago

Yeah, agree. It is easier and more reasonable to reset it when the game is stopped. The idea is to avoid scoring goals right after committing fouls.

g3force commented 4 years ago

Currently, the timer is defined as: Add 2 seconds to the timer with each non-stopping foul. I would rather choose something like: Set the timer to 5 seconds on each non-stopping foul.

g3force commented 4 years ago

I've created a new sheet in the original spreadsheet with an up-to-date version of all the events for a better overview: https://docs.google.com/spreadsheets/d/1LfNNrE4ld0IkRGXSkKSKOnPDipdKbuH-InZJY2kATs4/edit#gid=1428240242

g3force commented 4 years ago

Current HTML version and HTML diff of this PR compared to master for easier review:

rules.zip

andre-ryll commented 4 years ago

I would try to avoid the "No Goal Timer" if possible. A timer that is running in the background makes thing quite complicated and also can lead to large confusion. Just think about a crash somewhere on the field while a goal is shot. The goal wouldn't count.

For "Ball Speed", "Attacker In Defense Area", and "Attacker Touches Robot In Opponent Defense Area" I would simply validate these three conditions if a (possible) goal was shot. If before the shot any condition was true the goal will not count.

"Defender Too Close To Ball" won't lead to a goal soon anyway for the defending team.

Most difficult is "Excessive Dribbling". I recommend to either give a yellow card immediately and keep the game running or make it a foul where the game is stopped. It didn't happen too often in the games anyway.

This way we can remove the "No Goal Timer" and simplify things.

andre-ryll commented 4 years ago

Thinking a bit more about the rules I would also recommend to remove the rules "Attacker Touches Robot In Opponent Defense Area" and "Multiple Defender Partially" to simplify the game.

Currently, we have a lot of discussions during a game due to actions very close at the defense area. Did a defender enter the defense area? Was it pushed? Did it have ball contact? Did the ball in turn have attacker contact? Depending on the answer to all these questions different actions follow. It is very complicated to see by a human ref all at the same time and the autoref may have issues in such situations as the ball is not visible.

I assume the defense area was introduced to prevent a team from placing all robots in front of the goal to effectively block it. Given this as the main objective of the defense area all the details of actions directly on the line are not relevant.

What may happen if the two above listed rules are dopped:

Overall this relaxes the field line meaning of the defense area while still fullfilling the main purpose not to be able to block the goal. It makes ref life easier, for the audience the game is easier to follow, we have less rules to check and less stoppages.

g3force commented 4 years ago

I would prefer to move the excessive dribbling rule back to the stopping fouls. It did not happen often and this way there is no special case.

So, to sum up the non-stopping fouls that would currently effect the no-goal timer:

Attacker [touched ball] in [opponent] defense area: No goal, if ball kicked from within defense area Ball Speed: No goal, if goal shot was too fast Defender Too Close to Ball: not relevant for goal shots Crashing: not relevant for goal shots, or punishable by unsporting behavior Robot Stop Speed: not relevant for goal shots Ball Placement Interference: not relevant for goal shots Excessive Dribbling: Convert to stopping foul

That sounds good to me :)

andreaswendler commented 4 years ago

Regarding the second comment of @andre-ryll I agree with you regarding the "Attacker Touches Robot In Opponent Defense Area" rule. While it was introduced to prevent pushing, it mostly occurred in other (completely harmless) circumstances. Removing this rule again should simplify things. I can only partially agree with you regarding the removal of the "Multiple Defender Partially" rule. It is of course necessary to remove it for the removal of the attacker touch robot ... rule. Removing it is probably fine, but I would penalize permanent (partial) stay of the defenders in the defense area with a precise rule, not just unsporting behavior (seeing that I do not now how that is really unsporting). For the clarity of the game (both for spectators and teams), I find it important for the robots to stay out of the marked defense area at least most of the time. A rule to prevent this could for example forbid any continuous stay inside the defense area for more than 2 seconds for any robot.

g3force commented 4 years ago

It should definitely be stated somewhere, that robots should not constantly stay (partially) inside the defense area. Then, the human ref also has a reason for the unsporting behavior.

An explicit rule would be an option, though I'm not sure if a fixed time limit is the right metric. 2 seconds seems definitely too short to me. I think, a human ref can better judge, if a team moves inside the defense area consistently on purpose.

andre-ryll commented 4 years ago

Honestly, I think there is no proper metric we would all agree on. A rule infraction on that topic is very much "intention-based". And that is hard to capture with numbers.

Touching the defense area while moving because robot control is not the best? That's okay. A team new to Div A staying permanently in the defense area with one robot with just a centimeter? That's okay. They are not doing it intentionally. A robot moving through the defense area when the ball is not even close? That's okay. As we see there are so many case-by-case decisions that it's better to leave it to the human ref to judge it unsporting. That also gives most freedom of the penalty. Like giving a warning first or ask the team to fix the issue in a timeout. If the team is in general not the best be a bit more relaxed.

I would just state something like "Robots other than the keeper must maintain best-effort to fully stay outside the defense area. Infraction of this rule can be rated as unsporting behavior.".

rhololkeolke commented 4 years ago

Currently, the timer is defined as: Add 2 seconds to the timer with each non-stopping foul. I would rather choose something like: Set the timer to 5 seconds on each non-stopping foul.

I agree that reset to 5 seconds is better than unlimited add 2 seconds to the timer.

How about resetting the no-goal-timer on any free kick / Stop aswell? Otherwise we should at least write an exemption for penalties.

I agree. Free kicks should clear the timer as well.

Honestly, I think there is no proper metric we would all agree on. A rule infraction on that topic is very much "intention-based". And that is hard to capture with numbers.

Touching the defense area while moving because robot control is not the best? That's okay. A team new to Div A staying permanently in the defense area with one robot with just a centimeter? That's okay. They are not doing it intentionally. A robot moving through the defense area when the ball is not even close? That's okay. As we see there are so many case-by-case decisions that it's better to leave it to the human ref to judge it unsporting. That also gives most freedom of the penalty. Like giving a warning first or ask the team to fix the issue in a timeout. If the team is in general not the best be a bit more relaxed.

I would just state something like "Robots other than the keeper must maintain best-effort to fully stay outside the defense area. Infraction of this rule can be rated as unsporting behavior.".

If we want to keep rigidly defined rules, perhaps we can relax them a bit by only applying these offenses when the ball is on the defending team's half of the field? It would allow for scenarios like you suggested (e.g. moving through defense area) when there is clearly no immediate defensive benefit.

The ref always has the discretion to call things like unsporting behavior. So even if we have explicit rules, they can still call unsporting behavior if the spirit of the law is violated. Regardless, I think we should add something lke "Robots other..." so that everyone reading and enforcing the rules is on the same page as to the intent of the rules.

tobiasheineken commented 4 years ago

@andre-ryll

Honestly, I disagree with your comments a lot. The "No Goal Timer" was introduced because

We should use the grace period here as well. Making a fast pass and than scoring a goal should also not be allowed.

(See #23). While it is confusing, and I'm wishing for a better solution (Stop -> Freekick is superior in this regard: If you ignore the fact that you don't understand why the freekick happend, you still know what will happen now, as it's a usual way to continue in many sports), only considering these rules for the goal-shot itself doesn't seem right to me. And while I myself complained "a state of the game where one team doesn't want to shoot a goal could be a problem", I agree with Nicolai "it could also be interesting to keep in possession until you're able to score again". The mayor drawback here is implementation work.

And relying on "unsporting behavior" to solve "intention based infringements" is lazy rule design (Re: Crashing, staying inside the defense area, ...) . On the one hand it's by design impossible to resolve automatically (which is bad for a robotics league), on the other hand it's also guesswork for the teams. Are you allowed to cut in the defender's path when he tries to go for the ball? With Attacker Touches Robot In Opponent Defense Area you're not (at least close to the defense). With Crashing you know that you could invalidate your shot by doing so, if you end up faster. A risk worth taking - or maybe not - but it's up to the teams. If we leave it open, it's impossible to do this risk analysis. Maybe one referee will issue a yellow card, one referee will force you to take a timeout and remove the feature, one referee will say it's ok. How shall we play with these kind of rules? Also: While crashing while being faster needs some punishment imo, being slower and blocking the way for a robot moving towards its defense area sounds fair to me.

Also, Regarding @andreaswendler: While Attacker Touches Robot In Opponent Defense Area was invented to solve a pushing issue, it forcing the attacker to keep some distance for any defender is a good thing. Robots are simply not capable like humans in handball to "fight" for their position on the line.

g3force commented 4 years ago

@tjones320 I added a sentence about disabling game events.

@rhololkeolke

If we want to keep rigidly defined rules, perhaps we can relax them a bit by only applying these offenses when the ball is on the defending team's half of the field? It would allow for scenarios like you suggested (e.g. moving through defense area) when there is clearly no immediate defensive benefit.

Right now, the defender has to touch the ball already, so the ball is obviously nearby. Before 2014, it was actually sufficient that the ball was inside the defense area, which was even harder and led to more penalty kicks.

@tobiasheineken I can understand (at least some of) your concerns. Though there is always a trait-off between rule complexity and covered corner cases.

I have the impression that you want to implement your strategy as close to the rule boundaries as possible to get the most out of the possibilities. And for that you need precise rules, obviously. But you could also just assume a safe tolerance. For example, for the removal of the partially inside defense area rule, why not assuming that you are still not allowed to ever enter the defense area? That is definitely a best effort and you can still compensate imprecise movement of your robots.

g3force commented 4 years ago

I've implemented the suggested changes for the no-goal-timer replacement.

Latest version of the rules and the diff:

rules.zip

tobiasheineken commented 4 years ago

The version with the no-goal-timer was superior. But even if we want to live without it, we need to address some issues:

A) Attacker Touches Robot in Defense Area: We need some variation of that rule. Without it, the attacker can simply place itself on the border of the penalty area and accept a chip-shot and there's no defender apart from the keeper who is able to challenge this. B) Fast passes: Nicolai stated himself that we don't want to allow a very fast pass into a goalshot, even if the goalshot itself is slow. C) Related crashes: There are situations where a crash is directly related to a goal-shot, in particular blocking the defender to reach the ball. These situations are not unsporting per se. It's just that I miscalculated my deceleration and didn't come to stop in time. We cannot accept this to happen. We cannot rely on the referee to handle it properly because we all know they won't. We need some kind of clarification.

And, unrelated: I never tried to avoid buffer-zones. We use them all over the place to compensate for imprecise movement. But it's not the rule's job to define them for us. You're not allowed to touch the ball partially inside the defense area is a perfectly safe rule. We keep some additional distance, just in case. Imprecise motion is on us. We can work on it, we can improve it and we can reduce the additional distance if me made an improvement. "You are allowed to touch the ball inside your defense area if at least one part of your robot is outside" is also a perfectly useful rule. Again, imprecise motion is on us. But this is - meh. You're actively incentivize to have a lot of imprecise motion here. Beeing closer to the goal is an obvious advantage and instead of rewarding precise movement (which ER-Force don't have, don't get me wrong here) by enabling a team with more precise motion to reduce their additional distance, we reward you to claim that your robot's motion is not that good. Like in the other PR, this is not about "intentional making it worse" but "stop improving" because it does no longer matter.

g3force commented 4 years ago

I fine with the rules as it is written now, regarding the points A-C. Does anyone else have similar concerns to those @tobiasheineken raised?