baboon-tracking
This repository contains the state-of-the-art aerial drone background tracking algorithm. This project is sponsored by UCSD Engineers for Exploration.
Contributing
System Requirements
This project has been tested on Ubuntu 18.04, 20.04, 22.04. Other operating systems are compatible through the use of Vagrant.
Windows
To run the project on Windows, please ensure you run the following command in an admin PowerShell
Set-ExecutionPolicy Unrestricted
macOS
Please ensure you have HomeBrew installed.
Linux
To run the project on Linux, please ensure you run the correct command for your distro.
Ubuntu 22.04
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git ffmpeg
Ubuntu 20.04
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git ffmpeg
Ubuntu 18.04
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git ffmpeg
Recommended Development Enviornment
This repository provides some default configurations for Visual Studio Code. In order for the default configuration to work, it is necessary to run ./cli code
at least once. While it is possible to run this project using other tools, these configurations are not supported and YMMV.
Development Procedures
This project leverages a CLI written in Python with bootstrappers for PowerShell and Bash.
It is recommended that as a new contributor to the project, you first run ./cli chart
and understand the flow of information through the program.
Commands
Chart/Flowchart
Running ./cli chart
or ./cli flowchart
will display a chart that shows each step of the execution.
Code/VSCode
Running ./cli code
will open the installed instance of Visual Studio Code and ensure that the expected extensions are installed.
Data
Running ./cli data
will download the data from the Team's Google Drive.
Decrypt
Running ./cli decrypt
will ask for a password for decrypting all files in the encrypted
folder. It will use the ENCRYPTION_KEY
environment variable as the password if supplied.
Encrypt
Running ./cli encrypt
will ask for a password for encrypting all files in the decrypted
folder. It will use the ENCRYPTION_KEY
environment variable as the password if supplied.
Format
Running ./cli format
will use black
to automatically format all of the Python scripts.
Lint
Running ./cli lint
will run pylint
, pyright
, and black
to check for lint errors.
Run
Running ./cli run
will run the algorithm and display the time of each step.
Shell
Running ./cli shell
internally runs ./cli install
and then opens a shell in the virtual environment.
Docs
Running ./cli docs
will generate sphinx docs and copy to the docs
folder, where it can be hosted on github pages.