Skip to content

Scoring engine

kolaf edited this page Jan 3, 2024 · 1 revision

Contestant processor

At the heart of the scoring engine is the contestant processor. It is responsible for consuming incoming position reports, interpolate missing data, store the data in the database, and push to the front end. For each incoming or interpolated position (positions are interpolated so that there is exactly one position each second) the contestant processor calls the gatekeeper to perform any scoring updates.

Gatekeeper

A fundamental assumption of all tracks in ASLT are that there are gates or waypoints. This is enforced by the abstract gatekeeper class, and it is up to the gatekeeper subclasses to enforce any rules on the gate passings. For instance, the existing GatekeeperRoute class enforces a sequence of gates that must be crossed in order. Any gate that is missed will be penalised, as will timing deviations. In this class gates are a fictitious line of a given length that must be crossed in the correct direction.

It is entirely possible to implement another gatekeeper with a different concept of gates. For instance, instead of being an ordered list that must be crossed in sequence, we can have an unordered set of gates that can be crossed in any order, and crossing a gate can be determined by closing within a given distance to the gate point instead of crossing a fictitious line as above.

The gatekeeper is initialised by the contestant processor based on the scorecard assigned to the navigation task. When adding a new gatekeeper it is therefore necessary to create a new static scorecard with a new calculator type to cover the new gatekeeper.

Calculators

Rules to score the behaviour of the contestants in other aspects than the gates themselves such as prohibited zones, backtracking, corridor containment, altitude constraints, et cetera are implemented as calculators. A calculator considers a single aspect/behaviour (e.g. corridor containment) and provides scoring based on the rules it implements. A gatekeeper can be provided with zero or more calculators depending on the additional aspects apart from the gates should be scored.

Clone this wiki locally