@@ -24,6 +24,23 @@ The controller will generate a default config file to [config/ssl-game-controlle
24
24
* A reasonable Web-Browser (mostly tested on Chrome)
25
25
* (optional) To view the field, you need the [ ssl-vision-client] ( https://github.com/RoboCup-SSL/ssl-vision-client )
26
26
27
+ ### External Runtime Dependencies
28
+ [ ssl-vision] ( https://github.com/RoboCup-SSL/ssl-vision ) - Receive Geometry packages for correct field dimensions
29
+ If not available, make sure to configure to correct dimensions in [ config/ssl-game-controller.yaml] ( config/ssl-game-controller.yaml ) .
30
+
31
+ tracker-source implementation that produces
32
+ [ TrackerWrapperPacket] ( https://github.com/RoboCup-SSL/ssl-vision/blob/master/src/shared/proto/messages_robocup_ssl_wrapper_tracked.proto ) -
33
+ Get ball and robot positions.
34
+ Required for:
35
+ * Check ball placement progress
36
+ * Check for correct number of robots per team
37
+ * Check if game can continue (ball and robots prepared)
38
+ * Check for "no progress"
39
+ * Check if keeper may be changed via team protocol
40
+
41
+ The [ TIGERs AutoRef] ( https://github.com/TIGERs-Mannheim/AutoReferee ) is a tracker-source implementation.
42
+ If no tracker-source is available, the above features will not work.
43
+
27
44
### Reference Clients
28
45
There are some reference clients:
29
46
* [ ssl-ref-client] ( ./cmd/ssl-ref-client ) : A client that receives referee messages
@@ -55,24 +72,26 @@ It has following advantages:
55
72
1 . You define the time and thus the speed.
56
73
1 . You provide the ssl-vision tracking data directly.
57
74
58
- The ` ci ` mode does not work when you use external simulators like grSim.
59
- Consider using the ` vision ` mode instead.
75
+ If you use external simulators like grSim, you can consider using the ` vision ` mode instead.
76
+ That way, the game-controller uses the time and speed of the simulator, even if it is not
77
+ running in real time. You then still need to run a tracking-source implementation like an AutoRef
78
+ if you require the additional features described in [ External Runtime Dependencies] (#External Runtime Dependencies).
60
79
61
80
When you enable ` ci ` mode, referee messages will still be published via multicast,
62
- unless the address unset (set to an empty string). That way, you can still integrate
81
+ unless the address is unset (set to an empty string). That way, you can still integrate
63
82
an autoRef. It is not yet possible to use the autoRefs without multicast.
64
83
65
84
When the ` ci ` mode is enabled (via ` ssl-game-controller.yaml ` -> ` time-acquisition-mode ` ),
66
85
a TCP port is opened (default: 10009). The protocol is defined in [ proto/ssl_gc_ci.proto] ( ./proto/ssl_gc_ci.proto ) .
67
- You send ` CiInput ` messages and receive ` CiOutput ` messages.
86
+ You send ` CiInput ` messages and receive ` CiOutput ` messages. The protocol is the same as for the [ team-client ] ( ./cmd/ssl-team-client/README.md ) .
68
87
Each input will produce one or more outputs.
69
88
This is, because some changes will generate multiple messages.
70
89
` CiOutput ` messages will also be pushed to the CI client for manual changes from the UI or UI API.
71
90
72
- The GC requires ssl-vision detection data to work correctly .
73
- By default, it just receives ssl-vision messages .
74
- In the ` ci ` mode, you have to provide the data via the ci protocol .
75
- The message format is the same as for the recently introduced tracking protocol .
91
+ The GC requires some input data, see [ External Runtime Dependencies ] (#External Runtime Dependencies) .
92
+ In the ` ci ` mode, you have to provide the geometry statically in [ config/ ssl-game-controller.yaml ] ( config/ssl-game-controller.yaml ) .
93
+ The ball and robot positions must be sent with the ` CiInput ` .
94
+ It is sufficient to fill in the required fields and keep the optional empty .
76
95
77
96
A small sample test client for the ` ci ` mode can be found here: [ ssl-ci-test-client] ( ./cmd/ssl-ci-test-client/README.md )
78
97
0 commit comments