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:

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.