Skip to content

Commit

Permalink
New visual signal for set plays + indirect kick change for RoboCup 20…
Browse files Browse the repository at this point in the history
…25 (#162)

* Draft new visual signal and consequences

* Rephrase slightly

* Add gesture reference from past vis.ref challenge

* Update set play signal

* Add what execute means

* Clarify positioning, open CS "practice"

* Clarify a few things, subdivide free kick

* Clarify head movement in forbidden action

* Revert "Clarify head movement in forbidden action"

This reverts commit e2b96c0.

* Add variant indirect kick, add gesture picture

* Rephrase "reduced mode" -> Fallback Mode, and more

* Address some comments

* Say that excess bots in fallback r out of the game

* Make final adjusts for indirect kick and set play

* Make more final adjusts 4 indirect kick & set play

* Fix quotes

---------

Co-authored-by: ben47955 <[email protected]>
  • Loading branch information
torchipeppo and ben47955 authored Dec 17, 2024
1 parent d6318a1 commit 4757ade
Show file tree
Hide file tree
Showing 4 changed files with 155 additions and 17 deletions.
1 change: 1 addition & 0 deletions common/spl_variables.tex
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@
\newcommand{\TeamMessageLimit}{1200} % Limit of number of packets available to one team during a game with two halves of 10 minutes.
\newcommand{\TeamMessageLimitMinute}{60} % Limit for the average number of packets available to one team during a minute of gameplay.
\newcommand{\MaxJerseyNumber}{20} % the highest allowed jersey number to wear by robot players
\newcommand{\MaxRobotsInFallback}{two}
2 changes: 1 addition & 1 deletion rules/app_changes.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ \section{Changes From \LastRCYear}
\begin{itemize}
\item Teams can be restricted from blocking natural light at the competition (\cf~\cref{sec:lightConditions}).
\item The transition to \texttt{ready} state is announced via visual referee signal in the \texttt{standby} state and the signal of the GameController is delayed for Champions Cup matches(\cf~\cref{sec:robot_states}). The penalty ``Forbidden Motion in Standby'' was added (\cf~\cref{sec:motion_in_standby}).
\item The rules regarding direct kick goals were tightened for Champions Cup matches. More dynamic ball handling is required to score goals (\cf~\cref{sec:indirect_kick_champions}).
\item The rules regarding direct kick goals were tightened for Champions Cup matches. More dynamic ball handling is required to score goals (\cf~\cref{sec:indirect_kick_default}).
\item Global Game Stuck was changed with regards of choosing the team that receives kick-off (\cf~\cref{sec:game_stuck:global}).
\item The Standard Removal Penalty was simplified. Robots will be placed behind the touchline facing towards the field, while penalized, and autonomously re-enter the game without requiring additional intervention from the referees (\cf~\cref{sec:removal_penalty}).
\item Player stance was clarified and the allowed duration is increased (\cf~\cref{sec:player_stance}).
Expand Down
2 changes: 1 addition & 1 deletion rules/app_competition_rules.tex
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ \subsection{Champions Cup and Challenge Shield}
In addition, some rules are simplified for Challenge Shield matches. The major differences are:
\begin{itemize}
\item The requirement to recognize visual referee signals is relaxed for the Challenge Shield (\cf~\cref{sec:robot_players}).
\item Goals may be scored via direct kick from kick-off. The indirect kick rules remain unchanged for the Challenge Shield (\cf~\cref{sec:indirect_kick_challenger}), but were tightened for the Champions Cup.
\item Although the indirect kick rules are the same for both competitions, Challenge Shield teams have the option to have them relaxed if they declare they cannot play with more than \MaxRobotsInFallback robots. (See \cref{sec:fallback_mode})
\end{itemize}

\subsection{Game Structure}
Expand Down
167 changes: 152 additions & 15 deletions rules/game_process.tex
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ \subsubsection{Invalid Goal}

A goal is invalid (that is, it can never be awarded) in the following circumstances:
\begin{enumerate}
\item When an indirect kick is required but has not occurred (see~\cref{sec:indirect_kick_champions}).
\item When an indirect kick is required but has not occurred (see~\cref{sec:indirect_kick_default}).
\item When the last contact of the ball was with an attacking robot that played the ball with the arms/hands as defined in \cref{sec:hand_ball}.
However, an own goal may be scored by any defending robot playing with arms/hands.
\item When a team scores on themselves and there are no opponent robots on the field that are active (a definition of \emph{active} is given in \cref{sec:fallenrobots}).
Expand All @@ -146,10 +146,10 @@ \subsubsection{Invalid Goal}
In these cases a goal is not scored (that is, the goal is ruled invalid), and the game will proceed with a Goal Kick (\cf \cref{sec:free_kick}).
The head referee should also advise why the goal is invalid, such as by calling ``Not indirect'', ``Played with hands'' or ``No own goal''.

\subsubsection{Indirect Kick - Champions Cup}
\label{sec:indirect_kick_champions}
\subsection{Indirect Kick}
\label{sec:indirect_kick_default}

Both teams may only score a goal through two distinct ball contacts involving different robots within its own team following any affected start or restart in the \texttt{playing} phase, regardless of the initiator of the set play/free kick:
\textbf{In Champions Cup and Challenge Shield,} both teams may only score a goal through two distinct ball contacts involving different robots within its own team following any affected start or restart in the \texttt{playing} phase, regardless of the initiator of the set play/free kick:

\begin{itemize}
\item A robot may not score a goal from a direct kick, including via deflections.
Expand All @@ -158,13 +158,24 @@ \subsubsection{Indirect Kick - Champions Cup}
A deliberate play at the ball includes successfully kicking the ball, dribbling the ball or the goalkeeper playing at the ball with its hands.
\item If an indirect free kick is kicked directly into the opponent's goal, the goal does not count and a \texttt{Goal kick} is awarded.
\item Note that an own-goal may always be scored without requiring an indirect kick.
\item A direct kick is allowed for the duration of the penalty kick, but this rule still applies after this kick. A contact in the penalty kick counts among this rule.
\end{itemize}

There are two exceptions to this rule:

\begin{itemize}
\item A direct kick is allowed for the duration of the penalty kick, but this rule still applies after this kick.
\item If a team is awarded a free kick but fails to execute it within the allotted time, the opposing team may attempt to score directly if they play the ball before the team who was originally awarded the free kick does.
(``Execute'' is intended as ``kick and move the ball clearly'', as per section \cref{sec:free_kick_execution})
\end{itemize}

In both cases, the direct goal is only allowed if the kicking robot played the ball once.
The indirect kick rule returns into effect when the ball comes to a full stop after the kick, or if the same robot plays the ball again before then.
In this case, any contacts made by the kicking robot, or any other robot, during the direct kick count towards the indirect kick rule.

\begin{description}
\item[Example 1:] Player 2 (of the red team) kicks the ball to Player~3 (of the red team), who then kicks the ball into the blue-team's goal.
\item[Example 1:] Player 2 (of the red team) kicks the ball to Player~3 (of the red team), who then kicks the ball into the blue team's goal.
This is a successful indirect kick, and the goal counts.
\item[Example 2:] Player 2 (of the red team) kicks the ball at the goal, and it is deflected off the side of the foot of a blue-team's robot into the goal.
\item[Example 2:] Player 2 (of the red team) kicks the ball at the goal, and it is deflected off the side of the foot of a blue-team robot into the goal.
This is \textit{not} an indirect kick, the goal does not count and a \texttt{Goal kick} is awarded to the blue team.
\item[Example 3:] Player 2 (of the red team) kicks the ball ``upfield''.
A blue-team robot kicks the ball a short distance, after which Player~2 kicks the ball again into the blue team's goal.
Expand All @@ -178,33 +189,108 @@ \subsubsection{Indirect Kick - Champions Cup}
\item[Example 6:] Player 2 (of the red team) is awarded a \texttt{Penalty kick} and kicks the ball towards the blue-team's goal. The goalkeeper blocks the ball. The referee then calls ``Ball Free``.
Player 2 (of the red team) kicks the ball again and score.
This is \textit{not} an indirect kick, the goal does not count and a \texttt{Goal kick} is awarded to the blue team.
\item[Example 7:] The blue team is awarded a free kick, but doesn't play the ball. The timer expires, and Player 2 (of the red team) kicks directly into the blue goal.
The failed-free-kick exception applies, and the goal counts.
\item[Example 8:] The blue team is awarded a free kick, but doesn't play the ball. The timer expires, and Player 2 (of the red team) kicks the ball 1 meter away.
The ball stops, Player 2 kicks again, and scores.
The exception does \textit{not} apply for the red team because Player 2 played the ball twice. The goal does not count and a \texttt{Goal kick} is awarded to the blue team.
\item[Example 9:] The blue team is awarded a free kick, but doesn't play the ball. The timer expires, and Player 2 (of the red team) passes the ball to Player 3 (of the red team), who kicks again and scores.
Although the exception doesn't apply because Player 3 played the ball as well, this is still an ordinary indirect kick, so the goal counts.
\item[Example 10:] The blue team is awarded a free kick, but doesn't play the ball. The timer expires, and Player 2 (of the red team) kicks the ball 1 meter away.
Player 5 (of the blue team) kicks the ball, then Player 2 kicks and scores.
The exception does \textit{not} apply for the red team because Player 5 also played the ball. The goal does not count and a \texttt{Goal kick} is awarded to the blue team.
\item[Example 11:] The blue team is awarded a free kick, but doesn't play the ball. The timer expires, then Player 5 (of the blue team) kicks the ball.
Player 2 (of the red team) then kicks the ball and scores.
The exception does \textit{not} apply for the red team because a blue-team robot played the ball first. The goal does not count and a \texttt{Goal kick} is awarded to the blue team.
\end{description}
\subsubsection{Indirect Kick - Challenge Shield}
\label{sec:indirect_kick_challenger}
\subsubsection{Fallback mode for Challenge Shield}
\label{sec:fallback_mode}
This rule aims to allow \textbf{Challenge Shield} teams to play games
even in the unfortunate case where severe circumstances make them unable to
field enough robots to play by the default indirect kick rules,
by relaxing the requirements to score a goal if they cannot play with more than \MaxRobotsInFallback{} robots.
Each Challenge Shield team participating in a game shall declare their operational
capacity for that game by choosing to play either in \textbf{normal mode} or in \textbf{fallback mode}.
If at least one team plays in \textit{fallback mode}, the whole game follows different,
more lenient rules for indirect kicks, detailed in \cref{sec:indirect_kick_old}.
If a team plays in \textit{fallback mode}, their maximum team size is \textbf{\MaxRobotsInFallback} robots.
The other robots do not participate in the game, unless substituted
as allowed by the rules (see \cref{sec:request_for_pickup}).
Note that one team's choice of operational mode does \textbf{not} limit
the number of robots the opposing team is allowed to play with.
\info[inline]{Memo for the GC implementation: the excess robots are \textbf{not}
picked up, they are ``outside the game'', or ``disabled'', or w/e.
Substitution via pick-up should transfer the pickup/penalty timer as usual.}
Teams decide which operational mode they play in before the beginning of each half.
Furthermore, during any timeout (regardless of who initiated it), each team
may choose to switch from \textit{normal mode} to \textit{fallback mode}, but not vice versa.
In both cases, teams must inform the head referee and the GameController operator
of their choice, and they are encouraged to make this decision as early as possible.
% TODO maybe "2 minutes before the scheduled start/resume of the game"?
Changing operational modes during normal gameplay is not allowed.
\info[inline]{
Besides preventing strategic abuses of the rule, having so few opportunities to change operational mode
is also intended to help referees, ensuring that the indirect kick rules don't
suddenly change during normal gameplay.
}
The GameController communicates to the robots the operational mode each team plays in,
while the TeamCommunicationMonitor and the GameStateVisualizer display this
same information for the convenience of the referees.
The attacking team may only score a goal via indirect kick from any restart into \texttt{playing} from a free kick.
\subsubsection{Indirect Kick in fallback mode}
\label{sec:indirect_kick_old}
As long as at least one team plays in \textit{fallback mode}, \textbf{both teams}
play by the following rules instead of the default ones for indirect kicks.
\todo[linecolor=gray,backgroundcolor=gray!25,bordercolor=gray]{
Remove the footnote after RC2025 has passed
}
\footnote{For reference, teams who participated in Challenge Shield in 2024 may notice that these are the same indirect kick rules used that year. They have been slightly rephrased to fit their new role, but they are functionally unchanged.}
Under these variant rules, after any restart into \texttt{playing} from a free kick,
the attacking team may only score a goal via an indirect kick.
Set plays considered to be indirect are \texttt{Kick-in}, \texttt{Pushing free kick},
\texttt{Corner kick} and \texttt{Goal kick} or after an unsuccessful \texttt{Penalty kick}.
The conditions for an indirect kick to be valid while at least one team
plays in \textit{fallback mode} are as follows:
\begin{itemize}
\item A robot may not score a goal from a direct kick, including via deflections.
\item The ball must be deliberately played-at a second time (by either another robot, or the same robot) before a goal may be scored.
A deliberate play at the ball includes successfully kicking the ball, dribbling the ball (and subsequently leaving possession of the ball), or the goalkeeper playing at the ball with its hands.
\item If a robot plays the ball to itself, this means that the ball must leave a circular area of at least \qty{0.75}{\metre} around the robot before the ball is played a second time and to be considered as an indirect kick.
\end{itemize}
Direct kicks are only allowed in the following situations:
\begin{itemize}
\item On the first kick at \texttt{kick-off}.
\item For the duration of a penalty kick, though the indirect kick rule returns into effect after the set play expires. In this case, any plays made during the penalty kick count towards this rule.
\item Note that an own-goal may always be scored without requiring an indirect kick.
\end{itemize}
\begin{description}
\item[Example 1:] Player 2 (of the red team) kicks the ball to Player~3, who then kicks the ball into the blue-team's goal.
This is a successful indirect kick, and the goal counts.
This is a successful variant indirect kick, and the goal counts.
\item[Example 2:] Player 2 (of the red team) kicks the ball at the goal, and it is deflected of the side of the foot of a blue-team's robot into the goal.
This is \textit{not} an indirect kick, and the goal does not count.
\item[Example 3:] Player 2 (of the red team) kicks the ball ``upfield''.
A blue-team robot kicks the ball a short distance, after which Player~2 kicks the ball again into the blue team's goal.
This is a successful indirect kick, and the goal counts.
This is a successful variant indirect kick, and the goal counts.
\item[Example 4:] Player 2 (of the red team), walks up to and dribbles the ball.
To be an indirect kick, Player~2 must then stop, and visibly back away from the ball, before approaching to dribble a \textit{second} time.
The robot then scores.
This is a successful indirect kick.
This is a successful variant indirect kick.
\end{description}
\subsection{Field-Side Selection and Initial Kick-off}
Expand Down Expand Up @@ -276,8 +362,6 @@ \subsection{Kick-off}
The head referee must signal this from the T-junction of the halfway line.
\qty{\PlayingDelayTime}{\second} after the head referee has signaled the kick-off, the robots' state is switched to \texttt{playing} by the GameController (regardless of when the ball comes into play).
A goal may be scored directly from a kick-off for the Challenge Shield. However, for the Champions Cup the indirect kick rule applies and the goal does \textit{not} count.
\subsubsection{Ball in Play}
The ball is in play and kick-off ends once
Expand Down Expand Up @@ -343,6 +427,56 @@ \subsection{Free Kick}
Note that in the case of the Pushing free kick the sub-state is activated automatically through the ``Foul''.
The team who is awarded the free kick (termed the attacking team) has \qty{\FreeKickTime}{\second} to complete the kick.
\subsubsection{Visual gesture}
\label{sec:free_kick_gesture}
\textbf{In Champions Cup only}, the referee communicates which team is to take the free kick via a visual gesture.
The GameController packet will tell the robots which free kick sub-state is active, but not who is to kick the ball.
\begin{figure*}[t]
\centering
\begin{subfigure}{.33\textwidth}
\centering
\includegraphics[height=120px]{figs/visual-signal/kick-in.png}
\caption{Pointing to the left goal}
\end{subfigure}
\begin{subfigure}{.33\textwidth}
\centering
\includegraphics[height=120px]{figs/visual-signal/kick-in-flipped.png}
\caption{Pointing to the right goal}
\end{subfigure}
\caption{Visual signals for set plays.}
\label{fig:signal_setplay}
\end{figure*}
The gesture consists of raising one arm horizontally and sideways, parallel to the field line, while the other arm remains at rest (see \cref{fig:signal_setplay}).
The raised arm is the one pointing towards the defending team's goal, i.e. the goal of the team that is \textit{not} taking the free kick.
\todo[linecolor=gray,backgroundcolor=gray!25,bordercolor=gray]{
Remove the footnote after RC2025 has passed
}
\footnote{For reference, teams who participated in the 2023 Visual Referee Challenge
may notice that this the same as the ``Kick-in'' gesture from back then,
but with the opposite arm raised.
}
This gesture is made by the head referee and held for at least 5 seconds after the GameController signal is sent.
The head referee is encouraged to seek the acknowledgement of the GameController operator and/or look at the field-facing monitor (if available) in order to determine the timing.
The referee makes an effort to send the signal standing as close as possible to the T-junction joining the half-way line to the touchline opposite to the technical area.
However, their actual positioning along the touchline may deviate slightly from this standard position, based on the current game situation and the timing of the gesture.
Teams are not required to scan the entire touchline:
in broad terms, a robot standing a few meters away from the T-junction should be able to find the referee in its camera field with no or minimal head motion.
\info[inline]{Remind the refs that the GC operator will take a few moments to click the button, giving them a little time to make a couple steps if needed.}
Teams are encouraged to make an effort to familiarize with looking at the referee and interpreting the visual signal even in cases where such an action may not seem strictly necessary,
as more information may be communicated in this way rather than via GameController packets in future years.
\textbf{In Challenge Shield}, this visual signal does not need to be performed and the kicking team is communicated by the GameController.
\info[inline]{In accordance with the teams, the referee may still perform the gesture if e.g. a team wants to experiment with recognition, without changing the GC behavior.}
\subsubsection{Execution}
\label{sec:free_kick_execution}
When necessary, the referee may need to place the ball.
For a pushing free kick, the ball will be left in place, and only repositioned in accordance with the pushing rules (see \cref{sec:player_pushing}).
If the ball left the field, the ball will be positioned as described in \cref{sec:kick_in}.
Expand Down Expand Up @@ -372,6 +506,9 @@ \subsection{Penalty Kick}
Similar to kick-off, the game clock is \textit{paused} during finals games only.
The referees should pick up the ball.
\textbf{In Champions Cup only}, the GameController does not communicate the identities of the attacking and defending team.
Instead, this information is communicated via the same visual gesture described in \cref{sec:free_kick_gesture} for free kicks.
Robots have \qty{\PenaltyKickSetupTime}{\second} to get into position for the penalty kick.
At the end of \qty{\PenaltyKickSetupTime}{\second}, the game changes to the \texttt{set} state with \texttt{penalty kick} sub-state active.
Similar to a kick-off, during the \texttt{set} state the robots are waiting for the penalty kick to commence.
Expand Down

0 comments on commit 4757ade

Please sign in to comment.