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.
git clone https://github.com/nathan815/drone-competition
cd drone-competition
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.
Copy .env.example to .env (cp .env.example .env
) and then fill out Cassandra DataStax Enterprise cluster credentials in .env file.
Create ips.txt
with a comma separated list of the IPs of the nodes in your Cassandra cluster.
Install the python dependencies using pipenv:
pipenv install
Finally, run the program using fly
or test_flight
entrypoint shell scripts:
./fly "Pilot Name" "Department" "Major" ./test_flight
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.