\item{\textbf{Frozen} [Boolean] Indicates if the agent is Frozen. Frozen status can
happen when being tackled by another player.}
\item{\textbf{Colliding\_with\_ball} [Boolean] Indicates if the agent
happen when tackling or being tackled by another player.}
\item{\textbf{Colliding\_with\_ball} [Boolean] Indicates the agent
is colliding with the ball.}
\item{\textbf{Colliding\_with\_player} [Boolean] Indicates if the agent
\item{\textbf{Colliding\_with\_player} [Boolean] Indicates the agent
is colliding with another player.}
\item{\textbf{Colliding\_with\_post} [Boolean] Indicates if the agent
\item{\textbf{Colliding\_with\_post} [Boolean] Indicates the agent
is colliding with a goal post.}
\item{\textbf{Kickable} [Boolean] Indicates if the agent is able to
\item{\textbf{Kickable} [Boolean] Indicates the agent is able to
kick the ball.}
\itemrange{2}{\textbf{Goal Center} [Landmark] Center point between the goal posts.}
\itemrange{2}{\textbf{Goal Post Top} [Landmark] Top goal post.}
...
...
@@ -421,43 +457,44 @@ number of features is $58 + 8*\textrm{num\_teammates} +
\itemrange{2}{\textbf{Penalty Box Top} [Landmark] Top corner of the penalty box.}
\itemrange{2}{\textbf{Penalty Box Bot} [Landmark] Bottom corner of the penalty box.}
\itemrange{2}{\textbf{Center Field} [Landmark] The left middle point of the
HFO play area. True center of the full-field.}
HFO play area.}
\itemrange{2}{\textbf{Corner Top Left} [Landmark] Top left corner HFO Playfield.}
\itemrange{2}{\textbf{Corner Top Right} [Landmark] Top right corner HFO Playfield.}
\itemrange{2}{\textbf{Corner Bot Right} [Landmark] Bot right corner HFO Playfield.}
\itemrange{2}{\textbf{Corner Bot Left} [Landmark] Bot left corner HFO Playfield.}
\item{\textbf{OOB Left Dist} [Distance] Distance to the nearest
\item{\textbf{OOB Left Dist} [Proximity] Proximity to the nearest
point of the left side of the HFO playable area. E.g. distance
remaining before the agent goes out of bounds in left field.}
\item{\textbf{OOB Right Dist} [Distance] Distance remaining before
the agent goes out of bounds in right field.}
\item{\textbf{OOB Top Dist} [Distance] Distance remaining before
the agent goes out of bounds in top field.}
\item{\textbf{OOB Bot Dist} [Distance] Distance remaining before
the agent goes out of bounds in bottom field.}
\item{\textbf{Ball Pos Valid} [Valid] Indicates if the ball position estimate is valid.}
\itemrange{1}{\textbf{Ball Angle} [Angle] Angle to the ball from the agent's perspective.}
\item{\textbf{Ball Dist} [Distance] Distance to the ball.}
\item{\textbf{Ball Vel Valid} [Valid] Indicates if the ball velocity estimate is valid.}
\item{\textbf{Ball Vel Mag} [Other] Global magnitude of the ball velocity. Normalized against the observed maximum ball velocity, 3.0.}
\item{\textbf{OOB Right Dist} [Proximity] Proximity to the right
field line.}
\item{\textbf{OOB Top Dist} [Proximity] Proximity to the top field line.}
\item{\textbf{OOB Bot Dist} [Proximity] Proximity to the bottom field line.}
\item{\textbf{Ball Pos Valid} [Valid] Indicates the ball position estimate is valid.}
\itemrange{1}{\textbf{Ball Angle} [Angle] Agent's angle to the ball.}
\item{\textbf{Ball Dist} [Proximity] Proximity to the ball.}
\item{\textbf{Ball Vel Valid} [Valid] Indicates the ball velocity estimate is valid.}
\item{\textbf{Ball Vel Mag} [Other] Magnitude of the ball's velocity.}
\itemrange{1}{\textbf{Ball Vel Ang} [Angle] Global angle of ball velocity.}
\item [$8T$] {\textbf{Teammate Features} [Player] One teammate feature set (8 features) for each teammate active in HFO, sorted by proximity to the agent.}
\item [$8O$] {\textbf{Opponent Features} [Player] One opponent feature set (8 features) for each opponent present, sorted by proximity to the player.}
\end{enumerate}
\section{Action Space}
The HFO domain provides support for both low-level primitive actions
and high-level strategic actions. Basic, parameterized actions are
provided for locomotion and kicking. Additionally high-level strategic
actions are available for moving, shooting, passing and
dribbling. Control of the agent's head and gaze is not provided and
follows Agent2D's default strategy. Both low and high level actions
are available through the same interface. It is the responsibility of
the user to faithfully report which action spaces were used.
The HFO domain provides support for both low-level primitive actions,
mid-level, and high-level strategic actions. Low-level, parameterized
actions are provided for locomotion and kicking. Mid-level actions are
still parameterized by capture high level activities such as
dribbling. Finally, high-level discrete, strategic actions are
available for moving, shooting, passing and dribbling. Control of the
agent's head and gaze is not provided and follows Agent2D's default
strategy. Low, medium, and high level actions are available through
the same interface. As the choice of action spaces greatly influences
the challenge of learning, it is the responsibility of the user to
faithfully report which action spaces were used.
\subsection{Low Level Actions}
\label{sec:low_level_actions}
\begin{itemize}
\begin{itemize}[noitemsep]
\item{\textbf{Dash}(power, degrees): Moves the agent with power [-100,
100] where negative values move backwards. The relative direction
of movement is given in degrees and varies between [-180,180] with 0
...
...
@@ -475,7 +512,7 @@ the user to faithfully report which action spaces were used.
\subsection{Mid Level Actions}
\label{sec:mid_level_actions}
\begin{itemize}
\begin{itemize}[noitemsep]
\item{\textbf{Kick$\_$To}(target$_x$, target$_y$, speed): Kicks the
ball to the specified target point with the desired speed. Valid
values for target$_{x,y}\in[-1,1]$ and speed $\in[0,3]$.}
...
...
@@ -493,7 +530,7 @@ the user to faithfully report which action spaces were used.
\subsection{High Level Actions}
\label{sec:high_level_actions}
\begin{itemize}
\begin{itemize}[noitemsep]
\item{\textbf{Move}(): Re-positions the agent according to the
strategy given by Agent2D. The \textit{move} command works only when
agent does not have the ball. If the agent has the ball, another
...
...
@@ -510,7 +547,7 @@ the user to faithfully report which action spaces were used.
\end{itemize}
\subsection{Special Actions}
\begin{itemize}
\begin{itemize}[noitemsep]
\item{\textbf{NO-OP}: Indicates that the agent should take no action.}
\item{\textbf{Quit}: Indicates to the agent server that you wish to
terminate the HFO environment.}
...
...
@@ -522,7 +559,7 @@ New agents may be developed in C++ or Python. In Python, as long as
the hfo interface has been installed, the agent needs only to
\verb+from hfo import *+. In C++ it is necessary to
\verb+#include <HFO.hpp>+ and also to link against the shared object