From db3e5ca7ab9c854bb646b2e01cf82af033eee438 Mon Sep 17 00:00:00 2001
From: hasu <hawkin@informatik.uni-bremen.de>
Date: Sun, 3 Dec 2023 23:20:02 +0100
Subject: [PATCH 1/5] [PS] partial scoring for Stage 1 tasks (draft), minor
 grammatical fixes for Stickler to the rules

---
 images/spr_ppl_layout.png                     | Bin
 latexdockercmd.sh                             |   0
 rulebook.tex                                  |   3 +-
 scoresheets/CarryMyLuggage.tex                |  19 +-
 scoresheets/CleanTable.tex                    |  49 +++-
 scoresheets/Receptionist.tex                  |  42 +--
 scoresheets/Restaurant.tex                    |  13 +-
 scoresheets/ServeBreakfast.tex                |  30 +-
 scoresheets/SticklerForRules.tex              |   5 +-
 scoresheets/StoringGroceries.tex              |  24 +-
 .../{ => old_score_sheets}/CleanUp.tex        |   0
 .../{ => old_score_sheets}/CocktailParty.tex  |   0
 .../{ => old_score_sheets}/Farewell.tex       |   0
 .../{ => old_score_sheets}/FindMyDisk.tex     |   0
 .../{ => old_score_sheets}/FindMyMates.tex    |   0
 .../{ => old_score_sheets}/HandMeThat.tex     |   0
 scoresheets/{ => old_score_sheets}/PnG.tex    |   0
 scoresheets/{ => old_score_sheets}/SPR.tex    |   0
 .../{ => old_score_sheets}/ServingDrinks.tex  |   0
 .../{ => old_score_sheets}/SetTable.tex       |   0
 .../{ => old_score_sheets}/SmoothieChef.tex   |   0
 .../{ => old_score_sheets}/TakeOutGarbage.tex |   0
 scoresheets/{ => old_score_sheets}/TidyUp.tex |   0
 .../{ => old_score_sheets}/TourGuide.tex      |   0
 .../{ => old_score_sheets}/WhereIsThis.tex    |   0
 scoresheets/subtask_list.tex                  |   9 +
 setup/config.tex                              |   3 +-
 setup/macros_score_sheets.tex                 |  18 +-
 setup/packages.tex                            |   3 +
 tasks/SticklerForRules.tex                    |  14 +-
 tasks/{ => old_tasks}/CleanUp.tex             |   0
 tasks/{ => old_tasks}/Farewell.tex            |   0
 tasks/{ => old_tasks}/FindMyDisk.tex          |   0
 tasks/{ => old_tasks}/FindMyMates.tex         |   0
 tasks/{ => old_tasks}/HandMeThat.tex          |   0
 tasks/{ => old_tasks}/ServingDrinks.tex       |   0
 tasks/{ => old_tasks}/SetTable.tex            |   0
 tasks/{ => old_tasks}/SmoothieChef.tex        |   0
 tasks/{ => old_tasks}/TakeOutGarbage.tex      |   0
 tasks/{ => old_tasks}/TidyUp.tex              |   0
 tasks/{ => old_tasks}/WhatisThat.tex          |   0
 tasks/{ => old_tasks}/WhereIsThis.tex         |   0
 tests/EEGPSR.tex                              | 264 +++++++++---------
 43 files changed, 284 insertions(+), 212 deletions(-)
 mode change 100755 => 100644 images/spr_ppl_layout.png
 mode change 100755 => 100644 latexdockercmd.sh
 rename scoresheets/{ => old_score_sheets}/CleanUp.tex (100%)
 rename scoresheets/{ => old_score_sheets}/CocktailParty.tex (100%)
 rename scoresheets/{ => old_score_sheets}/Farewell.tex (100%)
 rename scoresheets/{ => old_score_sheets}/FindMyDisk.tex (100%)
 rename scoresheets/{ => old_score_sheets}/FindMyMates.tex (100%)
 rename scoresheets/{ => old_score_sheets}/HandMeThat.tex (100%)
 rename scoresheets/{ => old_score_sheets}/PnG.tex (100%)
 rename scoresheets/{ => old_score_sheets}/SPR.tex (100%)
 rename scoresheets/{ => old_score_sheets}/ServingDrinks.tex (100%)
 rename scoresheets/{ => old_score_sheets}/SetTable.tex (100%)
 rename scoresheets/{ => old_score_sheets}/SmoothieChef.tex (100%)
 rename scoresheets/{ => old_score_sheets}/TakeOutGarbage.tex (100%)
 rename scoresheets/{ => old_score_sheets}/TidyUp.tex (100%)
 rename scoresheets/{ => old_score_sheets}/TourGuide.tex (100%)
 rename scoresheets/{ => old_score_sheets}/WhereIsThis.tex (100%)
 create mode 100644 scoresheets/subtask_list.tex
 rename tasks/{ => old_tasks}/CleanUp.tex (100%)
 rename tasks/{ => old_tasks}/Farewell.tex (100%)
 rename tasks/{ => old_tasks}/FindMyDisk.tex (100%)
 rename tasks/{ => old_tasks}/FindMyMates.tex (100%)
 rename tasks/{ => old_tasks}/HandMeThat.tex (100%)
 rename tasks/{ => old_tasks}/ServingDrinks.tex (100%)
 rename tasks/{ => old_tasks}/SetTable.tex (100%)
 rename tasks/{ => old_tasks}/SmoothieChef.tex (100%)
 rename tasks/{ => old_tasks}/TakeOutGarbage.tex (100%)
 rename tasks/{ => old_tasks}/TidyUp.tex (100%)
 rename tasks/{ => old_tasks}/WhatisThat.tex (100%)
 rename tasks/{ => old_tasks}/WhereIsThis.tex (100%)

diff --git a/images/spr_ppl_layout.png b/images/spr_ppl_layout.png
old mode 100755
new mode 100644
diff --git a/latexdockercmd.sh b/latexdockercmd.sh
old mode 100755
new mode 100644
diff --git a/rulebook.tex b/rulebook.tex
index 57faeb6c..eee8f5df 100644
--- a/rulebook.tex
+++ b/rulebook.tex
@@ -1,4 +1,4 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%
 %%          $Id: Rulebook.tex 2014-12-12 balkce $
 %%    author(s): RoboCupAtHome Technical Committee(s)
@@ -32,7 +32,6 @@
 %\newcommand{\sectionbreak}{\clearpage}
 %\newcommand{\subsectionbreak}{\clearpage}
 
-
 \begin{document}
 
 \input{./pages/titlepage}
diff --git a/scoresheets/CarryMyLuggage.tex b/scoresheets/CarryMyLuggage.tex
index 2d3498c0..c468ca65 100644
--- a/scoresheets/CarryMyLuggage.tex
+++ b/scoresheets/CarryMyLuggage.tex
@@ -3,21 +3,28 @@
 
 \begin{scorelist}
 	\scoreheading{Main Goal}
-	\scoreitem{100}{Picking up the correct bag}
-	\scoreitem{300}{Following the person to the car}
+    \scoreitem{15}{Perceiving the correct beg (visualize on screen or say which one)}
+	\scoreitem{30}{Picking up the correct bag}
+	\scoreitem{100}{Following the person to the car}
     \scoreitem{50}{Avoiding the crowd of people obstructing the path}
 	\scoreitem{50}{Avoiding the small object on the ground}
 	\scoreitem{50}{Avoiding the hard-to-see object}
 	\scoreitem{50}{Avoiding the area blocked with retractable barriers}
-	
+    
+    
+
+    \\
 	\scoreheading{Bonus rewards}
+    \scoreitem{300}{Successful task completion}
 	\scoreitem{100}{Re-entering the arena}
 	\scoreitem{300}{Joining and staying in the queue on the way to the arena}
+    
 
-
+    \\
 	\scoreheading{Regular Penalties}
-	\penaltyitem{50}{Dropping the bag}
-	
+	\penaltyitem{100}{Dropping the bag}
+
+    \\
 	\scoreheading{Deus Ex Machina Penalties}
 	\penaltyitem{50}{Rediscovering the operator by natural interaction}
 	\penaltyitem{100}{Rediscovering the operator by unnatural interaction}
diff --git a/scoresheets/CleanTable.tex b/scoresheets/CleanTable.tex
index ca9499c2..908e85fe 100644
--- a/scoresheets/CleanTable.tex
+++ b/scoresheets/CleanTable.tex
@@ -1,20 +1,45 @@
+% Reworked on 23. Oct 2023
 The maximum time for this test is 10 minutes.
 
 \begin{scorelist}
-	\scoreheading{Main Goal}
-	\scoreitem[5]{60}{Picking tableware and cutlery for transportation to the dishwasher}
-	\scoreitem[5]{180}{Placing the tableware and cutlery inside the dishwasher}
+    \scoreheading{Main Goal}
+    \scoreitem{15}{Navigate to the table to pick up items}
+    \scoreitem[2]{30}{Picking tableware (cup, bowl) for transportation to the dishwasher}
+    \scoreitem{50}{Picking up a plate for transportation to the dishwasher}
+    \scoreitem[2]{50}{Picking up cutlery (spoon, fork) for transportation to the dishwasher}
+    \scoreitem[5]{30}{Placing the tableware and cutlery inside the dishwasher}
+    \scoreitem[5]{30}{Placing an item correctly (cleanable, convenient like a human would) in the dishwasher}
+    
+    \\
+    \scoreheading{Bonus Goals}
+    \scoreitem[5]{100}{Task completion: for every successful pick \& place of a tableware or cutlery object}
+    \scoreitem{100}{Pulling out the dishwasher rack}
+    \scoreitem{100}{Pushing in the dishwasher rack}
+    \scoreitem{200}{Opening the dishwasher door}
+    \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[5]{40}{Placing an item correctly in the dishwasher}
+ 	
+	%\scoreitem{300}{Placing the dishwasher tab inside the dishwasher's hatch intended for the tab}
+ 	%\scoreitem{150}{Picking up the dishwasher tab for transportation to the dishwasher}
 
-	\scoreheading{Bonus Rewards}
-	\scoreitem{200}{Opening the dishwasher door}
-	\scoreitem{100}{Pulling out the dishwasher rack}
-	\scoreitem[5]{40}{Placing an item correctly in the dishwasher}
-	\scoreitem{300}{Placing the dishwasher tab inside the dishwasher's hatch intended for the tab}
+    \\
+    \scoreheading{Full Goal (125\%)} % AND-Group
+    \scoreitem{}{\emph{Main Goal}}
+    \scoreitem{}{All of \emph{Pick up item}}
+    \scoreitem{}{\emph{Bonus Goals}}
 
-	\scoreheading{Deus Ex Machina Penalties}
-	\penaltyitem[5]{20}{Pointing at an object or telling the robot where an object is}
-	\penaltyitem[5]{60}{Handing an object over to the robot}
-	\penaltyitem[5]{180}{Placing an object}
+    \\
+	%\scoreheading{Deus Ex Machina Penalties}
+  	%\penaltyitem{20}{Pointing at an object or telling the robot where an object is}
+        %\penaltyitem{60}{Handing an object over to the robot}
+        %\penaltyitem{180}{Placing an object for the robot}
+        
+	%\penaltyitem[5]{20}{Pointing at an object or telling the robot where an object is}
+	%\penaltyitem[5]{60}{Handing an object over to the robot}	
+	%\penaltyitem[5]{180}{Placing an object for the robot}
 	%\setTotalScore{1000}
 \end{scorelist}
 
diff --git a/scoresheets/Receptionist.tex b/scoresheets/Receptionist.tex
index 846a6da1..409bed74 100644
--- a/scoresheets/Receptionist.tex
+++ b/scoresheets/Receptionist.tex
@@ -1,24 +1,34 @@
+
 The maximum time for this test is 5 minutes.
 
 \begin{scorelist}[startbutton=false]
 	\scoreheading{Main Goal}
-	\scoreitem[2]{250}{Introduce a new guest to every other guest and offer a seat}
-	\scoreitem{50}{Look at the person talking}
-	\scoreitem{50}{Look at the person the robot is introducing the guest to}
-	\scoreitem{50}{Look in the direction of navigation}
-	\penaltyitem[2]{50}{Continue with wrong name or drink}
-	\penaltyitem[2]{50}{Persistent inappropriate gaze - away from conversational partner}
-	\penaltyitem[1]{50}{Persistent gaze not in the direction of the navigation while moving}
-
-	\scoreheading{Bonus Rewards}
-	\scoreitem[2]{100}{Open the entrance door for a guest}
-	\scoreitem{150}{Describe the first guest to the second guest}
-	
-	\scoreheading{Deus Ex Machina}
-	\penaltyitem[2]{75}{Alternative HRI}
-	\penaltyitem[2]{200}{Not recognizing people}
+    \scoreitem[2]{15}{Navigate to the door, when the door bell rings}
+    \scoreitem[2]{15}{Guide the guest to the other guests (navigate to the guest group)}
+    \scoreitem[2]{10}{Look in the direction of navigation or at the navigation goal.}
+    \scoreitem[2]{50}{Introduce a new guest to every other guest}
+    \scoreitem[2]{50}{Offer a free seat to the new guest}
+	\scoreitem[2]{50}{Look at the person talking}
+	\scoreitem[2]{50}{Look at the person the robot is introducing the guest to}
+        
 
-	
+    \\
+ 	\scoreheading{Bonus Rewards}
+    \scoreitem[2]{200}{Successful task completion per guest}
+    \scoreitem{100}{Open the door for the guest}
+ 	\scoreitem{100}{Describe the first guest to the second guest}
+  
+    % We are putting a special focus on doing each subtask by penaltizing not doing it. This is not really consistent with the rest of the rulebook.
+        \\
+    \scoreheading{Penalties}
+    \penaltyitem{50}{Wrong guest information was memorized (continue with wrong name or drink)}
+    \penaltyitem{50}{Persistent inappropriate gaze (away from conversational partner)}
+    \penaltyitem{10}{Persistent gaze not in the direction of the navigation while moving.}
+
+	\\
+	\scoreheading{Deus Ex Machina}
+    \penaltyitem{75}{Alternative HRI}
+    \penaltyitem{200}{Not recognizing people}
 
 \end{scorelist}
 
diff --git a/scoresheets/Restaurant.tex b/scoresheets/Restaurant.tex
index df8c018f..7c654c6e 100644
--- a/scoresheets/Restaurant.tex
+++ b/scoresheets/Restaurant.tex
@@ -9,15 +9,20 @@
 	\scoreitem[2]{100}{Detect calling or waving customer}
 	\scoreitem[2]{100}{Reach a customer's table without prior guidance/training}
 
-	\scoreitem[2]{600}{Take and serve an order.}
-
+	\scoreitem[2]{300}{Take an order.}
+    \scoreitem[2]{300}{Serve an order.}
+    
+    \\
 	\scoreheading{Bonus Rewards}
+%    \scoreitem[2]{100}{Task completion: take and serve an order.}
 	\scoreitem[2]{200}{Use an unattached tray to transport}
-	
+
+    \\
 	\scoreheading{Regular Penalties}
 	\penaltyitem[2]{100}{Not making eye-contact when taking an order}
 
-	\scoreheading{Deus ex Machina Penalties}
+    \\
+    \scoreheading{Deus ex Machina Penalties}
 	\penaltyitem[2]{200}{Being guided to a table}
 	\penaltyitem[4]{100}{Asking the Barman to handover object to the robot}
 	\penaltyitem[4]{100}{Guest needing to take the object from a tray or the robot's hand}
diff --git a/scoresheets/ServeBreakfast.tex b/scoresheets/ServeBreakfast.tex
index aa606206..1cba6ae1 100644
--- a/scoresheets/ServeBreakfast.tex
+++ b/scoresheets/ServeBreakfast.tex
@@ -2,24 +2,36 @@
 
 \begin{scorelist}
 	\scoreheading{Main Goal}
-	\scoreitem[4]{15}{Picking up breakfast items for transportation to the table}
-	\scoreitem[4]{60}{Placing breakfast items on the table}
-	\scoreitem{300}{Pouring cereal into the bowl}
-
+    \scoreitem{15}{Initial navigation to pick up area}
+    \scoreitem[4]{15}{Perceiving object and categorising it correctly (visualize or say)}
+    \scoreitem[4]{30}{Picking up breakfast items for transportation to the table}
+    %\scoreitem[4]{10}{Navigate with the item to the placing table} -> removed due to feedback: "rotation is sometimes enough to face the table that shouldn't give extra points"
+    %\scoreitem[4]{15}{Picking up breakfast items for transportation to the table}
+	\scoreitem[4]{30}{Placing breakfast items on the table}
+    %\scoreitem[4]{60}{Placing breakfast items on the table}
+	\scoreitem{100}{Pouring cereal into the bowl}
+    
+ 
+    \\
 	\scoreheading{Bonus Rewards}
-	\scoreitem{300}{Pouring milk into the bowl}
+    \scoreitem[4]{100}{Task completion: Every successfully completed pick \& place action}
+	\scoreitem{100}{Pouring milk into the bowl}
 	\scoreitem{100}{Placing a spoon next to the bowl}
 
+    \\
 	\scoreheading{Regular Penalties}
 	\penaltyitem[4]{30}{Throwing or dropping an object on the table}
-	\penaltyitem{100}{Spilling cereal while pouring}
-	\penaltyitem{150}{Spilling milk while pouring}
+    %\penaltyitem{100}{Spilling cereal while pouring}
+	\penaltyitem{50}{Spilling cereal while pouring}
+    %\penaltyitem{150}{Spilling milk while pouring}
+	\penaltyitem{50}{Spilling milk while pouring}
 
+    \\
 	\scoreheading{Deus Ex Machina Penalties}
 	\penaltyitem[4]{5}{Pointing at an object}
-	\penaltyitem[4]{15}{Handing an object over to the robot}
+	\penaltyitem[4]{20}{Handing an object over to the robot}
 	\penaltyitem[4]{60}{A human placing an object on the table}
-	\penaltyitem{300}{A human pouring cereal in the bowl}
+	\penaltyitem{100}{A human pouring cereal in the bowl}
 
 	%\setTotalScore{1000}
 \end{scorelist}
diff --git a/scoresheets/SticklerForRules.tex b/scoresheets/SticklerForRules.tex
index 45b9ba86..6e1fdf10 100644
--- a/scoresheets/SticklerForRules.tex
+++ b/scoresheets/SticklerForRules.tex
@@ -13,12 +13,15 @@
 	\scoreitem[4]{100}{Making eye-contact, politely clarify to the guest what action he should take.}
 	\scoreitem[4]{200}{Confirm that the guest is following the rule.}
 
+    \\
 	\scoreheading{Bonus Rewards}
 	\scoreitem[4]{100}{Making eye-contact, politely clarify to the guest what rule is being broken.}
 
+    \\
 	\scoreheading{Regular Penalties}
 	\penaltyitem[4]{100}{Talking to a guest about a rule they are not breaking}
-
+    
+    \\
 	\scoreheading{Deus ex Machina Penalties}
 	\penaltyitem[4]{50}{A human directs the robot towards a guest who is breaking a rule}
 	\penaltyitem[4]{100}{A human tells the robot which rule is being broken}
diff --git a/scoresheets/StoringGroceries.tex b/scoresheets/StoringGroceries.tex
index a016a330..3fbf691a 100644
--- a/scoresheets/StoringGroceries.tex
+++ b/scoresheets/StoringGroceries.tex
@@ -3,22 +3,30 @@
 
 \begin{scorelist}
 	\scoreheading{Main Goal}
+    \scoreitem{15}{Navigating to the table} 
+    \scoreitem[5]{15}{Perceiving object and categorising it correctly (visualize or say)}
 	\scoreitem[5]{30}{Picking up an object for transportation to the cabinet}
-	\scoreitem[5]{90}{Moving an object next to similar objects on the cabinet}
-
+    %placing is split in 2 here in order to emphasize the importance of correct placing
+    \scoreitem[5]{15}{Perceiving objects in shelf and saying on which layer the currently handled object should be placed (visualize or say)}
+	\scoreitem[5]{15}{Placing an object in the cabinet}
+    \scoreitem[5]{30}{Placing an object next to similar objects on the cabinet}
+    \\
 	\scoreheading{Bonus Rewards}
-	\scoreitem{200}{Opening the cabinet door without human help}
+    %alternative approach to groups?
+    \scoreitem[5]{100}{Task completion: Every successfully completed pick \& place action}
+	\scoreitem{100}{Opening the cabinet door without human help}
 	\scoreitem{100}{Picking and placing a tiny object}
-	\scoreitem{100}{Picking and placing a heavy object}
-
-	\scoreheading{Regular Penalties}
-	\penaltyitem[5]{-60}{Storing an object without categorizing it correctly}
+	\scoreitem{100}{Picking and placing a heavy object} 
 
+	%\scoreheading{Regular Penalties}
+	%\penaltyitem[5]{-30}{Storing an object without categorizing it correctly}
+    \\
 	\scoreheading{Deus Ex Machina Penalties}
-	\penaltyitem[5]{-30}{A human handing an object over to the robot}
+	\penaltyitem[5]{-40}{A human handing an object over to the robot}
 	\penaltyitem[5]{-90}{A human placing an object in the cabinet}
 	\penaltyitem[5]{-30}{A human placing an object in the cabinet at a location clearly indicated by the robot}
 	\penaltyitem[5]{-45}{A human pointing at a target location}
+ \\
 \end{scorelist}
 
 
diff --git a/scoresheets/CleanUp.tex b/scoresheets/old_score_sheets/CleanUp.tex
similarity index 100%
rename from scoresheets/CleanUp.tex
rename to scoresheets/old_score_sheets/CleanUp.tex
diff --git a/scoresheets/CocktailParty.tex b/scoresheets/old_score_sheets/CocktailParty.tex
similarity index 100%
rename from scoresheets/CocktailParty.tex
rename to scoresheets/old_score_sheets/CocktailParty.tex
diff --git a/scoresheets/Farewell.tex b/scoresheets/old_score_sheets/Farewell.tex
similarity index 100%
rename from scoresheets/Farewell.tex
rename to scoresheets/old_score_sheets/Farewell.tex
diff --git a/scoresheets/FindMyDisk.tex b/scoresheets/old_score_sheets/FindMyDisk.tex
similarity index 100%
rename from scoresheets/FindMyDisk.tex
rename to scoresheets/old_score_sheets/FindMyDisk.tex
diff --git a/scoresheets/FindMyMates.tex b/scoresheets/old_score_sheets/FindMyMates.tex
similarity index 100%
rename from scoresheets/FindMyMates.tex
rename to scoresheets/old_score_sheets/FindMyMates.tex
diff --git a/scoresheets/HandMeThat.tex b/scoresheets/old_score_sheets/HandMeThat.tex
similarity index 100%
rename from scoresheets/HandMeThat.tex
rename to scoresheets/old_score_sheets/HandMeThat.tex
diff --git a/scoresheets/PnG.tex b/scoresheets/old_score_sheets/PnG.tex
similarity index 100%
rename from scoresheets/PnG.tex
rename to scoresheets/old_score_sheets/PnG.tex
diff --git a/scoresheets/SPR.tex b/scoresheets/old_score_sheets/SPR.tex
similarity index 100%
rename from scoresheets/SPR.tex
rename to scoresheets/old_score_sheets/SPR.tex
diff --git a/scoresheets/ServingDrinks.tex b/scoresheets/old_score_sheets/ServingDrinks.tex
similarity index 100%
rename from scoresheets/ServingDrinks.tex
rename to scoresheets/old_score_sheets/ServingDrinks.tex
diff --git a/scoresheets/SetTable.tex b/scoresheets/old_score_sheets/SetTable.tex
similarity index 100%
rename from scoresheets/SetTable.tex
rename to scoresheets/old_score_sheets/SetTable.tex
diff --git a/scoresheets/SmoothieChef.tex b/scoresheets/old_score_sheets/SmoothieChef.tex
similarity index 100%
rename from scoresheets/SmoothieChef.tex
rename to scoresheets/old_score_sheets/SmoothieChef.tex
diff --git a/scoresheets/TakeOutGarbage.tex b/scoresheets/old_score_sheets/TakeOutGarbage.tex
similarity index 100%
rename from scoresheets/TakeOutGarbage.tex
rename to scoresheets/old_score_sheets/TakeOutGarbage.tex
diff --git a/scoresheets/TidyUp.tex b/scoresheets/old_score_sheets/TidyUp.tex
similarity index 100%
rename from scoresheets/TidyUp.tex
rename to scoresheets/old_score_sheets/TidyUp.tex
diff --git a/scoresheets/TourGuide.tex b/scoresheets/old_score_sheets/TourGuide.tex
similarity index 100%
rename from scoresheets/TourGuide.tex
rename to scoresheets/old_score_sheets/TourGuide.tex
diff --git a/scoresheets/WhereIsThis.tex b/scoresheets/old_score_sheets/WhereIsThis.tex
similarity index 100%
rename from scoresheets/WhereIsThis.tex
rename to scoresheets/old_score_sheets/WhereIsThis.tex
diff --git a/scoresheets/subtask_list.tex b/scoresheets/subtask_list.tex
new file mode 100644
index 00000000..dc92c0b8
--- /dev/null
+++ b/scoresheets/subtask_list.tex
@@ -0,0 +1,9 @@
+% list of all available sub-tasks and their points
+% TODO: move this maybe to it's own file
+% \newquote[options]{label}{description}{points}{category}
+
+%perception
+\newquote{PerceiveObjectHuman}{Recognize an object (or person) using 2D/3D camera data}{15}{Perception}{}
+
+%manipulation 
+\newquote{ManipulatePickUp}{pickup an object}{30}{Manipulation}
\ No newline at end of file
diff --git a/setup/config.tex b/setup/config.tex
index 1b6b9ac0..c10b66f6 100644
--- a/setup/config.tex
+++ b/setup/config.tex
@@ -47,4 +47,5 @@
 	anchorcolor  = blue,
 	linkcolor    = blue,
 	urlcolor     = blue,
-}
\ No newline at end of file
+}
+
diff --git a/setup/macros_score_sheets.tex b/setup/macros_score_sheets.tex
index 6704cdd8..cde8bd6a 100644
--- a/setup/macros_score_sheets.tex
+++ b/setup/macros_score_sheets.tex
@@ -232,15 +232,6 @@
 
 
 
-
-
-
-
-
-
-
-
-
 % %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                  %
 % ENVIRONMENT: scoresheet                                          %
@@ -305,11 +296,6 @@
 
 
 
-
-
-
-
-
 % %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                  %
 % ENVIRONMENT: scorelist                                           %
@@ -404,6 +390,7 @@
 		\@scoreitem[##1]{##2}{##3}%
 	}
 
+
 	% Alias of \bonusitem
 	\newcommand{\scorebonus}[3][1]{\bonusitem[##1][##2][##3]}
 
@@ -510,6 +497,8 @@
 		\@attemptheadings%
 	}
 
+
+
 	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 	% setup table %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -592,3 +581,4 @@
 % TeX-master: "../Rulebook"
 % End:
 %
+
diff --git a/setup/packages.tex b/setup/packages.tex
index bd7656b5..debadc98 100644
--- a/setup/packages.tex
+++ b/setup/packages.tex
@@ -73,6 +73,9 @@
 \usepackage{environ}
 \usepackage{wasysym}
 \usepackage{chngpage}
+% for using list of subtasks
+\usepackage{csquotes}
+\usepackage{glossaries}
 
 % Local Variables:
 % TeX-master: "../Rulebook"
diff --git a/tasks/SticklerForRules.tex b/tasks/SticklerForRules.tex
index 3a8d0f0a..e1821d23 100644
--- a/tasks/SticklerForRules.tex
+++ b/tasks/SticklerForRules.tex
@@ -24,7 +24,7 @@ \subsection*{Setup}
 	\begin{itemize}
 		\item This task takes place inside the \Arena{}.
 		\item The robot starts at a predefined location in the living room.
-		\item There are a forbidden room in the house.
+		\item There is a forbidden room in the house.
 	\end{itemize}	 
 	\item \textbf{People:} 
 	\begin{itemize}
@@ -32,7 +32,7 @@ \subsection*{Setup}
 		\item Four of the guests are breaking rules.
 		\item Guests may not follow the robot's instructions.
 	\end{itemize}
-	\item \textbf{Furniture:} All furniture are in their predefined locations.
+	\item \textbf{Furniture:} All furniture items are in their predefined locations.
 	\item \textbf{Objects:} All objects are in their predefined locations.
 \end{itemize}
 
@@ -42,10 +42,10 @@ \subsection*{Procedure}
 		\item The referee gives the start signal and starts the timer.
 		\item The team leaves the area after the start signal.		
 		\item A TC member follows the robot ready to press the emergency stop button.
-		\item The robot Identify party guests breaking the house rules.
-		\item The robot politely clarify to the guest what to do. 
-		\item The robot confirm that the guest is following the rule.	
-		\item \textbf{Optionally} and Politely, the robot clarify to the guest what rule is being broken.
+		\item The robot Identifies party guests breaking the house rules.
+		\item The robot politely tells the guest what to do. 
+		\item The robot confirms that the guest is following the rule.	
+		\item \textbf{Optionally} and Politely, the robot clarifies to the guest what rule is being broken.
 	\end{enumerate}
 
 
@@ -55,7 +55,7 @@ \subsection*{Additional rules and remarks}
 	\begin{enumerate}[nosep]
 		\item \textit{No shoes inside the house.}\\
 		\textbf{Policy:} All guests have to take off their shoes at the entrance.\\
-		\textbf{Action:} Take the guests to the entrance and verify they take off their shoes.
+		\textbf{Action:} Take the guests to the entrance and verify that they have taken off their shoes.
 	
 		\item \textit{Forbidden room}\\
 		\textbf{Policy:} No guests are allowed in the \emph{Forbidden Room}. \\
diff --git a/tasks/CleanUp.tex b/tasks/old_tasks/CleanUp.tex
similarity index 100%
rename from tasks/CleanUp.tex
rename to tasks/old_tasks/CleanUp.tex
diff --git a/tasks/Farewell.tex b/tasks/old_tasks/Farewell.tex
similarity index 100%
rename from tasks/Farewell.tex
rename to tasks/old_tasks/Farewell.tex
diff --git a/tasks/FindMyDisk.tex b/tasks/old_tasks/FindMyDisk.tex
similarity index 100%
rename from tasks/FindMyDisk.tex
rename to tasks/old_tasks/FindMyDisk.tex
diff --git a/tasks/FindMyMates.tex b/tasks/old_tasks/FindMyMates.tex
similarity index 100%
rename from tasks/FindMyMates.tex
rename to tasks/old_tasks/FindMyMates.tex
diff --git a/tasks/HandMeThat.tex b/tasks/old_tasks/HandMeThat.tex
similarity index 100%
rename from tasks/HandMeThat.tex
rename to tasks/old_tasks/HandMeThat.tex
diff --git a/tasks/ServingDrinks.tex b/tasks/old_tasks/ServingDrinks.tex
similarity index 100%
rename from tasks/ServingDrinks.tex
rename to tasks/old_tasks/ServingDrinks.tex
diff --git a/tasks/SetTable.tex b/tasks/old_tasks/SetTable.tex
similarity index 100%
rename from tasks/SetTable.tex
rename to tasks/old_tasks/SetTable.tex
diff --git a/tasks/SmoothieChef.tex b/tasks/old_tasks/SmoothieChef.tex
similarity index 100%
rename from tasks/SmoothieChef.tex
rename to tasks/old_tasks/SmoothieChef.tex
diff --git a/tasks/TakeOutGarbage.tex b/tasks/old_tasks/TakeOutGarbage.tex
similarity index 100%
rename from tasks/TakeOutGarbage.tex
rename to tasks/old_tasks/TakeOutGarbage.tex
diff --git a/tasks/TidyUp.tex b/tasks/old_tasks/TidyUp.tex
similarity index 100%
rename from tasks/TidyUp.tex
rename to tasks/old_tasks/TidyUp.tex
diff --git a/tasks/WhatisThat.tex b/tasks/old_tasks/WhatisThat.tex
similarity index 100%
rename from tasks/WhatisThat.tex
rename to tasks/old_tasks/WhatisThat.tex
diff --git a/tasks/WhereIsThis.tex b/tasks/old_tasks/WhereIsThis.tex
similarity index 100%
rename from tasks/WhereIsThis.tex
rename to tasks/old_tasks/WhereIsThis.tex
diff --git a/tests/EEGPSR.tex b/tests/EEGPSR.tex
index 04de5213..ba2a75f8 100644
--- a/tests/EEGPSR.tex
+++ b/tests/EEGPSR.tex
@@ -1,132 +1,132 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% EEGPSR
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Number of concurrent teams
-\newcommand{\eegpsrTeams}{2~}
-% Maximum number of commands to be given to a robot
-\newcommand{\eegpsrMaxCmd}{3~}
-% Maximum amount of time given to a team to perform a single command
-\newcommand{\eegpsrMaxCmdTime}{5~}
-% Maximum amount of time given to a team to perform all commands
-\newcommand{\eegpsrMaxTeamTime}{\eegpsrMaxCmd$\times$\eegpsrMaxCmdTime}
-
-% \section[EEGPSR]{E\textsuperscript{2}GPSR \\ \normalsize{(Enhanced Endurance General Purpose Service Robot)}}
-\section[EEGPSR]{Enhanced Endurance General Purpose Service Robot}
-\label{sec:eegpsr}
-
-%
-% MAURICIO @2017
-% Short instructions based on GPSR
-%
-This test evaluates the abilities of the robot that are required throughout the set of tests in Stage I and stage II of this and previous years' RuleBooks. In this test the robot has to solve multiple tasks upon request over an extended period of time (30-45 minutes). That is, the test is not incorporated into a (predefined) story and there is neither a predefined order of tasks nor a predefined set of actions. The actions that are to be carried out by the robot are chosen randomly by the referees from a larger set of actions. These actions are organized in several categories targeting an special ability. Scoring depends on the abilities shown.
-
-\subsection{Focus}
-This test particularly focuses on the following aspects:
-\begin{itemize}
-	\item No predefined order of actions to carry out (to get away from state machine-like behavior programming).
-	\item Increased complexity in speech recognition.
-	\item Environmental (high-level) reasoning.
-	\item Robust long-term operation.
-\end{itemize}
-
-
-\subsection{Task}
-
-\begin{enumerate}
-	\item \textbf{Entering and command retrieval:} The robot enters the arena and drives to a designated position where it has to wait for further commands. \\
-
-	\item \textbf{Command generation:} A command is generated randomly, depending on the command category chosen by the team (see below). Commands are generated by the generator which is made publicly available at https://github.com/kyordhel/GPSRCmdGen. \\
-
-	\begin{enumerate}
-		\item \textbf{Category I: Three at once.} The command is composed by \textit{three simple actions}, which the robot has to show it has recognized. the actions are much like the ones of GPSR. The robot may repeat the understood command and ask for confirmation. If it can't recognize the command correctly, it can also ask the speaker to repeat the complete command.
-
-		\item \textbf{Category II: People.} The given commands focuses in interacting with people. Tasks in this category involve following or guiding people inside and outside the arena, recognize people's gestures or a specific person given its description, and remembering previously known people.
-
-		\item \textbf{Category III: Objects.} The given commands focuses interacting with objects. Tasks in this category involve setting up a table, describe the objects placed on a table or shelf, and deliver objects that match a description or are located inside a cupboard or drawer.
-	\end{enumerate}
-
-	The robot can work on at most \eegpsrMaxCmd commands within each of the following scenarios randomly chosen by the referee: \\
-
-	\begin{itemize}
-		\item \textbf{Complete command.} The robot gets a command containing all the information required for its execution.
-
-		\item \textbf{Incomplete command.} The robot gets a command that does not include all the information necessary to accomplish the task. The robot may either request the missing information (by asking reasonable questions), or attempt to solve the command on its own.
-
-		\item \textbf{Erroneous or misleading command.} The command contains erroneous misleading information. The robot should be able to realize what went wrong and come up with a solution. In addition, it must go back to the operator and clearly state \textit{what} went wrong and \textit{how} it was fixed, or \textit{why} it wasn't able to accomplish the task.
-	\end{itemize}
-
-	\item \textbf{Task assignment:} The robot is given the command by the operator and may directly start to work on the task assignment.
-
-	\item \textbf{Task execution:} The robot must stop the execution of a task and return to its designated position within \eegpsrMaxCmdTime minutes. Otherwise the robot must be moved to its designated position immediately. If a restart is still available to the team, it can be restarted at the designated position. \\
-
-	\item \textbf{Returning:} After accomplishing the assigned task, the robot has to move back to its designated position to wait and retrieve the next command (i.e., go back to 1. without the need of re-entering the arena). \\
-
-	\item \textbf{Timing:} The total time allotted to the robot for command retrieval and task execution is \eegpsrMaxTeamTime minutes. If the robot is not at its designated position after the time has expired, it must be moved at its designated position immediately.\\
-
-\end{enumerate}
-
-\subsection{Additional rules and remarks}
-\label{sec:eegpsr-remarks}
-\begin{enumerate}
-	\item \textbf{CONTINUE rule:} Teams are able to use the CONTINUE rule in this test, with all the standard penalties it involves as described in~\refsec{rule:continue}.
-	%The CONTINUE rule can only be used with the custom operator (e.g.~both penalties of custom speaker and CONTINUE rule will be applied).
-
-	\item \textbf{Number of Teams and Scheduling:} In each test slot, \eegpsrTeams teams may be competing in the arena concurrently. The robots will be tested in an interleaved fashion: The robots will retrieve commands and execute the task one after the other. As stated above, each robot will have a maximum amount of \eegpsrMaxCmdTime minutes per command (including time for retrieving the command and executing it).
-
-	\item \textbf{Returning to designated position:} To facilitate a fluent and untroubled performance of the robots, they must return (or being returned) to their designated position before the \eegpsrMaxCmdTime minutes command time elapses. \textbf{If a robot moves from its designated position while another robot is working on a command, it must be immediately disabled} and moved to its designated position. If a restart is still available to the team, it can be restarted at its designated position.
-
-	\item \textbf{Referees:} Since the score system in this test involves a subjective evaluation of the robot's behavior, the referees are EC/TC members. One referee is assigned to each team to judge performance, to measure the time for working on a command, and to keep track of the overall operating time of the robot.
-
-	\item \textbf{Category selection:} For every of the three commands given to the robot, the team chooses the desired command category.
-
-	\item \textbf{Operator:}
-	\begin{itemize}
-		\item The person operating the robot is one of the referees (default operator).
-		\item If the robot appears to consistently not be able to understand the operator, the referees ask the team to apply the CONTINUE rule (\refsec{rule:asrcontinue}).
-	\end{itemize}
-
-	\item \textbf{Inoperative robots:} If a robot gets stuck while trying to accomplish a task during a reasonable amount of time (e.g.~30 seconds), the referee may ask the team to move back the robot to its designated position, proceeding with the next robot.
-
-	\item \textbf{Restart:} Robots will be restarted at their designated position (starting outside the arena is prohibited). If a robot requires a restart, the referee will proceed with the next robot.
-
-	\item \textbf{Changing/Charging batteries:} The team may install a charging station at the designated position of the robot, if it does not hinder the other robots. However, the robot must connect itself with the charging station after carrying out a command. Changing batteries or manually connecting the robot with the charging station is allowed during a restart.
-
-	\item \textbf{Retrieving the command:} The robot must show it has understood the given command by repeating the command (i.e.~stating all the required information to accomplish the task).
-	\\
-	\textit{Note:} Referees must have sufficient evidence proving the robot is actively trying to execute the commanded tasks to score. Robots skipping command execution will not receive points for understanding the command.
-
-	\item \textbf{Scoring:} Robots are scored by successfully performed ability and full command completion within time.
-\end{enumerate}
-
-\subsection{OC instructions}
-\textbf{2h before test:}
-\begin{itemize}
-	\item Specify and announce the entrance/exit door for each robot.
-	\item Specify and announce the waiting position for each robot.
-\end{itemize}
-\textbf{During the test:}
-\begin{itemize}
-	\item Help placing items and arranging people upon referee request.
-\end{itemize}
-
-\subsection{Referee instructions}
-\textbf{During the test:}
-\begin{itemize}
-	\item Generate random sentences. %by an automatic sentence generator.
-	\item Take the command and total time per team.
-\end{itemize}
-
-\subsection {Audio Data Recollection}
-Teams are encouraged to submit to the TC the audio data recorded during the test, specially that which was captured during speech recoginition. If so, teams are urged to provide it with annotation of what the user said and what was recognized. Audio files are expected to be mono, one per microphone (in the case array recordings), of a sample rate equal to or higher than 16 kHz, and with a sample size of at least 16 bits. Depending on the quality of the recordings and their annothations, an official certificate that formalizes these efforts may be provided to submitting teams.
-
-\newpage
-\subsection{Score sheet}
-\input{scoresheets/EEGPSR.tex}
-
-% Local Variables:
-% TeX-master: "Rulebook"
-% End:
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EEGPSR
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Number of concurrent teams
+\newcommand{\eegpsrTeams}{2~}
+% Maximum number of commands to be given to a robot
+\newcommand{\eegpsrMaxCmd}{3~}
+% Maximum amount of time given to a team to perform a single command
+\newcommand{\eegpsrMaxCmdTime}{5~}
+% Maximum amount of time given to a team to perform all commands
+\newcommand{\eegpsrMaxTeamTime}{\eegpsrMaxCmd$\times$\eegpsrMaxCmdTime}
+
+% \section[EEGPSR]{E\textsuperscript{2}GPSR \\ \normalsize{(Enhanced Endurance General Purpose Service Robot)}}
+\section[EEGPSR]{Enhanced Endurance General Purpose Service Robot}
+\label{sec:eegpsr}
+
+%
+% MAURICIO @2017
+% Short instructions based on GPSR
+%
+This test evaluates the abilities of the robot that are required throughout the set of tests in Stage I and stage II of this and previous years' RuleBooks. In this test the robot has to solve multiple tasks upon request over an extended period of time (30-45 minutes). That is, the test is not incorporated into a (predefined) story and there is neither a predefined order of tasks nor a predefined set of actions. The actions that are to be carried out by the robot are chosen randomly by the referees from a larger set of actions. These actions are organized in several categories targeting an special ability. Scoring depends on the abilities shown.
+
+\subsection{Focus}
+This test particularly focuses on the following aspects:
+\begin{itemize}
+	\item No predefined order of actions to carry out (to get away from state machine-like behavior programming).
+	\item Increased complexity in speech recognition.
+	\item Environmental (high-level) reasoning.
+	\item Robust long-term operation.
+\end{itemize}
+
+
+\subsection{Task}
+
+\begin{enumerate}
+	\item \textbf{Entering and command retrieval:} The robot enters the arena and drives to a designated position where it has to wait for further commands. \\
+
+	\item \textbf{Command generation:} A command is generated randomly, depending on the command category chosen by the team (see below). Commands are generated by the generator which is made publicly available at https://github.com/kyordhel/GPSRCmdGen. \\
+
+	\begin{enumerate}
+		\item \textbf{Category I: Three at once.} The command is composed by \textit{three simple actions}, which the robot has to show it has recognized. the actions are much like the ones of GPSR. The robot may repeat the understood command and ask for confirmation. If it can't recognize the command correctly, it can also ask the speaker to repeat the complete command.
+
+		\item \textbf{Category II: People.} The given commands focuses in interacting with people. Tasks in this category involve following or guiding people inside and outside the arena, recognize people's gestures or a specific person given its description, and remembering previously known people.
+
+		\item \textbf{Category III: Objects.} The given commands focuses interacting with objects. Tasks in this category involve setting up a table, describe the objects placed on a table or shelf, and deliver objects that match a description or are located inside a cupboard or drawer.
+	\end{enumerate}
+
+	The robot can work on at most \eegpsrMaxCmd commands within each of the following scenarios randomly chosen by the referee: \\
+
+	\begin{itemize}
+		\item \textbf{Complete command.} The robot gets a command containing all the information required for its execution.
+
+		\item \textbf{Incomplete command.} The robot gets a command that does not include all the information necessary to accomplish the task. The robot may either request the missing information (by asking reasonable questions), or attempt to solve the command on its own.
+
+		\item \textbf{Erroneous or misleading command.} The command contains erroneous misleading information. The robot should be able to realize what went wrong and come up with a solution. In addition, it must go back to the operator and clearly state \textit{what} went wrong and \textit{how} it was fixed, or \textit{why} it wasn't able to accomplish the task.
+	\end{itemize}
+
+	\item \textbf{Task assignment:} The robot is given the command by the operator and may directly start to work on the task assignment.
+
+	\item \textbf{Task execution:} The robot must stop the execution of a task and return to its designated position within \eegpsrMaxCmdTime minutes. Otherwise the robot must be moved to its designated position immediately. If a restart is still available to the team, it can be restarted at the designated position. \\
+
+	\item \textbf{Returning:} After accomplishing the assigned task, the robot has to move back to its designated position to wait and retrieve the next command (i.e., go back to 1. without the need of re-entering the arena). \\
+
+	\item \textbf{Timing:} The total time allotted to the robot for command retrieval and task execution is \eegpsrMaxTeamTime minutes. If the robot is not at its designated position after the time has expired, it must be moved at its designated position immediately.\\
+
+\end{enumerate}
+
+\subsection{Additional rules and remarks}
+\label{sec:eegpsr-remarks}
+\begin{enumerate}
+	\item \textbf{CONTINUE rule:} Teams are able to use the CONTINUE rule in this test, with all the standard penalties it involves as described in~\refsec{rule:continue}.
+	%The CONTINUE rule can only be used with the custom operator (e.g.~both penalties of custom speaker and CONTINUE rule will be applied).
+
+	\item \textbf{Number of Teams and Scheduling:} In each test slot, \eegpsrTeams teams may be competing in the arena concurrently. The robots will be tested in an interleaved fashion: The robots will retrieve commands and execute the task one after the other. As stated above, each robot will have a maximum amount of \eegpsrMaxCmdTime minutes per command (including time for retrieving the command and executing it).
+
+	\item \textbf{Returning to designated position:} To facilitate a fluent and untroubled performance of the robots, they must return (or being returned) to their designated position before the \eegpsrMaxCmdTime minutes command time elapses. \textbf{If a robot moves from its designated position while another robot is working on a command, it must be immediately disabled} and moved to its designated position. If a restart is still available to the team, it can be restarted at its designated position.
+
+	\item \textbf{Referees:} Since the score system in this test involves a subjective evaluation of the robot's behavior, the referees are EC/TC members. One referee is assigned to each team to judge performance, to measure the time for working on a command, and to keep track of the overall operating time of the robot.
+
+	\item \textbf{Category selection:} For every of the three commands given to the robot, the team chooses the desired command category.
+
+	\item \textbf{Operator:}
+	\begin{itemize}
+		\item The person operating the robot is one of the referees (default operator).
+		\item If the robot appears to consistently not be able to understand the operator, the referees ask the team to apply the CONTINUE rule (\refsec{rule:asrcontinue}).
+	\end{itemize}
+
+	\item \textbf{Inoperative robots:} If a robot gets stuck while trying to accomplish a task during a reasonable amount of time (e.g.~30 seconds), the referee may ask the team to move back the robot to its designated position, proceeding with the next robot.
+
+	\item \textbf{Restart:} Robots will be restarted at their designated position (starting outside the arena is prohibited). If a robot requires a restart, the referee will proceed with the next robot.
+
+	\item \textbf{Changing/Charging batteries:} The team may install a charging station at the designated position of the robot, if it does not hinder the other robots. However, the robot must connect itself with the charging station after carrying out a command. Changing batteries or manually connecting the robot with the charging station is allowed during a restart.
+
+	\item \textbf{Retrieving the command:} The robot must show it has understood the given command by repeating the command (i.e.~stating all the required information to accomplish the task).
+	\\
+	\textit{Note:} Referees must have sufficient evidence proving the robot is actively trying to execute the commanded tasks to score. Robots skipping command execution will not receive points for understanding the command.
+
+	\item \textbf{Scoring:} Robots are scored by successfully performed ability and full command completion within time.
+\end{enumerate}
+
+\subsection{OC instructions}
+\textbf{2h before test:}
+\begin{itemize}
+	\item Specify and announce the entrance/exit door for each robot.
+	\item Specify and announce the waiting position for each robot.
+\end{itemize}
+\textbf{During the test:}
+\begin{itemize}
+	\item Help placing items and arranging people upon referee request.
+\end{itemize}
+
+\subsection{Referee instructions}
+\textbf{During the test:}
+\begin{itemize}
+	\item Generate random sentences. %by an automatic sentence generator.
+	\item Take the command and total time per team.
+\end{itemize}
+
+\subsection {Audio Data Recollection}
+Teams are encouraged to submit to the TC the audio data recorded during the test, specially that which was captured during speech recoginition. If so, teams are urged to provide it with annotation of what the user said and what was recognized. Audio files are expected to be mono, one per microphone (in the case array recordings), of a sample rate equal to or higher than 16 kHz, and with a sample size of at least 16 bits. Depending on the quality of the recordings and their annothations, an official certificate that formalizes these efforts may be provided to submitting teams.
+
+\newpage
+\subsection{Score sheet}
+\input{scoresheets/EEGPSR.tex}
+
+% Local Variables:
+% TeX-master: "Rulebook"
+% End:
+

From 68d7983e1a5b57c529bca4e6f3488b2d636dc8e8 Mon Sep 17 00:00:00 2001
From: hasu <hawkin@informatik.uni-bremen.de>
Date: Mon, 4 Dec 2023 13:20:21 +0100
Subject: [PATCH 2/5] fixing CI complaining about old score sheet import

---
 tasks/old_tasks/CleanUp.tex        | 2 +-
 tasks/old_tasks/Farewell.tex       | 2 +-
 tasks/old_tasks/FindMyDisk.tex     | 2 +-
 tasks/old_tasks/FindMyMates.tex    | 2 +-
 tasks/old_tasks/HandMeThat.tex     | 2 +-
 tasks/old_tasks/ServingDrinks.tex  | 2 +-
 tasks/old_tasks/SetTable.tex       | 2 +-
 tasks/old_tasks/SmoothieChef.tex   | 2 +-
 tasks/old_tasks/TakeOutGarbage.tex | 2 +-
 tasks/old_tasks/TidyUp.tex         | 2 +-
 tasks/old_tasks/WhatisThat.tex     | 2 +-
 tasks/old_tasks/WhereIsThis.tex    | 2 +-
 12 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/tasks/old_tasks/CleanUp.tex b/tasks/old_tasks/CleanUp.tex
index 3aad6983..ab228702 100644
--- a/tasks/old_tasks/CleanUp.tex
+++ b/tasks/old_tasks/CleanUp.tex
@@ -68,4 +68,4 @@ \subsubsection*{To OC}
 \end{itemize}
 
 \subsection*{Score Sheet}
-\input{scoresheets/CleanUp.tex}
+\input{scoresheets/old_score_sheets/CleanUp.tex}
diff --git a/tasks/old_tasks/Farewell.tex b/tasks/old_tasks/Farewell.tex
index f1871e2d..ffadfa4d 100644
--- a/tasks/old_tasks/Farewell.tex
+++ b/tasks/old_tasks/Farewell.tex
@@ -95,5 +95,5 @@ \subsection*{Instructions}
 \end{itemize}
 
 \subsection*{Score sheet}
-\input{scoresheets/Farewell.tex}
+\input{scoresheets/old_score_sheets/Farewell.tex}
 
diff --git a/tasks/old_tasks/FindMyDisk.tex b/tasks/old_tasks/FindMyDisk.tex
index 3a921600..1912b514 100644
--- a/tasks/old_tasks/FindMyDisk.tex
+++ b/tasks/old_tasks/FindMyDisk.tex
@@ -90,7 +90,7 @@ \subsubsection*{To OC}
 
 % \newpage
 \subsection*{Score sheet}
-\input{scoresheets/FindMyDisk.tex}
+\input{scoresheets/old_score_sheets/FindMyDisk.tex}
 
 % Local Variables:
 % TeX-master: "Rulebook"
diff --git a/tasks/old_tasks/FindMyMates.tex b/tasks/old_tasks/FindMyMates.tex
index ed5aadda..045705e9 100644
--- a/tasks/old_tasks/FindMyMates.tex
+++ b/tasks/old_tasks/FindMyMates.tex
@@ -64,4 +64,4 @@ \subsection*{Instructions}
 
 % \newpage
 \subsection*{Score sheet}
-\input{scoresheets/FindMyMates.tex}
+\input{scoresheets/old_score_sheets/FindMyMates.tex}
diff --git a/tasks/old_tasks/HandMeThat.tex b/tasks/old_tasks/HandMeThat.tex
index 45f60791..9d625229 100644
--- a/tasks/old_tasks/HandMeThat.tex
+++ b/tasks/old_tasks/HandMeThat.tex
@@ -90,7 +90,7 @@ \subsubsection*{To OC}
 
 
 \subsection*{Score sheet}
-\input{scoresheets/HandMeThat.tex}
+\input{scoresheets/old_score_sheets/HandMeThat.tex}
 
 % Local Variables:
 % TeX-master: "Rulebook"
diff --git a/tasks/old_tasks/ServingDrinks.tex b/tasks/old_tasks/ServingDrinks.tex
index 09e91a13..b941e3e0 100644
--- a/tasks/old_tasks/ServingDrinks.tex
+++ b/tasks/old_tasks/ServingDrinks.tex
@@ -92,4 +92,4 @@ \subsection*{OC instructions}
 
 % \newpage
 \subsection*{Score sheet}
-\input{scoresheets/ServingDrinks.tex}
+\input{scoresheets/old_score_sheets/ServingDrinks.tex}
diff --git a/tasks/old_tasks/SetTable.tex b/tasks/old_tasks/SetTable.tex
index 88743be8..24021c69 100644
--- a/tasks/old_tasks/SetTable.tex
+++ b/tasks/old_tasks/SetTable.tex
@@ -96,7 +96,7 @@ \subsection*{OC instructions}
 
 % \newpage
 \subsection*{Score sheet}
-\input{scoresheets/SetTable.tex}
+\input{scoresheets/old_score_sheets/SetTable.tex}
 
 % Local Variables:
 % TeX-master: "Rulebook"
diff --git a/tasks/old_tasks/SmoothieChef.tex b/tasks/old_tasks/SmoothieChef.tex
index 5e1cc5b4..b1dfcd9b 100644
--- a/tasks/old_tasks/SmoothieChef.tex
+++ b/tasks/old_tasks/SmoothieChef.tex
@@ -84,4 +84,4 @@ \subsection*{Referee Instructions}
 \end{itemize}
 
 \subsection*{Score sheet}
-\input{scoresheets/SmoothieChef.tex}
+\input{scoresheets/old_score_sheets/SmoothieChef.tex}
diff --git a/tasks/old_tasks/TakeOutGarbage.tex b/tasks/old_tasks/TakeOutGarbage.tex
index 9e7e3bbf..d7ac55e6 100644
--- a/tasks/old_tasks/TakeOutGarbage.tex
+++ b/tasks/old_tasks/TakeOutGarbage.tex
@@ -70,7 +70,7 @@ \subsubsection*{To OC}
 \end{itemize}
 
 \subsection*{Score sheet}
-\input{scoresheets/TakeOutGarbage.tex}
+\input{scoresheets/old_score_sheets/TakeOutGarbage.tex}
 
 % Local Variables:
 % TeX-master: "Rulebook"
diff --git a/tasks/old_tasks/TidyUp.tex b/tasks/old_tasks/TidyUp.tex
index d1342763..4ccf8d19 100644
--- a/tasks/old_tasks/TidyUp.tex
+++ b/tasks/old_tasks/TidyUp.tex
@@ -65,4 +65,4 @@ \subsection*{OC Instructions}
 \end{itemize}
 
 \subsection*{Score Sheet}
-\input{scoresheets/TidyUp.tex}
+\input{scoresheets/old_score_sheets/TidyUp.tex}
diff --git a/tasks/old_tasks/WhatisThat.tex b/tasks/old_tasks/WhatisThat.tex
index 1105a427..8fcd0417 100644
--- a/tasks/old_tasks/WhatisThat.tex
+++ b/tasks/old_tasks/WhatisThat.tex
@@ -57,7 +57,7 @@ \subsection*{Referee Instructions}
 \end{itemize}
 
 \subsection*{Score Sheet}
-\input{scoresheets/HandMeThat.tex}
+\input{scoresheets/old_score_sheets/HandMeThat.tex}
 
 % Local Variables:
 % TeX-master: "Rulebook"
diff --git a/tasks/old_tasks/WhereIsThis.tex b/tasks/old_tasks/WhereIsThis.tex
index 025286ec..6f009279 100644
--- a/tasks/old_tasks/WhereIsThis.tex
+++ b/tasks/old_tasks/WhereIsThis.tex
@@ -73,4 +73,4 @@ \subsection*{Referee instructions}
 \end{itemize}
 
 \subsection*{Score sheet}
-\input{scoresheets/WhereIsThis.tex}
+\input{scoresheets/old_score_sheets/WhereIsThis.tex}

From 05899fd1af1e7dad0f22941722f5c416e01c48c5 Mon Sep 17 00:00:00 2001
From: hasu <hawkin@informatik.uni-bremen.de>
Date: Mon, 4 Dec 2023 13:37:10 +0100
Subject: [PATCH 3/5] fixing CI complaining baout moved files

---
 score_sheets.tex | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/score_sheets.tex b/score_sheets.tex
index afbc0156..25baf81b 100644
--- a/score_sheets.tex
+++ b/score_sheets.tex
@@ -111,17 +111,17 @@
 
 \renewcommand{\currentTest}{Clean Up}
 \begin{scoresheet}
-\input{scoresheets/CleanUp}
+\input{scoresheets/old_score_sheets/CleanUp}
 \end{scoresheet}
 
 \renewcommand{\currentTest}{Farewell}
 \begin{scoresheet}
-\input{scoresheets/Farewell}
+\input{scoresheets/old_score_sheets/Farewell}
 \end{scoresheet}
 
 \renewcommand{\currentTest}{Find my Mates}
 \begin{scoresheet}
-\input{scoresheets/FindMyMates}
+\input{scoresheets/old_score_sheets/FindMyMates}
 \end{scoresheet}
 
 \renewcommand{\currentTest}{General Purpose Service Robot}
@@ -136,7 +136,7 @@
 
 \renewcommand{\currentTest}{Serving Drinks}
 \begin{scoresheet}
-\input{scoresheets/ServingDrinks}
+\input{scoresheets/old_score_sheets/ServingDrinks}
 \end{scoresheet}
 
 \renewcommand{\currentTest}{Serve the Breakfast}
@@ -151,7 +151,7 @@
 
 \renewcommand{\currentTest}{Take out Garbage}
 \begin{scoresheet}
-\input{scoresheets/TakeOutGarbage}
+\input{scoresheets/old_score_sheets/TakeOutGarbage}
 \end{scoresheet}
 
 
@@ -172,17 +172,17 @@
 
 \renewcommand{\currentTest}{Find my Disk}
 \begin{scoresheet}
-\input{scoresheets/FindMyDisk.tex}
+\input{scoresheets/old_score_sheets/FindMyDisk.tex}
 \end{scoresheet}
 
 \renewcommand{\currentTest}{Hand me That}
 \begin{scoresheet}
-\input{scoresheets/HandMeThat.tex}
+\input{scoresheets/old_score_sheets/HandMeThat.tex}
 \end{scoresheet}
 
 \renewcommand{\currentTest}{Set the Table}
 \begin{scoresheet}
-\input{scoresheets/SetTable.tex}
+\input{scoresheets/old_score_sheets/SetTable.tex}
 \end{scoresheet}
 
 \renewcommand{\currentTest}{Restaurant}
@@ -192,7 +192,7 @@
 
 \renewcommand{\currentTest}{Smoothie Chef}
 \begin{scoresheet}
-\input{scoresheets/SmoothieChef.tex}
+\input{scoresheets/old_score_sheets/SmoothieChef.tex}
 \end{scoresheet}
 
 \renewcommand{\currentTest}{Stickler for Rules}
@@ -202,7 +202,7 @@
 
 \renewcommand{\currentTest}{Where is this}
 \begin{scoresheet}
-\input{scoresheets/WhereIsThis.tex}
+\input{scoresheets/old_score_sheets/WhereIsThis.tex}
 \end{scoresheet}
 
 % %%% FINALS   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

From 2103279cbcc4c69c0ca45b848242d717857281ec Mon Sep 17 00:00:00 2001
From: hasu <hawkin@informatik.uni-bremen.de>
Date: Mon, 4 Dec 2023 13:43:39 +0100
Subject: [PATCH 4/5] minor CI fix

---
 scoresheets/CleanTable.tex | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/scoresheets/CleanTable.tex b/scoresheets/CleanTable.tex
index 908e85fe..b59b98c1 100644
--- a/scoresheets/CleanTable.tex
+++ b/scoresheets/CleanTable.tex
@@ -24,14 +24,6 @@
  	
 	%\scoreitem{300}{Placing the dishwasher tab inside the dishwasher's hatch intended for the tab}
  	%\scoreitem{150}{Picking up the dishwasher tab for transportation to the dishwasher}
-
-    \\
-    \scoreheading{Full Goal (125\%)} % AND-Group
-    \scoreitem{}{\emph{Main Goal}}
-    \scoreitem{}{All of \emph{Pick up item}}
-    \scoreitem{}{\emph{Bonus Goals}}
-
-    \\
 	%\scoreheading{Deus Ex Machina Penalties}
   	%\penaltyitem{20}{Pointing at an object or telling the robot where an object is}
         %\penaltyitem{60}{Handing an object over to the robot}
@@ -41,6 +33,7 @@
 	%\penaltyitem[5]{60}{Handing an object over to the robot}	
 	%\penaltyitem[5]{180}{Placing an object for the robot}
 	%\setTotalScore{1000}
+ \\
 \end{scorelist}
 
 

From b785baf97bccbf63787edf8b23782355abfc169c Mon Sep 17 00:00:00 2001
From: hasu <hawkin@informatik.uni-bremen.de>
Date: Sun, 7 Jan 2024 01:19:22 +0100
Subject: [PATCH 5/5] Adjusted SkillDict Macros

---
 skill_dict/group_macros.tex                   |  78 ++++
 skill_dict/score_sheets/carry_my_luggage.tex  |  48 +++
 skill_dict/score_sheets/clean_the_table.tex   |  79 +++++
 skill_dict/score_sheets/receptionist.tex      |  55 +++
 skill_dict/score_sheets/restaurant.tex        |  98 ++++++
 skill_dict/score_sheets/serve_breakfast.tex   |  52 +++
 .../score_sheets/stickler_for_the_rules.tex   |  47 +++
 skill_dict/score_sheets/storing_groceries.tex |  42 +++
 skill_dict/score_sheets/test_sheet.tex        |  35 ++
 skill_dict/score_sheets/viz_box.tex           |  26 ++
 skill_dict/skill_dict.tex                     |  97 +++++
 skill_dict/skill_dict_explanation.tex         |  46 +++
 skill_dict/skill_dictionary.tex               | 333 ++++++++++++++++++
 skill_dict/skill_macros.tex                   |  93 +++++
 14 files changed, 1129 insertions(+)
 create mode 100644 skill_dict/group_macros.tex
 create mode 100644 skill_dict/score_sheets/carry_my_luggage.tex
 create mode 100644 skill_dict/score_sheets/clean_the_table.tex
 create mode 100644 skill_dict/score_sheets/receptionist.tex
 create mode 100644 skill_dict/score_sheets/restaurant.tex
 create mode 100644 skill_dict/score_sheets/serve_breakfast.tex
 create mode 100644 skill_dict/score_sheets/stickler_for_the_rules.tex
 create mode 100644 skill_dict/score_sheets/storing_groceries.tex
 create mode 100644 skill_dict/score_sheets/test_sheet.tex
 create mode 100644 skill_dict/score_sheets/viz_box.tex
 create mode 100644 skill_dict/skill_dict.tex
 create mode 100644 skill_dict/skill_dict_explanation.tex
 create mode 100644 skill_dict/skill_dictionary.tex
 create mode 100644 skill_dict/skill_macros.tex

diff --git a/skill_dict/group_macros.tex b/skill_dict/group_macros.tex
new file mode 100644
index 00000000..028ffa5f
--- /dev/null
+++ b/skill_dict/group_macros.tex
@@ -0,0 +1,78 @@
+\usepackage{hyperref}
+\usepackage{xparse}
+\usepackage{etoolbox}
+\usepackage{tabularx}
+
+\usepackage{environ,needspace}
+\usepackage{enumitem} % To use [leftmargin=*]
+
+\usepackage{xcolor}
+\definecolor{myturquoise}{RGB}{25, 170, 160} % Define turquoise-blue color to highlight some groups
+
+\newsavebox{\groupbox} % New savebox for the Group environment to determine if new page is needed
+
+\newcounter{groupcounter}
+
+% Use the environment to define a Group - this is just a helper
+\newcommand{\DefGroup}[4]{%
+  \stepcounter{groupcounter}%
+  \edef\temp{\arabic{groupcounter}}% Capture the current value of the counter
+  \expandafter\xdef\csname groupnum#1\endcsname{\temp}%
+  \csgdef{groupid#1}{#1}
+  \csgdef{groupdesc#1}{#2}
+  \csgdef{groupbonus#1}{#3}
+  \csgdef{grouptype#1}{#4}
+}
+
+% The Group environment is used to define a group of clustered skills. The teams are supposed to be successful with every subtask, to unlock the bonus. 
+% If a subgroup is a Selection Group you only need to be successful once to be able to unlock the bonus of the super group. 
+
+% Example usage:
+% Handle Obstacles (Selection Group)
+%\begin{Group}{HandleObstacles}{Handle obstacles such as avoiding objects, marked areas, and people during navigation}{40}{Selection}
+%    \Skill{AvoidNavigationObstacle} % AvoidNavigationObstacle is the SkillId (see skill dictionary)
+%\end{Group}
+%\begin{Group}{FollowSection}{Follow a person while handling obstacles}{20}{Sequential}
+%    \Skill{TrackFollowPerson}  % Reference to a skill
+%    \GroupRef{HandleObstacles} % Reference to another group
+%\end{Group}
+
+% \begin{Group}{GroupId}{Description}{Bonus Points}{Group Type}
+\NewDocumentEnvironment{Group}{mmmm}{%
+  \DefGroup{#1}{#2}{#3}{#4}%
+   \par\noindent
+   \begin{lrbox}{\groupbox} % Start the lrbox 
+  \begin{minipage}{\linewidth}
+    %\noindent\textbf{Group} (G-\csuse{groupnum#1}) \hfill \textbf{Type:} #4 \quad \textbf{Bonus:} #3\\
+    \begin{tabularx}{\linewidth}{@{}lXl@{\hspace{7em}}l@{}} 
+      \textbf{Group} (G-\csuse{groupnum#1}) & & \makebox[5em][l]{\textbf{Type:} #4} & \makebox[3em][r]{\textbf{Bonus:} #3} \\
+    \end{tabularx}
+    \quad #2    %Description: #2
+    \label{grp:G-#1} % Create a label for the group
+    \vspace{0.31em} % Add space before the group
+    \hrule % Horizontal line before the group
+    \begin{itemize}[leftmargin=*, itemsep=-0.6pt, topsep=1.0pt]
+    \renewcommand{\labelitemi}{} % Hide bullet points
+}{
+    \end{itemize}
+  \end{minipage} 
+   \end{lrbox}% End the lrbox
+     \Needspace{\dimexpr\ht\groupbox+\dp\groupbox+.5\baselineskip}% Check space requirement
+   \usebox{\groupbox}% Output the content
+   \par\addvspace{0.4\baselineskip}% Add consistent space after the Group
+   \aftergroup\aftergroup\aftergroup\noindent 
+}
+
+% \GroupRef{GroupId}[Optional New Description]
+\NewDocumentCommand{\GroupRef}{m o}{%
+  \ifcsdef{groupid#1}{%
+      \item \begin{tabularx}{\linewidth}{@{}p{1cm}X@{}}
+        {\hyperref[grp:G-#1]{\textbf{G-\csuse{groupnum#1}}}} &
+        \textit{\csuse{groupdesc#1}}
+        \IfValueT{#2}{#2} % Remark
+      \end{tabularx}
+    }{%
+      \item \textbf{\textcolor{red}{Group with ID '#1' not found.}}
+    }
+}
+
diff --git a/skill_dict/score_sheets/carry_my_luggage.tex b/skill_dict/score_sheets/carry_my_luggage.tex
new file mode 100644
index 00000000..c8f3ad51
--- /dev/null
+++ b/skill_dict/score_sheets/carry_my_luggage.tex
@@ -0,0 +1,48 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Carry my luggage Task %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Handle Obstacles (Selection Group)
+\begin{Group}{HandleObstacles}{Handle obstacles such as avoiding objects, marked areas, and people during navigation}{40}{Selection}
+    \Skill{AvoidNavigationObstacle}
+    \Skill{AvoidSmallObstacle}
+    \Skill{AvoidHardToSeeObstacle}
+    \Skill{AvoidMarkedAreas}
+    \Skill{AvoidPersonCrowd}
+\end{Group}
+
+% Obtain Target Bag Information (Exclusive Selection Group)
+\begin{Group}{ObtainTargetBagInfo}{Obtain information about the target bag, either by saving provided information or recognizing the target object}{20}{Selection}
+    \Skill{SaveSpeakerInfo}
+    \Skill{RecogPointingTarget}
+\end{Group}
+
+
+% Pick up the Bag (Sequence Group)
+\begin{Group}{PickupBag}{Navigate to the bag, recognize its 3D pose and pick it up}{20}{Sequential}
+    \Skill{NavigateToTarget}
+    \Skill{Recog3DPoseUnknownObj}
+    \Skill{PickLargeUnknown}
+\end{Group}
+
+
+% Follow Section (Sequence Group)
+\begin{Group}{FollowSection}{Follow a person while handling obstacles}{20}{Sequential}
+    \Skill{TrackFollowPerson}
+    \GroupRef{HandleObstacles}
+\end{Group}
+
+% Task (Sequence Group)
+\begin{Group}{CarryLuggageTask}{\textbf{\textcolor{myturquoise}{Main Task:}} Complete the 'Carry My Luggage' task}{30}{Sequential}
+    \GroupRef{ObtainTargetBagInfo}
+    \GroupRef{PickupBag}
+    \GroupRef{FollowSection}
+    \Skill{NavigateToTarget}
+\end{Group}
+
+
+% Penalties
+\begin{Group}{CmL-Penalties}{Penalties for various infractions during the task}{-20}{Penalty}
+    \Skill{PenaltyCallHumanHelp}
+    \Skill{PenaltyDropObject}
+\end{Group}
diff --git a/skill_dict/score_sheets/clean_the_table.tex b/skill_dict/score_sheets/clean_the_table.tex
new file mode 100644
index 00000000..06d751f5
--- /dev/null
+++ b/skill_dict/score_sheets/clean_the_table.tex
@@ -0,0 +1,79 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Clean the Table Task %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Pick up Dish Item (Selection Group)
+\begin{Group}{PickupDishItem}{Pick up various dish items from the table}{30}{Selection}
+    \Skill{PickTinyKnown}[Pick up a Spoon, Fork or a Knife]
+    \Skill{PickNormalKnown}[Pick up a Bowl or Cup]
+    \Skill{PickHeavyKnown}[Pick up a Plate]
+\end{Group}
+
+% Place Dish Item (Selection Group)
+\begin{Group}{PlaceDishItem}{Place dish items appropriately in the dishwasher}{30}{Selection}
+    \Skill{PlaceTinyKnown}[Place Spoon, Fork or Knife]
+    \Skill{PlaceNormalKnown}[Place Bowl or Cup]
+    \Skill{PlaceHeavyKnown}[Place Plate]
+\end{Group}
+
+% Handle Dishwasher Door (Sequence Group)
+\begin{Group}{HandleDishwasherDoor}{Open and close the dishwasher door}{20}{Sequential}
+    \Skill{OpenDishwasherDoor}
+    \Skill{CloseDishwasherDoor}
+\end{Group}
+
+% Handle Dishwasher Rack (Sequence Group)
+\begin{Group}{HandleDishwasherRack}{Pull out and push in the dishwasher rack}{20}{Sequential}
+    \Skill{PullOutRack}
+    \Skill{PushInRack}
+\end{Group}
+
+% Handle detergent powder
+\begin{Group}{HandleDetergentPowder}{Handle the detergent powder}{10}{Sequential}
+    \Skill{PickLargeUnknown}[Pick up detergent powder]
+    \Skill{PourIntoContainer}[Pouring powder into container]
+\end{Group}
+
+% Handle dishwasher tab
+\begin{Group}{HandleDishwasherTab}{Handle the dishwasher tab}{40}{Sequential}
+    \Skill{PickTinyUnknown}[Pick up a dishwasher tab]
+    \Skill{PlaceTinyObjectInContainer}[Place tab in small container]
+\end{Group}
+
+% Handle detergent (Exclusive Group)
+\begin{Group}{HandleDetergent}{Handle detergent selection process}{50}{Exclusive}
+    \GroupRef{HandleDetergentPowder}
+    \GroupRef{HandleDishwasherTab}
+\end{Group}
+
+% Put item into the dishwasher (Sequence Group)
+\begin{Group}{PutItemInDishwasher}{Put items into the dishwasher}{50}{Sequential}
+    \Skill{NavigateToTarget}
+    \GroupRef{PickupDishItem}
+    \Skill{NavigateToTarget}
+    \Skill{FindSimilarObjects}
+    \GroupRef{PlaceDishItem}
+\end{Group}
+
+% Main Goal
+\begin{Group}{CleanTheTable}{\textbf{\textcolor{myturquoise}{Main Task:}} Clean the Table}{100}{Sequential}
+    \GroupRef{PutItemInDishwasher}[(6 times/items. You are allowed to carry multiple items)]
+\end{Group}
+
+% Bonus Goals
+\begin{Group}{BonusGoal}{Bonus goals of cleaning the table}{30}{Sequential}
+    \GroupRef{HandleDishwasherDoor}
+    \GroupRef{HandleDishwasherRack}
+    \GroupRef{HandleDetergent}
+\end{Group}
+
+% Full Goal
+\begin{Group}{CtT-FullGoal}{The complete cleaning the table task}{200}{Sequential}
+    \GroupRef{CleanTheTable}
+    \GroupRef{BonusGoal}
+\end{Group}
+
+% Penalties
+\begin{Group}{Penalties}{Penalties for various infractions during the task}{-20}{Penalty}
+    \Skill{PenaltyDropObject}
+\end{Group}
\ No newline at end of file
diff --git a/skill_dict/score_sheets/receptionist.tex b/skill_dict/score_sheets/receptionist.tex
new file mode 100644
index 00000000..7a7d3007
--- /dev/null
+++ b/skill_dict/score_sheets/receptionist.tex
@@ -0,0 +1,55 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Receptionist Task %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Civilized behaviour (Permanent Group)
+\begin{Group}{CivilizedBehaviour}{Exhibit civilized behaviour like looking at interacting persons and behaving friendly}{10}{Permanent}
+    \Skill{LookAtInterestingPerson}
+    \Skill{LookAtTalkingPerson}
+    \Skill{BehaveFriendlyLikable}
+\end{Group}
+
+% Welcome Guest (Sequence Group)
+\begin{Group}{WelcomeGuest}{Welcome the guest by navigating to them and handling doors}{20}{Sequential}
+    \Skill{NavigateToTarget}
+    \Skill{OpenEntranceDoor}
+    \Skill{CloseEntranceDoor}
+\end{Group}
+
+% Identify and Remember Person (Exclusive Group)
+\begin{Group}{IdentifyRememberPerson}{Identify and remember a person either by face or voice}{30}{Selection}
+    \Skill{SaveReRecogPersonFace}[Save and re-recognize a person’s face (2 times)] 
+\end{Group}
+
+% Remember Facts About Person (Sequence Group)
+\begin{Group}{RememberFactsAboutPerson}{Remember two facts about a person}{20}{Sequential}
+    \Skill{SaveSpeakerInfo}[Remember name and preferences]
+    \Skill{SaveSpeakerInfo}[Remember object ownership and order]
+\end{Group}
+
+% Introduce Person (Sequence Group)
+\begin{Group}{IntroducePerson}{Introduce a person using stored and visually perceived information}{20}{Sequential}
+    \Skill{DescribePersonOrObject}[Discribe a person according to visually perceived features (e.g. height, age-range, cloths, hair-colour and length, gender; at least three features)]
+    \Skill{DescribeStoredPersonOrObject}
+\end{Group}
+
+% Handle Guest (Sequence Group)
+\begin{Group}{HandleGuest}{Handle the guest by welcoming, remembering facts, navigating, and introducing}{40}{Sequential}
+    \GroupRef{WelcomeGuest}
+    \GroupRef{RememberFactsAboutPerson}
+    \Skill{NavigateToTarget}
+    \GroupRef{IntroducePerson}
+\end{Group}
+
+% Task (Sequence Group)
+\begin{Group}{ReceptionistTask}{\textbf{\textcolor{myturquoise}{Main Task:}} Complete the Receptionist task by handling guests and introductions}{50}{Sequential}
+    \GroupRef{HandleGuest}[2 times]
+    %\Skill{IntroduceGuest1ToGuest2}
+    \GroupRef{IntroducePerson}[Introduce 1. Guest to 2. Guest]
+\end{Group}
+
+% Penalties
+\begin{Group}{R-Penalties}{Penalties for failure to detect or recognize persons}{-20}{Penalty}
+    \Skill{PenaltyNotDetectPerson}
+    \Skill{PenaltyNotRecognizePerson}
+\end{Group}
diff --git a/skill_dict/score_sheets/restaurant.tex b/skill_dict/score_sheets/restaurant.tex
new file mode 100644
index 00000000..b2413a21
--- /dev/null
+++ b/skill_dict/score_sheets/restaurant.tex
@@ -0,0 +1,98 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Restaurant Task %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Detect Customer
+\begin{Group}{DetectCustomer}{Detect and identify customers entering the restaurant}{10}{Selection}
+    \Skill{DetectHumanPoseAction}[Detecting customer entering]
+    \Skill{RecogKnownObj}[Recognizing customer's face]
+\end{Group}
+
+% Take Order
+\begin{Group}{TakeOrder}{Take the customer's order}{20}{Sequential}
+    \GroupRef{DetectCustomer}
+    \Skill{NavigateToTarget}[Approach customer]
+    \Skill{SaveLocationRequest}
+    \Skill{BehaveFriendlyLikable}[Welcome customer]
+    \Skill{UnderstandNonExpertCmds}[Understand customer's order]
+    \Skill{SaveSpeakerInfo}[Save customer's order (2x, Once per customer)]
+    \Skill{SummarizeDialogEvents}[Summarize orders taken]
+\end{Group}
+
+% Get Order
+\begin{Group}{GetOrder}{Collect the ordered items from the kitchen}{30}{Sequential}
+    \Skill{NavigateToTarget}[Navigate to kitchen]
+    \Skill{PickNormalKnown}[Pick up ordered items (2x, Once per customer)]
+\end{Group}
+
+% Bring Order
+\begin{Group}{BringOrder}{Deliver the order to the customer}{30}{Sequential}
+    \Skill{NavigateToTarget}[Navigate to customer's table]
+    \Skill{PlaceNormalKnown}[Place order on the table (2x, Once per customer)]
+\end{Group}
+
+% Handle table
+\begin{Group}{HandleTable}{Handle an order for a table}{20}{Sequential}
+    \GroupRef{TakeOrder}
+    \GroupRef{GetOrder}
+    \GroupRef{BringOrder}
+\end{Group}
+
+
+% Bonus Rewards
+\begin{Group}{R-BonusRewards}{Extra tasks for additional points}{15}{Selection}
+    \Skill{BehaveFriendlyLikable}
+    \Skill{DescribePersonOrObject}[Describe a person for entertainment]
+    \Skill{PourIntoContainer}[Prepare a drink, by pouring it from the bottle into a glass]
+\end{Group}
+
+% Special VizBox Rewards
+\begin{Group}{SpecialVizBoxRewards}{Special tasks utilizing VizBox}{15}{Selection}
+    \Skill{StreamRobotView}[Stream robot's view for customers]
+    \Skill{DisplayRecogObjects}[Display recognized objects]
+    \Skill{DisplaySTTResults}[Display speech-to-text results]
+\end{Group}
+
+
+% Main Goal
+\begin{Group}{RestaurantMainGoal}{\textbf{\textcolor{myturquoise}{Main Task:}} Restaurant Servant}{50}{Sequential}
+    \GroupRef{HandleTable}
+    \GroupRef{R-BonusRewards}
+    \GroupRef{SpecialVizBoxRewards}
+\end{Group}
+
+
+% Prepare new table
+\begin{Group}{PrepareNewTable}{Clean and set up the table}{20}{Sequential}
+    \Skill{WipeTableSurface}[Clean the table surface]
+    \Skill{PlaceNormalKnown}[Place tableware]
+\end{Group}
+
+% Handle Payment Processing (Sequence Group)
+\begin{Group}{ProcessPayment}{Process guests' payments}{20}{Sequential}
+    \Skill{RecogPointingTarget}[Recognize payment method pointed by guest]
+    \Skill{ReceiveObjectHandover}[Receive payment]
+\end{Group}
+
+% Extra Tasks
+\begin{Group}{ExtraTasks}{Additional tasks for additional points}{15}{Selection}
+    \GroupRef{ProcessPayment}
+    \GroupRef{PrepareNewTable}
+\end{Group}
+
+
+\begin{Group}{FullGoal}{Be a fully functional robot servant}{15}{Selection}
+    \GroupRef{RestaurantMainGoal}
+    \GroupRef{ExtraTasks}
+\end{Group}
+
+
+% Penalties
+\begin{Group}{RestaurantPenalties}{Penalties for various infractions during the task}{-20}{Penalty}
+    \Skill{PenaltyUnfriendlyBehavior}
+    \Skill{PenaltyCallHumanHelp}
+    \Skill{PenaltyDropObject}
+    \Skill{PenaltySpillWhilePouring}
+    \Skill{PenaltyMisunderstandContext}
+\end{Group}
+
diff --git a/skill_dict/score_sheets/serve_breakfast.tex b/skill_dict/score_sheets/serve_breakfast.tex
new file mode 100644
index 00000000..755d1b9d
--- /dev/null
+++ b/skill_dict/score_sheets/serve_breakfast.tex
@@ -0,0 +1,52 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Serve Breakfast Task %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Pick up breakfast item (Selection Group)
+\begin{Group}{PickupBreakfastItem}{Pick up different breakfast items}{30}{Selection}
+    \Skill{PickTinyKnown}[Pick up a Spoon (tiny object)]
+    \Skill{PickNormalKnown}[Pick up a Bowl (normal-sized known)]
+    \Skill{PickLargeKnown}[Pick up a Cereals (large object)]
+    \Skill{PickHeavyKnown}[Pick up a Milk (heavy object)]
+\end{Group}
+
+% Place breakfast item (Selection Group)
+\begin{Group}{PlaceBreakfastItem}{Place breakfast items appropriately}{30}{Selection}
+    \Skill{PlaceTinyKnown}[Place Spoon next to the bowl]
+    \Skill{PlaceNormalKnown}[Place Bowl on the table]
+    \Skill{PlaceLargeKnown}[Place Cereals on the table]
+    \Skill{PlaceHeavyKnown}[Place Milk on the table]
+\end{Group}
+
+% Set up breakfast item (Sequential Group)
+\begin{Group}{SetUpBreakfastItem}{Set up each breakfast item at the target location}{40}{Sequential}
+    \Skill{NavigateToTarget}
+    \GroupRef{PickupBreakfastItem}
+    \Skill{NavigateToTarget}
+    \GroupRef{PlaceBreakfastItem}
+\end{Group}
+
+% Prepare table (Sequence Group)
+\begin{Group}{PrepareTable}{Prepare the table for breakfast, including setting up all breakfast items}{50}{Sequential}
+    \GroupRef{SetUpBreakfastItem}[(4 times)]
+\end{Group}
+
+% Main Goal
+\begin{Group}{ServeBreakfast}{\textbf{\textcolor{myturquoise}{Main Task:}} Serve breakfast}{60}{Sequential}
+    \GroupRef{PrepareTable}
+    \Skill{PourIntoContainer}[Cereal into the bowl]
+\end{Group}
+
+% Full Goal
+\begin{Group}{SB-FullGoal}{Complete the full goal of the task, including all main and additional objectives}{70}{Sequential}
+    \GroupRef{ServeBreakfast}
+    \Skill{Recog3DPoseKnownObj}[Placing the spoor next to the bowl]
+    \Skill{PourIntoContainer}[Pour milk into the bowl]
+\end{Group}
+
+% Penalties
+\begin{Group}{SB-Penalties}{Penalties for various infractions during the task}{-20}{Penalty}
+    \Skill{PenaltyCallHumanHelp}
+    \Skill{PenaltyDropObject}
+    \Skill{PenaltySpillWhilePouring}
+\end{Group}
diff --git a/skill_dict/score_sheets/stickler_for_the_rules.tex b/skill_dict/score_sheets/stickler_for_the_rules.tex
new file mode 100644
index 00000000..fdab566f
--- /dev/null
+++ b/skill_dict/score_sheets/stickler_for_the_rules.tex
@@ -0,0 +1,47 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Stickler For The Rules Task %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Detect Shoe Wearing Guest
+\begin{Group}{DetectShoeWearingGuest}{Detect guests wearing shoes}{10}{Selection}
+    \Skill{DetectHumanPoseAction}
+    \Skill{RecogKnownObj}
+\end{Group}
+
+% Detect Drinkless Guest
+\begin{Group}{DetectDrinklessGuest}{Detect guests without a drink}{10}{Selection}
+    \Skill{NavigateToTarget}[Navigate to guest location]
+    \Skill{DetectAbsenceObjClass}[Detect absence of a drink]
+\end{Group}
+
+% Detect a Person in a Private Room
+\begin{Group}{DetectPersonInPrivateRoom}{Detect a person in a private room}{10}{Selection}
+    \Skill{NavigateToTarget}[Navigate to room location]
+    \Skill{RecogKnownObj}[Recognize person in room]
+\end{Group}
+
+% Detect Garbage on the Floor
+\begin{Group}{DetectGarbageOnFloor}{Detect garbage on the floor}{10}{Selection}
+    \Skill{NavigateToTarget}[Navigate to garbage location]
+    \Skill{RecogKnownObj}[Recognize garbage]
+\end{Group}
+
+% Check for Rule Breaks (Sequential Group)
+\begin{Group}{CheckRuleBreaks}{Check for various rule breaks}{80}{Sequential}
+    \GroupRef{DetectShoeWearingGuest}
+    \GroupRef{DetectDrinklessGuest}
+    \GroupRef{DetectPersonInPrivateRoom}
+    \GroupRef{DetectGarbageOnFloor}
+\end{Group}
+
+% Main Goal
+\begin{Group}{MainGoal}{\textbf{\textcolor{myturquoise}{Main Task:}} Checking for rule breaks}{80}{Sequential}
+    \GroupRef{CheckRuleBreaks}[Check multiple times for rule breaks (4 times)]
+\end{Group}
+
+% Penalties
+\begin{Group}{Stickler-Penalties}{Penalties for failure to detect or recognize rule breaks}{-20}{Penalty}
+    \Skill{PenaltyNotDetectPerson}
+    \Skill{PenaltyNotRecognizePerson}
+    \Skill{PenaltyMisunderstandContext}
+\end{Group}
diff --git a/skill_dict/score_sheets/storing_groceries.tex b/skill_dict/score_sheets/storing_groceries.tex
new file mode 100644
index 00000000..9efeff0f
--- /dev/null
+++ b/skill_dict/score_sheets/storing_groceries.tex
@@ -0,0 +1,42 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Storing Groceries Task %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Pick up item (Selection Group)
+\begin{Group}{PickupItem}{Pick up various grocery items}{30}{Selection}
+    \Skill{PickTinyKnown}
+    \Skill{PickNormalKnown}
+    \Skill{PickLargeKnown}
+    \Skill{PickHeavyKnown}
+\end{Group}
+
+% Place item (Selection Group)
+\begin{Group}{PlaceItem}{Place grocery items appropriately}{30}{Selection}
+    \Skill{PlaceTinyKnown}
+    \Skill{PlaceNormalKnown}
+    \Skill{PlaceLargeKnown}
+    \Skill{PlaceHeavyKnown}
+\end{Group}
+
+% Store item (Sequential Group)
+\begin{Group}{StoreItem}{Store each grocery item at the target location}{40}{Sequential}
+    \Skill{NavigateToTarget}
+    \GroupRef{PickupItem}
+    \Skill{NavigateToTarget}
+    \Skill{FindSimilarObjects}[Communicate target location]
+    \GroupRef{PlaceItem}
+\end{Group}
+
+% Main Goal
+\begin{Group}{StoreGroceries}{\textbf{\textcolor{myturquoise}{Main Task:}} Storing groceries, including opening and closing shelves}{50}{Sequential}
+    \Skill{OpenShelfDoor}
+    \GroupRef{StoreItem}
+    \Skill{CloseShelfDoor}
+\end{Group}
+
+% Penalties
+\begin{Group}{SG-Penalties}{Penalties for various infractions during the task}{-20}{Penalty}
+    \Skill{PenaltyCallHumanHelp}
+    \Skill{PenaltyDropObject}
+    \Skill{PenaltyMisunderstandContext}[Storing an object without categorizing it correctly]
+\end{Group}
diff --git a/skill_dict/score_sheets/test_sheet.tex b/skill_dict/score_sheets/test_sheet.tex
new file mode 100644
index 00000000..d34c821c
--- /dev/null
+++ b/skill_dict/score_sheets/test_sheet.tex
@@ -0,0 +1,35 @@
+%%%%%%%%%%%%%%%%%%%%
+%%%% Test Sheet %%%%
+%%%%%%%%%%%%%%%%%%%%
+
+Handle Obstacles (Selection Group)
+\begin{Group}{Undfined}{Undefined Skill}{40}{Selection}
+    \Skill{NotDefined}
+    \Skill{NotDefined2}[But a description is provided.]
+\end{Group}
+
+% Pick up the Bag (Sequence Group)
+\begin{Group}{PickupBag2}{Navigate to the bag, recognize its 3D pose and pick it up}{20}{Sequential}
+    \Skill{NavigateToTarget}
+    \Skill{Recog3DPoseUnknownObj}
+    \Skill{PickLargeUnknown}
+\end{Group}
+
+
+% Follow Section (Sequence Group)
+\begin{Group}{FollowSection2}{Follow a person while handling obstacles}{20}{Sequential}
+    \Skill{TrackFollowPerson}
+    \GroupRef{HandleObstacles}
+    \GroupRef{NonExistentGroup}
+\end{Group}
+
+
+% Task (Sequence Group)
+\begin{Group}{CarryLuggageTask2}{\textbf{\textcolor{myturquoise}{Main Task:}} 'Carry My Luggage'}{30}{Sequential}
+    \GroupRef{ObtainTargetBagInfo}
+    \GroupRef{PickupBag2}
+    \GroupRef{FollowSection2}
+    \Skill{NavigateToTarget}
+\end{Group}
+
+
diff --git a/skill_dict/score_sheets/viz_box.tex b/skill_dict/score_sheets/viz_box.tex
new file mode 100644
index 00000000..2676e835
--- /dev/null
+++ b/skill_dict/score_sheets/viz_box.tex
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%
+%%%% VizBox usage %%%%
+%%%%%%%%%%%%%%%%%%%%%%
+
+% Stream basic perception to the arena interface
+\begin{Group}{BasicVizBoxGroup}{Stream basic perception to the VizBox interface}{25}{Permanent}
+    \Skill{StreamRobotView}
+    \Skill{StreamRobotMic}
+    \Skill{StreamRobotVoice}
+\end{Group}
+
+
+% Stream extracted information to the arena interface
+\begin{Group}{KnowledgeVizBoxGroup}{Stream general extracted knowledge to the VizBox interface}{75}{Permanent}
+    \Skill{DisplayRecogObjects}
+    \Skill{DisplayExecSubtask}
+    \Skill{DisplayRobotPosPath}
+    \Skill{DisplaySTTResults}
+\end{Group}
+
+
+% Stream extracted information to the arena interface
+\begin{Group}{AlwaysSafe}{Always be able to interrupt the action and continue it, without any additional expert interaction}{75}{Permanent}
+    \Skill{StopOnTrigger}
+    \Skill{ContinueOnTrigger}
+\end{Group}
\ No newline at end of file
diff --git a/skill_dict/skill_dict.tex b/skill_dict/skill_dict.tex
new file mode 100644
index 00000000..805d26fb
--- /dev/null
+++ b/skill_dict/skill_dict.tex
@@ -0,0 +1,97 @@
+\documentclass{article}
+\usepackage{graphicx} % Required for inserting images
+
+
+\input{skill_macros.tex}
+\input{skill_dictionary.tex}
+
+\input{group_macros.tex}
+
+\usepackage[margin=1in]{geometry}
+
+\usepackage{xcolor}
+\hypersetup{
+    colorlinks,
+    linkcolor={red!50!black},
+    citecolor={blue!50!black},
+    urlcolor={blue!80!black}
+}
+
+
+\begin{document}
+
+\input{skill_dict/skill_dict_explanation}
+\newpage
+
+%\RenderDictionary
+
+\section*{Skill Dictionary}
+
+\RenderCategoryDictionary
+
+\newpage
+\section{VizBox Usage}
+
+\input{skill_dict/score_sheets/viz_box}
+
+\newpage
+\section{Carry my Luggage}
+
+\input{skill_dict/score_sheets/carry_my_luggage}
+
+
+\newpage
+\section{Receptionist}
+
+\input{skill_dict/score_sheets/receptionist}
+
+
+\newpage
+\section{Serve Breakfast}
+
+\input{skill_dict/score_sheets/serve_breakfast}
+
+
+\newpage
+\section{Storing Groceries}
+
+\input{skill_dict/score_sheets/storing_groceries}
+
+
+\newpage
+\section{Clean the table}
+
+\input{skill_dict/score_sheets/clean_the_table}
+
+
+\newpage
+\section{Restaurant}
+
+\input{skill_dict/score_sheets/restaurant}
+
+
+\newpage
+\section{Stickler for the Rules}
+
+\input{skill_dict/score_sheets/stickler_for_the_rules}
+
+
+\newpage
+\section{Testing Misuse}
+
+\input{skill_dict/score_sheets/test_sheet}
+
+
+\end{document}
+
+%\title{Test Rulebook}
+%\author{leander }
+%\date{December 2023}
+
+%\begin{document}
+
+%\maketitle
+
+%\section{Introduction}
+
+%\end{document}
diff --git a/skill_dict/skill_dict_explanation.tex b/skill_dict/skill_dict_explanation.tex
new file mode 100644
index 00000000..92d6e4c8
--- /dev/null
+++ b/skill_dict/skill_dict_explanation.tex
@@ -0,0 +1,46 @@
+\section*{Score Sheet Explanation}
+
+\subsection*{Motivation \& Structure Explanation}
+
+The rulebook is designed to ensure every team can score points, as tasks are divided into smaller subtasks, making it more accessible. Bonuses incentivize completing full tasks and a variety of tasks, ensuring the best team wins and discourages gaming the system. Consistent scoring across tasks is achieved by reusing skills, and the modular structure facilitates statistical analysis over time to balance skill difficulty and rewards.
+
+\subsection*{Reading a Task}
+
+Begin with the "\textbf{\textcolor{myturquoise}{Main Task}}" Group, then expand from there. Tasks are divided into Sequential and Selection groups. In Sequential subgroups, complete all skills in order; in Selection subgroups, choose one skill to complete. Permanent groups require maintaining all skills throughout the task.
+
+\subsection*{Unlocking Bonuses}
+
+Bonuses are awarded for completing \textbf{all} skills in a group. Sequential groups are easier to complete than Selection groups. In Selection groups embedded in Sequential ones, completing one skill from the Selection group counts as completing the whole subgroup.
+
+\subsection*{Minimal Example}
+
+\DefSkill{A}{20}{Skill A}{Examples}
+\DefSkill{B}{25}{Skill B}{Examples}
+\DefSkill{X}{15}{Skill X}{Examples}
+\DefSkill{Y}{30}{Skill Y}{Examples}
+
+% SequentialExample (Selection Group)
+\begin{Group}{SelectionExample}{Example Selection Group}{100}{Selection}
+    \Skill{X}
+    \Skill{Y}
+\end{Group}
+
+% SequentialExample (Selection Group)
+\begin{Group}{SequentialExample}{\textbf{\textcolor{myturquoise}{Main Task:}} Example Sequential Group}{50}{Sequential}
+    \Skill{A}
+    \Skill{B}
+    \GroupRef{SelectionExample}
+\end{Group}
+% Reset group numbering
+\setcounter{groupcounter}{0}
+
+This example illustrates the scoring system using a Sequential group with skills A and B, and a Selection group with skills X and Y. Successfully completing A, B, and either X or Y in one attempt awards points for each skill plus a Sequential group bonus. For instance, achieving A, B, X yields 20 + 25 + 15 points for skills and an additional 50 points as a Sequential group bonus. Completing A, B, Y in a separate attempt scores 20 + 25 + 30 points, plus a 100-point bonus for the Selection group. Note that the Sequential group bonus is awarded only once.
+
+\subsection*{Human Help}
+
+Human intervention in skill execution disqualifies the skill from being counted as completed, emphasizing the robot's autonomous capabilities. Although no points are awarded for such skills, penalties may still apply. This rule ensures the focus remains on the robot's independent performance, aligning with the competition's objective to advance autonomous robotics.
+
+\subsection*{Modularity}
+
+The structure of this competition draws parallels to modular programming in computer science. Teams should prioritize mastering common skills, starting with the Main Task Sequence, and then expand their focus to a diverse set of tasks to unlock all available bonuses, thereby maximizing their score.
+% Groups function akin to functions - with Selection groups resembling sum types and Sequential groups analogous to product types in category theory.
\ No newline at end of file
diff --git a/skill_dict/skill_dictionary.tex b/skill_dict/skill_dictionary.tex
new file mode 100644
index 00000000..045b672d
--- /dev/null
+++ b/skill_dict/skill_dictionary.tex
@@ -0,0 +1,333 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Communication & Explainability %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Stream the Robot View
+\DefSkill{StreamRobotView}{25}{Stream the robot's view to the arena screen using VizBox}{Communication and Explainability}
+
+% Stream Robot Microphone
+\DefSkill{StreamRobotMic}{25}{Stream the robot microphone (transmit direct audio perception)}{Communication and Explainability}
+
+% Stream Robot Voice
+\DefSkill{StreamRobotVoice}{25}{Stream the robot's voice and filter it out in audio perception}{Communication and Explainability}
+
+% Display Recognized Objects
+\DefSkill{DisplayRecogObjects}{25}{Display ROIs for recognized objects}{Communication and Explainability}
+
+% Display Executed Subtask/Skill
+\DefSkill{DisplayExecSubtask}{20}{Display currently executed subtask/skill}{Communication and Explainability}
+
+% Display Robot Position and Path
+\DefSkill{DisplayRobotPosPath}{20}{Display robot position estimation, navigation goal, and planned path}{Communication and Explainability}
+
+% Display Speech-to-Text Results
+\DefSkill{DisplaySTTResults}{25}{Display Speech-to-Text result as subtitle file in video}{Communication and Explainability}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Safe Interactions %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Immediately Stop Action on Defined Trigger
+\DefSkill{StopOnTrigger}{50}{On defined trigger (e.g. shouting 'Stop' or touching the robot's arm): Immediately stop the current action}{Safe Interactions}
+
+% Continue Interrupted Action on Defined Trigger
+\DefSkill{ContinueOnTrigger}{50}{On defined trigger (e.g. saying 'Continue' or pressing the robot finger): Continue with the interrupted action}{Safe Interactions}
+
+
+%%%%%%%%%%%%%%%%%%%%
+%%%% Perception %%%%
+%%%%%%%%%%%%%%%%%%%%
+
+% Recognize Known Object
+\DefSkill{RecogKnownObj}{5}{Recognize a known object or person in an image or other sensor data}{Perception}
+
+% Recognize Unknown Object Class
+%\DefSkill{RecogUnknownObjClass}{15}{Recognize the class of an unknown object in an image}{Perception}
+
+% Recognize 3D Pose of Known Object
+\DefSkill{Recog3DPoseKnownObj}{10}{Recognize 3D pose of a known static object}{Perception}
+
+% Recognize 3D Pose of Unknown Object
+\DefSkill{Recog3DPoseUnknownObj}{30}{Recognize 3D pose of an unknown static object}{Perception}
+
+% Recognize Pointing Target
+\DefSkill{RecogPointingTarget}{15}{Recognize the target object a human is pointing at}{Perception}
+
+% Detect Placement Surface
+%\DefSkill{DetectPlacementSurface}{10}{Detect a surface suitable for placing an entity}{Perception}
+
+% Find Similar Objects
+\DefSkill{FindSimilarObjects}{20}{Find the most similar objects given a reference object}{Perception}
+
+% Detect Absence of an Object Class
+\DefSkill{DetectAbsenceObjClass}{10}{Detect absence of an object class in the environment}{Perception}
+
+% Describe Person or Object
+\DefSkill{DescribePersonOrObject}{15}{Describe a person or an object based on visually perceived features (e.g., height, age-range, clothes, hair color and length)}{Perception}
+
+% Person Perception
+% Detect Human Pose or Action
+\DefSkill{DetectHumanPoseAction}{10}{Detect a human pose or an action (e.g., waving, calling)}{Perception}
+
+% Look at the Face of the Interesting Person
+\DefSkill{LookAtInterestingPerson}{10}{Look at the face of the interesting person}{Perception}
+
+% Look at the Person That is Talking to the Robot
+\DefSkill{LookAtTalkingPerson}{10}{Look at the person that is talking to the robot (sound source localization)}{Perception}
+
+% Detect Stopped Conversation
+\DefSkill{DetectStoppedConv}{5}{Detect that a conversation (between at least two humans) has stopped}{Perception}
+
+%%%%%%%%%%%%%%%%
+%%%% Dialog %%%%
+%%%%%%%%%%%%%%%%
+
+% Understand Non-Expert Commands
+\DefSkill{UnderstandNonExpertCmds}{15}{Understand commands from non-expert operators (understand synonym sentences)}{Dialog}
+
+% Generate Dialog Log
+\DefSkill{GenerateDialogLog}{15}{Generate a dialog log of a task}{Dialog}
+
+% Summarize Dialog and Events
+\DefSkill{SummarizeDialogEvents}{15}{Summarize the dialog and generally what happened in a task}{Dialog}
+
+% Behave friedly and likeable
+\DefSkill{BehaveFriendlyLikable}{5}{Always be pleasant to the person you are talking to}{Dialog}
+
+% Describe Person or Object
+\DefSkill{DescribeStoredPersonOrObject}{5}{Describe a person or an object using the stored information}{Dialog}
+
+
+%%%%%%%%%%%%%%%%%%%
+%%%% Knowledge %%%%
+%%%%%%%%%%%%%%%%%%%
+
+% Save Location on Request
+\DefSkill{SaveLocationRequest}{10}{Save the location of an object or person upon request}{Knowledge}
+
+% Save and Re-recognize a Person's Face
+\DefSkill{SaveReRecogPersonFace}{10}{Save and re-recognize a person's face}{Knowledge}
+
+% Save and Re-recognize a Person's Voice
+\DefSkill{SaveReRecogPersonVoice}{10}{Save and re-recognize a person's voice}{Knowledge}
+
+% Save Provided Information About a Speaker
+\DefSkill{SaveSpeakerInfo}{15}{Save provided information about a speaker (e.g., name, preferences, object ownership, order)}{Knowledge}
+
+
+%%%%%%%%%%%%%%%%%%%%
+%%%% Navigation %%%%
+%%%%%%%%%%%%%%%%%%%%
+
+% Navigate to a Target Location
+\DefSkill{NavigateToTarget}{5}{Navigate to a specified target location}{Navigation}
+
+% Detect, Track and Follow a Person
+\DefSkill{TrackFollowPerson}{10}{Detect, track and follow a person}{Navigation}
+
+% Avoid an Object in the Navigation Path
+\DefSkill{AvoidNavigationObstacle}{5}{Avoid an object in the navigation path}{Navigation}
+
+% Avoid a Small Object in the Navigation Path
+\DefSkill{AvoidSmallObstacle}{10}{Avoid a small object in the navigation path}{Navigation}
+
+% Avoid a Hard-to-See Object in the Navigation Path
+\DefSkill{AvoidHardToSeeObstacle}{10}{Avoid a hard-to-see object in the navigation path}{Navigation}
+
+% Avoid Predefined Marked Areas During Navigation
+\DefSkill{AvoidMarkedAreas}{5}{Avoid predefined marked areas during navigation}{Navigation}
+
+% Avoid a Person or a Crowd of People Obscuring the Path
+\DefSkill{AvoidPersonCrowd}{10}{Avoid a person or a crowd of people obscuring the path}{Navigation}
+
+% Use an Unattached Carried Tray to Transport Items
+\DefSkill{TransportWithTray}{30}{Use an unattached carried tray to transport items}{Navigation}
+
+
+%%%%%%%%%%%%%%%%%%%%%%
+%%%% Manipulation %%%%
+%%%%%%%%%%%%%%%%%%%%%%
+
+% Pick up a tiny known object
+\DefSkill{PickTinyKnown}{60}{Pick up a tiny known object}{Manipulation}
+
+% Pick up a normal-sized (hardy) known object
+\DefSkill{PickNormalKnown}{40}{Pick up a normal-sized (hardy) known object}{Manipulation}
+
+% Pick up a large known object
+\DefSkill{PickLargeKnown}{30}{Pick up a large known object}{Manipulation}
+
+% Pick up a heavy known object
+\DefSkill{PickHeavyKnown}{45}{Pick up a heavy known object}{Manipulation}
+
+% Pick up a tiny unknown object
+\DefSkill{PickTinyUnknown}{75}{Pick up a tiny unknown object}{Manipulation}
+
+% Pick up a normal-sized (hardy) unknown object
+%\DefSkill{PickNormalUnknown}{55}{Pick up a normal-sized (hardy) unknown object}{Manipulation}
+
+% Pick up a large unknown object
+\DefSkill{PickLargeUnknown}{45}{Pick up a large unknown object}{Manipulation}
+
+% Pick up a heavy unknown object
+%\DefSkill{PickHeavyUnknown}{60}{Pick up a heavy unknown object}{Manipulation}
+
+% Pick up fabric or cloth
+%\DefSkill{PickFabric}{40}{Pick up fabric or cloth}{Manipulation}
+
+% Place a tiny known object
+\DefSkill{PlaceTinyKnown}{20}{Place a tiny known object}{Manipulation}
+
+% Place a normal-sized (hardy) known object
+\DefSkill{PlaceNormalKnown}{15}{Place a normal-sized (hardy) known object}{Manipulation}
+
+% Place a large known object
+\DefSkill{PlaceLargeKnown}{15}{Place a large known object}{Manipulation}
+
+% Place a heavy known object
+\DefSkill{PlaceHeavyKnown}{20}{Place a heavy known object}{Manipulation}
+
+% Place a tiny unknown object
+\DefSkill{PlaceTinyUnknown}{25}{Place a tiny unknown object}{Manipulation}
+
+% Place a normal-sized (hardy) unknown object
+\DefSkill{PlaceNormalUnknown}{25}{Place a normal-sized (hardy) unknown object}{Manipulation}
+
+% Place a large unknown object
+%\DefSkill{PlaceLargeUnknown}{25}{Place a large unknown object}{Manipulation}
+
+% Place a heavy unknown object
+%\DefSkill{PlaceHeavyUnknown}{30}{Place a heavy unknown object}{Manipulation}
+
+% Place fabric into a container (or into a washing machine/dryer)
+%\DefSkill{PlaceFabricContainer}{25}{Place fabric into a container (or into a washing machine/dryer)}{Manipulation}
+
+% Pour something into a container
+\DefSkill{PourIntoContainer}{40}{Pour something into a container}{Manipulation}
+
+% Place a tiny object into a container
+\DefSkill{PlaceTinyObjectInContainer}{40}{Place a tiny object into a small sized container}{Manipulation}
+
+% Receive an object by a human hand over
+\DefSkill{ReceiveObjectHandover}{5}{Receive an object by a human hand over}{Manipulation}
+
+% Pass an object to a human hand back
+\DefSkill{PassObjectHandback}{5}{Pass an object to a human hand back}{Manipulation}
+
+% Operate a simple mechanism (e.g., press a button, pull a lever)
+%\DefSkill{OperateSimpleMechanism}{20}{Operate a simple mechanism (e.g., press a button, pull a lever)}{Manipulation}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% Furniture Actions %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Open an entrance door
+\DefSkill{OpenEntranceDoor}{20}{Open an entrance door}{Furniture Actions}
+
+% Close an entrance door
+\DefSkill{CloseEntranceDoor}{30}{Close an entrance door}{Furniture Actions}
+
+% Open a shelf door
+\DefSkill{OpenShelfDoor}{45}{Open a shelf door}{Furniture Actions}
+
+% Close a shelf door
+\DefSkill{CloseShelfDoor}{20}{Close a shelf door}{Furniture Actions}
+
+% Pulling out a rack
+\DefSkill{PullOutRack}{45}{Pulling out a rack}{Furniture Actions}
+
+% Pushing in a rack
+\DefSkill{PushInRack}{20}{Pushing in a rack}{Furniture Actions}
+
+% Open dishwasher door
+\DefSkill{OpenDishwasherDoor}{60}{Open dishwasher door}{Furniture Actions}
+
+% Close dishwasher door
+\DefSkill{CloseDishwasherDoor}{80}{Close dishwasher door}{Furniture Actions}
+
+% Open a washing machine door
+%\DefSkill{OpenWashingMachineDoor}{50}{Open a washing machine door}{Furniture Actions}
+
+% Close a washing machine door
+%\DefSkill{CloseWashingMachineDoor}{80}{Close a washing machine door}{Furniture Actions}
+
+% Start a washing machine
+%\DefSkill{StartWashingMachine}{20}{Start a washing machine}{Furniture Actions}
+
+% Operate a vacuum cleaner
+% \DefSkill{OperateVacuumCleaner}{10}{Operate a vacuum cleaner}{Furniture Actions}
+
+
+%%%%%%%%%%%%%%%%%%%%%
+%%%% Using Tools %%%%
+%%%%%%%%%%%%%%%%%%%%%
+
+% Pushing a light switch
+\DefSkill{PushLightSwitch}{10}{Pushing a light switch}{Using Tools}
+
+% Pushing a small button (e.g., on a washing machine)
+\DefSkill{PushButton}{10}{Pushing a small button (e.g., on a washing machine)}{Using Tools}
+
+% Starting an electric kettle
+%\DefSkill{StartElectricKettle}{10}{Starting an electric kettle}{Using Tools}
+
+% Dusting surfaces
+%\DefSkill{DustSurfaces}{60}{Dusting surfaces}{Using Tools}
+
+% Wiping the table surface
+\DefSkill{WipeTableSurface}{60}{Wiping the table surface}{Using Tools}
+
+
+%%%%%%%%%%%%%%%%%%%
+%%%% Penalties %%%%
+%%%%%%%%%%%%%%%%%%%
+
+% Penalty for Calling a Human to Help with the Task
+\DefSkill{PenaltyCallHumanHelp}{-20}{Penalty for calling a human to help with the task}{Penalty}
+
+% Penalty for Bypassing Speech Recognition
+\DefSkill{PenaltyBypassSpeechRec}{-40}{Penalty for bypassing speech recognition}{Penalty}
+
+% Penalty for accidentially Dropping an Object
+\DefSkill{PenaltyDropObject}{-20}{Penalty for dropping an object}{Penalty}
+
+% Penalty for Damaging an Object
+\DefSkill{PenaltyDamageObject}{-50}{Penalty for damaging an object}{Penalty}
+
+% Penalty for Leaving an Object in a Dangerous Position
+%\DefSkill{PenaltyDangerousPosition}{-30}{Penalty for leaving an object in a dangerous position}{Penalty}
+
+% Penalty for Spilling Substance While Pouring
+\DefSkill{PenaltySpillWhilePouring}{-20}{Penalty for spilling substance while pouring}{Penalty}
+
+% Penalty for Not Detecting a Person
+\DefSkill{PenaltyNotDetectPerson}{-20}{Penalty for not detecting a person (no awareness)}{Penalty}
+
+% Penalty for Not Recognizing a Person
+\DefSkill{PenaltyNotRecognizePerson}{-10}{Penalty for not recognizing a person (unable to retrieve associated, stored information)}{Penalty}
+
+% Penalty for Bypassing Manipulation but Succeeding with Perception and Planning
+\DefSkill{PenaltyBypassManipulation}{-10}{Penalty for bypassing manipulation, but succeeding with the perception (and macro planning, so telling what should be done)}{Penalty}
+
+% Penalty for Misunderstanding the Context
+\DefSkill{PenaltyMisunderstandContext}{-10}{Penalty for misunderstanding the context}{Penalty}
+
+% Penalty for Unfriendly Behavior or Lack of Attention to Interaction Partner
+\DefSkill{PenaltyUnfriendlyBehavior}{-30}{Penalty for behaving unfriendly or not attending to interaction partner}{Penalty}
+
+% Penalty for Touching a Human
+%\DefSkill{PenaltyTouchHuman}{-25}{Penalty for touching a human}{Penalty}
+
+% Penalty for Colliding with a Static Obstacle
+%\DefSkill{PenaltyCollideStatic}{-40}{Penalty for colliding with a static obstacle}{Penalty}
+
+% Penalty for Colliding with a Dynamic Obstacle
+%\DefSkill{PenaltyCollideDynamic}{-30}{Penalty for colliding with a dynamic obstacle}{Penalty}
+
+% Penalty for Leaving the Designated Area
+%\DefSkill{PenaltyLeaveArea}{-50}{Penalty for leaving the designated area}{Penalty}
+
+% Penalty for Incorrect Task Execution
+%\DefSkill{PenaltyIncorrectTask}{-25}{Penalty for incorrect task execution}{Penalty}
diff --git a/skill_dict/skill_macros.tex b/skill_dict/skill_macros.tex
new file mode 100644
index 00000000..339fbb1d
--- /dev/null
+++ b/skill_dict/skill_macros.tex
@@ -0,0 +1,93 @@
+%\documentclass{article}
+\usepackage{etoolbox}
+\usepackage{xparse}
+
+\newcounter{skillcounter}
+\newcommand{\skills}{}
+\newcommand{\skillcategories}{}
+
+
+% Usage:
+% \DefSkill{SkillId}{Points}{Default Description}{Category}
+% Define a skill
+\newcommand{\DefSkill}[4]{%
+  \stepcounter{skillcounter}%
+  \expandafter\edef\csname skillnum#1\endcsname{\arabic{skillcounter}}
+  \csdef{skillname#1}{#1}
+  \csdef{skillpoints#1}{#2}
+  \csdef{skilldesc#1}{#3}
+  \csdef{skillcat#1}{#4}
+  \listadd{\skills}{#1}
+  \listcsadd{skillcatlist#4}{#1}
+  % Add category to the list if not already present
+  \ifinlist{#4}{\skillcategories}{}{\listgadd{\skillcategories}{#4}}
+}
+
+\newtoggle{showcategory}
+
+% \SkillTarget is similar to \Skill, but it is used during the definition and a label is added
+% This is a helper and you usually don't need to sue it
+\newcommand{\SkillTarget}[1]{%
+  \ifcsdef{skillname#1}{%
+    \renewcommand{\labelitemi}{} % Hide bullet points
+    \item \begin{tabularx}{\linewidth}{@{}lXr@{}}
+      \label{skill:#1}
+      \csuse{skillnum#1}. & \textbf{\csuse{skillname#1}} & \textbf{\csuse{skillpoints#1}} \\ % Points: \\
+      & Description: \csuse{skilldesc#1} & 
+      \iftoggle{showcategory}{\\ & Category: \csuse{skillcat#1} &}{} 
+    \end{tabularx}
+  }{%
+    \item \textbf{Skill not found: #1}
+  }
+}
+
+
+% Render the dictionary
+\newcommand{\RenderDictionary}{%
+  \toggletrue{showcategory}
+  \section*{Skill Dictionary}
+  \begin{itemize}
+    \forlistloop{\SkillTarget}{\skills}
+  \end{itemize}
+  \togglefalse{showcategory}
+}
+
+\newcommand{\RenderCategory}[1]{%
+  \subsection*{#1}
+  \begin{itemize}
+    \forlistcsloop{\SkillTarget}{skillcatlist#1}
+  \end{itemize}
+}
+
+% Render all categories
+\newcommand{\RenderCategoryDictionary}{%
+  \renewcommand*{\do}[1]{\RenderCategory{##1}}
+  \dolistloop{\skillcategories}
+}
+
+% \Skill is a reference to a defined skill. It will link to the Skill Dictionary
+
+% Example usage:
+% Pick up Dish Item (Selection Group)
+%\begin{Group}{PickupDishItem}{Pick up various dish items from the table}{30}{Selection}
+%    \Skill{PickTinyKnown}[Pick up a Spoon, Fork or a Knife]
+%\end{Group}
+
+% \Skill{SkillID}[Custom Description]
+\NewDocumentCommand{\Skill}{m o}{%
+  \ifcsdef{skillname#1}{%
+    \item \begin{tabularx}{\linewidth}{@{}p{1cm}Xr@{}}
+      \hyperref[skill:#1]{\csuse{skillnum#1}} & % ID
+      \IfNoValueTF{#2}{%
+        \csuse{skilldesc#1} % Description
+      }{%
+        #2 % Custom Description
+      } & 
+      \csuse{skillpoints#1} % Points
+    \end{tabularx}
+  }{%
+    \item \textbf{\textcolor{red}{Error: Skill with ID '#1' not found.}} \\
+    \textcolor{red}{Please define the skill using \textbackslash DefSkill\{skillId\}\{Points\}\{Default Description\}\{Category\} or check for typos.} \\
+    \textcolor{red}{You can use the defined skill with \textbackslash Skill\{SkillId\}[Sheet specific description] within a Group environment}
+  }
+}