-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathrulebook.tex
3805 lines (3470 loc) · 166 KB
/
rulebook.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Rulebook RoboCup Logistics League
%% 2019 Competitions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[12pt,twoside]{article}
\usepackage[a4paper]{anysize}
\marginsize{2cm}{2cm}{1cm}{2cm}
\setlength{\marginparwidth}{1cm}
%\usepackage{fourier}
\usepackage{floatpag}
\usepackage{wrapfig}
\usepackage{fnpct}
\usepackage[table]{xcolor}
%% MACROS %%%%%%%%%%%%%%%%%%%
% does not work for me, gives:
%! Undefined control sequence.
%\@ympar ...lobal \setbox \@currbox \copy \@marbox
% \@xympar
%\newenvironment{rulechange}{%
% \def\FrameCommand{\fboxsep=\FrameSep \colorbox{shadecolor}}%
% \marginpar{\vspace*{2em}\LARGE\danger} \MakeFramed {\FrameRestore}}%
% { \endMakeFramed}
\newenvironment{rulechange}{}{}
\usepackage[binary-units=true]{siunitx}
%\usepackage{framed,xcolor}
%\colorlet{shadecolor}{gray!25}
%\textregistered
\newcommand{\Robotino}{Robotino}
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newsavebox{\myt}
\newcommand{\mytable}[1]{%
\savebox{\myt}{#1}\tikz\node[fill=gray!10!white]{\usebox{\myt}};%
}
\newcommand{\refsec}[1]{Section~\ref{#1}}
\newcommand{\reffig}[1]{Figure~\ref{#1}}
\newcommand{\refdef}[1]{Definition~\ref{#1}}
%\newcommand{\reflst}[1]{Listing~\ref{#1}}
\newcommand{\reflst}[1]{Figure~\ref{#1}}
\newcommand{\reftab}[1]{Table~\ref{#1}}
\sisetup{parse-numbers=false}
\newcommand{\SItextrange}[3][]{
\SI[
#1
]
{#2}{#3}
}
\usepackage{floatrow}
\newfloatcommand{capbtabbox}{table}[][\FBwidth]
%% GRAPHICSX %%%%%%%%%%%%%%%%%%%
\usepackage[pdftex]{graphicx}
\graphicspath{{figures/}}
\DeclareGraphicsExtensions{.pdf,.jpeg,.png,.JPG,.jpg}
%% TIKZ %%%%%%%%%%%%%%%%%%%
\usepackage{tikz}
\usetikzlibrary{arrows,shadows}
\usetikzlibrary{calc,positioning}
\usetikzlibrary{snakes,shapes}
\usetikzlibrary{shapes.callouts}
%% HYPERREF %%%%%%%%%%%%%%%%%%%
\usepackage{hyperref}
\hypersetup{
pdftitle = {The RoboCup Logistics League Rulebook for 2024},
pdfauthor = {RCLL TC},
pdfkeywords = {RCLL, Rulebook},
pdfsubject = {},
%pdfpagemode = {UseOutlines}, % PageWdth, FullScreen, None ...
hidelinks,
% linkcolor = black,
% citecolor = black,
% filecolor = black,
% urlcolor = black,
% backref = false,
% pagecolor = black, % link to other document pages
% linktocpage, % linked page numbers instead of titles
% menucolor = blue, % Acrobat menu item
% pdfnewwindow= true, %
% pdfborder = {0 0 0}, %
% bookmarksopen=true, %
% bookmarksnumbered=true, %
% pdfcreator = {pdflatex},
% pdfproducer = {latex-pdftex}
}
%% SVN-MULTI %%%%%%%%%%%%%%%%%%%
%\usepackage{svn-multi}
%% TODONOTES %%%%%%%%%%%%%%%%%%%
\usepackage{todonotes}
%% TIMES %%%%%%%%%%%%%%%%%%%
\usepackage{times}
%% TABLES %%%%%%%%%%%%%%%%%%%
\usepackage{tabularx}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{calc}
\usepackage{float}
\usepackage{hhline}
\usepackage{afterpage}
\usepackage{longtable}
\restylefloat{table}
\usepackage[TABBOTCAP]{subfigure}
%% INPUTENC %%%%%%%%%%%%%%%%%%%
\usepackage{wasysym}
\usepackage[utf8]{inputenc}
\input{macros.tex}
\usepackage[style=numeric,backend=bibtex,maxbibnames=10]{biblatex}
\addbibresource{rulebook}
\usepackage{acronym}
\acrodef{BS}{Base Station}
\acrodef{CS}{Cap Station}
\acrodef{RS}{Ring Station}
\acrodef{SS}{Storage Station}
\acrodef{DS}{Delivery Station}
\acrodef{refbox}{Referee Box}
\acrodef{MPS}{Modular Production System}
\acrodef{RCLL}{RoboCup Logistics League}
\acrodef{TC}{Technical Committee}
\acrodef{OC}{Organizational Committee}
\acrodef{TBD}{To be Discussed}
\acrodef{UMPS}{Unmarked MPS}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Titlepage
\hypersetup{pageanchor=false}
\pagenumbering{roman}
\begin{titlepage}
\vspace*{5cm}
\begin{center}
\begin{LARGE}
{\bf RoboCup Logistics League}\\[2ex]
{\Large Rules and Regulations 2024}\\[4ex]
\end{LARGE}
\hrule
{\LARGE\vspace*{4ex}}
\begin{Large}
The Technical Committee 2012--2024\\[6ex]
\end{Large}
\begin{tabular}{lll}
\textbf{Kousheek Chakraborty}&
\textbf{Leo F\"urba\ss}&
\textbf{Peter Kohout}\\
\textbf{Alain Rohr}&
\textbf{Daniel Ruelas}&
\textbf{Jesus Savage}\\
\textbf{Daniel Swoboda}&
\textbf{Tarik Viehmann}&\\[.5em]
Marco De Bortoli
&Vincent Coelen
&Christian Deppe
\\
Daniel Ewert
&Mostafa Gomaa
&Nils Harder
\\
Till Hofmann
&Sven Imhof
&Ulrich Karras
\\
Lukas Knoflach
&S\"oren Jentzsch
&Nicolas Meier
\\
Tobias Neumann
&Tim Niemueller
&Sebastian Reuter
\\
Gerald Steinbauer
&Wataru Uemura
&Thomas Ulz
\\
\end{tabular}
\vfill
Revision Date: Saturday, April 13\textsuperscript{\raisebox{-.2ex}{th}}
2024
%\\ DRAFT --- Work in Progress
\end{center}
\end{titlepage}
\thispagestyle{empty}
\pagebreak
\clearpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Table of Contents
\hypersetup{pageanchor=true}
\setcounter{page}{1}
\tableofcontents
\newpage
\cleardoublepage{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
\setcounter{page}{1}
\pagenumbering{arabic}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
\label{sec:intro}
The future of industrial production is to utilize smarter and more flexible
systems. Manufacturing industries are on the brink of
widely accepting a new paradigm for organizing production by introducing
perceiving, active, context-aware autonomous systems. This paradigm is
often referred to as Industry~4.0~\cite{Industry-4.0}, a move from static
process chains towards more automation and autonomy. One of its corner stones
are so called \emph{smart factories} which are flexible facilities in which
manufacturing steps are considered as services. This means that various
production steps, machines and sub-facilities can be combined in (almost)
arbitrary ways allowing for the production of various product types and
variants cost-effectively, even in small quantities. This is in contrast To
traditional production chains which produce only a small number of varieties
of a product at high quantities~\cite{RCLL-CPS}. To realize such factories
and make use of their full potential, more capable logistics systems are needed,
of which the most flexible form are autonomous mobile robots.
The \ac{RCLL} is determined to develop into a
state-of-the-art platform for mobile robotics education and research
tackling the problem of flexible and efficient production logistics at a
comprehensible size. Being an industry motivated league, it focuses
on challenges promoting precise actions and robust long-enduring
execution, and further encourages external data supported
autonomy. By providing feedback and competition hardware, industrial
partner Festo transfers insights into future factory concepts to help
uncover relevant future topics for education and research.
This year's competition is laid out in the following pages. It ensures
the same and fair conditions for all participants. It neither
dictates nor suggests how to fulfill the task, but is meant
to encourage new developments in the \ac{RCLL} through restrictions
and tasks. Smart Factory environments require new
concepts of flexibility, awareness and optimization from autonomous
entities working in an environment with specified, yet to some degree
uncertain and dynamic, agency. This includes current challenges of
developing industry-wide standards for Cyber Physical Systems for
production processes like designing plug-and-produce capable
systems.
\subsection{History and Recent Development}
After exciting competitions in the previous years, we look forward to a new
scale of competition that will emerge from initiatives around the globe. In
2012 we had our first Logistics League World Champion. In 2013 we introduced
the \ac{refbox}~\cite{RCI-RefBox} changing the competition at its core
by introducing a flow of information. This allowed for more dynamic games and
the automatic tracking of scores.
%, and to relax the hitherto existing
% regulations regarding additional computing power.
In 2014, we merged the formerly separate playing fields into a single field on
which both teams compete simultaneously, introducing the need for
self-localization, collision avoidance, and increased spatial coordination
complexity. Additionally, the production schedules became more dynamic in that
orders were posted dynamically and less frequently. In 2015 we introduced
actual physical processing machines based on the Festo
\ac{MPS} requiring more complex machine handling~\cite{wdrl2013}. The
production schedule has again become more flexible and dynamic, by introducing
color-coded rings of which a varying number can be requested to be mounted in a
specific order for a certain product. This increased the number of products
from 3 to about 240. After three years of constant and tremendous changes,
2016 was a year to consolidate our league as a whole by increasing the number
of participating teams and allowing existing teams to excel in their
capabilities. In 2017, we changed the field size and zone layout and we
shifted the focus from the exploration to the production phase. In 2018, we saw
more and more teams successfully delivering orders, even of higher complexity.
For 2019, the \ac{TC} integrated a barcode recognition system to track
products, which allows to automate scoring and to grant partial points for
production steps.
Additionally, the communication with the \ac{MPS} stations got
improved through a switch to new hardware and to the OPC Unified
Architecture\footnote{We gratefully thank the RoboCup Federation for
supporting the work on workpiece tracking and network robustness.}. The
introduction of competitive orders aimed to increase the competition aspect by
giving a bonus to the team that delivered first, thereby promoting strategic
reasoning to gain an advantage over the other team. Also, teams were allowed
to purchase additional robot maintenance, which increases
overall game activity while posing an additional strategic challenge to the
teams.
In 2020 the \ac{TC} reworked the storage station integration and the rules
regarding storage station usage. The storage station became fully functional.
In 2021 an online format was introduced to allow competitions around the
world without being required to gather at the same location or even having
a full field setup.
The online format consists of different challenges with varying difficulty.
While some of the complexity of the regular \ac{RCLL} game could not be
projected to the challenge format,
it allowed to introduce new ideas to the league,
that can be tested in isolated tasks before the final integration into
the regular game rules.
New teams also benefit from the challenge format as they can explore the
different aspects of the \ac{RCLL} without having to worry about the full scope
yet\footnote{A list of rule changes can be found at
\mbox{\url{https://github.com/robocup-logistics/rcll-rulebook}}}.
In 2022 the \ac{TC} reworked the online format to become a challenge track
for real competitions which is suitable for upcoming teams to solve individual
challenges of the \ac{RCLL}.
Seasoned teams continue to compete against each other in regular \ac{RCLL}
games in the main track of the competition.
The league also relaxed the hardware restrictions to allow the use of
alternative robotic platforms other than the Festo robotino for
teams competing in the new challenge track.
This enables interested teams to explore the different tasks of the \ac{RCLL}
before committing to the standard platform of the league.
Given recent developments in the object classification field, the
decision was made to rework the exploration in the main track.
Firstly, the exploration and production phase are merged to allow machine
usage as soon as they are correctly reported.
Secondly, the deprecated ALVAR tags got replaced by ARUCO tags as markers
for machines. ARUCO tags are widely supported.
Thirdly, teams can now chose to play without markers.
While currently being an optional choice, the \ac{TC} decided to establish
the use of markerless machine detecting methods in the future by rewarding
the play without markers in the games directly, instead of relying on a
separate technical challenge for this (as it was the case previously).
Lastly, the order schedule within \ac{RCLL} games in the main track got
modified to be less predictable while following simpler generation rules to
dispatch orders. Building upon these advances, the 2023 rule update focused
on including and codifying common practices during competitions and making
rules more specific and clear. Additionally, the point scoring for delivery
in a main track game were changed such that a bigger emphasis is put on the
delivery of products within the delivery-windows.
In 2024 the TC focused on the accessibility of the league by improving
documentation and procedures as well as updating the user interface of the
referee box to support dynamic reconfiguration and spectator views.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{The Task}
\label{sec:task}
Our aim is to provide a simplified Smart Factory environment, where
teams of autonomous robots must operate a flexible production plant without
human interference and against the clock.
The Logistics League's core task is to fulfill placed product orders by
executing multi-stage production cycles, before delivering the finished
products within the requested time frame.
This is achieved by transporting small pieces of material between assembly
machines (\ac{MPS} stations, see \refsec{sec:machines}),
which can be instructed to perform different refinement steps,
such as mounting a colored ring on a cylindrical base product.
Efficient handling of the material logistics and utilization of the available
machines are core requirements to succeed in the \ac{RCLL}.
Depending on the game format
(see \refsec{sec:tournament-main} and \refsec{sec:tournament-challenges}),
the machine positions might be unknown in the beginning, such that they need
to be correctly discovered (see \refsec{sec:exploration-period}).
The RCLL supports different competition tracks:
\begin{itemize}\itemsep0em
\item Production logistic scenarios where two teams compete against
each other on the same playing field and need to serve multiple dynamically
dispatched orders. This game mode is referred to as the \emph{main track}.
\item Individual challenges carried on a field, where only one team competes
at a time.
The challenges are designed to reflect the individual tasks that
are required to solve complex production scenarios from the main track.
This game mode is referred to as the \emph{challenge track}.
\end{itemize}
A \ac{RCLL} tournament is divided, such that entry-level teams participate in
the challenge track and advanced teams compete in the main track separately.
This work flow is controlled by a \acf{refbox}~\cite{RCI-RefBox}%
\footnote{Code and documentation available at
\url{https://github.com/robocup-logistics/rcll-refbox}}
broadcasting information via wifi (see \refsec{sec:referee-box}).
% TODO: check if this sentence is true
It is a software system that runs on a
system provided by the Organizing Committee and controls the overall game,
monitors feedback from the robots, and awards points.
The work flow itself is divided into phases:
During a setup phase (see \refsec{sec:setup-phase})
the field setup is prepared and the robots are started.
Within the production phase (see \refsec{sec:production-phase}) the
\ac{refbox} dynamically announces the tasks that the robots must fulfill
automatically. During the first part of the production phase, no machine
information will be announced.
Robots need to discover the positions of their machines and report
them to the \ac{refbox} (see \refsec{sec:exploration-period}).
The main production scenario utilizes all of the above phases, some of the
individual challenges skip the exploration phase, see
\refsec{sec:tournament-challenges} for details.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Agreements \& Regulations}
\label{sec:agreements}
\paragraph{Standardized Robotic Platform}
In the \ac{RCLL}, the Robotino robotic system from Festo Didactic SE is used as
the common base platform.
It can be used with certain freedoms and limitations regarding hardware and
software modifications and additions, which will be outlined in
\refsec{sec:robotino}.
This includes the current version, Robotino 4, as well as the phased-out
Robotino 3 and 2.
Entry-level teams can explore the league with other robotic platforms as
participation in the challenge track does not require the usage of the
Robotino platform. However, the general hardware constraints outlined in
\refsec{sec:robotino} still apply.
\paragraph{Rules Philosophy}
Each team should act within the meaning of a cooperative and fair behavior,
even if the goal of each team is to be the best.
Teams should not search for gaps or inconsistencies in the rulebook to achieve
advantages in the competition. Instead, we ask explicitly to bring such gaps
to our attention. Since the rulebook cannot cover all possible cases, we
consider a general gentleman agreement:
``One should treat others as one would like others to treat oneself''.
The factory area has to be treated in the best possible way.
Any possible damage to the field, opposing robots or the machines will be
penalized by the referee.
The general development of the rules loosely follows a tick-tock
rhythm, where years of larger rule modifications are followed by a
year of stabilization and conservative changes.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{League Administration} \label{sec:commitees}
\subsection{Technical Committee 2024}
\label{sec:tc}
The \acf{TC} is responsible to update and publish the
rulebook, to decide on technical questions during the tournament, and
to communicate with the league stake holders on technical
advancements. Current members of the \ac{TC} are
(in alphabetical order):\\[.5em]
% Alphabetical order by last name
\emph{Kousheek Chakraborty}, \'Ecole polytechnique universitaire de Lille,
Lille, France\\
\emph{Leo F\"urba\ss}, Graz University of Technology, Graz, Austria\\
\emph{Peter Kohout}, Graz University of Technology, Graz, Austria\\
\emph{Alain Rohr}, HFTM Technical Institute of Applied Science Mittelland,
Biel, Switzerland\\
\emph{Daniel Ruelas}, National Autonomous University of Mexico, Mexico City,
Mexico\\
\emph{Jesus Savage}, National Autonomous University of Mexico, Mexico City,
Mexico\\
\emph{Daniel Swoboda}, RWTH Aachen University, Aachen, Germany\\
\emph{Tarik Viehmann}, RWTH Aachen University, Aachen, Germany
\medskip
\noindent To get into contact with the \ac{TC} use the mailing list\\
\centerline{\url{robocup-logistics-tc@lists.rwth-aachen.de}}
\subsection{Organizing Committee 2024}
\label{sec:oc}
The \ac{OC} is responsible for organizing the
RoboCup competitions, to communicate to the RoboCup Federation
trustees and chairs the requirements of the league, and to inform and
attract new teams to the league. Current members of the \ac{OC} are (in
alphabetical order):\\[.5em]
\emph{Joshua Martin\`ez}, National Autonomous University of Mexico, Mexico City,
Mexico\\
\emph{Stefan Moser}, Graz University of Technology, Graz, Austria\\
\emph{Matteo Tschesche}, FH Aachen University of Applied Sciences, Aachen,
Germany\\
\emph{Wataru Uemura}, Ryukoku University, Kyoto, Japan
\medskip
\noindent To get into contact with the \ac{OC} use the mailing list\\
\centerline{\url{robocup-logistics-oc@lists.rwth-aachen.de}}
\subsection{Executive Committee}
\label{sec:ec}
Executive Committee members are responsible for the long term goals of
the league and thus have also contact to other leagues as well as to
the RoboCup federation. The Executive Committee presents the league
and its achievements to the RoboCup federation every year and gets
feedback to organize the league. All committee members are also
members of the Technical Committee. Executive Committee members are
elected by the Board of Trustees and appointed by the President of the
RoboCup Federation; they serve 3-year terms.\\[.5em]
%\emph{Alexander Ferrein}, FH Aachen, Aachen, Germany\\
\emph{Christian Deppe}, Festo Didactic SE, Denkendorf, Germany
\subsection{Website and Contact}
\label{sec:website-ml}
The website of the RoboCup Logistics League is available at\\
\centerline{\url{https://ll.robocup.org/}}
\smallskip
\noindent
A mailing list for general announcements and discussion about the
league is available at\\
\centerline{\url{https://lists.rwth-aachen.de/listinfo/robocup-logistics}}
\smallskip
\noindent
We also have a Slack workspace, which anyone is welcome to
join\footnote{{\url{https://join.slack.com/t/robocuplogist-ewg8659/shared_invite/zt-11rvzswk5-AuV0isGO3Log1soa5_dwmg}}}. %chktex ignore-long-line
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Competition Area} \label{sec:area}
\begin{figure}[p]
\includegraphics[width=\paperwidth, angle=-90, trim=0 0 0 0,]{field2022.pdf}
\vspace{1ex}
\caption{%
Competition area for two teams: Squares indicate zones for possible
machine placements, circles denote robots. Cyan and magenta are
team assignment colors. Thick blue lines are wall elements.
Dark gray areas are insertion areas where robots start. No machines may
be placed in the vicinity of other machines (light gray areas) or at
the insertion zone entrance (light red area).
}
\label{fig:competition-area}
\end{figure}
The competition area of the \ac{RCLL} has a rectangular shape. The field is
divided in square zones of \SI{1 x 1}{\metre}. %chktex 29
The zones of each field are named according to the following scheme:
A team prefix (``C-'' for cyan at the positive half of the X-axis, ``M-'' for
magenta at the negative half of the X-axs), ``Z'' to distinguish zone names,
and a grid coordinate form the name of a zone.
For example, The zone C-Z23 is a zone on the cyan primary half, which is
the second along the positive half of the X-axis and the third along the Y-axis.
Zones will not be physically represented or visible on the field.
They cannot be used for any other purpose than machine positioning.
The field is partially surrounded (at least 50\% but not more than 70\%)
by wall elements of at least \SI{0.5}{\metre} height.
Different machines are placed within the area, the constraints for
positioning them are given in \refsec{sec:machine-swapping}.
The \ac{RCLL} supports two kind of field layouts:
Firstly, a symmetrical one
with aspect ratio 1:2 intended for two teams to compete simultaneously
on the same area.
Secondly, a field with a squared layout that is intended for tasks,
where only one team is on the field at a time.
Fields also contain designated robot insertion areas, that are used as a
starting position for the robots when a game starts or a robot is inserted
into a running game. A team's insertion zone is always placed on the far side
along the X-axis of the side it is playing on, i.e.\ for a field side with
dimensions $m \times n$, the insertion zone will occupy the zones
$\{(m-2,1),(m-1,1),(m,1)\}$, with the robots entering through $(m-2,1)$
and $(m-2,2)$. The usage of these areas is restricted to these purposes,
unless stated otherwise. The insertion area is also partially surrounded by
wall segments as shown in \reffig{fig:competition-area} and
\reffig{fig:competition-area-challenges}.
In the following, the different field layouts are presented.
The depicted field layouts are examples only, the actual
distribution and alignment of machines on the competition area will change
before the actual game starts and will be different for each game. Thus, teams
should focus on a generic approach for production, allowing for
dynamic adaptation of machine positions and alignments.
\subsection{Fields with Aspect Ratio 2:1 (Main Track Field)}
\label{sec:competition-area}
An example of a competition area for games on the main track is shown in
\reffig{fig:competition-area}, it
features the reference standard size of \SI{14 x 8}{\metre} %chktex 29
large arena with 112 square zones
and with 14 randomly distributed machines (an identical set of 7 machines for
each team exclusively).
Alternatively, the field may be reduced in size symmetrically by the local
organizers to accomodate local limitations.
In case of a field size reduction, it must be guaranteed that all machines
can still be placed according to the rules in \refsec{sec:machine-swapping}.
The distribution and alignment of all machines is axially symmetrical
on the y-axis. Thus, each team has similar conditions on both halves of
the competition field.
For details, see \refsec{sec:machine-swapping}.
The entire area is shared among both teams on the field and any robot may travel
anywhere at any time (while not obstructing for an extended period of
time or pushing other robots or machines).
However, there are primary sides (split along the y-axis) for each team where
a team's \textit{robot insertion area} is located.
We will refer to the side with positive coordinates on the x-axis as the
(primary) half of team cyan, and the side with negative coordinates on the
x-axis as the (primary) half of team magenta.
\subsection{Fields with Aspect Ratio 1:1 (Challenge Track Field)}
\label{sec:competition-area-aspect-ratio-1}
An example of a competition area with aspect ratio 1 is shown in
\reffig{fig:competition-area-challenges},
it spans a \SI{5 x 5}{\metre} large %chktex 29
arena with 25 square zones, where 3 machines are placed.
Only one team at a time competes on the area, the team can play as either
cyan or magenta.
The refbox publishes machine infos for both cyan and magenta, e.g., in
the field of \reffig{fig:competition-area-challenges} a team playing as magenta
places M-BS in M-Z12, while a team playing as cyan places C-BS at C-Z12.
\begin{figure}[!ht]
\includegraphics{challenge-field2021.pdf}
\vspace{1ex}
\caption{%
Competition area on the magenta side for a field of the challenge track.
}
\label{fig:competition-area-challenges}
\end{figure}
\subsection{Moving on the Field}
\label{sec:field-movement}
The robots are free to move on the field. However, robots may not
leave the competition area (surrounded by the partial walls). That is, when
connecting all wall segments with the shortest possible edges, robots
may not move such that the base is fully outside this area. For
example, in \reffig{fig:competition-area}, the red robot is outside
the intended area and thus in an illegal position.
Robots that leave the competition area illegally are considered as
\emph{misbehaving robot} and punished accordingly
(cf.~\refsec{sec:misbehaving-robot}).
\section{Machines}
\label{sec:machines}
In the \ac{RCLL} 5 different types of production machines are
in use, each fulfilling a different role in the production process. Machines are
based on the \acf{MPS}\footnote{For
more information see
\url{http://www.robocup-logistics.org/links/festo-mps}.} by Festo
Didactic SE\@.
We use the terms \textit{MPS} and \textit{machine} interchangeably throughout
this rulebook.
Each \ac{MPS} shares the same basic layout as highlighted
in \reffig{fig:MPS-Layout}.
A movable rectangular trolley makes up the base of the machine.
A conveyer belt connecting the two short sides of
the machine is the main interaction point for robots.
Three colored signal lights are used to visually indicate the current state of
the machine.
Each machine type has additional individual application modules which provide
the different functionalities.
\begin{figure}[bh!]
\centering
\label{fig:MPS-Layout}
\includegraphics[height=7cm]{MPS2015/MPS_Layout.jpg}
\caption{General Machine Layout}
\end{figure}
Based on these shared properties, there are five kinds of machines:
\begin{description}
\item[\acf{BS}] acts as dispenser of base elements
(\reffig{fig:BS}). The application modules are three magazines of
base elements.
%There is a single \ac{BS} per team.
\item[\acf{CS}] mounts a cap as the final step in production
on an intermediate product (\reffig{fig:CS}). The application module
is a vacuum pick \& place module. There is a slide to store at most
one cap piece at a time. At the beginning this slide is empty and
has to be filled in the following way. A base element with a cap
must be taken to the machine and is then unmounted and buffered in
the slide. The cap is then mounted on the next intermediate product
taken to the machine.
%There are two \ac{CS} per team.
\item[\acf{RS}] mounts one colored ring out of two available
colors on an intermediate product (\reffig{fig:RS}). Each \ac{RS} has two
vacuum pick \& place units as application modules with separate
unique colors which are determined by the \ac{refbox}. There is an
additional pre-fill slide which is used for some colors (specified
anew for each game) to add base elements.
%There are two \ac{RS} per team.
\item[\acf{SS}] provides 48 slots of storage divided into
6 layers (\reffig{fig:SS_portrait}).
The Storage Station initially provides one pre-stored sample of each possible
$C_0$ configuration (one per layer), according to \reftab{tab:ss-c0-init}.
\begin{table}
\begin{tabular}{c|c||c}
\hline
\multicolumn{2}{c||}{\bf{Product}} &
\multicolumn{1}{c}{\bf{Position}} \\\cline{1-3}
Base Color & Cap Color & \\\hline
RED & GREY & (0,1) \\
RED & BLACK & (1,1) \\
SILVER & GREY & (2,1) \\
SILVER & BLACK & (3,1) \\
BLACK & GREY & (4,1) \\
BLACK & BLACK & (5,1) \\
\end{tabular}
\caption{Pre-stored C0 products at the \ac{SS}, the positions are labeled
according to \reffig{fig:ss-shelf}.}
\label{tab:ss-c0-init}
\end{table}
\item[\acf{DS}] Accepts completed products. The stations contains
three slides (\reffig{fig:DS}). The delivered products are verified by either
the referees or an automated external vision system.
%There is one \ac{DS} per team.
\end{description}
\noindent
Machines of type \ac{CS} and \ac{RS} are called production machines as they
perform refinement steps on a workpiece during the production
phase. Processing times are outlined in \reftab{tab:processing-times}.
\begin{figure}[bh!]
\centering
% \subfigure[General Machine Layout]{%
% \label{fig:MPS-Layout}
% \begin{minipage}[b]{1\linewidth}
% \centering
% \includegraphics[height=7cm]{MPS2015/MPS_Layout.jpg}
% \end{minipage}
% }
\quad
\subfigure[Base Station]{%
\label{fig:BS_portrait}%
\label{fig:BS}
\begin{minipage}[b]{0.3\linewidth}
\centering
\includegraphics[height=6cm]{MPS2024/BS.jpg}
\end{minipage}
}
\quad
\subfigure[Cap Station]{%
\label{fig:CS_portrait}
\label{fig:CS}
\begin{minipage}[b]{0.3\linewidth}
\centering
\includegraphics[height=6cm]{MPS2024/CS.jpg}
\end{minipage}
}
\quad
\subfigure[Ring Station]{%
\label{fig:RS_portrait}
\label{fig:RS}
\begin{minipage}[b]{0.3\linewidth}
\centering
\includegraphics[height=6cm]{MPS2024/RS.jpg}
\end{minipage}
}
\quad
\subfigure[Storage Station]{%
\label{fig:SS}
\label{fig:SS_portrait}
\begin{minipage}[b]{0.3\linewidth}
\centering
\includegraphics[height=6cm]{MPS2024/SS.jpg}
\end{minipage}
}
\quad
\subfigure[Delivery Station]{%
\label{fig:DS}
\begin{minipage}[b]{0.3\linewidth}
\centering
\includegraphics[height=6cm]{MPS2024/DS.jpg}
\end{minipage}
}
\vspace{-1ex}
\caption{The different \ac{MPS} stations}
\end{figure}
\begin{table}[!tb]
\centering
\mytable{
\begin{tabularx}{\linewidth}{l|l|X}
Type & Distribution & (Final) processing time[s]\\\hline
\acf{BS} & 1 per team & minimum physical time\\
\acf{CS} & 2 per team & $t_2 = \SItextrange{15:25}{\sec}$\\
\acf{RS} & 2 per team &$t_3 = \SItextrange{40:60}{\sec}$\\
\acf{SS} & 1 per team & minimum physical time\\
\acf{DS} & 1 per team &$t_5 =\SItextrange{20:40}{\sec}$
\end{tabularx}
}
\caption{\ac{MPS} type, distribution and processing times}
\label{tab:processing-times}
\end{table}
\subsubsection{Physical Description of Machines}
The stations have a rectangular base shape of \SI{0,35 x 0,7}{\metre}% chktex 29
with a height of about \SI{1}{\metre} depending on machine type.
A machine is movable by four wheels with \SI{0.1}{\metre} clearance.
Both narrow sides of the trolley are closed by plexiglas and have a handle.
All physical interfaces like conveyor belt inputs and outputs, shelves, and
slides for additional bases on ring stations are accessible at
\SI{89.8}{\centi\metre} height\footnote{Note however, that due to small
variances and unevenness in the floor there may likewise be small variances
in the working height of some or all parts of a station.}.
Working space between guiding lanes is \SI{4.5}{\centi\metre}. Setup lanes and
shelves feature approximately the same space for handling and
adjusting. All diffuse sensors (input side) have been removed to allow
for infrared-emitting cameras. To simplify the delivery on the belt,
each machine will be equipped with a narrowing cone on its input side
(\reffig{fig:narrow-cone}). You can order them from Festo Didactic SE
(C. Deppe) or download the STL model file from the \ac{RCLL} site.
\begin{figure}
\includegraphics[height=8cm]{narrowConeSketch.jpg}
\caption{Narrowing cone}
\label{fig:narrow-cone}
\end{figure}
% Still unclear, thus commenting out.
% If observed from the output side of machines (where the signal unit
% is placed) the conveyor space opens up at half of the aluminum
% profile thus starting at \SI{0,35}{\metre}.
%\begin{figure}[b!]
% \centering
% \includegraphics[height=7cm]{MPS2015/MPS_Layout.jpg}
%
% \caption{General Machine Layout}
% \label{fig:MPS-Layout}
%\end{figure}
\subsubsection{Machine Positioning}
\label{sec:machine-swapping}
The zones and rotations for the \ac{MPS} will be randomly chosen by the
\ac{refbox}\footnote{It is also possible to store and retrieve field layouts
with the \ac{refbox}, which is useful for testing purposes or if a game needs
to be restarted. See the \ac{refbox} configuration options in the wiki
for details.}.
Each game will have a new randomly generated field layout, the referees will
place the \ac{MPS} in the middle of the zone with given rotation at there
best effort but errors of the positioning should be expected.
A \ac{MPS} can generally be placed in any zones except those at the
entrance of the insertion area (the light red areas in
\reffig{fig:competition-area} and \reffig{fig:competition-area-challenges}).
These zones are needed to enter the field. Each \ac{MPS} has one out of 8
possible orientations, starting at \ang{0} with steps of \ang{45}
Intuitively, the different orientations are shown in the pictogram in
zone C\_Z41 of \reffig{fig:competition-area}, where
the tip of the blue arrow represents the input side of a machine and points
towards the respective rotation (\ang{0} in that figure).
Formally, to denote
the orientation we assign a local right-handed coordinate system to
each \ac{MPS} station. The x-axis is given by the conveyor pointing from
the output to the input. The origin is the center point of the
conveyor. The orientation is then the relative rotation of the local
\ac{MPS} system compared to the fixed field coordinate system. For example,
at an \ac{MPS} orientation of \ang{0}, its local coordinate system is
aligned with the field (in terms of orientation). Furthermore, an \ac{MPS}
at an orientation of \ang{90} will be rotated counter-clockwise a
quarter turn compared to the field system.
To ensure fairness, positions and orientations of the machines are mirrored
along the field's y-axis. There are two cases that need to be handled
separately. First, machines in a cell not adjacent to the wall, and machines of
types \ac{BS}, \ac{DS}, and \ac{SS} (even when adjacent to the wall) are
mirrored according to \reftab{tab:mirror-a}. Second, \ac{CS} and \ac{RS}
stations must be handled slightly different,
if oriented next to a wall or field border
(e.g., zones C-Z*1, C-Z*8, C-Z7*, M-Z*1, M-Z*8 and M-Z7* in
\reffig{fig:competition-area}).
The reason being, that the shelf and slide of these stations are
offset sideways at the input side. This might lead to the situation that for one
team the shelf is close to the wall, and for the other it is not. To remedy this
problem, the \ac{RS} and \ac{CS} machines adjacent to a wall will always
be placed such that the shelf or slide is on the farther end with respect
to the wall.
For example, in \reffig{fig:competition-area}, the magenta \ac{CS}
in M-Z77 with a rotation of \ang{270}. Were this setup mirrored, the shelf
on the cyan \ac{CS} in C-Z77 would be close to the wall.
Instead, it has a different orientation violating the y-symmetry
but allowing for easier access to the shelf.
\begin{wrapfigure}[10]{R}{0.2\linewidth}
\centering
\vspace{-2.1ex}
\mytable{
\begin{tabularx}{\linewidth}{
>{\raggedleft\arraybackslash}X|>{\raggedleft\arraybackslash}X
}
Cyan & Magenta \\ \hline
\ang{0}&\ang{180}\\
\ang{45}&\ang{135}\\
\ang{90}&\ang{90}\\
\ang{135}&\ang{45}\\
\ang{180}&\ang{0}\\
\ang{225}&\ang{315}\\
\ang{270}&\ang{270}\\
\ang{315}&\ang{225}\\
\end{tabularx}}%
\makeatletter%
\def\@captype{table}%
\makeatother%
\caption{\ac{MPS} orientation mapping during mirroring}
\label{tab:mirror-a}
\end{wrapfigure}
\begin{figure}[tb]
\centering
\subfigure[
For rotations with \ang{0}, \ang{90}, \ang{180} or \ang{270}.
\ac{BS}, \ac{CS}, \ac{RS}, and \ac{SS} block the zones close to the
input as well as the output. \ac{DS} blocks the zones close to the input.
]{
\label{fig:zone-mps-rotation-straight}%
\centering
\includegraphics[width=\textwidth]{bZones1.pdf}
}
\quad
\subfigure[
For rotations with \ang{45}, \ang{135}, \ang{225} and \ang{315}.
\ac{BS}, \ac{CS}, \ac{RS}, and \ac{SS} block the zones close to the
input as well as the output. \ac{DS} blocks the zones close to the input.
]{
\label{fig:zone-mps-rotation-odd}
\centering
\includegraphics[width=\textwidth]{bZones2.pdf}
}
\caption{
Blocked zones regarding the \ac{MPS} rotation (red zones must not
be used as position for other machines and must be located inside
the competition area).
}
\label{fig:zone-mps-blocked}
\end{figure}
For placing of machines, the \ac{refbox} will take care of the
necessary constraints to ensure that all in- and output sides, shelves
and slides are reachable. That
is, a path to each blocked zone (see \reffig{fig:zone-mps-blocked}) must exist
from any unoccupied or blocked zone of the field. If a machine is rotated with
\ang{0}, \ang{90}, \ang{180} or \ang{270} the zones in front the input and
output side are blocked as well (\reffig{fig:zone-mps-rotation-straight}). For
machines with rotations \ang{45}, \ang{135}, \ang{225} and \ang{315} three zones
in front of each input and output side are blocked
(\reffig{fig:zone-mps-rotation-odd}). No \ac{MPS} nor blocked zones for
another \ac{MPS} may be placed in a blocked zone.
All blocked zones of any \ac{MPS} must be located
within the competition area. Furthermore, only two machines will ever be placed
next to each other, a third machine will only be placed with at least one empty
zone in-between.
\subsubsection{Markers}
\label{sec:markers}
\begin{table}[b!]
\centering
\begin{tabular}{|l|c|c|c|c|l|}
\hline
&& \multicolumn{2}{c|}{Input}
& \multicolumn{2}{c|}{Output}
\\
\hline
&Machine & ID & Tag & ID & Tag
\\
\hline
&&&&&\\[-2ex]
\multirow{7}{*}{\rotatebox{90}{\bfseries Cyan\hspace{3.75cm}}}
& \ac{CS} 1 & 102
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_102}}
& 101
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_101}}
\\[2.5ex]
& \ac{CS} 2 & 104
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_104}}
& 103
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_103}}
\\[2.5ex]
& \ac{RS} 1 & 112
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_112}}
& 111
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_111}}
\\[2.5ex]
& \ac{RS} 2 & 114
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_114}}
& 113
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_113}}
\\[2.5ex]
& \ac{BS} & 122
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_122}}
& 121
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_121}}
\\[2.5ex]
& \ac{DS} & 132
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_132}}