diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 610b7283..ff24f5ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: LaTeX linter (chktex) - uses: j2kun/chktex-action@v2.1.0 + uses: j2kun/chktex-action@v2.0.0 # Provide this output for context, but don't fail builds continue-on-error: true env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5aa20754..75bb3564 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: LaTeX linter (chktex) - uses: j2kun/chktex-action@v2.1.0 + uses: j2kun/chktex-action@v2.0.0 # Provide this output for context, but don't fail builds continue-on-error: true env: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6de6486a..d6a0d804 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,16 @@ All notable changes to this project will be documented in this file. ## Rulebook [Current Draft] +* [#935](https://github.com/RoboCupAtHome/RuleBook/pull/935): Add additional task to storing groceries + * Use both doors + * add refilling storage containers (pouring) + * add grasping from shopping bag + * increase time limit to 7 minutes +* [#936](https://github.com/RoboCupAtHome/RuleBook/pull/936): Extend Clean The Table + * Put drink items into Trash + * Wipe the Table under Drinks + * misc scoring changes +* [#933](https://github.com/RoboCupAtHome/RuleBook/pull/933): Remove serve breakfast task to free up time during stage one * [#920](https://github.com/RoboCupAtHome/RuleBook/pull/920): DSPL: Allow a mounted microphone on hsr. * [#922](https://github.com/RoboCupAtHome/RuleBook/pull/922): Remove Bonus for perceived social intelligence as the survey was too hard to conduct in Robocup settings. * [#917](https://github.com/RoboCupAtHome/RuleBook/pull/917) revert: split document into Rulebook and Organization document diff --git a/Makefile b/Makefile index ca091682..850ee42c 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ BUILD_DIR:=$(ROOT_DIR)/.build SILENT = @ MSG = echo HASRUBBER:=$(shell which rubber) +XELATEX:=$(shell which xelatex) ## COLORS RESET = tput sgr0 @@ -52,6 +53,9 @@ ifdef HASRUBBER else $(SILENT) latexmk -Werror -shell-escape -silent -pdf -interaction=nonstopmode -outdir=$${BUILD_DIR} $$< endif +ifdef XELATEX + $(SILENT) xelatex $$< +endif ## Generate Summary Rule $$(RULENAME)_summary: | $$(RULENAME) diff --git a/documents/rulebook.tex b/documents/rulebook.tex index c54cb490..c49f8e1e 100644 --- a/documents/rulebook.tex +++ b/documents/rulebook.tex @@ -25,8 +25,8 @@ -\makeindex % generate index -\makeabbex % generate abbreviations +\makeindex{} % generate index +\makeabbex{} % generate abbreviations @@ -45,11 +45,11 @@ \pagestyle{empty} \input{pages/rulebook/about} \input{pages/acknowledgments} -\clearpage +\clearpage{} \pagestyle{plain} -\tableofcontents -\clearpage +\tableofcontents{} +\clearpage{} \setcounter{page}{1} \pagenumbering{arabic} @@ -71,21 +71,18 @@ \chapter{Tests in Stage I}\label{chap:stage_I} \testtocentry{test:carry-my-luggage} \testtocentry{test:gpsr} \testtocentry{test:receptionist} -\testtocentry{test:serve-breakfast} \testtocentry{test:storing-groceries} % Uncomment to get aesthetic improvement -\cleardoublepage +\cleardoublepage{} \input{tasks/HelpMeCarry} -\newpage +\newpage{} \input{tasks/GPSR} -\newpage +\newpage{} \input{tasks/Receptionist} -\newpage -\input{tasks/ServeBreakfast} -\newpage +\newpage{} \input{tasks/StoringGroceries} @@ -93,8 +90,7 @@ \chapter{Tests in Stage I}\label{chap:stage_I} %%% STAGE II %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chapter{Tests in Stage II} -\label{chap:stage_II} +\chapter{Tests in Stage II}\label{chap:stage_II} \testtocentry{test:clean-the-table} \testtocentry{test:egpsr} @@ -103,13 +99,13 @@ \chapter{Tests in Stage II} % Uncomment to get aesthetic improvement -\cleardoublepage +\cleardoublepage{} \input{tasks/CleanTable} -\newpage +\newpage{} \input{tasks/EGPSR} -\newpage +\newpage{} \input{tasks/Restaurant} -\newpage +\newpage{} \input{tasks/SticklerForRules} @@ -119,7 +115,7 @@ \chapter{Tests in Stage II} \input{tasks/Finals} -\printabx -\printidx +\printabx{} +\printidx{} \end{document} diff --git a/documents/scoresheets.tex b/documents/scoresheets.tex index 3c08bbcc..a4f658fc 100644 --- a/documents/scoresheets.tex +++ b/documents/scoresheets.tex @@ -13,13 +13,13 @@ \input{./setup/packages_scoresheets.tex} \usepackage{fullpage} -\parindent 0cm -\parskip 0.2cm -\topmargin -1cm -\oddsidemargin -1cm -\evensidemargin -1cm -\textwidth 18cm -\textheight 26cm +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\setlength{\topmargin}{-1cm} +\setlength{\oddsidemargin}{-1cm} +\setlength{\evensidemargin}{-1cm} +\setlength{\textwidth}{18cm} +\setlength{\textheight}{26cm} \input{./setup/active_version.tex} \graphicspath{{\YEAR/}{./images/}} @@ -43,7 +43,7 @@ %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% L E A G U E S %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% -\loadTeamsListFile +\loadTeamsListFile{} %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% H E A D I N G S %% @@ -75,14 +75,13 @@ {% \vspace*{.27cm} \Huge{RoboCup@Home}\\[1.23ex] - \ifthenelse{\equal{\league}{}}{}{\huge{\leagueFullName}\\[1.23ex]} \Large Forms \& Score Sheets\\[2ex] } \hrulefill\par \vfill - ~~ Version: \YEAR \quad \svnRevision ~~ \\ - ~~ Last Build Date: \today \quad Time: \the\time ~~ \\ - ~~ \svnChangeData ~~ %\\ + Version: \YEAR{} \quad \svnRevision{}\\ + Last Build Date: \today \quad Time: \the\time{}\\ + \svnChangeData{}%\\ %\vfill \end{center} \end{titlepage} @@ -119,11 +118,6 @@ \input{scoresheets/Receptionist} \end{scoresheet} -\renewcommand{\currentTest}{Serve the Breakfast} -\begin{scoresheet} -\input{scoresheets/ServeBreakfast} -\end{scoresheet} - \renewcommand{\currentTest}{Storing Groceries} \begin{scoresheet} \input{scoresheets/StoringGroceries} @@ -169,4 +163,4 @@ \end{document} -\grid +\grid{} diff --git a/images/container_dry.png b/images/container_dry.png new file mode 100644 index 00000000..1121dc18 Binary files /dev/null and b/images/container_dry.png differ diff --git a/pages/general_rules/Scenario.tex b/pages/general_rules/Scenario.tex index d69d6ea3..e16777ef 100644 --- a/pages/general_rules/Scenario.tex +++ b/pages/general_rules/Scenario.tex @@ -1,6 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Scenario} -\label{sec:scenario} +\section{Scenario}\label{sec:scenario} Most competition tests take place in the \RoboCup\AtHome\Arena, but some tests may take place outside, in a previously unknown public place. In this section, the \Arena{} and its contents are described, in particular the furnishing and other information that is common between tests and leagues. @@ -22,8 +21,7 @@ \subsection{RoboCup@Home Arena} Note that what is considered \emph{normal} may vary greatly based on the culture and location where \RoboCup{} is hosted. Decorations may include, but are not limited to, plants, mirrors, paintings, posters, plates, picture frames, wall clocks, candles with holders, and books. -\subsection{Walls, Doors, and Floor} -\label{rule:scenario_walls} +\subsection{Walls, Doors, and Floor}\label{rule:scenario_walls} The indoor home setting will be surrounded by high and low \Term{walls}{Arena walls}, which are built up using standard fair construction material. @@ -35,8 +33,7 @@ \subsection{Walls, Doors, and Floor} \end{enumerate} -\subsection{Furniture} -\label{rule:scenario_furniture} +\subsection{Furniture}\label{rule:scenario_furniture} The \Arena{} is furnished with typical objects common for the host country. The minimal configuration consists of: @@ -61,10 +58,9 @@ \subsection{Furniture} A typical \Arena{} setup is shown in~\reffig{fig:scenario_arena}. \begin{figure}[tbp] \centering - \subfloat[Typical Arena]{\label{fig:scenario_arena}\includegraphics[height=46mm]{images/typical_arena.jpg}} ~ + \subfloat[Typical Arena]{\label{fig:scenario_arena}\includegraphics[height=46mm]{images/typical_arena.jpg}} \subfloat[Typical objects]{\label{fig:scenario_objects}\includegraphics[height=46mm]{images/typical_objects.jpg}} - \caption{An example of a \RoboCup\AtHome scenario} - \label{fig:arena} + \caption{An example of a \RoboCup\AtHome{} scenario}\label{fig:arena} \end{figure} \subsubsection{Cupboard} @@ -77,8 +73,7 @@ \subsubsection{Fridge} At least one powered and functioning fridge is required in the \Arena. The fridge must not be smaller than \SI{120}{\centi\meter}. -\subsection{Changes to the \Arena} -\label{rule:scenario_changes} +\subsection{Changes to the \Arena}\label{rule:scenario_changes} Since robots should be able to function in the real world, the \Arena{} is not fixed and might change without further notice. \begin{enumerate} @@ -102,11 +97,10 @@ \subsection{Changes to the \Arena} \def\NumLocations{20\ } \def\NumNames{20\ } -\subsection{Objects} -\label{rule:scenario_objects} +\subsection{Objects}\label{rule:scenario_objects} Some tests in the RoboCup@Home league involve recognizing and manipulating objects (see Figure~\reffig{fig:scenario_objects}). -The TC will compile a list of at least \NumObjects objects for this purpose; the list will contain a picture of the each object, as well as its official name and \ObjectCategory{} (for instance, an \textit{Apple} belongs to the \textit{Fruits} category). +The TC will compile a list of at least \NumObjects{} objects for this purpose; the list will contain a picture of the each object, as well as its official name and \ObjectCategory{} (for instance, an \textit{Apple} belongs to the \textit{Fruits} category). Most objects are likely to be lightweight and easy to grasp with one hand. Every \ObjectCategory{} has an assigned \PredefinedLocation, where objects of that category can usually be found during tests (for example, an \textit{Fruits} can be found on the \textit{Kitchen Table}); assignments are announced during the \SetupDays{} (see~\refsec{chap:setup_and_preparation}). @@ -127,13 +121,14 @@ \subsection{Objects} The minimal configuration of \KnownObjects{} consists of: \begin{itemize} - \item \textbf{\iterm{Tableware}:} Dish, bowl, cup (or mug), and napkin (see Figure \ref{fig:scenario_container_bowl}). + \item \textbf{\iterm{Tableware}:} Dish, bowl, cup (or mug), and napkin (see Figure~\ref{fig:scenario_container_bowl}). \item \textbf{\iterm{Cutlery}:} Fork, knife, and spoon. \item \textbf{\iterm{Trash Bags}:} Big plastic trash bags, preferably with a handle. - \item \textbf{\iterm{Bags}:} Lightweight and with stiff, vertical handles (see Figure \ref{fig:scenario_container_bag}). + \item \textbf{\iterm{Bags}:} Lightweight and with stiff, vertical handles (see Figure~\ref{fig:scenario_container_bag}). + \item \textbf{\iterm{Dry Food Container}:} Dry food containers (see Figure~\ref{fig:scenario_container_dry}). \item \textbf{\iterm{Disks or books}:} A set of discs (LP, CD, DVD, or BluRay) or books. \item \textbf{\iterm{Coat rack}:} A rack or pole to hang coats and other clothes. - \item \textbf{\iterm{Trays}:} A transport object such as a tray or basket, intended for bimanual manipulation (see Figure \ref{fig:scenario_container_tray}). + \item \textbf{\iterm{Trays}:} A transport object such as a tray or basket, intended for bimanual manipulation (see Figure~\ref{fig:scenario_container_tray}). \item \textbf{\iterm{Pourable}:} An object whose content can be poured (such as a cereal box). \item \textbf{\iterm{Heavy object}:} Weight between 1.0kg and 1.5kg. \item \textbf{\iterm{Tiny object}:} A lightweight object that is not bigger than \SI{5}{\centi\meter} (such as paper, a teabag, or a pen). @@ -145,16 +140,18 @@ \subsection{Objects} \begin{figure}[H] \centering \subfloat[Cereal bowls]{ - \label{fig:scenario_container_bowl}\includegraphics[width=0.33\textwidth]{images/container_bowl.png}}~ + \includegraphics[width=0.33\textwidth]{images/container_bowl.png}\label{fig:scenario_container_bowl}} \subfloat[Bright-colored paper bags]{ - \label{fig:scenario_container_bag}\includegraphics[width=0.33\textwidth]{images/container_paper_bag.png}}~ + \includegraphics[width=0.33\textwidth]{images/container_paper_bag.png}\label{fig:scenario_container_bag}} \subfloat[Serving tray]{ - \label{fig:scenario_container_tray}\includegraphics[width=0.33\textwidth]{images/container_tray.png}} + \includegraphics[width=0.33\textwidth]{images/container_tray.png}\label{fig:scenario_container_tray}} + \subfloat[Dry food Container]{ + \includegraphics[width=0.33\textwidth]{images/container_dry.png}\label{fig:scenario_container_dry}} \caption{Example of object containers} \label{fig:scenario_containers} \end{figure} -During the competition, objects can be requested based on their \ObjectCategory, physical attributes, or a combination of both. +During the competition, objects can be requested based on their \ObjectCategory{}, physical attributes, or a combination of both. Relevant attributes to be used are: \begin{itemize} \item Color (such as red, blue, black with white dots, etc.). @@ -172,23 +169,20 @@ \subsection{Objects} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{Predefined Rooms and Locations} -\label{rule:scenario_locations} +\subsection{Predefined Rooms and Locations}\label{rule:scenario_locations} Some tests in the RoboCup@Home league involve a \PredefinedLocation{} where people or objects can be found. There will also be at least two \Term{doors}{Arena doors}, named an \Entrance{} and an \Exit, which lead in and out of the \Arena{}, respectively. Room names, predefined locations, and location classes are announced during the \SetupDays{} (see~\refsec{chap:setup_and_preparation}). -\subsection{Predefined Person Names} -\label{rule:scenario_names} +\subsection{Predefined Person Names}\label{rule:scenario_names} Some tests in the RoboCup@Home league involve memorizing a person's name. All people in the \Arena{} have an assigned \PredefinedName{} chosen by the TC. The list of names contains \SI{25}{\percent} male, \SI{25}{\percent} female, and \SI{50}{\percent} gender-neutral names taken from the list of most commonly used names in the United States. Predefined names are announced during the \SetupDays{} (see~\refsec{chap:setup_and_preparation}). -\subsection{Wireless network} -\label{rule:scenario_wifi} +\subsection{Wireless network}\label{rule:scenario_wifi} For wireless communication, an \ArenaNetwork{} is provided. The actual infrastructure depends on the local organization. @@ -204,7 +198,7 @@ \subsection{Wireless network} \item Each VLAN is also connected to the Internet. \end{itemize} -Teams broadcasting unauthorized (aka rogue) wireless networks will be disqualified from the competition and their devices may be temporarily confiscated by the OC; this includes smartphones and concealed SSIDs. +Teams broadcasting unauthorized (aka rogue) wireless networks will be disqualified from the competition and their devices may be temporarily confiscated by the OC, this includes smartphones and concealed SSIDs. It is thus advised to verify your devices for any breaches of this nature. diff --git a/scoresheets/CleanTable.tex b/scoresheets/CleanTable.tex index 2d6518c5..c82e53ca 100644 --- a/scoresheets/CleanTable.tex +++ b/scoresheets/CleanTable.tex @@ -1,11 +1,12 @@ \begin{scorelist}[timelimit=10] \scoreheading{Main Goal} \scoreitem{15}{Navigate to the table to pick up items} - \scoreitem[2]{40}{Picking tableware (cup, bowl) for transportation to the dishwasher} - \scoreitem{50}{Picking up a plate for transportation to the dishwasher} + \scoreitem[3]{50}{Picking tableware (cup, bowl, plate) for transportation to the dishwasher} \scoreitem[2]{80}{Picking up cutlery (spoon, fork) for transportation to the dishwasher} + \scoreitem[2]{50}{Picking up a drink for transportation to the trash bin} \scoreitem[5]{50}{Placing the tableware and cutlery inside the dishwasher} - \scoreitem[5]{50}{Placing an item correctly (cleanable, convenient like a human would) in the dishwasher} + \scoreitem[5]{75}{Placing an item correctly (cleanable, convenient like a human would) in the dishwasher} + \scoreitem[2]{50}{Placing a drink inside the trash bin} \scoreheading{Bonus Rewards} \scoreitem{100}{Pulling out the dishwasher rack} @@ -14,12 +15,15 @@ \scoreitem{200}{Closing the dishwasher door} \scoreitem{100}{Picking up the dishwasher tab for transportation to the dishwasher} \scoreitem{200}{Placing the dishwasher tab inside the dishwasher's hatch intended for the tab} + \scoreitem[2]{50}{Wiping the area where the drink was} \scoreheading{Deus Ex Machina Penalties} - \penaltyitem[2]{40}{Handing tableware over to the robot} - \penaltyitem{50}{Handing plate over to the robot} + \penaltyitem[3]{50}{Handing tableware over to the robot} \penaltyitem[2]{80}{Handing cutlery over to the robot} + \penaltyitem[2]{50}{Handing a drink over to the robot} \penaltyitem[5]{50}{Having a human place an object in the dishwasher} + \penaltyitem[2]{50}{Having a human place a drink inside the trash bin} + \penaltyitem[2]{25}{A human pointing at the trash bin} %\setTotalScore{1000} \end{scorelist} diff --git a/scoresheets/Receptionist.tex b/scoresheets/Receptionist.tex index 43d51c00..801604d4 100644 --- a/scoresheets/Receptionist.tex +++ b/scoresheets/Receptionist.tex @@ -1,22 +1,28 @@ \begin{scorelist}[startbutton=false,timelimit=5] \scoreheading{Main Goal} - \scoreitem[2]{15}{Guide the guest to the other guests (navigate to the guest group)} - \scoreitem[2]{50}{Look in the direction of navigation or at the navigation goal} - \scoreitem[2]{50}{Introduce a new guest to every other guest and the host} + \scoreitem[2]{30}{Show the guest around (navigate to the beverage area and living room)} + \scoreitem[2]{15}{Look in the direction of navigation or at the navigation goal} + \scoreitem[2]{20}{Confirm favorite drink} + \scoreitem[2]{20}{Confirm interest of guest} + \scoreitem[2]{20}{Tell position of favorite drink} \scoreitem[2]{100}{Offer a free seat to the new guest} - \scoreitem[2]{25}{Look at the person talking} - \scoreitem[2]{50}{Look at the person the robot is introducing the guest to} + \scoreitem[2]{75}{Look at the person talking} + \scoreitem[1]{75}{Introduce both guests to each other} + \scoreheading{Bonus Rewards} - \scoreitem[2]{100}{Open the entrance door for a guest} - \scoreitem[4]{30}{Describe the first guest to the second guest (per corect attribute)} - \penaltyitem[4]{30}{Describe the first guest to the second guest (per incorrect attribute)} + \scoreitem[2]{200}{Open the entrance door for a guest} + \scoreitem[1]{50}{State a shared interest between two or more persons} + \scoreitem[4]{30}{Describe the first guest to the second guest (per correct attribute)} \scoreheading{Penalties} - \penaltyitem{50}{Wrong guest information was memorized (continue with wrong name or drink)} + \penaltyitem[2]{50}{Wrong guest information was memorized (continue with wrong name or drink)} + \penaltyitem[2]{50}{Interest was not or wrongly memorized} \penaltyitem{50}{Persistent inappropriate gaze (away from conversational partner)} - \penaltyitem{10}{Persistent gaze not in the direction of the navigation while moving.} + \penaltyitem{25}{Persistent gaze not in the direction of the navigation while moving.} + \penaltyitem[4]{30}{Describe the first guest to the second guest (per incorrect attribute)} + \penaltyitem[1]{30}{Wrongly stating a similarity} \scoreheading{Deus Ex Machina} \penaltyitem[2]{75}{Alternative HRI} diff --git a/scoresheets/StoringGroceries.tex b/scoresheets/StoringGroceries.tex index 9eb26f6d..54bf567b 100644 --- a/scoresheets/StoringGroceries.tex +++ b/scoresheets/StoringGroceries.tex @@ -1,4 +1,4 @@ -\begin{scorelist}[timelimit=5] +\begin{scorelist}[timelimit=7] \scoreheading{Main Goal} \scoreitem{15}{Navigating to the table} \scoreitem[5]{15}{Perceiving object and categorizing it correctly} @@ -6,9 +6,12 @@ \scoreitem[5]{15}{Perceiving objects in shelf and saying on which layer the currently handled object should be placed} \scoreitem[5]{15}{Placing an object in the cabinet} \scoreitem[5]{50}{Placing an object next to similar objects on the cabinet} + \scoreitem[2]{100}{Opening a cabinet door } + \scoreitem{300}{Pouring cereal into the container} \scoreheading{Bonus Rewards} - \scoreitem{200}{Opening the cabinet door without human help} + + \scoreitem{50}{Picking up an object from the shopping bag} \scoreitem{70}{Picking up a tiny object} \scoreitem{30}{Placing a tiny object} \scoreitem{70}{Picking up a heavy object} @@ -19,6 +22,10 @@ \penaltyitem[5]{-15}{A human placing an object in the cabinet} \penaltyitem[5]{-50}{A human placing an object in the cabinet next to similar objects} \penaltyitem[5]{-25}{A human pointing at a target location} + \penaltyitem[2]{100}{A human opening the cabinet door} + \penaltyitem{100}{Spilling cereal while pouring} + \penaltyitem{100}{Leaving cereal in the box} + \penaltyitem{300}{A human pouring cereal in the bowl} \end{scorelist} diff --git a/scoresheets/ServeBreakfast.tex b/scoresheets/old/ServeBreakfast.tex similarity index 100% rename from scoresheets/ServeBreakfast.tex rename to scoresheets/old/ServeBreakfast.tex diff --git a/tasks/CleanTable.tex b/tasks/CleanTable.tex index 43d71b5f..3e932bc1 100644 --- a/tasks/CleanTable.tex +++ b/tasks/CleanTable.tex @@ -1,15 +1,15 @@ \section{Clean the Table} \label{test:clean-the-table} -The robot has to remove all dishes and cutlery from a table and place them into the dishwasher.\\ +The robot cleans up a table after a meal. All dishes and cutlery must be placed inside the dishwasher and drinks must be placed inside the trash. \\ -\noindent \textbf{Main goals:} All tableware and cutlery on the table is placed inside the dishwasher (five objects in total).\\ +\noindent \textbf{Main goals:} Clean up all the objects on the table. Tableware and cutlery have to be placed correctly inside the dishwasher and drinks must be placed inside the trash bin. \\ \noindent \textbf{Optional goals:} \begin{enumerate}[nosep] \item Opening the dishwasher door \item Pulling out the dishwasher rack - \item Placing the items in the dishwasher correctly \item Placing a dishwasher tab inside the dishwasher + \item Wipe the table area where the drink was \end{enumerate} \subsection*{Focus} @@ -22,6 +22,7 @@ \subsection*{Setup} \begin{itemize}[nosep] \item \textbf{Locations:} \begin{itemize} + \item \textbf{Start Location:} Before the test, the robot waits outside the Arena and navigates to the testing area when the door is open. \item \textbf{Test location:} This test takes place in the kitchen. \end{itemize} \item \textbf{People:} @@ -30,18 +31,21 @@ \subsection*{Setup} \end{itemize} \item \textbf{Furniture:} \begin{itemize} - \item \textbf{Dining table:} A dining table is located close to the dishwasher. + \item \textbf{Dishwasher:} A dishwasher is located close to the dining table. \item \textbf{Tray:} A plastic tray, which may have other tableware and cutlery placed inside, is located either on top of the dishwasher or on one of the racks. Objects can be placed either in the dishwasher rack or in the tray, based on the team's choice. + \item \textbf{Trash bin:} A trash bin is located in the kitchen. \end{itemize} \item \textbf{Objects:} \begin{itemize} - \item \textbf{Table setting:} The table has a total of five objects disposed in a typical setting for a meal for one person. + \item \textbf{Table setting:} The table has a total of seven objects disposed in a typical setting for a meal for one person. The cutlery and tableware objects may be randomly stacked as it is common after a meal. The object distribution is as follows: \begin{itemize}[nosep] - \item\textit{Silverware}: Any two objects (fork, knife, or spoon). - \item\textit{Tableware}: Any three objects (except silverware), at least one of which is a dish. + \item\textit{Cutlery}: Any two objects (fork, knife, or spoon). + \item\textit{Tableware}: Any three objects (except cutlery), at least one of which is a dish. + \item\textit{Drinks}: Any two drinks from the object set. \end{itemize} - \item \textbf{Dishwasher tab:} The tab can be found at a location that is announced before the test and should be autonomously placed inside the tab slot in the dishwasher. + \item \textbf{Dishwasher tab:} The tab can be found at a location announced before the test and should be autonomously placed inside the tab slot in the dishwasher. + \item \textbf{Wiping Object:} The wiping object (i.e. a sponge) can be found at a location announced before the test. \end{itemize} \end{itemize} @@ -57,7 +61,7 @@ \subsection*{Procedure} \item whether the dishwasher door should be closed and, if the door is open, whether the rack should be pushed in \end{itemize} \item \textbf{Test start:} The robot moves to the kitchen when the arena door is open. - \item \textbf{Table clean up:} The robot cleans the table by putting all items that are on it in the dishwasher. + \item \textbf{Table clean up:} The robot cleans the table by putting: the cutlery and tablware items inside the dishwasher and the drinks in the trash bin. \end{enumerate} @@ -76,6 +80,12 @@ \subsection*{Additional Rules and Remarks} \item pointing to an object or telling the robot where an object is \item handing an object over to the robot \end{itemize} + \item \textbf{Communicating Perception}: The robot must clearly communicate its perception to the referee. + Pointing at the object or attempting to pick it up is sufficent. When using visualization, make sure the robot + tells the referee where to look and make the visualization easily accesible. + If the team wants to utilize bounding boxes make sure \textbf{only} one object with a bounding box is shown + at a time so the referee is easily able to check and verify. Also make sure the surrounding scene is visible, i.e. + just showing a cropped bounding box is not enough. \end{enumerate} \subsection*{OC Instructions} @@ -83,10 +93,12 @@ \subsection*{OC Instructions} During the \SetupDays: \begin{itemize} \item Provide official cutlery and tableware for training. + \item Announce what is the object used for wiping. \end{itemize} At least two hours before the test: \begin{itemize} \item Announce the predefined location of the dishwasher tab. + \item Announce the predefined location of the object used for wiping. \end{itemize} @@ -94,7 +106,7 @@ \subsection*{Referee Instructions} The referee needs to: \begin{itemize} - \item Place objects on the table. + \item Place objects on the table (two pieces of cutlery, three pieces of tableware and two drinks) \item Place the plastic tray on the dishwasher or on a rack, as requested by the team. \end{itemize} diff --git a/tasks/Receptionist.tex b/tasks/Receptionist.tex index b628b70d..7cc31075 100644 --- a/tasks/Receptionist.tex +++ b/tasks/Receptionist.tex @@ -4,13 +4,14 @@ \subsection*{Description} The robot has to take two new guests to the living room to introduce them and offer a free place to sit.\\ \textbf{Main goal:} - Introduce and usher two newcomers to a party and maintain appropriate gaze direction (at person, direction of navigation). + The robot welcomes and assists two newcomers at a party while maintaining appropriate gaze direction during conversation (at person speaking, direction of navigation). % \vspace{-5pt} \textbf{Optional goals:} \begin{enumerate}[nosep] \item Open the entrance door for each arriving guest. - \item Describe the first guest for the second guest. + \item Describe the first guest for the second guest before reaching the living room + \item Identify similarities between the guests and the host and incorporate them into the conversation. \end{enumerate} \subsection*{Focus} @@ -23,36 +24,45 @@ \subsection*{Setup} \begin{itemize} \item The test takes place in the living room. \item The robot starts inside the \Arena{} at a predefined location. + \item A table with drinks is prepared near the living room \item \textbf{Entrance:} The entrance door is open by default. The team leader can request to close the door to score additional points by opening it for the guests. \end{itemize} \item \textbf{People:} \begin{itemize} - \item \textbf{Host:} The host's name and favorite drink will be announced before the test. The host is already sitting in the living room. + \item \textbf{Host:} The host's name, favorite drink and interest will be announced before the test. The host is already sitting in the living room. - \item \textbf{Guests:} Both guests have a name and favorite drink. An arriving guest will either step in front of the robot or ring the bell or knock on the door if the door is closed. Guests have to be guided to the living room to be introduced. Each of the guest will arrive separately. The sound of the bell will be provided to teams - during setup period before competition (if not using door knocking). + \item \textbf{Arriving Guests:} Both guests have a name, favorite drink, and a interest. An arriving guest will either step in front of the robot or wait behind the door to step in if the door is closed. Guests have to be guided to the beverage area and then the living room where the robot will introduce the guests to each other. Each of the guest will arrive separately. + + \item \textbf{Passive Guests:} Other Guests: A few individuals, including possibly spectators, are standing in small groups of two or three, all over the arena but not covering relevant places e.g. the couch, seats or the area with the drinks. \end{itemize} \end{itemize} \subsection*{Procedure} +Both guests arrive separately. The robot either opens the door for the guest or waits for them at the starting point. It greets the guest and asks for their name. The robot then guides the guest to the beverage area, where it asks for their favorite drink and checks if the drink is available on the table and where it stands. The robot finds out the interest of the guest at a freely chosen moment. After showing the guest the beverage area, the robot escorts them to the living room and offers a free seat. Once both guests are seated, the robot introduces them to each other. \begin{itemize} - \item \textbf{Introductions:} When introducing guests, the robot must clearly identify the person being introduced and state their name and favorite drink. Introducing two people means to introduce them to each other. + \item \textbf{Greeting guests:} The person paces a little to the left and right during conversation with the robot. Other people might appear in the background + + \item \textbf{Looking at person:} During verbal interactions and descriptions of people, robot + looks at the conversational partner. The conversational partner will make small movements to each side to confirm the robot is dynamically looking at the person. Points for looking at the person talking, will only be awarded if the robot proves to continuously look at the moving person. + + \item \textbf{Looking at direction of navigation:} During navigation robot looks in the direction where it is going. Persistently gazing towards unrelated person or incorrect direction while moving during the task deducts points. + + \item \textbf{Smalltalk} Ask each guest for one interest. + + \item \textbf{Finding the drink} The robot shows both guest the drinking area where it will ask for their favorite drink and tell the guest if and where (left, center right is enough) that drink is available on the table. \item \textbf{Seating People:} The robot must point at a place or location where the guest can sit. \item \textbf{Switching Places:} Guests may switch places after they were seated. - \item \textbf{Describing the First Guest:} Naming 4 characteristics of the first guest, i.e., color of clothes, color of hair, gender, and age, earns bonus points. - \item \textbf{Looking at person/direction of navigation:} During verbal interactions and descriptions of people, robot - looks at the conversational partner. Robot can point at the person being introduce/described or alternate gaze between two people. During navigation robot looks in the direction where it is going. Persistently gazing towards unrelated - person or incorrect direction while moving during the task deducts points. + \item \textbf{Introductions:} When introducing guests, the robot must clearly identify the person being introduced and state their name favorite drink and an interest. Introducing two people means to introduce them to each other. \end{itemize} \subsection*{Additional rules and remarks} \begin{enumerate}[nosep] - \item \textbf{Misunderstanding:} Not understanding the guests and asking them again is fine. Continuing with a wrong name or drink causes a score reduction of 50pts. + \item \textbf{Misunderstanding:} Not understanding the guests and asking them again is fine. Continuing with a wrong name, drink or interest causes a score reduction of 50pts. \item \textbf{Partial Scoring:} The main task allows partial (per guest) scoring. @@ -73,26 +83,29 @@ \subsubsection*{To Referee} The referees need to: \begin{itemize} - \item Assign name and drink to 3 volunteers. + \item Assign name, drink and one interest to 3 volunteers. \item Arrange (and re-arrange) people in the living room. + \item Change the selection in the beverage area. \item Open the door when requested by the robot. \end{itemize} \subsubsection*{To OC} + During setup day: \begin{itemize} - \item Provide the dorbell sound (if not using door knocking). + \item Announce beverage location. \end{itemize} + At least two hours before test: \begin{itemize} \item Announce starting position. - \item Announce host's name and favorite drink. - \item Recruit volunteers as host and guests. + \item Announce host's name, favorite drink and interest. + \item Recruit five volunteers: one volunteer as host, two as arriving guests and 2 as passive guests. + \end{itemize} % \newpage \subsection*{Score sheet} -\input{scoresheets/Receptionist.tex} - +\input{scoresheets/Receptionist.tex} \ No newline at end of file diff --git a/tasks/StoringGroceries.tex b/tasks/StoringGroceries.tex index 9febcf71..db3d3daa 100644 --- a/tasks/StoringGroceries.tex +++ b/tasks/StoringGroceries.tex @@ -1,14 +1,14 @@ -\section{Storing Groceries} -\label{test:storing-groceries} +\section{Storing Groceries}\label{test:storing-groceries} The robot stores groceries into a cabinet with shelves. Objects are sorted on the shelves based on similarity, for instance an apple is stored next to other fruits.\\ -\noindent \textbf{Main goal:} Move five objects from a table to the cabinet, grouping them by category or similarity.\\ +\noindent \textbf{Main goal:} Move objects from a table to the cabinet, grouping them by category or similarity. Refilling the cereal container.\\ \noindent \textbf{Optional goals:} \begin{enumerate}[nosep] - \item Opening the cabinet door + \item Opening the cabinet doors \item Moving a \emph{tiny} object \item Moving a \emph{heavy} object + \item Picking Objects from the shopping bag \end{enumerate} \subsection*{Focus} @@ -31,13 +31,15 @@ \subsection*{Setup} \item \textbf{Furniture:} \begin{itemize} \item \textbf{Table:} The table has 5--10 objects placed on it and the robot can choose which ones to grasp and in what order. On small tables, objects will be added as the robot frees up space. + \item \textbf{Shopping Bag:} There is a shopping bag with 5--10 additional items on the ground next to the table. \item \textbf{Cabinet:} The cabinet contains objects arranged in groups --- either by category or likeliness --- on different shelves. - \item \textbf{Cabinet door:} The cabinet door is open by default, but the team leader can request the door to be closed and score additional points for opening it. If the robot fails to open the door, it must clearly state this and request the referee to open it. + \item \textbf{Cabinet door:} The cabinet is closed. If the robot fails to open the door, it must clearly state this and request the referee to open it. \end{itemize} \item \textbf{Objects}: \begin{itemize} \item \textbf{Table objects:} The object on the table are arranged arbitrarily. - \item \textbf{Cabinet objects:} Some of the objects are placed behind the cabinet door and cannot be accessed unless the door is open. + \item \textbf{Cabinet objects:} The objects are placed behind the cabinet doors and cannot be accessed unless the doors are open. + \item \textbf{Containers:} The container for the cornflakes are placed on the table. \end{itemize} \end{itemize} @@ -48,13 +50,9 @@ \subsection*{Setup} \subsection*{Procedure} \begin{enumerate}[nosep] \item \textbf{Table location:} At least two hours before the test, the referees announce the table and cabinet that will be used in the test, as well as a rough location of the table. - \item \textbf{Cabinet door; heavy and/or tiny object}: Half an hour before the test, the team informs the referees: - \begin{itemize} - \item whether the cabinet door should be closed - \item whether a heavy and/or a tiny object should be used in the test - \end{itemize} \item \textbf{Test start:} The robot moves to the testing area when the arena door is open. - \item \textbf{Storing groceries:} After identifying the table (and optionally opening the cabinet door), the robot moves the objects from the table to the cabinet. + \item \textbf{Storing groceries:} After identifying the table, the robot moves the objects from the table to the cabinet. + \item \textbf{Pouring cereal:} The robot should pour cereal into the designated open container. \end{enumerate} @@ -70,13 +68,13 @@ \subsection*{Additional rules and remarks} \begin{itemize} \item telling or pointing out to the robot where to place an object \item moving an object instead of the robot + \item opening the cabinet doors \end{itemize} \item \textbf{Communicating Perception}: The robot must clearly communicate its perception to the referee. - Pointing at the object or attempting to pick it up is sufficent. When using visualization, make sure the robot - tells the referee where to look and make the visualization easily accesible. - If the team wants to utilize bounding boxes make sure \textbf{only} one object with a bounding box is shown - at a time so the referee is easily able to check and verify. Also make sure the surrounding scene is visible, i.e. - just showing a cropped bounding box is not enough. + Pointing at the object or attempting to pick it up is sufficient. + When using visualization, make sure the robot tells the referee where to look and make the visualization easily accessible. + If the team wants to utilize bounding boxes make sure \textbf{only} one object with a bounding box is shown at a time, so the referee is easily able to check and verify. + Also make sure the surrounding scene is visible, i.e. just showing a cropped bounding box is not enough. \end{enumerate} \subsection*{OC Instructions} @@ -85,6 +83,8 @@ \subsection*{OC Instructions} \begin{itemize} \item Announce which table and cabinet will be used in the test. \item Announce a rough location for the table. + \item Select which bags will be used in the test. + \item Select which container will be used in the test. \end{itemize} \subsection*{Referee Instructions} @@ -92,8 +92,10 @@ \subsection*{Referee Instructions} The referee needs to: \begin{itemize} \item Place 5--10 objects on the table. + \item Place container and cornflakes on the table. + \item Place 5--10 objects in a bag near the table. \item Place objects in the cabinet, grouping them by category or likeliness. - \item Open the door of the cabinet (unless the team wants it closed). + \item Close the door of the cabinet. \end{itemize} diff --git a/tasks/ServeBreakfast.tex b/tasks/old/ServeBreakfast.tex similarity index 100% rename from tasks/ServeBreakfast.tex rename to tasks/old/ServeBreakfast.tex