Skip to content

ubcaerodesign/codex-II

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codex-II

A monorepo with all of UBC AeroDesign's software. This is volume 2 of Codex and includes both the software running on the advanced class plane and ground station.

Project Structure

This is subject to change as we build up the project and make design optimizations.

codex-II
  ├── plane/                    # Plane module
  |   └── peripherals/          # Driver classes for hardware components
  |       └── sensors.py        # Reads sensor data from sensor board
  |       └── radio.py          # Handles bi-direction comms w ground station
  |       └── PADA.py           # Controls PADA state
  |   └── main.py               # Main entry point for plane module
  |   └── ./wfb-ng              # WFB-NG kernel code (built into rpi OS)
  ├── ground/                   # Ground station module
  |   └── gamer-gui/            # Desktop app
  |        └── ComposeApp/.../
  |           └── main.kt       # Main entry point for desktop app
  |   └── backend/              # Backend services (message broker, Redis, ML model)
  |       └── radio.py          # Handles bi-direction comms w plane
  |       └── redis.py          # Message broker, read/write data from Redis server
  |       └── flask.py          # Flask server for exposing ML prediction endpoints
  |       └── model.py          # ML model
  |   └── docker-compose.yml    # Docker compose file to launch the entire ground station module

Software Installation

  • Install Python 3.9.13 here (make sure to add to PATH)
  • Install VSCode here
  • Install IntelliJ IDEA Ultimate here (free for uni students, sign up with UBC info)
  • Install Docker Desktop here

Software Setup

I'd recommend setting up SSH keys for a more secure way of cloning repositories. You can find the instructions for generating a new SSH key and adding it to Github here.

To clone this repo, follow these steps:

git clone git@github.com:ubcaerodesign/codex-II.git
cd codex-II

Poetry

Poetry is by far the easiest way to manage packages in Python (feel free to fight me on this). In theory, it keeps things more consistent that your traditional pip and requirements.txt file since it handles package version constraints all for you. It also automatically creates a virtual env for you. Here's a rundown of the commands you will probably use the most.

poetry init              # makes a pyproject.toml file
poetry add ___           # to pip install new packages + automatically add to pyproject.toml file
poetry install           # either creates a poetry.lock file or updates it
poetry update            # updates venv with new packages based on pyproject.toml file
poetry env info          # shows you the location of the poetry venv
poetry run python ___.py # need to tack on poetry run to force python to use the poetry venv

Running the Code

To be added.

About

UBC AeroDesign's official software DAS system for the 2025-2027 SAE AeroDesign Ruleset

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors