nathan815 / drone-competition

Control code & volunteer web app for drone racing competition
1 stars 0 forks source link

Drone Racing Competition Application

Build Status

Authors: Nathan Johnson & Ben Potter

This application uses tellopy to control a drone. It includes a web app to allow the competition volunteer to enter pilot details, start/stop flights, mark flights as valid/invalid, view the live video feed, etc. All flight data is stored in Cassandra in real time. A separate leaderboard application reads from Cassandra and displays the top pilots and other competition stats.

This is a semester-long project for COSC 480 Cloud Computing.

Technical Info

Installation

git clone https://github.com/nathan815/drone-competition
cd drone-competition
  1. First, install pipenv, pkg-config, ffmpeg, and mplayer.

    If you're on macOS, you can use Homebrew:

    brew cask install xquartz brew install pipenv pkg-config ffmpeg mplayer

    On Windows, there is the Chocolatey (choco) package manager which is similar to Homebrew but it will be a little different.

  2. Copy .env.example to .env (cp .env.example .env) and then fill out Cassandra DataStax Enterprise cluster credentials in .env file.

  3. Create ips.txt with a comma separated list of the IPs of the nodes in your Cassandra cluster.

  4. Install the python dependencies using pipenv:

    pipenv install

  5. Finally, run the program using fly or test_flight entrypoint shell scripts:

    ./fly "Pilot Name" "Department" "Major" ./test_flight

Pipenv

You can start a pipenv shell:

pipenv shell

And then any commands will be ran in the context of the python3 virtual environment.

For example, if you're in the pipenv shell, then

python -m src.cli.test_flight

will automatically run in the python 3.7 virtual env with all needed dependencies.