@@ -24,6 +24,23 @@ The controller will generate a default config file to [config/ssl-game-controlle
2424 * A reasonable Web-Browser (mostly tested on Chrome)
2525 * (optional) To view the field, you need the [ ssl-vision-client] ( https://github.com/RoboCup-SSL/ssl-vision-client )
2626
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+
2744### Reference Clients
2845There are some reference clients:
2946 * [ ssl-ref-client] ( ./cmd/ssl-ref-client ) : A client that receives referee messages
@@ -55,24 +72,26 @@ It has following advantages:
55721 . You define the time and thus the speed.
56731 . You provide the ssl-vision tracking data directly.
5774
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).
6079
6180When 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
6382an autoRef. It is not yet possible to use the autoRefs without multicast.
6483
6584When the ` ci ` mode is enabled (via ` ssl-game-controller.yaml ` -> ` time-acquisition-mode ` ),
6685a 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 ) .
6887Each input will produce one or more outputs.
6988This is, because some changes will generate multiple messages.
7089` CiOutput ` messages will also be pushed to the CI client for manual changes from the UI or UI API.
7190
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 .
7695
7796A small sample test client for the ` ci ` mode can be found here: [ ssl-ci-test-client] ( ./cmd/ssl-ci-test-client/README.md )
7897
0 commit comments