By Todd Dole
This is a project for "Applications of Software Architecture for Big Data" in the University of Colorado Boulder MS-CS program.
In the world of endurance racing (Ironman triathlon, trail running/ultramarathons, ultracycling, adventure racing) tracking the physical location of athletes on course is extremely important for event organizers, referees, and spectators.
Currently, this typically happens through a variety of technological and non-technological means–
rfid timing chips worn on a band around athletes’ ankles are detected when athletes pass over timing located throughout the course,
volunteers visually track athletes by race number and report location,
and race referees likewise visually confirm athlete race numbers and report rules violations to a head referee.
In major professional races, the race leaders are often tracked by live video, but even the race broadcasting team has a difficult time tracking who is in third or fifth place and what the gaps are between the leaders and the chasers.
Data is often out of date, incomplete or incorrect.
This project aims to offer a new approach for race organizers.
Competitors are provided with a physical device (RaceTracker) that tracks real time location using GPS.
This location data is collected by the RaceCollector application--
through a RESTful API as the devices come within range of wifi or Bluetooth hotspots located throughout the course,
or through mobile hotspots carried by the athletes themselves, providing far more frequent location updates than current methods.
Because the RaceTrackers connect to each other over Bluetooth and share data, an athlete’s location can be updated even before an athlete personally arrives at a hotspot.
As the data is collected, it is analyzed in real time by the RaceAnalyzer application.
A web application (www.racetrack.cloud) provides a summary of the analyzed data to various users: Referees can view a list of potential rule infractions (eg. course cutting, or drafting penalties in non-drafting triathlons). Race support and medical personnel can view safety information (eg. location of athletes who have stopped moving and may be in medical distress). Broadcasters and spectators can track the race through real time leaderboards and live location mapping of individual competitors. Even the athletes themselves can be provided race updates through leaderboard displays located throughout the course. Athlete location information is also made available through a RESTful API, allowing for third-party integration.
(Note: As this project is a proof-of-concept and the RaceTracker devices do not yet exist, the data will be largely generated by the RaceTrackSim simulation app, also included.)
A messaging queue is used to trigger the race simulation, and to inform RaceAnalyzer that new athlete data is available for analysis.