forked from robocup-logistics/rcll-rulebook
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrulebook.tex
2981 lines (2695 loc) · 131 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}
%% 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!25!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}}
\newcommand{\SItextrange}[3][]{
\SI[
input-quotient=:,
output-quotient=\text{ to },
quotient-mode=symbol,
#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 2019},
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}
\restylefloat{table}
\usepackage[TABBOTCAP]{subfigure}
%% INPUTENC %%%%%%%%%%%%%%%%%%%
\usepackage{wasysym}
\usepackage[utf8]{inputenc}
\input{macros.tex}
\usepackage[style=numeric,backend=bibtex,maxbibnames=10]{biblatex}
\addbibresource{rulebook}
\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 2019}\\[4ex]
\end{LARGE}
\hrule
{\LARGE\vspace*{4ex}}
\begin{Large}
The Technical Committee 2012--2019\\[6ex]
\end{Large}
\begin{tabular}{lll}
\textbf{Vincent Coelen}&\textbf{Christian Deppe}&\textbf{Mostafa Gomaa}\\
\textbf{Till Hofmann}&\textbf{Ulrich Karras}&\textbf{Tim Niemueller}\\
\textbf{Alain Rohr}&\textbf{Thomas Ulz}\\[.5em]
Daniel Ewert&Nils Harder&S\"oren Jentzsch\\
Nicolas Meier&Sebastian Reuter&Wataru Uemura\\
Gerald Steinbauer&Tobias Neumann\\
\end{tabular}
\vfill
Revision Date: Wednesday, April 10\textsuperscript{\raisebox{-.2ex}{th}}
2019
%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 lies with smarter
systems. Manufacturing industries are on the brink of widely accepting
a new paradigm for organizing production by introducing perceiving,
active, context-aware, and autonomous systems. This is often referred
to as Industry~4.0~\cite{Industry-4.0}, a move from static process
chains towards more automation and autonomy. The corner stones for
this paradigm shift are \emph{smart factories}, which is a
context-aware facility in which manufacturing steps are considered as
services that can be combined efficiently in (almost) arbitrary ways
allowing for the production of various product types and variants
cost-effectively even in small lot sizes, rather than the more
traditional chains which produce only a small number of product types
at high volumes~\cite{RCLL-CPS}. Such factories will require a much
more capable logistics system, of which the most flexible form are
autonomous mobile robots.
The RoboCup Logistics League (RCLL) is determined to develop into a
state-of-the-art platform for mobile robotics education and research
tackling this problem of flexible and efficient production logistics at a
comprehensible size. This industrial motivated league 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 provides 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 circumstances for all participants. It neither
dictates nor suggests the way how to fulfill the task, but is meant
to develop the RCLL further. 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. Opposed to numerous approaches regarding production
infrastructure, RCLL aims to provide concepts for smart production
logistics.
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 Referee Box (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 Modular Production
System (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 TC is working towards a barcode recognition system to track
products, which allows to automate scoring and to grant partial points for
production steps. Additionally, we are working towards a more robust
competition by replacing the communication with the MPS stations by new
hardware and software\footnote{We gratefully thank the RoboCup Federation for
supporting the work on workpiece tracking and network robustness.}. The
introduction of competitive orders aims 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 starting this year,
we allow teams to purchase additional robot maintenance, which will increase
overall game activity while posing an additional strategic challenge to the
teams\footnote{A list of rule changes can be found at
\mbox{\url{https://github.com/robocup-logistics/rcll-rulebook}}}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{The Task}
\label{sec:task}
Our aim is to provide a simplified Smart Factory environment. The
teams must complete the following task without human interference,
competing with a second team against the clock. In the RCLL,
autonomous robot agents have to handle the logistics of materials
through several (dynamic) stages to produce final goods to fulfill
orders. The machines are specific MPS stations.
The Logistics League's main challenge is a multistage production cycle
of different product variants with self-crafted intermediate products
and delivery of final products. This genuine goal will be rewarded
considerably higher than partial fulfillment of the task. Autonomous
robots transport small products between the processing
machines. Machines are MPS stations which complete a particular
refinement step like mounting a colored ring or top-most cap. If
procurable this will lead to a new sub-assembly or final product
(cap). Complete work orders require all related sub-assemblies of
product variants (cf. \refsec{sec:production-complexities}).
This work flow is controlled by a referee box broadcasting information
via wifi (see \refsec{sec:referee-box}). The work flow itself is
divided into three different phases: a setup
phase (see \refsec{sec:setup-phase}), an exploration phase (see
\refsec{sec:exploration-phase}) during which robots receive scores for
correctly discovering and publishing the positions of the yet
unknown different machines on the field. After this phase the referee
box will announce all machine types and designations. In the following
production phase (see~\refsec{sec:production-phase}) orders are
announced by the referee box, which the robots must fulfill
automatically.
Finally,
successfully assembled products are to be delivered to the correct
conveyor belt of the team's delivery station. 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.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Agreements \& Regulations}
\label{sec:agreements}
In the RCLL, all teams are obliged to use the Robotino robotic system
from Festo Didactic SE with certain freedoms and limitations. This
includes the current version, Robotino 3, as well as the phased-out
Robotino 2. \refsec{sec:robotino} describes the specific constraints.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Rules Philosophy}
\label{sec:rules-philosphy}
The goal of this industrially inspired league is to complete the tasks
as quickly and reliably as possible. Each team should act within the
meaning of a cooperative and fair behavior, even if everyone wants to
be the better one. 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 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 2019}
\label{sec:tc}
The technical committee (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 TC are (in alphabetical order):\\[.5em]
% Alphabetical order by last name
\emph{Vincent Coelen}, Ecole polytechnique universitaire de Lille\\
\emph{Christian Deppe}, Festo Didactic SE, Denkendorf, Germany\\
\emph{Mostafa Gomaa}, RWTH Aachen University, Aachen, Germany\\
\emph{Till Hofmann}, RWTH Aachen University, Aachen, Germany\\
\emph{Alain Rohr}, HFTM Technical Institute of Applied Science Mittelland,
Biel, Switzerland\\
\emph{Thomas Ulz}, Graz University of Technology, Graz, Austria
\medskip
\noindent To get into contact with the TC use the mailing list\\
\centerline{\url{[email protected]}}
\subsection{Organizing Committee 2019}
\label{sec:oc}
The organizing committee (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 OC are (in
alphabetical order):\\[.5em]
\emph{Stefan Brandenberger}, HFTM Technical Institute of Applied Science
Mittelland, Biel, Switzerland\\
\emph{Vanessa Egger}, Graz University of Technology, Graz, Austria\\
\emph{Wataru Uemura}, Ryukoku University, Japan
\medskip
\noindent To get into contact with the OC use the mailing list\\
\centerline{\url{[email protected]}}
\subsection{Executive Committee 2015--2019}
\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{Ulrich Karras}, priv. Dozent, Essen, Germany\\
\emph{Tim Niemueller}, RWTH Aachen University, Aachen, Germany
\subsection{Website and Mailinglist}
\label{sec:website-ml}
The website of the RoboCup Logistics League is available at\\
\centerline{\url{http://www.robocup-logistics.org}}
\smallskip
\noindent
A mailing list for general announcements and discussion about the
league is available at\\
\centerline{\url{https://lists.kbsg.rwth-aachen.de/listinfo/robocup-logistics}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Competition Area} \label{sec:area}
\subsection{Field Layout and Dimensions}
\label{sec:competition-area}
\begin{figure}[p]
\includegraphics[width=\paperwidth, angle=-90, trim=0 0 0 0,]{field2017.pdf}
\vspace{1ex}
\caption{Competition area: squares indicate zones for possible
machine placements, circles denote robots. Cyan and magenta are
team assignment colors. Thick blue lines are wall elements. The
green robot is at an acceptable position, while the red one
would have to be penalized for leaving the field. Grey areas are
insertion areas where robots start. No machines may be placed in
the light-red areas.}
\label{fig:competition-area}
\end{figure}
The competition area is shown in \reffig{fig:competition-area} and
features a \SI{14 x 8}{\metre} large arena with 106 square zones %chktex 29
of \SI{1 x 1}{\metre} with 14 randomly distributed machines. The % chktex 29
field is partially surrounded (at least 50\% but not more than 70\%)
by wall elements of at least \SI{0.5}{\metre} height. The origin and
coordinate system of the competition field is drawn in
\reffig{fig:competition-area} and will be intrinsically referred to
for each statement within this rulebook. The normal floor of the
exposition-rooms is used, it will be reasonable flat. 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}, and \textit{Base, Storage and Delivery
Stations}, are 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.
The robot insertion areas (gray area on \reffig{fig:competition-area})
are outside of the main game area. All 14 machines, 7 per team, are
placed within the factory area as stated in
\reffig{fig:competition-area}. Machines have two kind of sides: active
(wide, where the robot interacts) and ignored (narrow) edges. The
constraints for positioning of the MPS are given in
\refsec{sec:machine-swapping}.
The distribution and alignment of all machines is axially symmetrical
to the y-axis. Thus, each team has similar conditions on both halves of
the competition field. Both teams have an exclusive set of 7 out of
the 14 machines each. Machines from one team can also be located on the
primary side of the opposing team. We will later discuss the concept
of the production machine distribution for each team in detail.
The center coordinates and the size of the zones in which the machines
are placed can be seen in \reffig{fig:competition-area}. The zone
names are structured as a team prefix (``C-'' for cyan, ``M-'' for
magenta), Z to distinguish zone names, and a grid coordinate. For
example, The zone C-Z23 is the zone on the cyan primary half, which is
the second along the X-axis and the third along the Y-axis. Zones are
only a means to position machines. They will not be physically
represented or visible on the field. They cannot be used for any other
purpose.
Note that this specific field layout is an example only, accounting
for symmetry and avoiding clustering of machine access nodes and
unapproachable machines. However, 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.
\subsubsection{Moving on the Field}
\label{sec:field-movement}
The robots are free to move on the field. However, robots may not
leave the main 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:robot-maintenance}).
\subsection{Machines}
\label{sec:machines}
Machines are based on the Modular Production System (MPS)\footnote{For
more information see
\url{http://www.robocup-logistics.org/links/festo-mps}.} by Festo
Didactic SE\@. The MPS provides a number of stations which
make up the machines used in the competition. The stations have a
rectangular base shape of \SI{0,35 x 0,7}{\metre} with a height of % chktex 29
about \SI{1}{\metre} depending on machine type. The machine
has individual application modules that provide different
functionality.
All machines share the same basic layout: a trolley, conveyor belt,
and signal light. 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 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}
Based on these shared properties, there are five kinds of machines:
\begin{description}
\item[Base Station (BS)] acts as dispenser of base elements
(\reffig{fig:BS}). The application modules are three magazines of
base elements. There is a single BS per team.
\item[Cap Station (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 CS per team.
\item[Ring Station (RS)] mounts one colored ring out of two available
colors on an intermediate product (\reffig{fig:RS}). Each RS has two
vacuum pick \& place units as application modules with separate
unique colors which are determined new for each game. 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 RS per team.
\item[Storage Station (SS)] provides 24 slots of storage divided into
6 layers (\reffig{fig:SS_portrait}). For now items can be shipped
out on the output side on request. The Storage Station provides a
sample of each possible $C_0$ configuration (one per
layer).\footnote{Note that this is the specific content for 2019 and
may change in the future.}
\item[Delivery Station (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 DS per team.
\end{description}
\noindent
Machines of type CS and 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]{MPS2015/BS_portrait.png}
\end{minipage}
}
\quad
\subfigure[Cap Station]{%
\label{fig:CS_portrait}
\label{fig:CS}
\begin{minipage}[b]{0.3\linewidth}
\centering
\includegraphics[height=6cm]{MPS2015/CS_portrait.png}
\end{minipage}
}
\quad
\subfigure[Ring Station]{%
\label{fig:RS_portrait}
\label{fig:RS}
\begin{minipage}[b]{0.3\linewidth}
\centering
\includegraphics[height=6cm]{MPS2015/RS_portrait.png}
\end{minipage}
}
\quad
\subfigure[Storage Station]{%
\label{fig:SS}
\label{fig:SS_portrait}
\begin{minipage}[b]{0.3\linewidth}
\centering
\includegraphics[height=6cm]{MPS2015/SS_portrait.jpg}
\end{minipage}
}
\quad
\subfigure[Delivery Station]{%
\label{fig:DS}
\begin{minipage}[b]{0.3\linewidth}
\centering
\includegraphics[height=6cm]{MPS2015/DS_Input.png}
\end{minipage}
}
\vspace{-1ex}
\caption{The different MPS stations}
\end{figure}
\begin{table}[!tb]
\centering
\mytable{
\begin{tabularx}{\linewidth}{l|l|X}
Type & Distribution & (Final) processing time[s]\\\hline
Base Station (BS) & 1 per team & minimum physical time\\
Cap Station (CS) & 2 per team & $t_2 = \SItextrange{15:25}{\sec}$\\
Cap Station (CS) & 2 per team & $t_2 = \SItextrange{15:25}{\sec}$\\
Ring Station (RS) & 2 per team &$t_3 = \SItextrange{40:60}{\sec}$\\
Storage Station (SS) & 1 per team & minimum physical time\\
Delivery Station (DS) & 1 per team &$t_5 =\SItextrange{20:40}{\sec}$
\end{tabularx}
}
\caption{MPS type, distribution and processing times}
\label{tab:processing-times}
\end{table}
\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}}}
& CS 1 & 1
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_1}}
& 2
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_2}}
\\[2.5ex]
& CS 2 & 17
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_17}}
& 18
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_18}}
\\[2.5ex]
& RS 1 & 33
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_33}}
& 34
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_34}}
\\[2.5ex]
& RS 2 & 177
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_177}}
& 178
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_178}}
\\[2.5ex]
& BS & 65
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_65}}
& 66
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_66}}
\\[2.5ex]
& DS & 81
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_81}}
& 82
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_82}}
\\[2.5ex]
& SS & 193
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_193}}
& 194
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_194}}
\\[2.5ex]
\hline
\end{tabular}
\hfill
\begin{tabular}{|l|c|c|c|c|c|}
\hline
&& \multicolumn{2}{c|}{Input} & \multicolumn{2}{c|}{Output}\\\hline
&Machine & ID & Tag & ID & Tag\\\hline
&&&&&\\[-2ex]
\multirow{7}{*}{ \rotatebox{90}{\bfseries Magenta\hspace{3.4cm}}}
& CS 1 & 97
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_97}}
& 98
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_98}}
\\[2.5ex]
& CS 2 & 113
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_113}}
& 114
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_114}}
\\[2.5ex]
& RS 1 & 129
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_129}}
& 130
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_130}}
\\[2.5ex]
& RS 2 & 145
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_145}}
& 146
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_146}}
\\[2.5ex]
& BS & 161
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_161}}
& 162
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_162}}
\\[2.5ex]
& DS & 49
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_49}}
& 50
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_50}}
\\[2.5ex]
& SS & 209
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_209}}
& 210
& \parbox[c]{1.2cm}{
\includegraphics[width=1.2cm]{markers/figure_210}}
\\[2.5ex]
\hline
\end{tabular}
\caption{Machine tags are ALVAR tags with the given IDs.}
\label{tab:markers}
\end{table}
Each machine will feature two \emph{markers} based on ALVAR AR tags,
one will be placed on the input, another one on the output side. All
markers used are depicted in \reftab{tab:markers}. The marker will be
horizontally centered below the conveyor belt. The vertical distance
(between tag and conveyor belt) will be about
\SI{35}{\centi\metre}. The markers will be mounted at the same
position on all machines in a best effort fashion. But teams should
expect to calibrate individually per marker. They are available for
printing on the RoboCup Logistics website.
\subsubsection{Machine Positioning}
\label{sec:machine-swapping}
The zones and rotations for the MPS will be randomly chosen by the RefBox.
Each game will have a new randomly generated field layout, the referees will
place the MPS in the middle of the zone with given rotation at there best effort
but errors of the positioning should be expected.
A MPS can be placed in any zones except C-Z52 and M-Z52. These zones
are needed to enter the field. Each MPS has one out of 8 possible
orientations, starting at \ang{0} with steps of \ang{45}. To denote
the orientation, we assign a local right-handed coordinate system to
each 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
MPS system compared to the fixed field coordinate system. For example,
at an MPS orientation of \ang{0}, its local coordinate system is
aligned with the field (in terms of orientation). Furthermore, an 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 BS, DS, and SS (even when adjacent to the wall) are mirrored according to
\reftab{tab:mirror-a}. Second, CS and RS stations must be handled slightly
different, if oriented next to a wall (zones: C-Z*1, C-Z*8, C-Z7*, M-Z*1, M-Z*8
and M-Z7*). 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 RS and 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 CS in M-Z76 with a
rotation of \ang{270}. Were this setup mirrored, the shelf on the cyan CS in
C-Z76 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}[14]{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{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}. BS, CS, RS,
and SS block the zones close to the input as well as the output. 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}. BS, CS,
RS, and SS block the zones close to the input as well as the output. 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 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 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 MPS nor blocked zones for another MPS
may be placed in a blocked zone. All blocked zones of any 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.
The MPS will be placed mostly on the primary half of a team
(cf. \refsec{sec:competition-area}). However, some machines will be
swapped, that is, some machines will not be located in the primary
half.
For each game, one CS and one RS of each team will be chosen randomly
and swapped with the corresponding machine of the other team on the
non-primary half --- that is two machines in total per team. The CS and
RS will be swapped with the symmetrically positioned machine of the
same type of the other team. For consecutive games, the changes to the
machine to zone assignment may be limited by the referee box in order
to reduce the time needed to implement the layout during the setup
phase.
\subsubsection{MPS --- During Exploration Phase}
\label{sec:production-machines-exp}
During the exploration phase the robots of each team must explore the
unknown factory environment to identify where the different MPS are
located and in which rotations they are positioned.
The Referee Box assigns each machine to a team and a zone
(\reffig{fig:competition-area}) at the start of the exploration
phase,\footnote{Since 2017 there are no more fixed stations.}
The zones and orientations (in steps of 45$^\circ$) are randomly determined,
and will not be communicated until the production phase. For details about the
Exploration Phase confer~\refsec{sec:exploration-phase}.
The signal light of the MPS will show a yellow light until a report regarding
this machine is sent. If the wrong MPS zone is sent, the light will start red
flashing. If only the MPS zone is sent, the green light will be turn on. If
the zone and rotation is correctly reported, the green light will be flashing
and if the zone is correct but the rotation wrongly reported the red and green
light will be on.
\begin{table}[bt]
\centering
\mytable{\begin{tabularx}{\linewidth}{p{0.36\linewidth}|X}
\multicolumn{1}{l}{Optical Feedback}
& \multicolumn{1}{l}{Operating mode}
\\
\hline
All LEDs turned off
& The machine is physically offline, caused by a real error, which should
not happen during the competition.
\\
Red LED turned on & The machine is out of order. \\
%Red LED flashing (at 2 Hz)
%& Machine signals that it ran out of stock on any required item. \\
Green LED turned on & The machine is idle and ready.\\
Green LED flashing & The machine has accepted the prepare command
(flashes for up to 3 seconds).\\
Green and yellow LED turned on & The machine is currently busy.\\
Yellow LED turned on & A workpiece is ready for pickup.\\
Red and yellow LED flashing (2 Hz) & Machine is broken, for
example because a product was fed without proper preparation of the
machine.\\%\hline
%%keep Red any Yellow one?
\end{tabularx}}
\caption{MPS --- Optical Feedback during production phase}
\label{tab:production-machines-feedback}
\end{table}
\vspace*{-2mm}
\subsubsection{MPS --- During Production Phase}
\label{sec:production-machines-production}
In the production phase a production machine performs refinement steps on
a product such as mounting an additional ring or a cap. Machines
operate in a transaction style. That is, before using a machine it
must be prepared for a specific mode. Then the input products can be fed
into the machine and the refinement step commences. Eventually, after
the production period is completed, the resulting product is delivered
on the output lane.
A light signal mounted near the output lane
(cf. \refsec{sec:machines}) indicates the state of the machine. In the
default operating mode, the green light is turned on. This signals
that the machine is ready for preparation. When preparation is performed,
the machine will flash the green light for up to 3 seconds (it
immediately switches to a new state, e.g., if a product is fed into the
machine before the three seconds have expired). When a product is fed
to the input, the signal light indicates the processing condition. If
the machine accepts the input and starts processing, the green and yellow lights
will be turned on steadily for as long as the processing is
performed. Once processing completes, the signal light switches to a
steady yellow light. If a product is fed for which additional bases
were required but which have not been delivered, the machine will
flash the red and yellow light and will be out of order
(cf. \refsec{sec:broken-machine}). The light signals are summarized in
\reftab{tab:production-machines-feedback}.
In the production phase, machines must be prepared to be used. This
applies to all machine types. The DS, CS and RS start the conveyor
belt upon receiving a prepare message. If no workpiece reaches the
machine operating point (indicated through the middle belt sensor)
within \SI{30}{\second}, the machine goes to a temporary out-of-order
state (cf.~\refsec{sec:broken-machine}). The BS and SS will
immediately dispense a workpiece upon receiving a prepare message. The
workpiece may remain on the machine for an arbitrary time.
The following describes the communication and reactions of the
machines during the production phase. For the actual messages we refer
to the integrator's manual~\cite{RefBoxIntManual}.
\smallskip
\noindent\textbf{BS}
The BS prepare message denotes the color of the base element that should
be dispensed. After receiving the message, the refbox will instruct
the MPS to immediately provide a base of the desired color.
\noindent\textbf{DS}
The DS prepare message denotes the order ID of the product that is delivered.
The DS will consume any workpiece provided, but points can only be scored if the
DS has been properly prepared.
\noindent\textbf{CS}
The CS prepare message initiates either the retrieval or the mounting of
a cap. For retrieving a prepared base (with a cap mounted on top) from
the machine's shelf must be fed into the machine. All base elements
prepared on the shelf are specially colored workpieces (clear). The
machine will take the cap off the base and buffer it on the slide,
releasing the decapped base to the output side. This base can only be
used for providing an additional base to an RS (see below), reuse by
placing it back on the shelf, or discarding it at the DS\@. For
mounting a cap, a workpiece (without cap) must be provided onto which
the cap is mounted.
\noindent\textbf{RS}