Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restructure fouls and offenses sections #32

Merged
merged 38 commits into from
Mar 19, 2020

Conversation

rhololkeolke
Copy link
Contributor

  • Reorganized rule violations into the following categories:
    • Offenses
    • Fouls
      • Stopping Fouls
      • No Stop Fouls
    • Ball Placement Violations
    • General Violations
  • Removed advantage rule. Obsoleted by removal of stoppage to:
    • crashing
    • attacker touches robot in opponent defense area
  • Added a No Goal Timer for each team
    • Every no stop foul adds 2 seconds to timer
    • Timer resets on:
      • Successful goal by opposing team
      • Half Time and overtime
  • The following fouls have been changed to No Stop Fouls
    • Attacker In Defense Area
    • Excessive Dribbling
    • Ball Speed
    • Defender Too Close To Ball
    • Attacker Touches Robot In Opponent Defense Area
  • Lack of progress timer changes
    • Decrease timeout for some situations in Div A

Feedback is specifically requested on:

  • Any changes/issues with the categories.
  • Should any of violations be in a different category?
  • No goal timer
  • No Stop Foul grace period
    • Is the amount of time before triggering another no stop foul appropriate?

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.

- Reorganized rule violations into the following categories:
  - Offenses
  - Fouls
    - Stopping Fouls
    - No Stop Fouls
  - Ball Placement Violations
  - General Violations
- Removed advantage rule. Obsoleted by removal of stoppage to:
  - crashing
  - attacker touches robot in opponent defense area
- Added a No Goal Timer for each team
  - Every no stop foul adds 2 seconds to timer
  - Timer resets on:
    - Successful goal by opposing team
    - Half Time and overtime
- The following fouls have been changed to No Stop Fouls
  - Attacker In Defense Area
  - Excessive Dribbling
  - Ball Speed
  - Defender Too Close To Ball
  - Attacker Touches Robot In Opponent Defense Area
- Lack of progress timer changes
  - Decrease timeout for some situations in Div A
@andre-ryll
Copy link

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
Copy link
Contributor Author

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
Copy link
Contributor

@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.

Copy link

@tjones320 tjones320 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like this new organizational structure. I will examine it more later, but I think it's pretty solid. I wonder how flexible we are about changing some of the things off of auto ref. I remember last year there were a few calls that it was better not to let the computer decide. I think double touch may have been a good example? Maybe have a note that reminds people that auto-ref calls can be changed to manual after an agreement of both teams. Maybe I'm mistaken about the current ideas about auto-ref. Otherwise, this is really good work! Great job!

Co-Authored-By: andreaswendler <40036233+andreaswendler@users.noreply.github.com>
chapters/offenses.adoc Outdated Show resolved Hide resolved
@g3force
Copy link
Member

g3force commented Mar 12, 2020

@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
Copy link
Member

g3force commented Mar 13, 2020

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

Latest version of the rules and the diff:

rules.zip

@g3force g3force added release candidate The rule change is fully defined and ready to be merged and removed feedback wanted More feedback regarding the contents is desired labels Mar 13, 2020
@tobiasheineken
Copy link
Contributor

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
Copy link
Member

g3force commented Mar 14, 2020

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?

@g3force g3force merged commit e87e4e1 into master Mar 19, 2020
@g3force g3force deleted the restructure-fouls-and-punishments branch March 19, 2020 19:24
@g3force g3force restored the restructure-fouls-and-punishments branch March 19, 2020 19:24
@g3force g3force deleted the restructure-fouls-and-punishments branch May 1, 2020 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DivA Rule change is effective for Division A DivB Rule change is effective for Division B release candidate The rule change is fully defined and ready to be merged review wanted A review on the rule change formulation is requested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants