Giter Site home page Giter Site logo

pirobtumen / f1-telemetry Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 130 KB

Tool for visualizing and storing real-time telemetry data for the F1 Game (2021) ๐ŸŽ๏ธ๐Ÿ“ˆ

Dockerfile 4.05% Go 83.56% Makefile 12.39%
golang go telemetry time-series f1 f1-game influxdb

f1-telemetry's Introduction

f1-game-telemetry

Tool for visualizing and storing real-time telemetry data for the F1 Game (2021).

You can read about the project in my blog post.

Telemetry dashboard

Introduction

I've been playing the F1 2021 Game this year, and I saw it sends telemetry data to an UDP host.

I found that they explains the packet enconding, so you can parse all the data. So why not improve my coding skills in Go with a real time time-series tool!

This tool stores the telemtry info in a database (currently I've chosen InfluxDB for time series) and Go for the development language.

For the charts I've used the InfluxDB UI, that it's quite similar to Grafana. The thing is that both (Grafana and InfluxDB UI) limits the refresh rate up to 5 seconds... I would like real time updates, but it's OK for now.

Roadmap

  • Full telemetry data support.
  • Parse all the relevant packages.
  • Custom UI
  • Metrics: car speed, braking [0, 1], throttling [0, 1] and steering [-1, 1].
  • Last lap time.
  • Base dashboard with auto-updating (5s).
  • Real time UI updates. => Chronograf now supports 1s update interval.
  • Client live reload for development.
  • Improve local development environment.

I haven't thought anymore really, so I'll be adding more features as I come up with new ideas :D

Setup

You need docker/docker-compose installed.

Docker + UDP doesn't work properly. There are problems with UDP conexions so you need to run the server without Docker.

In one terminal run this to initialize the environment:

$ make start

Run server in development mode:

I use air for live reloading go install github.com/cosmtrek/air@latest.

You need to update your .env DB access config as explained in the next section.

$ make dev

Database / Charts

Now access http://localhost:8086 form your browser, configure your user/password/company/bucket. Set those correct values in the .env file.

Finally, navigate to the "token" section and copy the access token into the .env file (DB_TOKEN).

Default dashboard

I've created a default dashboard that shows last lap time, current speed, speed over time, braking vs throttling over time, and steering over time.

Go to the dashboard section and click "New -> Import" and select the file f1-game-telemetry/dashboards/influxdb_f1.json.

f1-telemetry's People

Contributors

pirobtumen avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.