Skip to content

Commit 75707c9

Browse files
committed
First draft 2025
1 parent e241b5e commit 75707c9

File tree

4 files changed

+116
-20
lines changed

4 files changed

+116
-20
lines changed

README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,31 @@ thorugh the build process in two easy steps:
8080
Which will make the `rules.adoc` file (in the current working directory --
8181
that's the `$(pwd)` part) go through the build steps above and generate files
8282
`rules.html` and `rules.pdf` as a result.
83+
84+
## Use GitHub Codespaces to edit these files
85+
86+
GitHub now has a nice service called [Codespaces](https://github.com/features/codespaces)
87+
which allows us to spin up a "development environment" without having to
88+
install various dependencies without having to leave the web browser.
89+
90+
Here is a short tutorial on how to edit the rules in Codespaces.
91+
92+
### Spinning up Codespaces and building the rules
93+
94+
1. First, navigate to the top part of the repository.
95+
96+
2. Click on **Code** and then on **Create codespace on master**
97+
![Create Codespace](./images/codespaces.png)
98+
99+
3. You should now be able to navigate the `rules.adoc` and/or `superteam_rules.adoc` files and edit them as you like.
100+
101+
4. To actually build rules as a PDF and/or HTML, you can execute the following:
102+
103+
./scripts/build-rules.bash rules
104+
105+
5. After the script has ran, you will see lines such as the following in the output:
106+
107+
See the HTML version at: http://localhost:12345/tmp_rules.html
108+
See the PDF version at: http://localhost:12345/tmp_rules.pdf
109+
110+
Clicking on either should bring you to a directory listing, in which you can find `tmp_rules.html` and `tmp_rules.pdf` and have them load. Note that this is now being served from the Codespaces environment (the actual URL will have the `app.github.dev` suffix).

preamble.tex

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
\usepackage{lastpage}
2727
\usepackage{changes}
2828
\usepackage{etoolbox}
29-
%\usepackage{draftwatermark}
29+
\usepackage{draftwatermark}
3030

3131
\let\openbox\relax
3232
\usepackage[letterpaper, margin=1in, headheight=47pt]{geometry}
@@ -94,7 +94,7 @@
9494
\fancyfoot[R]{Page \textbf{\thepage} of \textbf{\pageref{LastPage}}}
9595
}
9696

97-
\title{\Large RoboCupJunior Soccer Entry Rules 2024\vspace{2ex} \\ \large 1:1 Standard Kit League \& 1:1 Lightweight League\vspace{-10ex}}
97+
\title{\Large RoboCupJunior Soccer Entry Rules 2025\vspace{2ex} \\ \large 1:1 Standard Kit League \& 1:1 Lightweight League\vspace{-10ex}}
9898
\date{\vspace{-2ex}}
9999

100100
\definecolor{color-1}{rgb}{1,1,1}
@@ -112,6 +112,17 @@
112112

113113
\begin{tabular}{rl}
114114
\resizebox{0.50\textwidth}{!}{
115+
\begin{tabular}{lr}
116+
\multicolumn{2}{l}{\textbf{Soccer League Committee 2025:}}\\
117+
Hikaru Sugiura & USA \\
118+
Jakub G\'{a}l & Slovakia \\
119+
MohammadHadiShirani & Iran \\
120+
David Schwarz & Germany \\
121+
William Plummer & Australia (CHAIR) \\
122+
Isa El Doori & Netherlands \\
123+
\end{tabular}}
124+
&
125+
\resizebox{0.50\textwidth}{!}{
115126
\begin{tabular}{lr}
116127
\multicolumn{2}{l}{\textbf{Soccer League Committee 2024:}}\\
117128
Michael Ambrose & USA \\
@@ -121,17 +132,6 @@
121132
William Plummer & Australia (CHAIR) \\
122133
Adrián Matejov & Slovakia \\
123134
\end{tabular}}
124-
&
125-
\resizebox{0.50\textwidth}{!}{
126-
\begin{tabular}{lr}
127-
\multicolumn{2}{l}{\textbf{Soccer League Committee 2023:}}\\
128-
Michael Ambrose & USA (CO-CHAIR)\\
129-
Javier E. Delgado Moreno & Mexico \\
130-
Hikaru Sugiura & Japan\\
131-
David Schwarz & Germany (CHAIR)\\
132-
William Plummer & Australia\\
133-
Adrián Matejov & Slovakia\\
134-
\end{tabular}}
135135

136136

137137

rules.adoc

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
= RoboCupJunior Soccer Entry Rules 2024
1+
= RoboCupJunior Soccer Entry Rules 2025
22
{docdate}
33
:toc: left
44
:sectanchors:
@@ -29,7 +29,7 @@ tournaments.
2929
These are the RoboCupJunior Soccer Entry rules for the *1:1 Lightweight League*
3030
and *1:1 Standard Kit League*
3131
proposed for suggested use by regional and super-regional tournaments in the
32-
2024 season. They are released by the RoboCupJunior League Committee.
32+
2025 season. They are released by the RoboCupJunior League Committee.
3333
The English version of these rules has priority over any translations.
3434

3535
The aim of this document is to provide entry-level rulesets for RoboCupJunior Soccer
@@ -79,6 +79,9 @@ Lightweight League uses. Please see <<ball>> for balls specifications.
7979
* Restrictions on the number of drive motors apply (max. 2 drive motors for *1:1
8080
Standard Kit League*, max. 3 drive motors for *1:1 Lightweight League*)
8181
* In most regions participation in each 1:1 League is limited to two years (see <<competition-cap>>)
82+
* Furthermore, robots that have been constructed for any of the 2:2 RobocupJunior Soccer leagues
83+
at any level (local, regional, super-regional, international) in past, future, or present
84+
may not be used at any 1:1 League match.
8285

8386
=== 1:1 Standard Kit League
8487
* Number of drive motors is restricted to two
@@ -87,18 +90,18 @@ RoboCupJunior Soccer use the restrictions to only Lego and Fischertechnik parts
8790
lifted. A number of changes were made to preserve the character of the league
8891
and keep existing Lego and Fischertechnik robots competitive:
8992
* Use of parts that are neither Lego nor Fischertechnik is permitted
90-
* A weight limit of 1100g is introduced
93+
* A weight limit of 1400g is introduced
9194
* Only a list of allowable motors (see <<motor-whitelist>>) with
9295
comparable power to Lego and Fischertechnik motors is permitted
9396

9497
=== 1:1 Lightweight League
9598
* Number of drive motors is restricted to three
9699
* The voltage limit remains at 12V (unlike 2:2 LWL where it is increased)
97-
* The weight limit for *1:1 Lightweight League* remains at 1100g (unlike 2:2 LWL where it is increased)
100+
* The weight limit for *1:1 Lightweight League* has been increased to match the 2:2 LWL level of 1400g
98101

99102

100103
[discrete]
101-
=== Changes from the 2023 RoboCupJunior Soccer Entry Rules
104+
=== Changes from the 2024 RoboCupJunior Soccer Entry Rules
102105

103106
{+-~TOC-CHANGES~-+}
104107

@@ -664,7 +667,7 @@ robot’s dimensions must not exceed the following limits:
664667
sub-league | *1:1* *Standard* *Kit* *League* | *1:1* *Lightweight* *League* +
665668
|size | 22.4 cm (square) ^[0]^ | 22.0 cm (circle) ^[1]^ +
666669
|height | 22.4 cm ^[2]^ | 22.0 cm ^[2]^ +
667-
|weight | 1100 g | 1100 g ^[3]^ +
670+
|weight | 1400 g | 1400 g ^[3]^ +
668671
|ball-capturing zone | 3.0 cm | 3.0 cm +
669672
|voltage | 12.0 V ^[4]^ ^[5]^ +
670673
|===
@@ -735,7 +738,7 @@ involved in moving the robot across the field are considered driving motors.
735738
Any number of additional motors may be used for dribblers, kickers and other
736739
mechanisms.
737740

738-
++{A weight limit of 1100g is introduced to prevent heavy custom robots from
741+
++{A weight limit of 1400g is introduced to prevent heavy custom robots from
739742
overpowering Lego and Fischertechnik robots.++}
740743

741744
==== 1:1 Lightweight League
@@ -934,6 +937,7 @@ regulations for the official list for the respective tournaments.++}
934937
| Robotis | Dynamixel XL-320, XL-330 |
935938
| XYT | JGA25-370 |
936939
| TT Motor | GMP16-050SH |
940+
| Vex Motor| All Models |
937941
|===
938942

939943
If it is not practical for teams to use one of the above motors or you find any

scripts/build-rules.bash

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#!/bin/bash
2+
set -euo pipefail
3+
4+
# Colors
5+
RED="\033[0;31m"
6+
GREEN="\033[0;32m"
7+
YELLOW="\033[1;33m"
8+
BLUE="\033[0;34m"
9+
RESET="\033[0m"
10+
11+
# Variables
12+
SERVER_PORT=12345
13+
14+
# Functions
15+
function print_error {
16+
echo -e "${RED}[ERROR] $1${RESET}"
17+
}
18+
19+
function print_success {
20+
echo -e "${GREEN}[SUCCESS] $1${RESET}"
21+
}
22+
23+
function print_info {
24+
echo -e "${BLUE}[INFO] $1${RESET}"
25+
}
26+
27+
# Check if the first argument is provided
28+
if [[ $# -lt 1 ]]; then
29+
print_error "No target file specified. Usage: $0 <target-file>"
30+
print_info "The target file is usually 'rules' or 'superteam_rules'."
31+
exit 1
32+
fi
33+
34+
TARGET=$1
35+
36+
# Check if the target file exists
37+
if [[ ! -f "$TARGET.adoc" ]]; then
38+
print_error "Target file '$TARGET.adoc' does not exist."
39+
exit 1
40+
fi
41+
42+
# Check if dependencies are installed
43+
for cmd in docker python; do
44+
if ! command -v "$cmd" &>/dev/null; then
45+
print_error "Dependency '$cmd' is not installed. Please install it and try again."
46+
exit 1
47+
fi
48+
done
49+
50+
# Run Docker containers for processing
51+
print_info "Converting Asciidoc to LaTeX..."
52+
docker run -v "$(pwd)":/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex.sh "$TARGET"
53+
print_success "Asciidoc conversion complete."
54+
55+
print_info "Converting LaTeX to PDF..."
56+
docker run -v "$(pwd)":/documents mrshu/texlive-dblatex .ci/tex-to-pdf.sh "$TARGET"
57+
print_success "PDF conversion complete."
58+
59+
# Serve the files using Python's HTTP server
60+
echo -e "${YELLOW}See the HTML version at: ${BLUE}http://localhost:$SERVER_PORT/tmp_$TARGET.html${RESET}"
61+
echo -e "${YELLOW}See the PDF version at: ${BLUE}http://localhost:$SERVER_PORT/tmp_$TARGET.pdf${RESET}"
62+
63+
print_info "Starting HTTP server on port $SERVER_PORT..."
64+
python -m http.server "$SERVER_PORT"

0 commit comments

Comments
 (0)