Tech Ops (SRComp etc.)¶
At the competition event we use "competition software" to record and manage the state of the competition as well as various aspects of the event production. This includes the timings and scoring of matches, controlling lighting & audio around the arena as well as displaying relevant information to competitors & volunteers around the venue.
We use the SRComp suite of tools to achieve this.
The following links are useful entry points into SRComp's own documentation:
- Competition Preparation outlines the steps which are needed to set up for each year
- Common Operations and the
srcomp-cli
docs for anyone working with SRComp at or before the event - Component Overview for anyone developing SRComp or things on top of it
We also have our own specific pieces which builds on SRComp:
- SRComp Mixtape -- a service which performs actions in response to events throughout a competition; this is used to control lighting and music around the arena
- Competition website -- a sub site of our website which
is dedicated to the competition and builds on SRComp's HTTP API; this also
includes a replacement homepage used during the event, toggled via
enable_competition_homepage
in our main ansible config
Preparation for a competition¶
Compstate¶
Information for a given competition is stored in a compstate. This is a git repository containing configuration and data about the state of the competition.
We host our compstates on GitHub, named srYYYY-comp
(e.g:
sr2024-comp
). Setup of each year's compstate is as documented
in SRComp's documentation on Competition Preparation.
Public Compbox¶
We host a public SRComp deployment at https://srcomp.studentrobotics.org. This is an Ubuntu Virtual Machine configured with srcomp-puppet, hosted within our VM hosting provider and suitably added to our DNS.
This machine is usually created with a low capacity spec and temporarily bumped one or two rungs for the week around the competition. In recent years we have created it shortly before the Virtual Competition and kept it live until a couple of months after the main Competition event. This provides enough time for the pages it powers to be used for that cycle, while keeping costs to a minimum.
Venue Compbox¶
Within the venue we use a Raspberry Pi 3 Model B (typically part code
srL1CX
), which is also configured with
srcomp-puppet. This Pi and its power supply are stored together
in a cardboard box, itself is stored within the same RUB as contains the 3L RUB
(sr1VU19
) which houses the Raspberry Pi 2011.12s that
have historically been the drivers for the various in-venue displays.
The venue compbox is typically given internal hostname compbox.lan
or similar,
depending upon the internal TLD being used. Historically we included the year
number in the name, however this created unnecessary friction each year when
deploying related parts of the competition network.
Due to differences between Raspberry Pi OS and Ubuntu, preparation of the Pi deployment of srcomp-puppet typically requires more effort than the public deployment.
Competition network¶
Within the venue we typically have an isolated computer network used to connect the various Tech Ops devices. This network is hardwire as much as possible as various aspects of our system depend are timing dependent and thus these connections need to be reliable and very low latency.
For convenience of volunteers connecting to it we also offer a connection into
it via WiFi, typically SSID SRNet
.