From d7dd835da80e46795cdd96316c3b60052d22ed7e Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sat, 17 Feb 2024 16:39:45 +0100 Subject: [PATCH 01/14] Added scripts and workflows to work with two rules files --- .ci/tex-to-pdf.sh | 2 +- .github/workflows/build_entry_rules.yml | 27 ++++ .../{build.yml => build_main_rules.yml} | 8 +- specific_preamble_onstage_entry_rules.tex | 129 ++++++++++++++++++ specific_preamble_onstage_rules.tex | 129 ++++++++++++++++++ 5 files changed, 293 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/build_entry_rules.yml rename .github/workflows/{build.yml => build_main_rules.yml} (84%) create mode 100644 specific_preamble_onstage_entry_rules.tex create mode 100644 specific_preamble_onstage_rules.tex diff --git a/.ci/tex-to-pdf.sh b/.ci/tex-to-pdf.sh index e7ca170..067efc2 100755 --- a/.ci/tex-to-pdf.sh +++ b/.ci/tex-to-pdf.sh @@ -14,7 +14,7 @@ dblatex -T db2latex $OUTPUT_FILE.xml -t tex --texstyle=./manual.sty -p ../custom # (marked by the \mainmatter command) and create a file without it. cat $OUTPUT_FILE.tex | awk 'f;/\\mainmatter/{f=1}' > $OUTPUT_FILE"_without_preamble.tex" # Concat the standardized preamble with the "without_preamble" version of the file -cat ../preamble.tex $OUTPUT_FILE"_without_preamble.tex" > $OUTPUT_FILE.tex +cat "../specific_preamble_"$OUTPUT_FILE".tex" ../preamble.tex $OUTPUT_FILE"_without_preamble.tex" > $OUTPUT_FILE.tex texliveonfly $OUTPUT_FILE.tex pdflatex $OUTPUT_FILE.tex pdflatex $OUTPUT_FILE.tex diff --git a/.github/workflows/build_entry_rules.yml b/.github/workflows/build_entry_rules.yml new file mode 100644 index 0000000..1f28377 --- /dev/null +++ b/.github/workflows/build_entry_rules.yml @@ -0,0 +1,27 @@ +on: + push: + paths: + - 'onstage_entry_rules.adoc' + - 'preamble.tex' + - 'specific_preamble_onstage_entry_rules.tex' + +jobs: + build: + name: build + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + + - name: build the rules + run: | + docker run -v $(pwd):/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex.sh onstage_rules + docker run -v $(pwd):/documents mrshu/texlive-dblatex .ci/tex-to-pdf.sh onstage_rules + mkdir -p dist/${GITHUB_REF#refs/heads/}/ + cp -R ./media rules_documents/* dist/${GITHUB_REF#refs/heads/}/ + + - name: publish the rules + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./dist + keep_files: True diff --git a/.github/workflows/build.yml b/.github/workflows/build_main_rules.yml similarity index 84% rename from .github/workflows/build.yml rename to .github/workflows/build_main_rules.yml index 1602575..1b3546a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build_main_rules.yml @@ -1,4 +1,10 @@ -on: [push] +on: + push: + paths: + - 'onstage_rules.adoc' + - 'preamble.tex' + - 'specific_preamble_onstage_rules.tex' + jobs: build: name: build diff --git a/specific_preamble_onstage_entry_rules.tex b/specific_preamble_onstage_entry_rules.tex new file mode 100644 index 0000000..0dc68d0 --- /dev/null +++ b/specific_preamble_onstage_entry_rules.tex @@ -0,0 +1,129 @@ +%% Preamble %% +%% A minimal LaTeX preamble +%% Some packates are needed to implement +%% Asciidoc features + +\documentclass{article} + +\usepackage[utf8]{inputenc} + +\usepackage{graphicx} +\usepackage{multirow} +\usepackage{tabularx} +\usepackage{color} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsxtra} +\usepackage{amsfonts} +\usepackage{wasysym} +\usepackage{isomath} +\usepackage{mathtools} +\usepackage{txfonts} +\usepackage{upgreek} +\usepackage{enumerate} +\usepackage{tensor} +\usepackage{fancyhdr} +\usepackage{lastpage} +\usepackage{changes} +\usepackage{etoolbox} +\usepackage{soul} + +\let\openbox\relax +\usepackage[letterpaper, margin=1in, headheight=47pt]{geometry} +\usepackage[hyperlink]{manual} + +\usepackage{titlesec} + +% No paragraph indent +\setlength{\parindent}{0cm} +% Bigger paragraph skips +\setlength{\parskip}{0.25cm} + +\usepackage[defaultsans]{droidsans} +\renewcommand{\familydefault}{\sfdefault} + + +% Set paragraph numbers correctly (skip susubsection) +\setcounter{secnumdepth}{4} +\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} +\renewcommand\thesubsubsection{ +\ifnum \value{subsubsection}=0 + \thesubsection +\else + \thesubsection.\Alph{subsubsection}\relax +\fi} + +\newcommand*{\p}{\paragraph{}} + +\newlength\titleindent +\setlength\titleindent{1.2cm} + +\definecolor{mygray}{gray}{0.55} +\titleformat{\paragraph}[runin] +{\normalfont\footnotesize}{\llap{\parbox{\titleindent}{\textcolor{mygray}{\theparagraph}\hfill}}}{0em}{} + +\titlespacing{\paragraph}{0pt}{0em}{0em} + +% End of paragraph numbers setting + +\pagestyle{fancy} + +\lhead{} +\chead{} +\rhead{\includegraphics[width=8cm]{media/robocup_header.png}} +\renewcommand{\headrulewidth}{0pt} +%\renewcommand{\topmargin}{-20pt} + +\rfoot{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} +\lfoot{\textit{Final rules as of \today}} +\cfoot{} + +% First page +\fancypagestyle{firststyle}{% + \fancyhf{} + \fancyfoot[L]{\textit{Final rules as of \today}} + \fancyfoot[R]{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} +} + +\title{\vspace{-5ex}RoboCupJunior OnStage Rules 2024\vspace{-5ex}} +\date{\vspace{-2ex}} + +\definecolor{color-1}{rgb}{1,1,1} +\definecolor{color-2}{rgb}{0,0,0.5} +\definecolor{color-3}{rgb}{0.07,0.33,0.8} +\definecolor{color-4}{rgb}{0.13,0.13,0.13} +\definecolor{red}{rgb}{1,0,0} +\definecolor{color-6}{rgb}{0,0,1} + + + +\begin{document} +\maketitle +\thispagestyle{firststyle} + +\begin{tabular}{rl} +\resizebox{0.50\textwidth}{!}{ +\begin{tabular}{lr} + \multicolumn{2}{l}{\textbf{OnStage League Committee 2024:}}\\ + Christian Häußler & Germany (CHAIR)\\ + Nicky Hughes & UK\\ + Mauricio Gutierrez & Mexico\\ + Amy Eguchi & USA\\ + Thundluck Sereevoravitgul & Thailand\\ +\end{tabular}} +& +\resizebox{0.50\textwidth}{!}{ +\begin{tabular}{lr} + \multicolumn{2}{l}{\textbf{OnStage League Committee 2023:}}\\ + Christian Häußler & Germany (CHAIR)\\ + Nicky Hughes & UK\\ + Nicolas Doyon & Canada\\ + Amy Eguchi & USA\\ + Thundluck Sereevoravitgul & Thailand\\ + Koto Sakamoto & Japan\\ +\end{tabular}} + + +\end{tabular} + +\vspace{20pt} diff --git a/specific_preamble_onstage_rules.tex b/specific_preamble_onstage_rules.tex new file mode 100644 index 0000000..0dc68d0 --- /dev/null +++ b/specific_preamble_onstage_rules.tex @@ -0,0 +1,129 @@ +%% Preamble %% +%% A minimal LaTeX preamble +%% Some packates are needed to implement +%% Asciidoc features + +\documentclass{article} + +\usepackage[utf8]{inputenc} + +\usepackage{graphicx} +\usepackage{multirow} +\usepackage{tabularx} +\usepackage{color} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsxtra} +\usepackage{amsfonts} +\usepackage{wasysym} +\usepackage{isomath} +\usepackage{mathtools} +\usepackage{txfonts} +\usepackage{upgreek} +\usepackage{enumerate} +\usepackage{tensor} +\usepackage{fancyhdr} +\usepackage{lastpage} +\usepackage{changes} +\usepackage{etoolbox} +\usepackage{soul} + +\let\openbox\relax +\usepackage[letterpaper, margin=1in, headheight=47pt]{geometry} +\usepackage[hyperlink]{manual} + +\usepackage{titlesec} + +% No paragraph indent +\setlength{\parindent}{0cm} +% Bigger paragraph skips +\setlength{\parskip}{0.25cm} + +\usepackage[defaultsans]{droidsans} +\renewcommand{\familydefault}{\sfdefault} + + +% Set paragraph numbers correctly (skip susubsection) +\setcounter{secnumdepth}{4} +\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} +\renewcommand\thesubsubsection{ +\ifnum \value{subsubsection}=0 + \thesubsection +\else + \thesubsection.\Alph{subsubsection}\relax +\fi} + +\newcommand*{\p}{\paragraph{}} + +\newlength\titleindent +\setlength\titleindent{1.2cm} + +\definecolor{mygray}{gray}{0.55} +\titleformat{\paragraph}[runin] +{\normalfont\footnotesize}{\llap{\parbox{\titleindent}{\textcolor{mygray}{\theparagraph}\hfill}}}{0em}{} + +\titlespacing{\paragraph}{0pt}{0em}{0em} + +% End of paragraph numbers setting + +\pagestyle{fancy} + +\lhead{} +\chead{} +\rhead{\includegraphics[width=8cm]{media/robocup_header.png}} +\renewcommand{\headrulewidth}{0pt} +%\renewcommand{\topmargin}{-20pt} + +\rfoot{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} +\lfoot{\textit{Final rules as of \today}} +\cfoot{} + +% First page +\fancypagestyle{firststyle}{% + \fancyhf{} + \fancyfoot[L]{\textit{Final rules as of \today}} + \fancyfoot[R]{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} +} + +\title{\vspace{-5ex}RoboCupJunior OnStage Rules 2024\vspace{-5ex}} +\date{\vspace{-2ex}} + +\definecolor{color-1}{rgb}{1,1,1} +\definecolor{color-2}{rgb}{0,0,0.5} +\definecolor{color-3}{rgb}{0.07,0.33,0.8} +\definecolor{color-4}{rgb}{0.13,0.13,0.13} +\definecolor{red}{rgb}{1,0,0} +\definecolor{color-6}{rgb}{0,0,1} + + + +\begin{document} +\maketitle +\thispagestyle{firststyle} + +\begin{tabular}{rl} +\resizebox{0.50\textwidth}{!}{ +\begin{tabular}{lr} + \multicolumn{2}{l}{\textbf{OnStage League Committee 2024:}}\\ + Christian Häußler & Germany (CHAIR)\\ + Nicky Hughes & UK\\ + Mauricio Gutierrez & Mexico\\ + Amy Eguchi & USA\\ + Thundluck Sereevoravitgul & Thailand\\ +\end{tabular}} +& +\resizebox{0.50\textwidth}{!}{ +\begin{tabular}{lr} + \multicolumn{2}{l}{\textbf{OnStage League Committee 2023:}}\\ + Christian Häußler & Germany (CHAIR)\\ + Nicky Hughes & UK\\ + Nicolas Doyon & Canada\\ + Amy Eguchi & USA\\ + Thundluck Sereevoravitgul & Thailand\\ + Koto Sakamoto & Japan\\ +\end{tabular}} + + +\end{tabular} + +\vspace{20pt} From 3a584bdacf2b1f2144ee454d618a729eca546e1c Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sat, 17 Feb 2024 19:56:23 +0100 Subject: [PATCH 02/14] Modified files and file structure to support multiple rule documents in one repo. --- .ci/adoc-to-tex.sh | 3 +- .ci/tex-to-pdf.sh | 2 +- .github/workflows/build_entry_rules.yml | 4 +- build_rules_on_windows.bat | 88 ++- committee_list.tex | 25 + onstage_entry_rules/header_footer.tex | 18 + onstage_entry_rules/rules.adoc | 533 ++++++++++++++++++ onstage_entry_rules/title.tex | 3 + onstage_rules/header_footer.tex | 18 + .../rules.adoc | 0 onstage_rules/title.tex | 3 + preamble.tex | 51 +- specific_preamble_onstage_entry_rules.tex | 129 ----- specific_preamble_onstage_rules.tex | 129 ----- 14 files changed, 682 insertions(+), 324 deletions(-) create mode 100644 committee_list.tex create mode 100644 onstage_entry_rules/header_footer.tex create mode 100644 onstage_entry_rules/rules.adoc create mode 100644 onstage_entry_rules/title.tex create mode 100644 onstage_rules/header_footer.tex rename onstage_rules.adoc => onstage_rules/rules.adoc (100%) create mode 100644 onstage_rules/title.tex delete mode 100644 specific_preamble_onstage_entry_rules.tex delete mode 100644 specific_preamble_onstage_rules.tex diff --git a/.ci/adoc-to-tex.sh b/.ci/adoc-to-tex.sh index 47a6ac0..9ce356b 100755 --- a/.ci/adoc-to-tex.sh +++ b/.ci/adoc-to-tex.sh @@ -4,7 +4,8 @@ mkdir -p tmp rules_documents set -euo pipefail OUTPUT_FILE=$1 -cp $1.adoc tmp/$1.adoc + +cp $OUTPUT_FILE/rules.adoc tmp/$OUTPUT_FILE.adoc cd tmp diff --git a/.ci/tex-to-pdf.sh b/.ci/tex-to-pdf.sh index 067efc2..a8a46cd 100755 --- a/.ci/tex-to-pdf.sh +++ b/.ci/tex-to-pdf.sh @@ -14,7 +14,7 @@ dblatex -T db2latex $OUTPUT_FILE.xml -t tex --texstyle=./manual.sty -p ../custom # (marked by the \mainmatter command) and create a file without it. cat $OUTPUT_FILE.tex | awk 'f;/\\mainmatter/{f=1}' > $OUTPUT_FILE"_without_preamble.tex" # Concat the standardized preamble with the "without_preamble" version of the file -cat "../specific_preamble_"$OUTPUT_FILE".tex" ../preamble.tex $OUTPUT_FILE"_without_preamble.tex" > $OUTPUT_FILE.tex +cat "../preamble.tex" "../"$OUTPUT_FILE"/header_footer.tex" "../"$OUTPUT_FILE"/title.tex" "../committee_list.tex" $OUTPUT_FILE"_without_preamble.tex" > $OUTPUT_FILE.tex texliveonfly $OUTPUT_FILE.tex pdflatex $OUTPUT_FILE.tex pdflatex $OUTPUT_FILE.tex diff --git a/.github/workflows/build_entry_rules.yml b/.github/workflows/build_entry_rules.yml index 1f28377..d2628ee 100644 --- a/.github/workflows/build_entry_rules.yml +++ b/.github/workflows/build_entry_rules.yml @@ -14,8 +14,8 @@ jobs: - name: build the rules run: | - docker run -v $(pwd):/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex.sh onstage_rules - docker run -v $(pwd):/documents mrshu/texlive-dblatex .ci/tex-to-pdf.sh onstage_rules + docker run -v $(pwd):/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex.sh onstage_entry_rules + docker run -v $(pwd):/documents mrshu/texlive-dblatex .ci/tex-to-pdf.sh onstage_entry_rules mkdir -p dist/${GITHUB_REF#refs/heads/}/ cp -R ./media rules_documents/* dist/${GITHUB_REF#refs/heads/}/ diff --git a/build_rules_on_windows.bat b/build_rules_on_windows.bat index 5217418..45aba32 100644 --- a/build_rules_on_windows.bat +++ b/build_rules_on_windows.bat @@ -1,4 +1,5 @@ @echo off +setlocal enabledelayedexpansion REM Set the path to the Git repository dynamically set REPO_PATH=%CD% @@ -9,22 +10,77 @@ set REPO_PATH=%REPO_PATH:\=/% REM Replace C: with /mnt/c/ set REPO_PATH=%REPO_PATH:C:=/mnt/c% -echo Running commands in WSL... +wsl which dos2unix > NUL 2>&1 +if %ERRORLEVEL% NEQ 0 ( + goto installdos2unix + ) else ( + goto selectrules + ) -echo dos2unix is required to build the rules. Do you want to check if dos2unix is installed and install if necessary? -set /p performCheck=Type 'y' for yes otherwise press ENTER: +:installdos2unix +echo dos2unix is required to build the rules. Do you want to install it? +set /p performInstallationNew=Type 'y' for yes: +if "%performInstallationNew%"=="y" ( + echo Installing dos2unix... + wsl sudo apt-get update + wsl sudo apt-get install dos2unix + echo. + echo. + goto checkinstallation +) else ( + echo. + echo. + echo Skipped dos2unix installation. Can not build rules. + goto :end +) -if /i "%performCheck%"=="y" ( - wsl /usr/bin/dos2unix --version > /dev/null 2>&1 - if %ERRORLEVEL% NEQ 0 ( - echo Installing dos2unix... - wsl sudo apt-get update - wsl sudo apt-get install dos2unix +:checkinstallation +wsl which dos2unix > NUL 2>&1 +if %ERRORLEVEL% NEQ 0 ( + echo Installation failed. Can not build the rules. + goto end +) else goto selectrules + +:selectrules +echo Available rule folders: +set "folderIndex=1" +rem Initialize an array to store folder names +setlocal enabledelayedexpansion +set "folderArray=" +for /d %%i in (*) do ( + set "folderName=%%i" + rem Skip folders starting with a dot or named "icons", "media", or "rules_documents" + if "!folderName:~0,1!" neq "." ( + if /i "!folderName!" neq "icons" ( + if /i "!folderName!" neq "media" ( + if /i "!folderName!" neq "rules_documents" ( + echo [!folderIndex!] %%i + rem Store folder name in array with corresponding index + set "folderArray[!folderIndex!]=%%i" + set /a "folderIndex+=1" + ) + ) + ) ) +) + +echo. +set /p selection=Enter the number corresponding to the folder you want to select: + +rem Get the selected folder name based on user input +set "selectedFolder=" +if defined folderArray[%selection%] ( + set "selectedFolder=!folderArray[%selection%]!" ) else ( - echo Skipped dos2unix check and installation. + echo Invalid selection. + pause + goto :eof ) +echo. +echo You selected: %selectedFolder% +echo. +echo. REM Create temporary copies of .sh scripts with Linux-style line endings using wsl cp (because Github checkout might automatically change them to Windows style which will stop the scripts from working) wsl cp %REPO_PATH%/.ci/adoc-to-tex.sh %REPO_PATH%/.ci/adoc-to-tex-temp.sh @@ -36,14 +92,20 @@ wsl dos2unix %REPO_PATH%/.ci/tex-to-pdf-temp.sh REM Run commands in WSL with sudo for Docker @echo Building rules -wsl sudo docker run -v %REPO_PATH%:/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex-temp.sh onstage_rules -wsl sudo docker run -v %REPO_PATH%:/documents mrshu/texlive-dblatex .ci/tex-to-pdf-temp.sh onstage_rules +wsl sudo docker run -v %REPO_PATH%:/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex-temp.sh %selectedFolder% +wsl sudo docker run -v %REPO_PATH%:/documents mrshu/texlive-dblatex .ci/tex-to-pdf-temp.sh %selectedFolder% REM Clean up temporary files wsl rm %REPO_PATH%/.ci/adoc-to-tex-temp.sh wsl rm %REPO_PATH%/.ci/tex-to-pdf-temp.sh -echo WSL commands completed. +echo. +echo. +echo. +echo. +:end REM Pause the script and wait for any key to be pressed pause + +endlocal \ No newline at end of file diff --git a/committee_list.tex b/committee_list.tex new file mode 100644 index 0000000..d262288 --- /dev/null +++ b/committee_list.tex @@ -0,0 +1,25 @@ +\begin{tabular}{rl} +\resizebox{0.50\textwidth}{!}{ +\begin{tabular}{lr} + \multicolumn{2}{l}{\textbf{OnStage League Committee 2024:}}\\ + Christian Häußler & Germany (CHAIR)\\ + Nicky Hughes & UK\\ + Mauricio Gutierrez & Mexico\\ + Amy Eguchi & USA\\ + Thundluck Sereevoravitgul & Thailand\\ +\end{tabular}} +& +\resizebox{0.50\textwidth}{!}{ +\begin{tabular}{lr} + \multicolumn{2}{l}{\textbf{OnStage League Committee 2023:}}\\ + Christian Häußler & Germany (CHAIR)\\ + Nicky Hughes & UK\\ + Nicolas Doyon & Canada\\ + Amy Eguchi & USA\\ + Thundluck Sereevoravitgul & Thailand\\ + Koto Sakamoto & Japan\\ +\end{tabular}} + +\end{tabular} + +\vspace{20pt} diff --git a/onstage_entry_rules/header_footer.tex b/onstage_entry_rules/header_footer.tex new file mode 100644 index 0000000..2493179 --- /dev/null +++ b/onstage_entry_rules/header_footer.tex @@ -0,0 +1,18 @@ +\lhead{} +\chead{} +\rhead{\includegraphics[width=8cm]{media/robocup_header.png}} +\renewcommand{\headrulewidth}{0pt} +%\renewcommand{\topmargin}{-20pt} + +\rfoot{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} +\lfoot{\textit{DRAFT rules as of \today}} +\cfoot{} + +% First page +\fancypagestyle{firststyle}{% + \fancyhf{} + \fancyfoot[L]{\textit{DRAFT rules as of \today}} + \fancyfoot[R]{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} +} + +\vspace{20pt} \ No newline at end of file diff --git a/onstage_entry_rules/rules.adoc b/onstage_entry_rules/rules.adoc new file mode 100644 index 0000000..97f1e93 --- /dev/null +++ b/onstage_entry_rules/rules.adoc @@ -0,0 +1,533 @@ += RoboCupJunior OnStage Entry Rules 2024 +{docdate} +:toc: left +:sectanchors: +:sectlinks: +:xrefstyle: full +:section-refsig: Section +:sectnums: + +ifdef::basebackend-html[] +++++ + + +++++ +endif::basebackend-html[] + +:icons: font +:numbered: + +These are the official rules for the RoboCupJunior OnStage events in 2024. + +Major changes from the 2023 OnStage rules are written in *[red]#red#*. + +*Teams should make sure to review _ALL_ pages of these rules.* The rules have been changed to deepen and broaden the educational benefits of competing in RoboCupJunior. It focuses on the evolving technologies available in our time. + +*The International Original Rules (in English) have priority over [.underline]#any# translations.* +These rules are the official rules of the RoboCup Federation. + +*The rules, score sheets, and all forms of documentation can be downloaded from the official RoboCupJunior website* (https://junior.robocup.org). Each team has a responsibility to verify the latest version of these documents prior to the competition, as changes may be made at any moment. Teams are encouraged to study all documents in detail. + +[discrete] +== RoboCupJunior Forum + +For inquiries and questions about the rules or competition updates, the *Official RoboCupJunior forum* (https://junior.forum.robocup.org/) can be used to contact the OnStage League Committee. All official communication from the committee will be published here before and during the competition season. + +[discrete] +== RoboCupJunior OnStage YouTube channel + +Examples of good performances and documentation can be found on the *Official RoboCupJunior OnStage YouTube channel* (https://www.youtube.com/@rcjonstage). + +[discrete] +== Overview + +RoboCupJunior OnStage invites teams to design, build and program creative and autonomous physical robots. The objective is to create either a live or streamed, robotic performance that uses a wide variety of technology to engage an audience. This includes a range of possible performances, such as dance, storytelling, theater, or art installations. The performance may involve music, but this is optional. The league is intended to be open-ended. Teams are encouraged to be creative, innovative, and entertaining, in both the design of the robots and in the design of the overall performance. + +An OnStage performance should make use of innovative technologies or use technology in new innovative ways not previously developed in OnStage performances, while adding value to the performance. Innovation can be achieved with clear evidence of testing, research and development and can be an inspiration for future competitors. + +An OnStage Performance must showcase the implementation and integration of robotic features in ways that visually enhance or add value and contribute to the theme or story being portrayed. {++More information about the selection of the features can be found in++} <>. + +During the International RoboCupJunior OnStage Competition, teams also take part in a SuperTeam Challenge. The SuperTeam Challenge is a robotic performance created by a group of two or more cooperating teams from different regions. The SuperTeams spend a short period of time for the collaborative performance creation. More details will be released before the International RoboCupJunior competition {--on the official website--}. + +From 2021 onwards, there will be no sub-leagues in RoboCupJunior OnStage. + +[cols="2", frame="none", grid="none"] +|=== +|image:media/OnStage/StagePerfLeft.jpg[width=230] +|image:media/OnStage/StagePerfRight.jpg[width=230] +|=== + +[[judging-overview]] +== Judging Overview + +All teams are judged in the following areas: Technical Description Poster, Technical Demonstration Video, Technical Interview and the OnStage Performance. Teams must highlight four of their robot(s) *features* in the work they present to the judges. Ask the following question - “What do we believe are our best system/sensor integration, electromechanical design, interaction, or software solutions implemented on our robot(s)?” The aim should be to present how the chosen features are integrated to enhance the quality of the performance in unique and innovative ways. Examples of features include, but are not limited to: +[compact] +- Locomotion +- Object/human detection and avoidance +- Human, robot and/or prop interaction +- Manipulation (grabbing/grasping) +- Visual/audio recognition +- Localization and mapping + +Teams should describe and provide reasoning for their four chosen features in the Technical Description Poster and during their Technical Demonstration Video, before being judged on the implementation of these features during the Performance. In addition, teams should demonstrate their understanding of their systems in the Technical Interview. + +For clarification on a teams’ features, please do not hesitate to reach out to the OnStage League committee using the RoboCupJunior Forum. + +[[general]] +== General + +It is the responsibility of the participating team(s) and regional representatives to verify the participants' eligibility requirements, which are as follows: + +[[team-size-membership]] +=== Team Size & Membership + +Each team must have *2 to 5 members*. Each team member needs to carry a technical role within the team, such as Electrical, Mechanical, Software etc. Each participant can join only one team. No members can be shared between teams and/or leagues. + +[[age-requirement]] +=== Age requirement + +All team members must be aged 14 to 19 years old (ages as of 1st of July). + +[[general-robocupjunior-rules]] +=== General RoboCupJunior Rules + +All RoboCupJunior OnStage Teams must also comply with the RoboCupJunior General Rules which can be found at: https://junior.robocup.org/robocupjunior-general-rules/ + + +[[authenticity-and-originality]] +=== Authenticity and originality + +{++Teams who, in the opinion of the judges, have knowingly produced duplicate robots, costumes, or performance movements (duplicate music is allowed) of another team will be subject to penalties. This applies to any previous RoboCupJunior Dance or OnStage performance. In case of doubts, the team must be able to provide clear documentation of their preparations and how they have come to their idea.++} + +{++Teams should inform the judges if robotic components have been featured in previous competitions. To gain marks, teams should be prepared to provide insight on how substantial changes have been made between competitions as evidence of the students’ continuing development of the technologies. Teams should specify how innovations have been done with their technologies and provide documentation to support their claims.++} + +[[onstage-performance]] +== OnStage Performance (40% of total score) + +The OnStage Performance is an opportunity to demonstrate the design, construction, and technical aspects of the robot(s) through a performance or stage show. For example, this could be a magic show, theater performance, story, comedy show, dance, or art installation. Teams are encouraged to be creative, innovative and take risks in their use of technology and materials when creating their performances. + +Teams will present a live performance, in which their routine will be judged. Teams will present and demonstrate the four features to be judged, and higher marks will be awarded for the integration of these features and the value that they add to the performance. For more details on this, refer to the OnStage Performance Score Sheet. Teams must show originality, creativity and innovation throughout their performance routine. It is expected that all participating teams perform their best. + +[[stage-performance]] +=== Stage performance + +{++Teams have up to two opportunities to perform before the judges.++} + +The duration of the performance routine must be no less than 1:30 minutes. + +Each team has a total of seven minutes on the stage. This time includes stage set-up, introduction, and performance routine, including any re-starts due to factors under the team’s control, and the time for packing up and clearing the stage. The timer only stops when the entire stage is clear with no remnants from the previous performance. + +When a team is asked to come onto the stage, a RoboCupJunior official starts the timer. + +If the time limit is exceeded due to circumstances outside the team’s control (for example problems with starting the music) there will be no penalty. The judges have the final say on any time penalties. + +Teams wait on the side of the stage before being welcomed on stage. A technician designated by RoboCupJunior officials will start the music and the audiovisual / multimedia presentation for the performance routine. + +Performances will not be live-streamed for general public viewing. Recordings will be edited and released onto the RoboCupJunior OnStage YouTube channel. Teams have an option to request not to publish the recording of their performance {--if they wish--}. + +Teams are strongly encouraged to use the time while they are setting up on the stage to introduce to the audience the performance and the features of their robots. + +Teams must indicate the start of their performance clearly with a “3-2-1" countdown to the judges. + +{++Teams must indicate the end of their performance clearly once it’s over (e.g. everyone coming to the front of the stage / thanking the audience for their attention / …).++} + +[[restarts]] +=== Restarts + +Teams can restart their routine if necessary, at the discretion of the judges. There is no limit on the number of restarts allowed within the stage-time. Penalty marks will be deducted from the score. + +The team must leave the stage after their time on stage has expired. + +[[music-and-multimedia-presentations]] +=== Music and Multimedia presentations + +Teams may use music or video to complement their performance. {--The music should start at the beginning of the performance with a few seconds of silent lead-time.--} + +If a team uses copyrighted music, they should follow the Copyright Law of the region where the event is held. + +Teams are encouraged to provide a visual or multimedia presentation as part of their performance. This can take the form of a video, animation, slideshow, etc. However, the content should be made by the team themselves. + +Interaction between the robots and the visual display is allowed and encouraged. + +{--During on-site presentations,--} A projector and screen or LED-screen is provided. The organizers cannot guarantee the height above the stage or the size of the screen. + +A HDMI and 3.5 mm AUX cable is available on stage through which a laptop or other device can be connected to the display device. The length of the cable cannot be guaranteed. + +If music is used, teams must provide their own audio music source. The preferred transport method is to place the sound or video file on a memory stick as an MP3/MP4 file. The memory stick should be clearly labeled with the team's name and should hold only the required files. It is essential that the music is given to a sound technician or a RoboCupJunior official {~~on the competition setup day~>before the start of a performance session~~}. Teams are encouraged to bring multiple copies of the audio source file. + +[[Stage]] +=== Stage + +The size of the performance stage area is a rectangular area of 5 x 4 meters (m) for robots with the 5 meter side facing the judges. + +//TO DO: fix link to appendix in PDF +There is a line marking the edge of the 5 x 4 meter stage. See <>. + +The floor provided shall be made of a flat (non-glossy) white surface, for example, painted MDF (compressed wood fiber). While floor joints will be made to be as smooth as possible, robots must be prepared for irregularities of up to 5 mm in the floor surface. Whilst every effort will be made to make the stage flat, this may not be possible, and teams should be prepared to cope with this uncertainty. + +Teams should come prepared to calibrate their robots based on the lighting conditions at the venue. + +Teams using compass sensors should be aware that metal components of the staging may affect the compass sensor readings. Teams should come prepared to calibrate such sensors. + +[[robots]] +=== Robots + +Robots must perform autonomously. + +Laptops, notebooks, mobile phones, tablets, Raspberry Pi, and other similar devices can be used as robotic controllers. + +Teams should construct their own robot rather than using the instructions that come with a commercial kit. Teams are encouraged to design their robot appearance by themselves. If a team wants to use a famous character as their robot, the team should pay attention to the copyright of the character. + +A team may have and use any number of robots. Robots may be of any size. However, using multiple robots does not necessarily result in obtaining higher points. Large robots do not count for more. + +[[communication-and-localization]] +=== Communication and Localization + +Teams are encouraged to design their robots to interact with a communication function. Robots are encouraged to communicate with each other during the performance. Suggested and allowed communication protocols are infrared (IR), Bluetooth (LE and classic), ZigBee, {++RFID++} or other localization platforms. + +There must be no communication between off-stage and on-stage devices. + +It is the team’s responsibility to make sure that their communication function does not interfere with other teams' robots when practicing or performing. + +No team is permitted to use other radio frequency (RF) signals (like Wi-Fi or Z waves) as this may interfere with robots in other RoboCup leagues. If you are unsure, please check with the OnStage League Committee before your performance. + +Teams should prepare for disruptions in communication protocols and unavailability of Wifi (as outlined in the general rules) before and during the setup and stage time. + +Any localization beacons or markers for a robot's localization system should be placed within the confines of the stage. + +[[scenery]] +=== Scenery + +{++Interactive props can be used to add value to the performance.++} + +The kind of props that are considered "interactive" are: + +1. Props that interact with robots via sensors +2. Props that interact with robots via communication + +Robots can sense static props to perform a certain task or trigger {~~a performance~>an action~~} provided that they are placed on the defined stage performance area. + +Static props which do not form an integral part of the performance are discouraged since the focus of the performance should be on robots. + +[[robot-autonomy-and-interaction]] +=== Robot Autonomy and Interaction + +Robots may be started manually by human contact, sensor interaction or with remote control at the beginning of the performance. + +During the performance, remote control of a robot is prohibited, including pressing buttons (including keyboards or phone applications) or similar interactions with touch-like sensors. Touch-like sensors are defined as passive sensors that have a logical single function dependent on human actions. + +Humans directly influencing sensors to trigger the progression of the performance will not be rewarded highly. + +Intelligent interaction should be used to dynamically alter the robot's behavior. Robots that interact with their environment and respond accordingly will be highly rewarded. Natural human-robot interaction using sensors responding to human gestures, expressions, sound, or proximity is encouraged. + +Interaction between robots is highly encouraged. Robots are allowed to physically touch and can interact through sensors and wired/wireless communication. + +All robot interactions must be visible to the judges for the entire performance. This includes the initial manual start of each robot. + +Any clarifications regarding this ruling should be directed to the committee before the competition to ensure the interaction is permitted. + +[[humans-on-stage]] +=== Humans on stage + +Human team members may perform with their robots on the stage during the performance. If so, they should make sure not to hide important key components of their robot counterpart(s) from the judges/audience. + +In order to keep the focus on the robots, humans on stage should make sure to follow basic acting guidelines (not blocking the view, not standing with their backs to the audience) and be professional on stage. + +[[deductions]] +=== Deductions + +{++Refer to the scoresheet for the list of deductions.++} {--If a team exceeds the time limits, it will be penalized by the loss of points (see performance score sheet).--} + +All robot movements or interactions that happen outside the performance area will not be considered for the scoring, but will not lead to deductions. + +Teams are reminded that humans triggering the progress of the performance via touch-based sensors will be considered remote-controlled interaction and therefore will be considered an unplanned human interaction {--during the performance--}. + +{++Teams reusing robots without informing the judges in any way will be subject to deductions.++} {--Unless a problem is not the fault of a team, one or more restarts will result in a single score deduction.--} {--A team who is not punctual will be penalized. If the team repeats unpunctual behavior, they risk disciplinary action.--} + +[[preparations-for-the-stage-performance]] +=== Preprarations for the stage performance + +It is the responsibility of the team to ensure that the music and video/presentation is playing correctly before their first performance by liaising with the RoboCupJunior OnStage officials. + +Depending on the configuration of the stage and the sound system at the venue, it is possible that the human starting the robot will not be able to see the RoboCupJunior OnStage official starting the audio source and vice versa. Teams should come prepared for these conditions. {--Teams are recommended to practice their performances on camera or online before presenting their performances at a virtual event. Teams will be informed of the conferencing platform before the competition and should use the platform to check their audio and visual before presenting on stage.--} + +[[practice-on-the-main-stage]] +=== Practice on the Main Stage + +The main performance stage is available for teams to practice on. In fairness to all teams who may wish to practice, a booking sheet is used to reserve the stage for a short practice time. Please be respectful of the allocated time. + +Every team who practices on the main stage is responsible for cleaning it after use. The stage must be fully cleaned for the next team willing to use it. The team who uses the main stage just before starting the performance judging should clean up at least 10 minutes before the judging starts. + +[[content]] +=== Content + +Performances should not include violent, military, threatening, or criminal elements. This includes inappropriate or offensive words (including music) and/or images. + +Participants are asked to carefully consider the wording and messages communicated in any aspect of their performance. What seems acceptable to one group may be offensive to friends from a different country or culture. + +A team whose routine may be deemed inappropriate to any particular group will be asked to change their performance before being allowed to continue in the competition. Teams who wish to clarify their performance theme or elements of their performance may contact the OnStage League Committee *before* the competition. Failure to remove inappropriate content will result in disciplinary action. + +[[saftety-and-power-considerations]] +=== Safety and Power Considerations + +Under no circumstances can *mains electricity* be used during the performance. Every robot should be equipped with some sort of battery power, with a maximum of 15 volts. + +Lead-acid batteries are not considered appropriate unless the team has gained permission from the OnStage League Committee *before* attending the competition for a specific reason. Failure to declare batteries may result in disciplinary actions, including deductions. + +Teams should be aware of the proper handling of lithium batteries to ensure safety. + +Lithium batteries must be transported or moved in safety bags. + +Teams should design their robot in consideration of safety. Relative to the size and capabilities of the robots, teams should consider: +[compact] +- Power Management - Cabling, batteries, emergency stop capabilities +- Electromechanical System Risks - Exposed pinch points, leaks, sharp edges, tripping hazards, appropriate actuators + +Participants should design their robot(s) to be a size that they can easily carry by themselves. Robots should be of a weight that team members can carry and lift onto the stage with ease. + +Robots with flying capabilities, such as drones, {~~that can fly at a height of more than 0.5 m (50 cm) from the stage are not permitted due to safety concerns. Flying robots/drones must be inside of a safety net.~>must be inside of a safety net or tied to an object that's weight exceeds the drones maximum lifting capacity. The safety rope or net needs to be made of a material that can not be damaged by the drones rotors and needs to prevent the drone from leaving the boundaries of the stage at any time.~~} No free-flying robots are allowed in the venue. Any team planning to use a flying robot *must* consult with the OnStage League Committee *prior* to coming to the competition. + +To protect participants and comply with occupational health and safety regulations, routines may not include {~~projectiles~>anything that could be considered a projectile~~}, explosions, smoke, or flame, use of water, or any other hazardous substances {++(contact the committee through the forum when in doubt)++}. + +A team whose routine includes any situation that could be deemed hazardous, including the possibility of damaging the stage, must submit a report outlining the content of their performance to the committee two weeks before the competition. The Committee may also request further explanation and a demonstration of the activity before the stage performance. Teams not conforming to this rule may not be allowed to present their routine. + +[[onstage-technical-interview]] +== OnStage Technical Interview (30% of total score) + +The Technical Interview is a live interview between the team and the judges, in which all robots and programming are judged against technical criteria. Creative and innovative technical features chosen by the team will be rewarded with higher scores. Judges are interested in determining students' understanding of the robotic technologies they have used. Teams must show authenticity and originality regarding their robots and performance in this interview. {--Teams should inform the judges if robotic components have been featured in previous competitions. To gain marks, teams should be prepared to provide insight on how substantial changes have been made between competitions as evidence of the students’ continuing development of the technologies. Teams should specify how innovations have been done with their technologies and provide documentation to support their claims.--} + +[[interview-procedure]] +=== Interview procedure + +All teams will have up to 20 minutes of technical interview judging during the competition. Which will take place as an in-person meeting with the judges in a separate room at the venue. + +Interviews will be judged by at least two RoboCupJunior officials. + +The Interview Score Sheet is used in the interview judging. It is strongly suggested for teams to read the Technical Interview Score Sheet before the interview to make effective use of the interview. + +Teams should have *all* physical robotic systems present at the interview with copies of all their work in a format that can be easily viewed. This includes any programs, CAD/CAM designs, PCB designs, or wiring diagrams. {--Teams should expect to screen share their work to the judges.--} + +Each team member must be prepared to answer questions about the technical aspects of their involvement in the robot design, construction, and programming. + +[[preparation]] +=== Preparation + +{++Teams are required to submit the software of all their robots together with their technical documentation before the event.++} + +{++The files may be changed in between their submission and the competition when necessary.++} + +{++The code is expected to be documented and include comments that explain the basic purpose of its functions/methods.++} + +{++Teams need to clarify which third party code and/or libraries were used for their performance and why.++} + +[[translator]] +=== Translator + +The Technical Interviews take place in English. If teams require a translator, they should inform the RoboCupJunior OnStage officials prior to the event to allow translators to be organized. + +Extra time will not be given for teams with a translator. + +[[second-technical-interview]] +=== Second technical interview + +If the judges consider it necessary, teams may be asked to complete a second technical interview. + +[[onstage-technical-documentation]] +== OnStage Technical Documentation (30% of total score) + +[[technical-demonstration-video]] +=== Technical Demonstration Video (15% of total score) + +Teams are required to submit a recorded demonstration to showcase the capabilities of their robots. The aim of the technical demonstration is to showcase how well the team integrated their robotics creations into a perfect performance. They should demonstrate and describe the capabilities of their robots such as interaction with humans or with each other using mechanisms, sensor systems, and algorithms that have been developed by the team. + +The maximum length of the video is 5 minutes. If it is longer than 5 minutes, it will be cut to that time for judging. + +Robots should be presented without their costumes and key features of the technologies used should be visible to the audience. + +The team should explain how the capabilities have been developed, the challenges overcome, and the technologies integrated. Teams should also provide examples of solutions to any problems/issues during their project development. + +Teams will also be required to outline what they believe are their chosen four features that they wish to be scored on during their OnStage performance (See <>). + +Video editing is allowed and should be used to create a technically engaging and informative demonstration of all robots. Teams may wish to include full English subtitles or transcripts. + +All team members are encouraged to be actively involved in the presentation. + +The Technical Demonstration is assessed according to the Technical Demonstration Score Sheet. + +The demonstration needs to be recorded and the video file must be uploaded by the deadline set by the OnStage League Committee. + +[[technical-description-poster]] +=== Technical Description Poster (15% of total score) + +Each team is required to submit a Technical Description Poster by the deadline set by the OnStage League Committee, which is before the first performance during the RoboCupJunior competition. The purpose of the poster is to explain the technology used, particularly highlight the four chosen features, as well as to showcase the robots’ software and hardware. Posters should be made in an interesting and engaging format, as they will be viewed not only by the judges but also by other teams and visiting members of the public. + +Teams must submit a digital copy of their poster in PDF format {++(≤ 10 MB)++}. + +The size of the poster should be no larger than A1 (60 x 84 cm). + +Areas that are useful to be included in the poster are: + +- team name and region +- abstract/summary{++/performance description++} +- annotated pictures +- system diagrams of the systems and robot(s) under development at various stages +- an explanation of the innovative robot technologies used +- a description of the features that should be judged during the performance +- QR-codes to repositories, videos, or team websites + +Teams will be given public space to display their Technical Poster. + +[[bill-of-material]] +=== Bill of material + +{++Each team will be asked to complete a bill of materials including all major components and materials prior to the event.++} + +{++The list has to include the following:++} +[compact] +- {++Name / Description (e.g. part number, …)++} +- {++Source++} +- {++Is the component new or has it been used before++} +- {++Is the component part of a kit or has it been developed by the team++} +- {++Price of component++} + +{++A template will be provided and has to be used for the submission.++} + +[[judging]] +== Judging + +[[judging-criteria]] +=== Judging criteria + +The judging criteria and allocation of marks are given in the respective score sheets. + +{++Teams must read the Score Sheets to make sure they create their materials according to the judging criteria.++} + +[[totaling]] +=== Totaling + +The total score of each team is calculated by combining the scores from the team’s Technical Interview, the Technical Demonstration, and the OnStage Performance. + +If more than one performance is scheduled, the highest of all performance scores will be used. + +[[juding-panel]] +=== Judging panel + +{++The stage performance will be judged by a panel of at least three officials. At least one of these judges is a RoboCupJunior official who has judged the Technical interview and documentation as well.++} + +{++The judging panel should consist of representatives from each super region and should be selected from a wide range of regions when possible.++} + +[[feedback]] +== Feedback + +RoboCupJunior is an educational project. It is important that team members learn from their experiences with RCJ, so that they have the opportunity to improve. + +Feedback and notifications of deductions will be given after the first performance to allow teams to better prepare for the second performance. + +A final ranking that includes all teams and their scoring will not be provided to the teams. The teams will get their approximate ranking and their individual scores for their interview, performance, technical demonstration video and poster. + +Feedback will not be accepted as evidence to debate positions, decisions, or competition scores with the judges. + +[[code-of-conduct]] +== Code of conduct + +[[spirit]] +=== Spirit + +It is expected that all participants, students, and mentors, will respect the RoboCupJunior mission, values, and goals. + +It is not whether you win or lose, but how much you learn that counts. Choosing not to take this opportunity to collaborate with students and mentors from all over the world means missing out on a lifelong learning experience. Remember this is a unique moment! + +[[fair-play]] +=== Fair play + +It is expected that the aim of all teams is to participate in a fair and clean competition. + +Humans that may cause deliberate interference with robots, robots' performance and/or damage to the stage will be subject to disciplinary action. This will be decided by the OnStage League Committee and RoboCupJunior Officials. + +Remember, helping those in need and demonstrating friendship and cooperation is the spirit of RoboCupJunior, as well as helping make the world a better place. + +Participants are encouraged to help each other. + +[[behavior]] +=== Behavior + +All behavior is to be of a subdued nature while at the competition. It is expected that every participant behaves in a respectful manner towards each other. + +Participants are not {++allowed++} to enter {~~set-up ~>team-~~} areas of other leagues or other teams unless expressly invited to do so by other team members. Participants who misbehave may have disciplinary action taken against them. + +{++A team who is not punctual will be penalized. If the team repeats unpunctual behavior, they risk disciplinary action.++} + +[[robocupjunior-officials]] +=== RoboCupJunior Officials + +The officials will act within the spirit of the event. + +The RoboCupJunior officials shall not have a close relationship with any of the teams in the league they judge. + +[[mentors]] +=== Mentors + +Each team is required to have a mentor to assist with the communication among the team and facilitate their learning. The mentor receives communications from the committee leading up to and during the competition via the email address used for their registration. + +Mentors (defined as teachers, parents, chaperones, translators, or any other adult non-team members) are not allowed in the student work area except to assist in carrying equipment in or out of the area on the arrival and departure days. + +If a problem is encountered that is beyond the team’s capabilities and is clearly beyond the reasonable ability level of a student to repair, mentors may request assistance from the OnStage League Committee, including supervised support to conduct repairs. + +Mentors are not allowed to set up equipment on stage, as this should be the responsibility of team members. Teams should design all robots and any additional equipment to be carried by team members only. + +Disciplinary action will be taken should a mentor be found mending, building and/or programming the robot(s), and/or directing choreography. Judges may question the team’s originality if this occurs and teams may risk deductions or disqualification. + +[[additional-information]] +== Additional information + +[[sharing]] +=== Sharing + +It is understood that RoboCupJunior events with rich technological and curricular developments should be shared with other participants. + +Team materials may be published on the RoboCupJunior media platforms during the event. + +Sharing information furthers the mission of RoboCupJunior as an educational initiative. + +[[rule-clarification]] +=== Rule Clarification + +If any rule clarification is needed, please contact the International RoboCupJunior OnStage League Committee, using the Junior Forum (https://junior.forum.robocup.org). Once the inquiry is posted on this forum, OnStage League Committee members will respond as soon as possible. + +If necessary, even during a competition, rule clarifications may be made by members of the RoboCupJunior OnStage League Committee. + +[[information-before-and-during-the-event]] +=== Information before and during the event + +Teams will be responsible for checking for updated information during the event. Methods of communication during the event will be announced to the registered mentors via email before the competition. + +Teams are strongly encouraged to check the RoboCupJunior Forum which conveys information about the competition before the competition. + +[[special-circumstances]] +=== Special Circumstances + +If special circumstances occur, such as unforeseen problems or capabilities of a robot, these rules may be modified by the RoboCupJunior OnStage League Committee Chair in conjunction with available Committee members, if necessary, even during competition. + +If any of the team leaders/mentors are not present at the team meetings to discuss the problems and the resulting rule modifications, they consent to the rule modifications and are not permitted to challenge them at a later time. + +[discrete] +[[appendix-a]] +== Appendix A + +[cols="2", frame="none", grid="none"] +|=== +|image:media/OnStage/ExemplaryStage.png[width=250] +|image:media/OnStage/StageLayout.png[width=150] +|=== + + +[discrete] +[[appendix-b]] +== Appendix B - Ressources to be released during the season +[compact] +- {++Video: How to get started with OnStage++} +- {++Explanation: How to create a good technical demonstration video and description poster++} +- {++Video: How to create valuable human robot interactions++} +- {++Explanation: How to select a good feature++} +- {++Word explanation: stage set, scenery, props, music, sound effects++} +- {++...?++} diff --git a/onstage_entry_rules/title.tex b/onstage_entry_rules/title.tex new file mode 100644 index 0000000..62fdf55 --- /dev/null +++ b/onstage_entry_rules/title.tex @@ -0,0 +1,3 @@ +\title{\vspace{-5ex}RoboCupJunior OnStage Entry Rules\vspace{-5ex}} + +\maketitle \ No newline at end of file diff --git a/onstage_rules/header_footer.tex b/onstage_rules/header_footer.tex new file mode 100644 index 0000000..fda1bb1 --- /dev/null +++ b/onstage_rules/header_footer.tex @@ -0,0 +1,18 @@ +\lhead{} +\chead{} +\rhead{\includegraphics[width=8cm]{media/robocup_header.png}} +\renewcommand{\headrulewidth}{0pt} +%\renewcommand{\topmargin}{-20pt} + +\rfoot{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} +\lfoot{\textit{Final rules as of \today}} +\cfoot{} + +% First page +\fancypagestyle{firststyle}{% + \fancyhf{} + \fancyfoot[L]{\textit{Final rules as of \today}} + \fancyfoot[R]{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} +} + +\vspace{20pt} \ No newline at end of file diff --git a/onstage_rules.adoc b/onstage_rules/rules.adoc similarity index 100% rename from onstage_rules.adoc rename to onstage_rules/rules.adoc diff --git a/onstage_rules/title.tex b/onstage_rules/title.tex new file mode 100644 index 0000000..7d448e3 --- /dev/null +++ b/onstage_rules/title.tex @@ -0,0 +1,3 @@ +\title{\vspace{-5ex}RoboCupJunior OnStage Rules\vspace{-5ex}} + +\maketitle \ No newline at end of file diff --git a/preamble.tex b/preamble.tex index 0dc68d0..9505aaa 100644 --- a/preamble.tex +++ b/preamble.tex @@ -66,26 +66,8 @@ % End of paragraph numbers setting -\pagestyle{fancy} - -\lhead{} -\chead{} -\rhead{\includegraphics[width=8cm]{media/robocup_header.png}} -\renewcommand{\headrulewidth}{0pt} -%\renewcommand{\topmargin}{-20pt} - -\rfoot{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} -\lfoot{\textit{Final rules as of \today}} -\cfoot{} -% First page -\fancypagestyle{firststyle}{% - \fancyhf{} - \fancyfoot[L]{\textit{Final rules as of \today}} - \fancyfoot[R]{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} -} -\title{\vspace{-5ex}RoboCupJunior OnStage Rules 2024\vspace{-5ex}} \date{\vspace{-2ex}} \definecolor{color-1}{rgb}{1,1,1} @@ -95,35 +77,6 @@ \definecolor{red}{rgb}{1,0,0} \definecolor{color-6}{rgb}{0,0,1} +\pagestyle{fancy} - -\begin{document} -\maketitle -\thispagestyle{firststyle} - -\begin{tabular}{rl} -\resizebox{0.50\textwidth}{!}{ -\begin{tabular}{lr} - \multicolumn{2}{l}{\textbf{OnStage League Committee 2024:}}\\ - Christian Häußler & Germany (CHAIR)\\ - Nicky Hughes & UK\\ - Mauricio Gutierrez & Mexico\\ - Amy Eguchi & USA\\ - Thundluck Sereevoravitgul & Thailand\\ -\end{tabular}} -& -\resizebox{0.50\textwidth}{!}{ -\begin{tabular}{lr} - \multicolumn{2}{l}{\textbf{OnStage League Committee 2023:}}\\ - Christian Häußler & Germany (CHAIR)\\ - Nicky Hughes & UK\\ - Nicolas Doyon & Canada\\ - Amy Eguchi & USA\\ - Thundluck Sereevoravitgul & Thailand\\ - Koto Sakamoto & Japan\\ -\end{tabular}} - - -\end{tabular} - -\vspace{20pt} +\begin{document} \ No newline at end of file diff --git a/specific_preamble_onstage_entry_rules.tex b/specific_preamble_onstage_entry_rules.tex deleted file mode 100644 index 0dc68d0..0000000 --- a/specific_preamble_onstage_entry_rules.tex +++ /dev/null @@ -1,129 +0,0 @@ -%% Preamble %% -%% A minimal LaTeX preamble -%% Some packates are needed to implement -%% Asciidoc features - -\documentclass{article} - -\usepackage[utf8]{inputenc} - -\usepackage{graphicx} -\usepackage{multirow} -\usepackage{tabularx} -\usepackage{color} -\usepackage{amsmath} -\usepackage{amssymb} -\usepackage{amsxtra} -\usepackage{amsfonts} -\usepackage{wasysym} -\usepackage{isomath} -\usepackage{mathtools} -\usepackage{txfonts} -\usepackage{upgreek} -\usepackage{enumerate} -\usepackage{tensor} -\usepackage{fancyhdr} -\usepackage{lastpage} -\usepackage{changes} -\usepackage{etoolbox} -\usepackage{soul} - -\let\openbox\relax -\usepackage[letterpaper, margin=1in, headheight=47pt]{geometry} -\usepackage[hyperlink]{manual} - -\usepackage{titlesec} - -% No paragraph indent -\setlength{\parindent}{0cm} -% Bigger paragraph skips -\setlength{\parskip}{0.25cm} - -\usepackage[defaultsans]{droidsans} -\renewcommand{\familydefault}{\sfdefault} - - -% Set paragraph numbers correctly (skip susubsection) -\setcounter{secnumdepth}{4} -\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} -\renewcommand\thesubsubsection{ -\ifnum \value{subsubsection}=0 - \thesubsection -\else - \thesubsection.\Alph{subsubsection}\relax -\fi} - -\newcommand*{\p}{\paragraph{}} - -\newlength\titleindent -\setlength\titleindent{1.2cm} - -\definecolor{mygray}{gray}{0.55} -\titleformat{\paragraph}[runin] -{\normalfont\footnotesize}{\llap{\parbox{\titleindent}{\textcolor{mygray}{\theparagraph}\hfill}}}{0em}{} - -\titlespacing{\paragraph}{0pt}{0em}{0em} - -% End of paragraph numbers setting - -\pagestyle{fancy} - -\lhead{} -\chead{} -\rhead{\includegraphics[width=8cm]{media/robocup_header.png}} -\renewcommand{\headrulewidth}{0pt} -%\renewcommand{\topmargin}{-20pt} - -\rfoot{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} -\lfoot{\textit{Final rules as of \today}} -\cfoot{} - -% First page -\fancypagestyle{firststyle}{% - \fancyhf{} - \fancyfoot[L]{\textit{Final rules as of \today}} - \fancyfoot[R]{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} -} - -\title{\vspace{-5ex}RoboCupJunior OnStage Rules 2024\vspace{-5ex}} -\date{\vspace{-2ex}} - -\definecolor{color-1}{rgb}{1,1,1} -\definecolor{color-2}{rgb}{0,0,0.5} -\definecolor{color-3}{rgb}{0.07,0.33,0.8} -\definecolor{color-4}{rgb}{0.13,0.13,0.13} -\definecolor{red}{rgb}{1,0,0} -\definecolor{color-6}{rgb}{0,0,1} - - - -\begin{document} -\maketitle -\thispagestyle{firststyle} - -\begin{tabular}{rl} -\resizebox{0.50\textwidth}{!}{ -\begin{tabular}{lr} - \multicolumn{2}{l}{\textbf{OnStage League Committee 2024:}}\\ - Christian Häußler & Germany (CHAIR)\\ - Nicky Hughes & UK\\ - Mauricio Gutierrez & Mexico\\ - Amy Eguchi & USA\\ - Thundluck Sereevoravitgul & Thailand\\ -\end{tabular}} -& -\resizebox{0.50\textwidth}{!}{ -\begin{tabular}{lr} - \multicolumn{2}{l}{\textbf{OnStage League Committee 2023:}}\\ - Christian Häußler & Germany (CHAIR)\\ - Nicky Hughes & UK\\ - Nicolas Doyon & Canada\\ - Amy Eguchi & USA\\ - Thundluck Sereevoravitgul & Thailand\\ - Koto Sakamoto & Japan\\ -\end{tabular}} - - -\end{tabular} - -\vspace{20pt} diff --git a/specific_preamble_onstage_rules.tex b/specific_preamble_onstage_rules.tex deleted file mode 100644 index 0dc68d0..0000000 --- a/specific_preamble_onstage_rules.tex +++ /dev/null @@ -1,129 +0,0 @@ -%% Preamble %% -%% A minimal LaTeX preamble -%% Some packates are needed to implement -%% Asciidoc features - -\documentclass{article} - -\usepackage[utf8]{inputenc} - -\usepackage{graphicx} -\usepackage{multirow} -\usepackage{tabularx} -\usepackage{color} -\usepackage{amsmath} -\usepackage{amssymb} -\usepackage{amsxtra} -\usepackage{amsfonts} -\usepackage{wasysym} -\usepackage{isomath} -\usepackage{mathtools} -\usepackage{txfonts} -\usepackage{upgreek} -\usepackage{enumerate} -\usepackage{tensor} -\usepackage{fancyhdr} -\usepackage{lastpage} -\usepackage{changes} -\usepackage{etoolbox} -\usepackage{soul} - -\let\openbox\relax -\usepackage[letterpaper, margin=1in, headheight=47pt]{geometry} -\usepackage[hyperlink]{manual} - -\usepackage{titlesec} - -% No paragraph indent -\setlength{\parindent}{0cm} -% Bigger paragraph skips -\setlength{\parskip}{0.25cm} - -\usepackage[defaultsans]{droidsans} -\renewcommand{\familydefault}{\sfdefault} - - -% Set paragraph numbers correctly (skip susubsection) -\setcounter{secnumdepth}{4} -\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} -\renewcommand\thesubsubsection{ -\ifnum \value{subsubsection}=0 - \thesubsection -\else - \thesubsection.\Alph{subsubsection}\relax -\fi} - -\newcommand*{\p}{\paragraph{}} - -\newlength\titleindent -\setlength\titleindent{1.2cm} - -\definecolor{mygray}{gray}{0.55} -\titleformat{\paragraph}[runin] -{\normalfont\footnotesize}{\llap{\parbox{\titleindent}{\textcolor{mygray}{\theparagraph}\hfill}}}{0em}{} - -\titlespacing{\paragraph}{0pt}{0em}{0em} - -% End of paragraph numbers setting - -\pagestyle{fancy} - -\lhead{} -\chead{} -\rhead{\includegraphics[width=8cm]{media/robocup_header.png}} -\renewcommand{\headrulewidth}{0pt} -%\renewcommand{\topmargin}{-20pt} - -\rfoot{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} -\lfoot{\textit{Final rules as of \today}} -\cfoot{} - -% First page -\fancypagestyle{firststyle}{% - \fancyhf{} - \fancyfoot[L]{\textit{Final rules as of \today}} - \fancyfoot[R]{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}} -} - -\title{\vspace{-5ex}RoboCupJunior OnStage Rules 2024\vspace{-5ex}} -\date{\vspace{-2ex}} - -\definecolor{color-1}{rgb}{1,1,1} -\definecolor{color-2}{rgb}{0,0,0.5} -\definecolor{color-3}{rgb}{0.07,0.33,0.8} -\definecolor{color-4}{rgb}{0.13,0.13,0.13} -\definecolor{red}{rgb}{1,0,0} -\definecolor{color-6}{rgb}{0,0,1} - - - -\begin{document} -\maketitle -\thispagestyle{firststyle} - -\begin{tabular}{rl} -\resizebox{0.50\textwidth}{!}{ -\begin{tabular}{lr} - \multicolumn{2}{l}{\textbf{OnStage League Committee 2024:}}\\ - Christian Häußler & Germany (CHAIR)\\ - Nicky Hughes & UK\\ - Mauricio Gutierrez & Mexico\\ - Amy Eguchi & USA\\ - Thundluck Sereevoravitgul & Thailand\\ -\end{tabular}} -& -\resizebox{0.50\textwidth}{!}{ -\begin{tabular}{lr} - \multicolumn{2}{l}{\textbf{OnStage League Committee 2023:}}\\ - Christian Häußler & Germany (CHAIR)\\ - Nicky Hughes & UK\\ - Nicolas Doyon & Canada\\ - Amy Eguchi & USA\\ - Thundluck Sereevoravitgul & Thailand\\ - Koto Sakamoto & Japan\\ -\end{tabular}} - - -\end{tabular} - -\vspace{20pt} From bd1d32429fa0d4daa7e3ccefa013ffed94d8ed31 Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sat, 17 Feb 2024 19:59:41 +0100 Subject: [PATCH 03/14] Adjustend names of workflows to differentiate between entry and main rules --- .github/workflows/build_entry_rules.yml | 6 +++--- .github/workflows/build_main_rules.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_entry_rules.yml b/.github/workflows/build_entry_rules.yml index d2628ee..02f920c 100644 --- a/.github/workflows/build_entry_rules.yml +++ b/.github/workflows/build_entry_rules.yml @@ -7,19 +7,19 @@ on: jobs: build: - name: build + name: build entry rules runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - - name: build the rules + - name: build entry rules run: | docker run -v $(pwd):/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex.sh onstage_entry_rules docker run -v $(pwd):/documents mrshu/texlive-dblatex .ci/tex-to-pdf.sh onstage_entry_rules mkdir -p dist/${GITHUB_REF#refs/heads/}/ cp -R ./media rules_documents/* dist/${GITHUB_REF#refs/heads/}/ - - name: publish the rules + - name: publish entry rules uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build_main_rules.yml b/.github/workflows/build_main_rules.yml index 1b3546a..169e9d6 100644 --- a/.github/workflows/build_main_rules.yml +++ b/.github/workflows/build_main_rules.yml @@ -7,19 +7,19 @@ on: jobs: build: - name: build + name: build main rules runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - - name: build the rules + - name: build main rules run: | docker run -v $(pwd):/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex.sh onstage_rules docker run -v $(pwd):/documents mrshu/texlive-dblatex .ci/tex-to-pdf.sh onstage_rules mkdir -p dist/${GITHUB_REF#refs/heads/}/ cp -R ./media rules_documents/* dist/${GITHUB_REF#refs/heads/}/ - - name: publish the rules + - name: publish main rules uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} From 34e1eee651148b282e19d73762631eb0bcc98fec Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sat, 17 Feb 2024 20:02:25 +0100 Subject: [PATCH 04/14] Modified file-watcher for workflows to chatch all files that contain content of the rules. --- .github/workflows/build_entry_rules.yml | 5 +++-- .github/workflows/build_main_rules.yml | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_entry_rules.yml b/.github/workflows/build_entry_rules.yml index 02f920c..46c5b2f 100644 --- a/.github/workflows/build_entry_rules.yml +++ b/.github/workflows/build_entry_rules.yml @@ -1,9 +1,10 @@ on: push: paths: - - 'onstage_entry_rules.adoc' + - 'onstage_entry_rules/rules.adoc' + - 'onstage_entry_rules/header_footer.tex' + - 'onstage_entry_rules/title.tex' - 'preamble.tex' - - 'specific_preamble_onstage_entry_rules.tex' jobs: build: diff --git a/.github/workflows/build_main_rules.yml b/.github/workflows/build_main_rules.yml index 169e9d6..e4d3b36 100644 --- a/.github/workflows/build_main_rules.yml +++ b/.github/workflows/build_main_rules.yml @@ -1,9 +1,11 @@ on: push: paths: - - 'onstage_rules.adoc' + - 'onstage_rules/rules.adoc' + - 'onstage_rules/header_footer.tex' + - 'onstage_rules/title.tex' - 'preamble.tex' - - 'specific_preamble_onstage_rules.tex' + jobs: build: From a3edad6e49f38a673c49814cffde83343682a7cf Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sat, 17 Feb 2024 20:03:09 +0100 Subject: [PATCH 05/14] Test to see if workflow works --- onstage_entry_rules/title.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/onstage_entry_rules/title.tex b/onstage_entry_rules/title.tex index 62fdf55..ab2ce57 100644 --- a/onstage_entry_rules/title.tex +++ b/onstage_entry_rules/title.tex @@ -1,3 +1,3 @@ \title{\vspace{-5ex}RoboCupJunior OnStage Entry Rules\vspace{-5ex}} -\maketitle \ No newline at end of file +\maketitle From dc33a1d3ae40252eb2452b118016880962f96855 Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sat, 17 Feb 2024 20:05:38 +0100 Subject: [PATCH 06/14] Removed test of previous commit --- onstage_entry_rules/title.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/onstage_entry_rules/title.tex b/onstage_entry_rules/title.tex index ab2ce57..62fdf55 100644 --- a/onstage_entry_rules/title.tex +++ b/onstage_entry_rules/title.tex @@ -1,3 +1,3 @@ \title{\vspace{-5ex}RoboCupJunior OnStage Entry Rules\vspace{-5ex}} -\maketitle +\maketitle \ No newline at end of file From b5123ca1e5be863c19179eb81d5c6ec0361be999 Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sun, 18 Feb 2024 11:49:26 +0100 Subject: [PATCH 07/14] Modified order of sections in the prefix to remove duplicates. --- onstage_rules/rules.adoc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/onstage_rules/rules.adoc b/onstage_rules/rules.adoc index a8edd57..994a927 100644 --- a/onstage_rules/rules.adoc +++ b/onstage_rules/rules.adoc @@ -17,15 +17,14 @@ endif::basebackend-html[] :icons: font :numbered: -These are the official rules for the RoboCupJunior OnStage events in 2024. +These are the official rules of the _RoboCup Federation_ for the _RoboCupJunior_ (RCJ) OnStage events in 2024. + +*The International Original Rules (in English) have priority over [.underline]#any# translations.* Major changes from the 2023 OnStage rules are written in *[red]#red#*. *Teams should make sure to review _ALL_ pages of these rules.* The rules have been changed to deepen and broaden the educational benefits of competing in RoboCupJunior. It focuses on the evolving technologies available in our time. -*The International Original Rules (in English) have priority over [.underline]#any# translations.* -These rules are the official rules of the RoboCup Federation. - *The rules, score sheets, and all forms of documentation can be downloaded from the official RoboCupJunior website* (https://junior.robocup.org). Each team has a responsibility to verify the latest version of these documents prior to the competition, as changes may be made at any moment. Teams are encouraged to study all documents in detail. [discrete] From a2e1782f77f85170e95ba5d245b3130d3b7dc144 Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sun, 18 Feb 2024 13:14:25 +0100 Subject: [PATCH 08/14] Removed anything from the rules that might not be necesarry for a entry league. --- onstage_entry_rules/rules.adoc | 385 +++++---------------------------- onstage_entry_rules/title.tex | 2 +- onstage_rules/rules.adoc | 2 +- 3 files changed, 55 insertions(+), 334 deletions(-) diff --git a/onstage_entry_rules/rules.adoc b/onstage_entry_rules/rules.adoc index 97f1e93..17f7181 100644 --- a/onstage_entry_rules/rules.adoc +++ b/onstage_entry_rules/rules.adoc @@ -17,14 +17,11 @@ endif::basebackend-html[] :icons: font :numbered: -These are the official rules for the RoboCupJunior OnStage events in 2024. +These are the official rules of the _RoboCup Federation_ for the _RoboCupJunior_ (RCJ) OnStage entry events in 2024. +There will be *no OnStage entry competition at the international level*. The rules are meant to be used at regional and super-regional events. -Major changes from the 2023 OnStage rules are written in *[red]#red#*. - -*Teams should make sure to review _ALL_ pages of these rules.* The rules have been changed to deepen and broaden the educational benefits of competing in RoboCupJunior. It focuses on the evolving technologies available in our time. - -*The International Original Rules (in English) have priority over [.underline]#any# translations.* -These rules are the official rules of the RoboCup Federation. +//Add line below again once a new version is released +//Major changes from the 2023 OnStage rules are written in *[red]#red#*. *The rules, score sheets, and all forms of documentation can be downloaded from the official RoboCupJunior website* (https://junior.robocup.org). Each team has a responsibility to verify the latest version of these documents prior to the competition, as changes may be made at any moment. Teams are encouraged to study all documents in detail. @@ -33,23 +30,10 @@ These rules are the official rules of the RoboCup Federation. For inquiries and questions about the rules or competition updates, the *Official RoboCupJunior forum* (https://junior.forum.robocup.org/) can be used to contact the OnStage League Committee. All official communication from the committee will be published here before and during the competition season. -[discrete] -== RoboCupJunior OnStage YouTube channel - -Examples of good performances and documentation can be found on the *Official RoboCupJunior OnStage YouTube channel* (https://www.youtube.com/@rcjonstage). - [discrete] == Overview -RoboCupJunior OnStage invites teams to design, build and program creative and autonomous physical robots. The objective is to create either a live or streamed, robotic performance that uses a wide variety of technology to engage an audience. This includes a range of possible performances, such as dance, storytelling, theater, or art installations. The performance may involve music, but this is optional. The league is intended to be open-ended. Teams are encouraged to be creative, innovative, and entertaining, in both the design of the robots and in the design of the overall performance. - -An OnStage performance should make use of innovative technologies or use technology in new innovative ways not previously developed in OnStage performances, while adding value to the performance. Innovation can be achieved with clear evidence of testing, research and development and can be an inspiration for future competitors. - -An OnStage Performance must showcase the implementation and integration of robotic features in ways that visually enhance or add value and contribute to the theme or story being portrayed. {++More information about the selection of the features can be found in++} <>. - -During the International RoboCupJunior OnStage Competition, teams also take part in a SuperTeam Challenge. The SuperTeam Challenge is a robotic performance created by a group of two or more cooperating teams from different regions. The SuperTeams spend a short period of time for the collaborative performance creation. More details will be released before the International RoboCupJunior competition {--on the official website--}. - -From 2021 onwards, there will be no sub-leagues in RoboCupJunior OnStage. +RoboCupJunior OnStage invites teams to design, build and program creative and autonomous physical robots. The objective is to create a live robotic performance. This includes a range of possible performances, such as dance, storytelling, theater, or art installations. The performance may involve music, but this is optional. [cols="2", frame="none", grid="none"] |=== @@ -60,16 +44,9 @@ From 2021 onwards, there will be no sub-leagues in RoboCupJunior OnStage. [[judging-overview]] == Judging Overview -All teams are judged in the following areas: Technical Description Poster, Technical Demonstration Video, Technical Interview and the OnStage Performance. Teams must highlight four of their robot(s) *features* in the work they present to the judges. Ask the following question - “What do we believe are our best system/sensor integration, electromechanical design, interaction, or software solutions implemented on our robot(s)?” The aim should be to present how the chosen features are integrated to enhance the quality of the performance in unique and innovative ways. Examples of features include, but are not limited to: -[compact] -- Locomotion -- Object/human detection and avoidance -- Human, robot and/or prop interaction -- Manipulation (grabbing/grasping) -- Visual/audio recognition -- Localization and mapping +All teams are judged in the following areas: Poster, Interview and the Performance. Teams must highlight three of their robot(s) *features* in the work they present to the judges. Ask the following question - “What do we think took us the most time to prepare for the performance. -Teams should describe and provide reasoning for their four chosen features in the Technical Description Poster and during their Technical Demonstration Video, before being judged on the implementation of these features during the Performance. In addition, teams should demonstrate their understanding of their systems in the Technical Interview. +Teams should describe their three chosen features in the Poster, before being judged on the implementation of these features during the Performance. In addition, teams should demonstrate their understanding of their systems in the Technical Interview. For clarification on a teams’ features, please do not hesitate to reach out to the OnStage League committee using the RoboCupJunior Forum. @@ -81,317 +58,156 @@ It is the responsibility of the participating team(s) and regional representativ [[team-size-membership]] === Team Size & Membership -Each team must have *2 to 5 members*. Each team member needs to carry a technical role within the team, such as Electrical, Mechanical, Software etc. Each participant can join only one team. No members can be shared between teams and/or leagues. +Each team must have *2 to 6 members*. Each team member needs to carry a role within the team. Each participant can join only one team. No members can, be shared between teams and/or leagues. [[age-requirement]] === Age requirement -All team members must be aged 14 to 19 years old (ages as of 1st of July). - -[[general-robocupjunior-rules]] -=== General RoboCupJunior Rules - -All RoboCupJunior OnStage Teams must also comply with the RoboCupJunior General Rules which can be found at: https://junior.robocup.org/robocupjunior-general-rules/ - - -[[authenticity-and-originality]] -=== Authenticity and originality - -{++Teams who, in the opinion of the judges, have knowingly produced duplicate robots, costumes, or performance movements (duplicate music is allowed) of another team will be subject to penalties. This applies to any previous RoboCupJunior Dance or OnStage performance. In case of doubts, the team must be able to provide clear documentation of their preparations and how they have come to their idea.++} - -{++Teams should inform the judges if robotic components have been featured in previous competitions. To gain marks, teams should be prepared to provide insight on how substantial changes have been made between competitions as evidence of the students’ continuing development of the technologies. Teams should specify how innovations have been done with their technologies and provide documentation to support their claims.++} +All team members must be below the age of 14 years (ages as of 1st of July). Older participants are not allowed to take part in the entry league. [[onstage-performance]] -== OnStage Performance (40% of total score) +== OnStage Performance (50% of total score) + +The OnStage Performance is an opportunity to demonstrate the robot(s) through a performance or stage show. -The OnStage Performance is an opportunity to demonstrate the design, construction, and technical aspects of the robot(s) through a performance or stage show. For example, this could be a magic show, theater performance, story, comedy show, dance, or art installation. Teams are encouraged to be creative, innovative and take risks in their use of technology and materials when creating their performances. +Teams will present a live performance, in which their routine will be judged. -Teams will present a live performance, in which their routine will be judged. Teams will present and demonstrate the four features to be judged, and higher marks will be awarded for the integration of these features and the value that they add to the performance. For more details on this, refer to the OnStage Performance Score Sheet. Teams must show originality, creativity and innovation throughout their performance routine. It is expected that all participating teams perform their best. +Teams are encouraged to be as creative and entertaining as they can. [[stage-performance]] === Stage performance -{++Teams have up to two opportunities to perform before the judges.++} +Teams have at least to two opportunities to perform before the judges. -The duration of the performance routine must be no less than 1:30 minutes. +The duration of the performance routine must be no less than 1:00 minute. -Each team has a total of seven minutes on the stage. This time includes stage set-up, introduction, and performance routine, including any re-starts due to factors under the team’s control, and the time for packing up and clearing the stage. The timer only stops when the entire stage is clear with no remnants from the previous performance. +Each team has a total of seven minutes on the stage. This time includes stage set-up, introduction, performance routine and the time for clearing the stage. -When a team is asked to come onto the stage, a RoboCupJunior official starts the timer. - -If the time limit is exceeded due to circumstances outside the team’s control (for example problems with starting the music) there will be no penalty. The judges have the final say on any time penalties. - -Teams wait on the side of the stage before being welcomed on stage. A technician designated by RoboCupJunior officials will start the music and the audiovisual / multimedia presentation for the performance routine. - -Performances will not be live-streamed for general public viewing. Recordings will be edited and released onto the RoboCupJunior OnStage YouTube channel. Teams have an option to request not to publish the recording of their performance {--if they wish--}. +Teams wait on the side of the stage before being welcomed on stage. Teams are strongly encouraged to use the time while they are setting up on the stage to introduce to the audience the performance and the features of their robots. -Teams must indicate the start of their performance clearly with a “3-2-1" countdown to the judges. - -{++Teams must indicate the end of their performance clearly once it’s over (e.g. everyone coming to the front of the stage / thanking the audience for their attention / …).++} - [[restarts]] === Restarts -Teams can restart their routine if necessary, at the discretion of the judges. There is no limit on the number of restarts allowed within the stage-time. Penalty marks will be deducted from the score. +Teams can restart their routine if necessary. The team must leave the stage after their time on stage has expired. [[music-and-multimedia-presentations]] === Music and Multimedia presentations -Teams may use music or video to complement their performance. {--The music should start at the beginning of the performance with a few seconds of silent lead-time.--} +Teams may use music or video to complement their performance. If a team uses copyrighted music, they should follow the Copyright Law of the region where the event is held. -Teams are encouraged to provide a visual or multimedia presentation as part of their performance. This can take the form of a video, animation, slideshow, etc. However, the content should be made by the team themselves. - -Interaction between the robots and the visual display is allowed and encouraged. - -{--During on-site presentations,--} A projector and screen or LED-screen is provided. The organizers cannot guarantee the height above the stage or the size of the screen. - -A HDMI and 3.5 mm AUX cable is available on stage through which a laptop or other device can be connected to the display device. The length of the cable cannot be guaranteed. - -If music is used, teams must provide their own audio music source. The preferred transport method is to place the sound or video file on a memory stick as an MP3/MP4 file. The memory stick should be clearly labeled with the team's name and should hold only the required files. It is essential that the music is given to a sound technician or a RoboCupJunior official {~~on the competition setup day~>before the start of a performance session~~}. Teams are encouraged to bring multiple copies of the audio source file. +Teams are encouraged to provide a video or slideshow as part of their performance. [[Stage]] === Stage The size of the performance stage area is a rectangular area of 5 x 4 meters (m) for robots with the 5 meter side facing the judges. -//TO DO: fix link to appendix in PDF -There is a line marking the edge of the 5 x 4 meter stage. See <>. - The floor provided shall be made of a flat (non-glossy) white surface, for example, painted MDF (compressed wood fiber). While floor joints will be made to be as smooth as possible, robots must be prepared for irregularities of up to 5 mm in the floor surface. Whilst every effort will be made to make the stage flat, this may not be possible, and teams should be prepared to cope with this uncertainty. -Teams should come prepared to calibrate their robots based on the lighting conditions at the venue. - -Teams using compass sensors should be aware that metal components of the staging may affect the compass sensor readings. Teams should come prepared to calibrate such sensors. - [[robots]] === Robots Robots must perform autonomously. -Laptops, notebooks, mobile phones, tablets, Raspberry Pi, and other similar devices can be used as robotic controllers. +Teams should construct their own robot rather than using the instructions that come with a commercial kit. -Teams should construct their own robot rather than using the instructions that come with a commercial kit. Teams are encouraged to design their robot appearance by themselves. If a team wants to use a famous character as their robot, the team should pay attention to the copyright of the character. - -A team may have and use any number of robots. Robots may be of any size. However, using multiple robots does not necessarily result in obtaining higher points. Large robots do not count for more. +Teams are encouraged to design costumes for their robot. If a team wants to use a famous character as their robot, the team should pay attention to the copyright of the character. [[communication-and-localization]] === Communication and Localization -Teams are encouraged to design their robots to interact with a communication function. Robots are encouraged to communicate with each other during the performance. Suggested and allowed communication protocols are infrared (IR), Bluetooth (LE and classic), ZigBee, {++RFID++} or other localization platforms. - -There must be no communication between off-stage and on-stage devices. - -It is the team’s responsibility to make sure that their communication function does not interfere with other teams' robots when practicing or performing. +Robots are encouraged to communicate with each other during the performance. Suggested and allowed communication protocols are infrared (IR), Bluetooth (LE and classic), ZigBee, RFID or other localization platforms. -No team is permitted to use other radio frequency (RF) signals (like Wi-Fi or Z waves) as this may interfere with robots in other RoboCup leagues. If you are unsure, please check with the OnStage League Committee before your performance. - -Teams should prepare for disruptions in communication protocols and unavailability of Wifi (as outlined in the general rules) before and during the setup and stage time. - -Any localization beacons or markers for a robot's localization system should be placed within the confines of the stage. +There must be no communication between off-stage and on-stage devices. [[scenery]] === Scenery -{++Interactive props can be used to add value to the performance.++} - -The kind of props that are considered "interactive" are: - -1. Props that interact with robots via sensors -2. Props that interact with robots via communication +Props are encouraged and can be used to add value to the performance. -Robots can sense static props to perform a certain task or trigger {~~a performance~>an action~~} provided that they are placed on the defined stage performance area. - -Static props which do not form an integral part of the performance are discouraged since the focus of the performance should be on robots. +Robots can sense static props to perform a certain task or trigger an action. [[robot-autonomy-and-interaction]] === Robot Autonomy and Interaction -Robots may be started manually by human contact, sensor interaction or with remote control at the beginning of the performance. - -During the performance, remote control of a robot is prohibited, including pressing buttons (including keyboards or phone applications) or similar interactions with touch-like sensors. Touch-like sensors are defined as passive sensors that have a logical single function dependent on human actions. - -Humans directly influencing sensors to trigger the progression of the performance will not be rewarded highly. - -Intelligent interaction should be used to dynamically alter the robot's behavior. Robots that interact with their environment and respond accordingly will be highly rewarded. Natural human-robot interaction using sensors responding to human gestures, expressions, sound, or proximity is encouraged. +Robots may be started manually at the beginning of the performance. -Interaction between robots is highly encouraged. Robots are allowed to physically touch and can interact through sensors and wired/wireless communication. +During the performance, remote control of a robot is prohibited. -All robot interactions must be visible to the judges for the entire performance. This includes the initial manual start of each robot. - -Any clarifications regarding this ruling should be directed to the committee before the competition to ensure the interaction is permitted. +Interaction between robots and/or humans may be used to dynamically alter the robot's behavior. Robots that interact with their environment and respond accordingly will be highly rewarded. [[humans-on-stage]] === Humans on stage -Human team members may perform with their robots on the stage during the performance. If so, they should make sure not to hide important key components of their robot counterpart(s) from the judges/audience. - -In order to keep the focus on the robots, humans on stage should make sure to follow basic acting guidelines (not blocking the view, not standing with their backs to the audience) and be professional on stage. - -[[deductions]] -=== Deductions - -{++Refer to the scoresheet for the list of deductions.++} {--If a team exceeds the time limits, it will be penalized by the loss of points (see performance score sheet).--} +Human team members may perform with their robots on the stage during the performance. They should make sure not to hide important components of their robot performance from the judges/audience. -All robot movements or interactions that happen outside the performance area will not be considered for the scoring, but will not lead to deductions. - -Teams are reminded that humans triggering the progress of the performance via touch-based sensors will be considered remote-controlled interaction and therefore will be considered an unplanned human interaction {--during the performance--}. - -{++Teams reusing robots without informing the judges in any way will be subject to deductions.++} {--Unless a problem is not the fault of a team, one or more restarts will result in a single score deduction.--} {--A team who is not punctual will be penalized. If the team repeats unpunctual behavior, they risk disciplinary action.--} +Humans may use the stage area to illustrate the robots movements through acting. [[preparations-for-the-stage-performance]] === Preprarations for the stage performance It is the responsibility of the team to ensure that the music and video/presentation is playing correctly before their first performance by liaising with the RoboCupJunior OnStage officials. -Depending on the configuration of the stage and the sound system at the venue, it is possible that the human starting the robot will not be able to see the RoboCupJunior OnStage official starting the audio source and vice versa. Teams should come prepared for these conditions. {--Teams are recommended to practice their performances on camera or online before presenting their performances at a virtual event. Teams will be informed of the conferencing platform before the competition and should use the platform to check their audio and visual before presenting on stage.--} - -[[practice-on-the-main-stage]] -=== Practice on the Main Stage - -The main performance stage is available for teams to practice on. In fairness to all teams who may wish to practice, a booking sheet is used to reserve the stage for a short practice time. Please be respectful of the allocated time. - -Every team who practices on the main stage is responsible for cleaning it after use. The stage must be fully cleaned for the next team willing to use it. The team who uses the main stage just before starting the performance judging should clean up at least 10 minutes before the judging starts. - [[content]] === Content -Performances should not include violent, military, threatening, or criminal elements. This includes inappropriate or offensive words (including music) and/or images. - -Participants are asked to carefully consider the wording and messages communicated in any aspect of their performance. What seems acceptable to one group may be offensive to friends from a different country or culture. - -A team whose routine may be deemed inappropriate to any particular group will be asked to change their performance before being allowed to continue in the competition. Teams who wish to clarify their performance theme or elements of their performance may contact the OnStage League Committee *before* the competition. Failure to remove inappropriate content will result in disciplinary action. +Performances should not include violent, military, threatening, or criminal elements. This includes inappropriate or offensive words (including music) and/or images. [[saftety-and-power-considerations]] === Safety and Power Considerations Under no circumstances can *mains electricity* be used during the performance. Every robot should be equipped with some sort of battery power, with a maximum of 15 volts. -Lead-acid batteries are not considered appropriate unless the team has gained permission from the OnStage League Committee *before* attending the competition for a specific reason. Failure to declare batteries may result in disciplinary actions, including deductions. - -Teams should be aware of the proper handling of lithium batteries to ensure safety. - Lithium batteries must be transported or moved in safety bags. -Teams should design their robot in consideration of safety. Relative to the size and capabilities of the robots, teams should consider: -[compact] -- Power Management - Cabling, batteries, emergency stop capabilities -- Electromechanical System Risks - Exposed pinch points, leaks, sharp edges, tripping hazards, appropriate actuators - Participants should design their robot(s) to be a size that they can easily carry by themselves. Robots should be of a weight that team members can carry and lift onto the stage with ease. -Robots with flying capabilities, such as drones, {~~that can fly at a height of more than 0.5 m (50 cm) from the stage are not permitted due to safety concerns. Flying robots/drones must be inside of a safety net.~>must be inside of a safety net or tied to an object that's weight exceeds the drones maximum lifting capacity. The safety rope or net needs to be made of a material that can not be damaged by the drones rotors and needs to prevent the drone from leaving the boundaries of the stage at any time.~~} No free-flying robots are allowed in the venue. Any team planning to use a flying robot *must* consult with the OnStage League Committee *prior* to coming to the competition. +To protect participants and comply with occupational health and safety regulations, routines may not include anything that could be considered a projectile, explosions, smoke, or flame, use of water, or any other hazardous substances (contact the committee through the forum when in doubt). -To protect participants and comply with occupational health and safety regulations, routines may not include {~~projectiles~>anything that could be considered a projectile~~}, explosions, smoke, or flame, use of water, or any other hazardous substances {++(contact the committee through the forum when in doubt)++}. +[[onstage-interview]] +== OnStage Interview (30% of total score) -A team whose routine includes any situation that could be deemed hazardous, including the possibility of damaging the stage, must submit a report outlining the content of their performance to the committee two weeks before the competition. The Committee may also request further explanation and a demonstration of the activity before the stage performance. Teams not conforming to this rule may not be allowed to present their routine. - -[[onstage-technical-interview]] -== OnStage Technical Interview (30% of total score) - -The Technical Interview is a live interview between the team and the judges, in which all robots and programming are judged against technical criteria. Creative and innovative technical features chosen by the team will be rewarded with higher scores. Judges are interested in determining students' understanding of the robotic technologies they have used. Teams must show authenticity and originality regarding their robots and performance in this interview. {--Teams should inform the judges if robotic components have been featured in previous competitions. To gain marks, teams should be prepared to provide insight on how substantial changes have been made between competitions as evidence of the students’ continuing development of the technologies. Teams should specify how innovations have been done with their technologies and provide documentation to support their claims.--} +The Technical Interview is a live interview between the team and the judges, in which all robots and programming are judged against technical criteria. Judges are interested in determining students' understanding of the robots they have used. [[interview-procedure]] === Interview procedure -All teams will have up to 20 minutes of technical interview judging during the competition. Which will take place as an in-person meeting with the judges in a separate room at the venue. - -Interviews will be judged by at least two RoboCupJunior officials. - -The Interview Score Sheet is used in the interview judging. It is strongly suggested for teams to read the Technical Interview Score Sheet before the interview to make effective use of the interview. - -Teams should have *all* physical robotic systems present at the interview with copies of all their work in a format that can be easily viewed. This includes any programs, CAD/CAM designs, PCB designs, or wiring diagrams. {--Teams should expect to screen share their work to the judges.--} - -Each team member must be prepared to answer questions about the technical aspects of their involvement in the robot design, construction, and programming. - -[[preparation]] -=== Preparation +All teams will have up to 15 minutes of technical interview judging during the competition. Which will take place as an in-person meeting with the judges in a separate room at the venue. -{++Teams are required to submit the software of all their robots together with their technical documentation before the event.++} +Teams should have *all* robots present at the interview. -{++The files may be changed in between their submission and the competition when necessary.++} +Teams should bring copies of their programm code. -{++The code is expected to be documented and include comments that explain the basic purpose of its functions/methods.++} - -{++Teams need to clarify which third party code and/or libraries were used for their performance and why.++} +If the judges consider it necessary, teams may be asked to complete a second interview. [[translator]] === Translator -The Technical Interviews take place in English. If teams require a translator, they should inform the RoboCupJunior OnStage officials prior to the event to allow translators to be organized. +The Technical Interviews take place in the main language of the event. If teams require a translator, they should inform the RoboCupJunior OnStage officials prior to the event to allow translators to be organized. Extra time will not be given for teams with a translator. -[[second-technical-interview]] -=== Second technical interview - -If the judges consider it necessary, teams may be asked to complete a second technical interview. - -[[onstage-technical-documentation]] -== OnStage Technical Documentation (30% of total score) - -[[technical-demonstration-video]] -=== Technical Demonstration Video (15% of total score) - -Teams are required to submit a recorded demonstration to showcase the capabilities of their robots. The aim of the technical demonstration is to showcase how well the team integrated their robotics creations into a perfect performance. They should demonstrate and describe the capabilities of their robots such as interaction with humans or with each other using mechanisms, sensor systems, and algorithms that have been developed by the team. - -The maximum length of the video is 5 minutes. If it is longer than 5 minutes, it will be cut to that time for judging. - -Robots should be presented without their costumes and key features of the technologies used should be visible to the audience. - -The team should explain how the capabilities have been developed, the challenges overcome, and the technologies integrated. Teams should also provide examples of solutions to any problems/issues during their project development. - -Teams will also be required to outline what they believe are their chosen four features that they wish to be scored on during their OnStage performance (See <>). - -Video editing is allowed and should be used to create a technically engaging and informative demonstration of all robots. Teams may wish to include full English subtitles or transcripts. - -All team members are encouraged to be actively involved in the presentation. - -The Technical Demonstration is assessed according to the Technical Demonstration Score Sheet. - -The demonstration needs to be recorded and the video file must be uploaded by the deadline set by the OnStage League Committee. - -[[technical-description-poster]] -=== Technical Description Poster (15% of total score) - -Each team is required to submit a Technical Description Poster by the deadline set by the OnStage League Committee, which is before the first performance during the RoboCupJunior competition. The purpose of the poster is to explain the technology used, particularly highlight the four chosen features, as well as to showcase the robots’ software and hardware. Posters should be made in an interesting and engaging format, as they will be viewed not only by the judges but also by other teams and visiting members of the public. +[[onstage-poster]] +== OnStage Poster (20% of total score) -Teams must submit a digital copy of their poster in PDF format {++(≤ 10 MB)++}. +Each team is required to bring a Poster. The purpose of the poster is to explain the technology used, as well as to showcase the robots’ software and hardware. The size of the poster should be no larger than A1 (60 x 84 cm). Areas that are useful to be included in the poster are: - team name and region -- abstract/summary{++/performance description++} -- annotated pictures -- system diagrams of the systems and robot(s) under development at various stages -- an explanation of the innovative robot technologies used -- a description of the features that should be judged during the performance -- QR-codes to repositories, videos, or team websites +- performance description +- annotated pictures of the development process Teams will be given public space to display their Technical Poster. -[[bill-of-material]] -=== Bill of material - -{++Each team will be asked to complete a bill of materials including all major components and materials prior to the event.++} - -{++The list has to include the following:++} -[compact] -- {++Name / Description (e.g. part number, …)++} -- {++Source++} -- {++Is the component new or has it been used before++} -- {++Is the component part of a kit or has it been developed by the team++} -- {++Price of component++} - -{++A template will be provided and has to be used for the submission.++} - [[judging]] == Judging @@ -400,116 +216,33 @@ Teams will be given public space to display their Technical Poster. The judging criteria and allocation of marks are given in the respective score sheets. -{++Teams must read the Score Sheets to make sure they create their materials according to the judging criteria.++} +Teams must read the Score Sheets to make sure they create their materials according to the judging criteria. [[totaling]] === Totaling -The total score of each team is calculated by combining the scores from the team’s Technical Interview, the Technical Demonstration, and the OnStage Performance. +The total score of each team is calculated by combining the scores from the team’s Interview, Poster and the Performance. If more than one performance is scheduled, the highest of all performance scores will be used. -[[juding-panel]] -=== Judging panel - -{++The stage performance will be judged by a panel of at least three officials. At least one of these judges is a RoboCupJunior official who has judged the Technical interview and documentation as well.++} - -{++The judging panel should consist of representatives from each super region and should be selected from a wide range of regions when possible.++} - [[feedback]] == Feedback -RoboCupJunior is an educational project. It is important that team members learn from their experiences with RCJ, so that they have the opportunity to improve. - -Feedback and notifications of deductions will be given after the first performance to allow teams to better prepare for the second performance. - -A final ranking that includes all teams and their scoring will not be provided to the teams. The teams will get their approximate ranking and their individual scores for their interview, performance, technical demonstration video and poster. - -Feedback will not be accepted as evidence to debate positions, decisions, or competition scores with the judges. - -[[code-of-conduct]] -== Code of conduct - -[[spirit]] -=== Spirit - -It is expected that all participants, students, and mentors, will respect the RoboCupJunior mission, values, and goals. - -It is not whether you win or lose, but how much you learn that counts. Choosing not to take this opportunity to collaborate with students and mentors from all over the world means missing out on a lifelong learning experience. Remember this is a unique moment! - -[[fair-play]] -=== Fair play - -It is expected that the aim of all teams is to participate in a fair and clean competition. - -Humans that may cause deliberate interference with robots, robots' performance and/or damage to the stage will be subject to disciplinary action. This will be decided by the OnStage League Committee and RoboCupJunior Officials. - -Remember, helping those in need and demonstrating friendship and cooperation is the spirit of RoboCupJunior, as well as helping make the world a better place. - -Participants are encouraged to help each other. - -[[behavior]] -=== Behavior - -All behavior is to be of a subdued nature while at the competition. It is expected that every participant behaves in a respectful manner towards each other. - -Participants are not {++allowed++} to enter {~~set-up ~>team-~~} areas of other leagues or other teams unless expressly invited to do so by other team members. Participants who misbehave may have disciplinary action taken against them. - -{++A team who is not punctual will be penalized. If the team repeats unpunctual behavior, they risk disciplinary action.++} - -[[robocupjunior-officials]] -=== RoboCupJunior Officials - -The officials will act within the spirit of the event. - -The RoboCupJunior officials shall not have a close relationship with any of the teams in the league they judge. +A final ranking that includes all teams and their scoring will not be provided to the teams. [[mentors]] -=== Mentors - -Each team is required to have a mentor to assist with the communication among the team and facilitate their learning. The mentor receives communications from the committee leading up to and during the competition via the email address used for their registration. - -Mentors (defined as teachers, parents, chaperones, translators, or any other adult non-team members) are not allowed in the student work area except to assist in carrying equipment in or out of the area on the arrival and departure days. - -If a problem is encountered that is beyond the team’s capabilities and is clearly beyond the reasonable ability level of a student to repair, mentors may request assistance from the OnStage League Committee, including supervised support to conduct repairs. - -Mentors are not allowed to set up equipment on stage, as this should be the responsibility of team members. Teams should design all robots and any additional equipment to be carried by team members only. +== Mentors -Disciplinary action will be taken should a mentor be found mending, building and/or programming the robot(s), and/or directing choreography. Judges may question the team’s originality if this occurs and teams may risk deductions or disqualification. +Mentors are not allowed in the student work area. [[additional-information]] == Additional information -[[sharing]] -=== Sharing - -It is understood that RoboCupJunior events with rich technological and curricular developments should be shared with other participants. - -Team materials may be published on the RoboCupJunior media platforms during the event. - -Sharing information furthers the mission of RoboCupJunior as an educational initiative. - [[rule-clarification]] === Rule Clarification If any rule clarification is needed, please contact the International RoboCupJunior OnStage League Committee, using the Junior Forum (https://junior.forum.robocup.org). Once the inquiry is posted on this forum, OnStage League Committee members will respond as soon as possible. -If necessary, even during a competition, rule clarifications may be made by members of the RoboCupJunior OnStage League Committee. - -[[information-before-and-during-the-event]] -=== Information before and during the event - -Teams will be responsible for checking for updated information during the event. Methods of communication during the event will be announced to the registered mentors via email before the competition. - -Teams are strongly encouraged to check the RoboCupJunior Forum which conveys information about the competition before the competition. - -[[special-circumstances]] -=== Special Circumstances - -If special circumstances occur, such as unforeseen problems or capabilities of a robot, these rules may be modified by the RoboCupJunior OnStage League Committee Chair in conjunction with available Committee members, if necessary, even during competition. - -If any of the team leaders/mentors are not present at the team meetings to discuss the problems and the resulting rule modifications, they consent to the rule modifications and are not permitted to challenge them at a later time. - [discrete] [[appendix-a]] == Appendix A @@ -518,16 +251,4 @@ If any of the team leaders/mentors are not present at the team meetings to discu |=== |image:media/OnStage/ExemplaryStage.png[width=250] |image:media/OnStage/StageLayout.png[width=150] -|=== - - -[discrete] -[[appendix-b]] -== Appendix B - Ressources to be released during the season -[compact] -- {++Video: How to get started with OnStage++} -- {++Explanation: How to create a good technical demonstration video and description poster++} -- {++Video: How to create valuable human robot interactions++} -- {++Explanation: How to select a good feature++} -- {++Word explanation: stage set, scenery, props, music, sound effects++} -- {++...?++} +|=== \ No newline at end of file diff --git a/onstage_entry_rules/title.tex b/onstage_entry_rules/title.tex index 62fdf55..57f6684 100644 --- a/onstage_entry_rules/title.tex +++ b/onstage_entry_rules/title.tex @@ -1,3 +1,3 @@ -\title{\vspace{-5ex}RoboCupJunior OnStage Entry Rules\vspace{-5ex}} +\title{\vspace{-5ex}DRAFT RoboCupJunior OnStage Entry Rules\vspace{-5ex}} \maketitle \ No newline at end of file diff --git a/onstage_rules/rules.adoc b/onstage_rules/rules.adoc index 994a927..45349e7 100644 --- a/onstage_rules/rules.adoc +++ b/onstage_rules/rules.adoc @@ -40,7 +40,7 @@ Examples of good performances and documentation can be found on the *Official Ro [discrete] == Overview -RoboCupJunior OnStage invites teams to design, build and program creative and autonomous physical robots. The objective is to create either a live or streamed, robotic performance that uses a wide variety of technology to engage an audience. This includes a range of possible performances, such as dance, storytelling, theater, or art installations. The performance may involve music, but this is optional. The league is intended to be open-ended. Teams are encouraged to be creative, innovative, and entertaining, in both the design of the robots and in the design of the overall performance. +RoboCupJunior OnStage invites teams to design, build and program creative and autonomous physical robots. The objective is to create a live robotic performance that uses a wide variety of technology to engage an audience. This includes a range of possible performances, such as dance, storytelling, theater, or art installations. The performance may involve music, but this is optional. The league is intended to be open-ended. Teams are encouraged to be creative, innovative, and entertaining, in both the design of the robots and in the design of the overall performance. An OnStage performance should make use of innovative technologies or use technology in new innovative ways not previously developed in OnStage performances, while adding value to the performance. Innovation can be achieved with clear evidence of testing, research and development and can be an inspiration for future competitors. From c9b9dab135e583e13b5a691fdc4afb438e454b59 Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Fri, 23 Feb 2024 16:34:55 +0100 Subject: [PATCH 09/14] Updated rules based on first feedback from the committee meeting. --- onstage_entry_rules/rules.adoc | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/onstage_entry_rules/rules.adoc b/onstage_entry_rules/rules.adoc index 17f7181..8ffac8b 100644 --- a/onstage_entry_rules/rules.adoc +++ b/onstage_entry_rules/rules.adoc @@ -20,6 +20,8 @@ endif::basebackend-html[] These are the official rules of the _RoboCup Federation_ for the _RoboCupJunior_ (RCJ) OnStage entry events in 2024. There will be *no OnStage entry competition at the international level*. The rules are meant to be used at regional and super-regional events. +Regional and super-regional tournament organizers may use these rules, make changes specific to their regions or not run Entry leagues at all. Contact your regions or super-regions tournament organizers to find out which rules are going to be used at your tournament. + //Add line below again once a new version is released //Major changes from the 2023 OnStage rules are written in *[red]#red#*. @@ -44,9 +46,9 @@ RoboCupJunior OnStage invites teams to design, build and program creative and au [[judging-overview]] == Judging Overview -All teams are judged in the following areas: Poster, Interview and the Performance. Teams must highlight three of their robot(s) *features* in the work they present to the judges. Ask the following question - “What do we think took us the most time to prepare for the performance. +All teams are judged in the following areas: Poster, Interview and the Performance. Teams must highlight four of their robot(s) *features* in the work they present to the judges. Ask the following question - "What are you most proud of and what do you want to be judged on?" The features have to be of technical nature. -Teams should describe their three chosen features in the Poster, before being judged on the implementation of these features during the Performance. In addition, teams should demonstrate their understanding of their systems in the Technical Interview. +Teams should describe their four chosen features in the Poster, before being judged on the implementation of these features during the Performance. In addition, teams should demonstrate their understanding of their systems in the Technical Interview. For clarification on a teams’ features, please do not hesitate to reach out to the OnStage League committee using the RoboCupJunior Forum. @@ -56,14 +58,13 @@ For clarification on a teams’ features, please do not hesitate to reach out to It is the responsibility of the participating team(s) and regional representatives to verify the participants' eligibility requirements, which are as follows: [[team-size-membership]] -=== Team Size & Membership +=== Team Size, Membership and age requirement -Each team must have *2 to 6 members*. Each team member needs to carry a role within the team. Each participant can join only one team. No members can, be shared between teams and/or leagues. +The team size and age requirements will be specified by the local organizers. -[[age-requirement]] -=== Age requirement +Each team member needs to carry a role within the team. Each participant can join only one team. No members can, be shared between teams and/or leagues. -All team members must be below the age of 14 years (ages as of 1st of July). Older participants are not allowed to take part in the entry league. +Please note that age and team size restrictions will apply to international competitions for the main OnStage competition. [[onstage-performance]] == OnStage Performance (50% of total score) @@ -77,12 +78,14 @@ Teams are encouraged to be as creative and entertaining as they can. [[stage-performance]] === Stage performance -Teams have at least to two opportunities to perform before the judges. +The format of the competition will be announced before or during the team briefing. A standard competition consists of two performances. The duration of the performance routine must be no less than 1:00 minute. Each team has a total of seven minutes on the stage. This time includes stage set-up, introduction, performance routine and the time for clearing the stage. +If the time limit is exceeded due to circumstances outside the team’s control (for example problems with starting the music) there will be no penalty. The judges have the final say on any time penalties. + Teams wait on the side of the stage before being welcomed on stage. Teams are strongly encouraged to use the time while they are setting up on the stage to introduce to the audience the performance and the features of their robots. @@ -90,10 +93,12 @@ Teams are strongly encouraged to use the time while they are setting up on the s [[restarts]] === Restarts -Teams can restart their routine if necessary. +Teams can restart their routine if necessary. Penalty marks will be deducted from the score. The team must leave the stage after their time on stage has expired. +Te restart must be clearly signaled verbally by a team member on stage. + [[music-and-multimedia-presentations]] === Music and Multimedia presentations @@ -171,7 +176,7 @@ Participants should design their robot(s) to be a size that they can easily carr To protect participants and comply with occupational health and safety regulations, routines may not include anything that could be considered a projectile, explosions, smoke, or flame, use of water, or any other hazardous substances (contact the committee through the forum when in doubt). [[onstage-interview]] -== OnStage Interview (30% of total score) +== OnStage Interview (40% of total score) The Technical Interview is a live interview between the team and the judges, in which all robots and programming are judged against technical criteria. Judges are interested in determining students' understanding of the robots they have used. @@ -194,7 +199,7 @@ The Technical Interviews take place in the main language of the event. If teams Extra time will not be given for teams with a translator. [[onstage-poster]] -== OnStage Poster (20% of total score) +== OnStage Poster (10% of total score) Each team is required to bring a Poster. The purpose of the poster is to explain the technology used, as well as to showcase the robots’ software and hardware. @@ -225,11 +230,6 @@ The total score of each team is calculated by combining the scores from the team If more than one performance is scheduled, the highest of all performance scores will be used. -[[feedback]] -== Feedback - -A final ranking that includes all teams and their scoring will not be provided to the teams. - [[mentors]] == Mentors From 24b02b846719ed80f24b5a86da3ae4e33adde78c Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sat, 2 Mar 2024 17:12:08 +0100 Subject: [PATCH 10/14] Added comment about depiction of drugs --- onstage_rules/rules.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/onstage_rules/rules.adoc b/onstage_rules/rules.adoc index 45349e7..363d9b1 100644 --- a/onstage_rules/rules.adoc +++ b/onstage_rules/rules.adoc @@ -288,6 +288,8 @@ Robots with flying capabilities, such as drones, {~~that can fly at a height of To protect participants and comply with occupational health and safety regulations, routines may not include {~~projectiles~>anything that could be considered a projectile~~}, explosions, smoke, or flame, use of water, or any other hazardous substances {++(contact the committee through the forum when in doubt)++}. +{++Performances may not include the depiction of drugs or their consumption either by robots or by participants.++} + A team whose routine includes any situation that could be deemed hazardous, including the possibility of damaging the stage, must submit a report outlining the content of their performance to the committee two weeks before the competition. The Committee may also request further explanation and a demonstration of the activity before the stage performance. Teams not conforming to this rule may not be allowed to present their routine. [[onstage-technical-interview]] From cf15755eff19a6da62557a926db5ab5f42c67b1a Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Fri, 12 Apr 2024 12:13:49 +0200 Subject: [PATCH 11/14] Added age recomendation and safety regulations --- onstage_entry_rules/rules.adoc | 6 ++++-- onstage_rules/rules.adoc | 2 -- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/onstage_entry_rules/rules.adoc b/onstage_entry_rules/rules.adoc index 8ffac8b..7e2cc43 100644 --- a/onstage_entry_rules/rules.adoc +++ b/onstage_entry_rules/rules.adoc @@ -22,6 +22,8 @@ There will be *no OnStage entry competition at the international level*. The rul Regional and super-regional tournament organizers may use these rules, make changes specific to their regions or not run Entry leagues at all. Contact your regions or super-regions tournament organizers to find out which rules are going to be used at your tournament. +{++Although it is recomended to apply these rules to teams in the age from 10 to 14 years, the final decision about the admission criteria is up to the local organizers.++} + //Add line below again once a new version is released //Major changes from the 2023 OnStage rules are written in *[red]#red#*. @@ -171,9 +173,9 @@ Under no circumstances can *mains electricity* be used during the performance. E Lithium batteries must be transported or moved in safety bags. -Participants should design their robot(s) to be a size that they can easily carry by themselves. Robots should be of a weight that team members can carry and lift onto the stage with ease. +{++Participants should design their robot(s) to be a size that they can easily carry by themselves. Robots should be of a weight that team members can carry and lift onto the stage with ease.++} -To protect participants and comply with occupational health and safety regulations, routines may not include anything that could be considered a projectile, explosions, smoke, or flame, use of water, or any other hazardous substances (contact the committee through the forum when in doubt). +{++To protect participants and comply with occupational health and safety regulations, routines may not include anything that could be considered a projectile, explosions, smoke, or flame, use of water, or any other hazardous substances (contact the committee through the forum when in doubt).++} [[onstage-interview]] == OnStage Interview (40% of total score) diff --git a/onstage_rules/rules.adoc b/onstage_rules/rules.adoc index 363d9b1..45349e7 100644 --- a/onstage_rules/rules.adoc +++ b/onstage_rules/rules.adoc @@ -288,8 +288,6 @@ Robots with flying capabilities, such as drones, {~~that can fly at a height of To protect participants and comply with occupational health and safety regulations, routines may not include {~~projectiles~>anything that could be considered a projectile~~}, explosions, smoke, or flame, use of water, or any other hazardous substances {++(contact the committee through the forum when in doubt)++}. -{++Performances may not include the depiction of drugs or their consumption either by robots or by participants.++} - A team whose routine includes any situation that could be deemed hazardous, including the possibility of damaging the stage, must submit a report outlining the content of their performance to the committee two weeks before the competition. The Committee may also request further explanation and a demonstration of the activity before the stage performance. Teams not conforming to this rule may not be allowed to present their routine. [[onstage-technical-interview]] From 71bb4542a5cd392ee0eb9b65a5d120e054c8b413 Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sat, 20 Apr 2024 18:00:45 +0200 Subject: [PATCH 12/14] Added Open Technical Demonstration --- onstage_entry_rules/rules.adoc | 46 ++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/onstage_entry_rules/rules.adoc b/onstage_entry_rules/rules.adoc index 7e2cc43..d90fdae 100644 --- a/onstage_entry_rules/rules.adoc +++ b/onstage_entry_rules/rules.adoc @@ -17,8 +17,8 @@ endif::basebackend-html[] :icons: font :numbered: -These are the official rules of the _RoboCup Federation_ for the _RoboCupJunior_ (RCJ) OnStage entry events in 2024. -There will be *no OnStage entry competition at the international level*. The rules are meant to be used at regional and super-regional events. +These are the official rules of the _RoboCup Federation_ for the _RoboCupJunior_ (RCJ) OnStage Entry events in 2024. +There will be *no OnStage Entry competition at the international level*. The rules are meant to be used at regional and super-regional events. Regional and super-regional tournament organizers may use these rules, make changes specific to their regions or not run Entry leagues at all. Contact your regions or super-regions tournament organizers to find out which rules are going to be used at your tournament. @@ -48,9 +48,9 @@ RoboCupJunior OnStage invites teams to design, build and program creative and au [[judging-overview]] == Judging Overview -All teams are judged in the following areas: Poster, Interview and the Performance. Teams must highlight four of their robot(s) *features* in the work they present to the judges. Ask the following question - "What are you most proud of and what do you want to be judged on?" The features have to be of technical nature. +All teams are judged in the following areas: Poster, Interview, Open Technical Demonstration and the Performance. Teams must highlight two of their robot(s) *features* in the work they present to the judges. Ask the following question - "What are you most proud of and what do you want to be judged on?" The features have to be of technical nature. -Teams should describe their four chosen features in the Poster, before being judged on the implementation of these features during the Performance. In addition, teams should demonstrate their understanding of their systems in the Technical Interview. +Teams should describe their two chosen features in the Poster, before being judged on the implementation of these features during the Performance. In addition, teams should demonstrate their understanding of their systems in the Technical Interview and Open Technical Demonstration. For clarification on a teams’ features, please do not hesitate to reach out to the OnStage League committee using the RoboCupJunior Forum. @@ -69,7 +69,7 @@ Each team member needs to carry a role within the team. Each participant can joi Please note that age and team size restrictions will apply to international competitions for the main OnStage competition. [[onstage-performance]] -== OnStage Performance (50% of total score) +== Performance (50% of total score) The OnStage Performance is an opportunity to demonstrate the robot(s) through a performance or stage show. @@ -124,7 +124,7 @@ Robots must perform autonomously. Teams should construct their own robot rather than using the instructions that come with a commercial kit. -Teams are encouraged to design costumes for their robot. If a team wants to use a famous character as their robot, the team should pay attention to the copyright of the character. +Teams are encouraged to *design costumes for their robot*. If a team wants to use a famous character as their robot, the team should pay attention to the copyright of the character. [[communication-and-localization]] === Communication and Localization @@ -178,7 +178,7 @@ Lithium batteries must be transported or moved in safety bags. {++To protect participants and comply with occupational health and safety regulations, routines may not include anything that could be considered a projectile, explosions, smoke, or flame, use of water, or any other hazardous substances (contact the committee through the forum when in doubt).++} [[onstage-interview]] -== OnStage Interview (40% of total score) +== Interview (30% of total score) The Technical Interview is a live interview between the team and the judges, in which all robots and programming are judged against technical criteria. Judges are interested in determining students' understanding of the robots they have used. @@ -189,7 +189,7 @@ All teams will have up to 15 minutes of technical interview judging during the c Teams should have *all* robots present at the interview. -Teams should bring copies of their programm code. +Teams should bring their programm code. If the judges consider it necessary, teams may be asked to complete a second interview. @@ -201,20 +201,41 @@ The Technical Interviews take place in the main language of the event. If teams Extra time will not be given for teams with a translator. [[onstage-poster]] -== OnStage Poster (10% of total score) +== Poster (10% of total score) Each team is required to bring a Poster. The purpose of the poster is to explain the technology used, as well as to showcase the robots’ software and hardware. +{++Teams must submit a digital copy of their poster in PDF format (≤ 10 MB)++}. + The size of the poster should be no larger than A1 (60 x 84 cm). Areas that are useful to be included in the poster are: - team name and region - performance description +{++- a description of the features that should be judged during the performance++} - annotated pictures of the development process Teams will be given public space to display their Technical Poster. +[[open-technical-demonstration]] +== Open Technical Demonstration (10% of total score) + +{++The description of the robots’ capabilities should explain to the judges and audience how the robot’s capabilities have been achieved.++} + +{++It's recomended to use slides to introduce the project.++} + +[[demonstration-procedure]] +=== Demonstration procedure + +{++The duration of the performance routine should be approximately 5 minutes.++} + +{++Each team has a total of seven minutes on the stage. This time includes stage set-up, the demonstration, and the time for packing up and clearing the stage. The timer only stops when the entire stage is clear with no remnants from the previous demonstration.++} + +{++The technical capabilities of their robots should be demonstrated by both describing what has been developed and demonstrating this capability. This could cover any aspect of the performance or technical capabilities of the robot(s), such as interaction with humans, interactions with other robots or the use of a particular sensor.++} + +{++Teams are encouraged to remove robots’ costumes for showing detailed design.++} + [[judging]] == Judging @@ -228,10 +249,15 @@ Teams must read the Score Sheets to make sure they create their materials accord [[totaling]] === Totaling -The total score of each team is calculated by combining the scores from the team’s Interview, Poster and the Performance. +The total score of each team is calculated by combining the scores from the team’s Interview, Poster{++, Open Technical Demonstartion++} and the Performance. If more than one performance is scheduled, the highest of all performance scores will be used. +[[juding-panel]] +=== Judging panel + +{++All aspects will be judged by a panel of at least three officials. At least one of these judges is a RoboCupJunior official who has judged the Technical interview and documentation as well.++} + [[mentors]] == Mentors From 47b86aec3c35cd87c002e58ed42ecd43a08eb757 Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sat, 20 Apr 2024 18:01:02 +0200 Subject: [PATCH 13/14] Simplifications in wording --- onstage_rules/rules.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/onstage_rules/rules.adoc b/onstage_rules/rules.adoc index 45349e7..1a10df5 100644 --- a/onstage_rules/rules.adoc +++ b/onstage_rules/rules.adoc @@ -101,7 +101,7 @@ All RoboCupJunior OnStage Teams must also comply with the RoboCupJunior General {++Teams should inform the judges if robotic components have been featured in previous competitions. To gain marks, teams should be prepared to provide insight on how substantial changes have been made between competitions as evidence of the students’ continuing development of the technologies. Teams should specify how innovations have been done with their technologies and provide documentation to support their claims.++} [[onstage-performance]] -== OnStage Performance (40% of total score) +== Performance (40% of total score) The OnStage Performance is an opportunity to demonstrate the design, construction, and technical aspects of the robot(s) through a performance or stage show. For example, this could be a magic show, theater performance, story, comedy show, dance, or art installation. Teams are encouraged to be creative, innovative and take risks in their use of technology and materials when creating their performances. @@ -291,7 +291,7 @@ To protect participants and comply with occupational health and safety regulatio A team whose routine includes any situation that could be deemed hazardous, including the possibility of damaging the stage, must submit a report outlining the content of their performance to the committee two weeks before the competition. The Committee may also request further explanation and a demonstration of the activity before the stage performance. Teams not conforming to this rule may not be allowed to present their routine. [[onstage-technical-interview]] -== OnStage Technical Interview (30% of total score) +== Technical Interview (30% of total score) The Technical Interview is a live interview between the team and the judges, in which all robots and programming are judged against technical criteria. Creative and innovative technical features chosen by the team will be rewarded with higher scores. Judges are interested in determining students' understanding of the robotic technologies they have used. Teams must show authenticity and originality regarding their robots and performance in this interview. {--Teams should inform the judges if robotic components have been featured in previous competitions. To gain marks, teams should be prepared to provide insight on how substantial changes have been made between competitions as evidence of the students’ continuing development of the technologies. Teams should specify how innovations have been done with their technologies and provide documentation to support their claims.--} From 90edd25549d89e489fd93bfa3a8a942ac6ee78bf Mon Sep 17 00:00:00 2001 From: ChristianH99 Date: Sun, 21 Apr 2024 09:07:07 +0200 Subject: [PATCH 14/14] Added rule about maximum time for OTD --- onstage_entry_rules/rules.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/onstage_entry_rules/rules.adoc b/onstage_entry_rules/rules.adoc index d90fdae..0d93ce9 100644 --- a/onstage_entry_rules/rules.adoc +++ b/onstage_entry_rules/rules.adoc @@ -228,10 +228,12 @@ Teams will be given public space to display their Technical Poster. [[demonstration-procedure]] === Demonstration procedure -{++The duration of the performance routine should be approximately 5 minutes.++} +{++The duration of the demonstration should be approximately 5 minutes.++} {++Each team has a total of seven minutes on the stage. This time includes stage set-up, the demonstration, and the time for packing up and clearing the stage. The timer only stops when the entire stage is clear with no remnants from the previous demonstration.++} +{++After the seven minutes have expired the team will be asked to clear the stage and judging will be stopped.++} + {++The technical capabilities of their robots should be demonstrated by both describing what has been developed and demonstrating this capability. This could cover any aspect of the performance or technical capabilities of the robot(s), such as interaction with humans, interactions with other robots or the use of a particular sensor.++} {++Teams are encouraged to remove robots’ costumes for showing detailed design.++}